1.09861228866810969139524523692252570464749055782274945173469433363749429321860896687361575481373208878797002906595786574236800422593051982105280187076727741060316276918338136717937369884436095990374257031679591152114559191775067134705494016677558022220317025294689756069010652150564286813803631737329857778236699165479213181814902003010382363012224865274819822599109745249089645805346700884596508574844411901885708764749486707961308582941160216612118400140982551439194876889367984943022557315353296853452952514592138764946859325627944165569415782723103551688661021184698904399430631382552857364668828249881368228006341439107868932514564375102044516275619349739821169415857405353617589009751222337977369696877543547951357129821770175812421223514058101632724655889372495649191852429607966842346470693772372526550820320783339280558928531468730951326064583091843974968222303257654675333118230196492752575991322178513533902374829643395025460742458249346668661218814365265654295427676105054777954229339733234011737431939745798470185595484940594783539438410106029307622922281312074893063445340252777326856271480016818715472439782071878034446780216178158419042820076721243255738014364178876826161041016818724240687908909929874208152183237528942752732534071002835750695062403965462752244308462588450859786253083224774538885068003488324340490083990058080943565282122370388702036804548600776214244088697259413584365999226211739670804950952792714363154640444623089158185367119608370304853520909672629582415040355995121355450332241748474100331981487832452569334704949937301656336660991903957122822844881674312150628569993874038819012744839564791034772885972119850649422796985791669956418551265041502191554719665856929726606523573293736830027830921776605387030462007661584946700226011756797518003934791763277844935142634968360037557857160700498181519184373438290934746660457750659273670121115370582496479847930404205823964753857850960626093389914706120130243108260518262958640076003059494321166880446106134684533982021759432578052026079918177502701024391069239514358766943081187954048342872046559054436659230402473922864289633454148523569004165125106880083148618568504044143607232617380111396153759722833009976483539807462665578240350102206877460160494112264547901686569604076122908092713660714119003254949681169907536467796473682628328975449544552397358297243633458283671762229933743611323027017930815714577054154203009566434242558661682046643257941458493003265129613804102138672630264954003110357827776149727676565809805813636240137072468662027497791774251186932700805242800168305145599776548277031096693480907770565087019648116070172021618409732068092068734487201761390878891576875257065293565556618108794760408863290209076230044869521842333668910487375371847330824123796316057588629046886003391196108655863288604527298208197096851655560820913037158486864245227996855054290753849972638687139844301840378193650911399509709457365162375204212804688469999482163504099276449749322271361774987894784612007174387522665765377379623636490978192018522227707248781417497052969341818156250559405704960651336251798591778140398301791513814413395693985143458874835475733571723061487691980796329587859270739362535090402332103271845936331472273619974432127949291528322799522409407568018976786189181565890605009848467642594343309217905262051949090291433872018818776913943401262060000794513847840101438185342234250879123783439558402767862535555327985163865728027491486716109586153699644798233978316294104603265157743628336959839684219567748473440785759989943574385490590625240400838183808982411575308209263537270803851955465147108244800686193934906031152371736071694400162499550338985567876704765593565326760634041024387108723984124456605700953179234700541849269508994386014625049626465087081982215372013733201039881271401171375491393500612141206049045872845320845484941209718791689364863677515880569098184924950886640543533881280334195558558512360277944014415752208811439767133156494264688641113768378288255948272050590548314811168607790912656962855483167576098238724470203359427511478582060601855825892043483674885565340141597263183322845653839570718183928577033072091447454226019065728077598866410909819377232400649329796056513352511875224156351754893395062789911299724456937657560504884396005223155450335176181167648967167886715752498638055240332830156396152312744961318967595810637889331547797760959498324086861436685127584606564645269718353790838076670306574029003523111161656937707234820119167115118942600473855157462594033605257081207149174273097809357054284829815814809392704681864647077252477693642436700526356720086246939405580065267544979688631217498131785296397295764939182910633939957270564493421459094511472973809599640507931483354015163378846901818049365226523111259607627447827143515156987469827055658110126608147404540602028575300941017970566048109519454084833012147177982798132436955246107457855126266955049656347001814379602874141720836730598604700529734361026378077526999341329051067509676891021824782494553608898225237827730560258771341530036918701501623868038393927302511493687228694916619992415970346225782640636388479462863518761852399768405793002112165815818802964698959740379564640431090073461393028398859497054175489369937838454296776057441246358095807325264193138005301221648015051286617062854173261404772813902081964705177441734059967004969965828986951022133565297601760952093803683610762257544801151204986550818280443849781636577400655705668008037208348948805670538264058206406182006989058761358316438130788345962219846046125001443533523571197491324092399690866242848489322473475470073070332513094670868969701041787650811243020504233237535598015717815889449277422313503929687372930343290106667748771329253552171784790716390840324351468746673022314701883880855985097969938125049532296658781365231987382578317142395431549058641771577983674266767223287969673232347246051217133179982148746544301118517078239186327017501530038911354018388526538545907851028077934479260088934252564785980589925704315709142565676133299088038249389135014651412924452158131810402006787469503358219091517424133703555940355377463907154218008544833701826820556014857305050451326661530822585730619475107215421122934088481176383301803166410350382882081776944228599105943285807970807265779792949899011548050516002804923122895813816835663811525200293751804462133236044144105258650187758032122809381631356648905462123715310357647107515856160112315906081975741335336259450530216465640978390099282577487790026788817233552911845530761503737103121109771991145084305267655066185295481817025391957317824696643466220967989767253729304086255944902950519223958482385970067971277561917392394036406828506157173082579499604384373152186099360777987562919387994636907177180715032000242158880830952733425867711858867434147623431400337935936245618206509712097991820403597473279958608282805424117168257306813662203498717163156267903850531346668541257898283010018345193077509850140748684413617635367846752986251237000095787115354797419057911039451813727191450062840649029555290261614574105027762196001970528735695457666437710953084271024318986203251869452028478654153601638948914086990579737711244407529789322094783386972702240447364051535392791904068071315195828730531695971131297123107178143529573483046059695057775342716625678338914545736132774402344585015493449741548806142998030479007635508949139065922136277285915037452940888328936438832685192995338540235137503232606523551656283396881203224710454789198780199195442837860757077162181143112377719228046705796364365720827101752550782579528230282369522128112266349644872109419760559552961517643034098068715501043277815124955401799639067507387864786018704061887125649919391139085420145187046430048200047149517547705932335796242562236096910024438217960124410135417987509243649533418572525331710979129473508587604233203621644261292220775977677206318662844543701241067677769279920429031676395883585679780497918052844133813056122166229390493282949832252230137363138123298518267328486718848273968503414191941922325297638375542325418896577278975101394110812636067217394570540690613597290738776091047378061387156241958852291197319550674606714464610264344139016301517863856236079556462968680122405368804748541506039370183810493014729836393681640560065846860784043234133756177572327637007011625133508205704583845532454301118327404341947391304019174128562365343619795862409092349266217582273480100609945064625204768643801256601088907167747892109050757833084308594612574997730876398101465623726967119509565461978406606674080364952616632437189662499852231321844944975583663909636707168363227194936840275618309271761818152869341342839193094215675370629253316686139704899801611015589343661677518987821530556925441179266507226942056711859775631958717624987898902056123794902000478613918324652619105006074641134909155916739912174511210287502110739982565546747549917895888305002785013075557845636872137700971181904636814718730352144933416040948144608086315734844949658525487355864224523656740400275938603684795331378807728666018570475876945116355017683233113670206549880299542081736999918242665212478773128546263572142799009539926140363626759661075195118220911339430910322984961096724548400502689389730680369557825955416826698596453827215228844002299318802340805818897576000054108622919356048308938267879087237827859753545329801322447659886952053806471032719528960697265479806822531637684507074256994692291027898104156864480243969345419932507679812695072393910490293039003011054974732810490364546719821936984861952521798297383231945881343282499550227292590814179284444068041165492446103510454755285487521870788850708125088956681731358932355738764328139662116037854921625228149061505341939295878214552385585606492631959116915105537794835902965498402386937500023877574276863764349949165613993638823005345035682222405993001082308828342068644554084795890932789738568671110808628639861430338040786064182017062617661087747581324409684971187072725605124336466103399962615959928489255065864054133191287425020507120658141679631981579326508490103079206541248355613982492752730047647855482735447737704390371999206620196502071845394563033359130331379822205483979785280431009527643378303699428050137956511940559535334836690455788319343755555038806071894010672355237311129663586405310861383400723432523287537146832845881021408514122024968109874525313311674650459729170415160560988841824440651489859306437216767375740554349266747466514695040396371866303096141985480453789452673433655259341565555431220419045834145673688403186394486478006793627318462146530884403472402211330031442983927244291952699715747862442762087768203972816858697600635606823270031690860230147520560747382384729061761012109493874557947684618522043634670377845236037074532424819051946795396312828618151077887434703444630657008607117858162823724640284555115981353556134735039148771601534195330689917498538596795303979289429348906317916387425699288093546112742239745614594189346564892530444408381424944027576634430554168825374051641395558636797772375079081902610607381726520169688412138876004467366202473025830459245185767839840998981158808355534610078971079117608208897795239186460701684714004490759000307603460197952425589493224283317642583254777956075768546035101793650463778313097782494897558834776069223536081980859517622221873840395184424893985007916737253002324865853361800691777692637157073760697363883891016802646669242743318451697104014777809168834031856245672780934683460137720456267791155652080250240856829489521505058919095747477070464415974652516709343118379935902327652980103959035569934304148581006292792474378843379257492776978566482786680161244470630339731531556468259755645473965733200151937740664733793014673400271135591788131773899735336683449841807329584651325645137487878685907905128371420182484363481288487976758860571410113684671830128908668812274365141222283283729294248686375563207563537194627314763907558448305168719571830125058765886350884791040471118447486442043927763357076722404440518855848518111376765119784218339859841754939966606913984284139369785105697203296352360996351812292815967602887465003460256119423080372963520818407328346171657547190628905460108694710538863394684922164427893946132645493922815451735560850597043104371350459495631439534187255578212513444191960405796667101264238681587067756784651158973461787879488260727092955336282034540279983639991477360254630446694124380721622290076611624624345844228167852697354709520461349075024182846444685634917338925407341672024245370532631977106176979346371225314889390283189096052337603655722701245153621298961491974735188074391434114515496999261566809263709922649213181119027655304135481350253114455958151750654381398229383996064871640798336863560935486144018802585905764285581478143816601253282238155469231037362635243053099345476785230317639223225918043731970075623542435301590550951128323524056756240075891714423939972556305889067415058739548072268604093866522441879606175912293936789229207994228667339503210344960452579824485446327795794277599032573228992518460151286404093887740511370782377516936541554690315506539362763139147848930114856643965784719807455784533750561738451762098293089676808273703735265494416428655912661351799430760711500513466265079246608937156365146546960652619161615958514499490128841528797106417319352806883805922872799586571445202135969084154998730110087437063695484962707459844642863683937660540016582485799042057158546170417386566327129169280350461500688473076578723769455404479015810980480401629145278420156912087334161988084258829338216758761704797564791831517133685243423779349146536630523625669100475447490917576994287128091597365307549947068717442975592800906184786424279432033620198797474896940153860554535965492515148986675860993930733839406738210522820697438327699535282602681966910107828090030533889007403387575702445493763782127814180511886002721066107291552652451775113629863266290256803054943552981695970247034614122015925294463994783401160537229881938040969838349284778124147922854134489248798508729007577900057793129113398376976950495189562980379404210785736482223318890439654482711097702233109855069687273814925809322996142338476731996417270022632099227490357703672292738996975171983410670573023494235261693120233161208219474634802583186855564427182948890926602136557997234756583151388453344714978472416304715442562239879693928819054290127727702809898593810628559065122668896159128055281574204861087627357701138390744877816284909475096690925110025706939747878929366412943070665243797007198332335961766634550994354919565110985998568382992735851978704191606999248220350809376918903744491996597500545459159925376485324095876077136135103717421329595825495568400080858901660937150780159183828504569062598159654933172156238506478216788717626678201320469076755145532571424442438004850654228108568649357351956591395704550748399260495260213125538685580729701846678040274863593455885158651180297322911880632174455320481545333250303033432878506302173228063533630836107220511342193160956595805450583723635494725196769022691977306294762859494879038707762983619703566140105843616410514209006918379618261070810781329719316805114172840513556317225484634144389865438132479845061132143105395877922359249893743593987300595536497559940477955812003633393313630679961052453273485981705776716873669222426878934974636933982942088736099369548017787648333560599808417050589506556519640242656576897256767992922009246439884600596609205428019668317365181241929690836725510747319731545757601759505643334096650907242349461093968881408752123021610197178160712250543856999555970953214073971363188854202700043300062131577792907506418110417862246273221202686420128849466272137797698719866024677813577297356116208277773739168393604474657090071482128597227911529677228254752906908457328651699487707704040561856637152321789549728845615328901587889357849272233454083202965313477656841083891649189475307393088939842676609894878053267501080032064550399084475970769917565945394194131293464536256215274294845597871068831791814344420805864654222491016813847404548100211856466844095640626005338934384683144081168036588863180947035626398771206685476884002143383252340515276964429640331809399218423449771099241406272690217971684727212045230363585760204399868149571589970175791097510292748470214226106154380266790308080131725471988698861279550353257306321656861468033641420120295175272943476896342649768748209437092363389001795927352114109248392889593575399498465379757233902886242406668180087126393708046312000736055475970549086706436844428907647906004603933503358078243105145153331198777539898607942044529432273327591151090675825394662890943468773954054001742546842592618990035069432233963912244147429135542533066235455117478609208930836014789588515787678653636174087508034678744660860109718781161085622586080238404874916419533504464198306377599631045743614628706535376525274793764084615500954789915276506450327054257965990592002972333508999098482443090289237159120938618913901006811279774565720410497043728834803845475168633898420039819414607357389617560806217131058070298773404718891419509369153064940907911578907828299133703692875942428968511981687648937585257296523094227060696705430923069844833733333929352113166360400795636648163512379719241048184395167129259368503628781035101165487455485671784659545694739774954850473347651900871473685465322742304451003325705131709562727333322519454121030544094480566727565729160947583632276335406400849229067503693955541426632663606119845325304213410716699964854074250183536141892953157968447368618458195814323207503572357453507102510578256896798509582243765544345222965230260204440403936237460993469861117249328663589467803680341205461790035717911088406119551257092439108698285652464628236224449756480746562096225865187686774142883710420084708309475146920269563058966907396017801420456441988903283394437948907898726430709671724284743881800705041114720598585785547337106160181304475222201969645700312312121609042024137156754960799401618308034293555335106141521906071911434380638533648895269078364792693968623758479760354943274508855847495830710046641661932941451683327244250222995174632170225411108765861396296309187000765993710966019780787843957669575559300909695205275844791914013467003674251874412643614576115656497500254475647267170384510233690070955463656988406567859486395235821866106730685818590215854953908351328369406962503696312820551483173585251877870574902388567036741827626162668340342853009519194826458210869334860919677062885922302532509263844128930327760905197545922878838750860366846299006374438976065498653810801910180960096783535116099666645072547546513356153469234233600219643149284455434310630356269475425660253608353513022723471317748486076083179113573369102236403092168696879451811389887555619433386480809691436117139935364042857082441040502422814619628165711344383324915151286415911469249672903108240587839407498458050506803061459648120298676923841795261681421663276331587808849451120978525974967815544911782744844373128317200588515304818037896430048469411971122658017597982929416041124997612326862407655755782351658104527789264680474103232136157357727695132266833753338254591681597603683066687541826203900312519544193272240417747826543578913082666655397796576875087785071887224294663914962525015072240724370942151945577984566123903959750450846307971432599592991389919492192268108053562213988937846374112365554335139146908789566396801708692643499487983763128216711385850466393101963761650691015255651848658298962961076761812189549818850796952265124242637439561136348214318097474047012497142687076837899407018331255715638589819321534203717348607215909014963001867834535069557192573110524943617861818176985282661531544210401170194688716364084665727334542335418800966653603910493067359629779358764089906324712328522845109478649535367610747654281084461827545901482789404589521816474987334877623675558614423028489258091378558921239516749107059523151854376695969099747467075845136466603596434488849607187112773689296360470662014134448943756183919720933458310424426280853853702692383512882507760563221132568281854115771225327901778461178295862357571764140900679946323359218348108792918352644981237093259272153087783348880523082838747025795147795516785093482625462053154696532175105256471588893734221552335969847128417299054463497698472317237532699722358434806816140191811988608967396051543000218098691031325681809539755174297127479606511425581041513904598159383877800690640181960643497627865267964214477393929289149339813211072826402568841839151546298547248845831866875303770670446685931579435021575251232328450375099481090579553882448615867891750210378302562322604814416824837881974838215362217743521324437340022735529042480100339147806906051656031043903823771057633599910738002728989138611068375737743967321351644829862139481090193423533140073307366046460468277098173949616795036770803080547829833336927395686913413630751775127070525034227199483632808497827521133793731821806632499568077004928322667090685822726811652431836329282428981353126977437438456129446073014837601744273740619967529975915263669901200550334790553673109677447481328506406904066942162502879711234086200303812784269284361068426077501101660697294777026981055457734142293038587054969469205282047482027241126356342200028448967962557093416526207539628383898697241306229361141877325361198833537519577532710274988842184926886116113742584408991244625679205451545390533227014805307455059001202941410212465383621898438831187296354978588786491658520909401938503216352947158956475715112679442813925535665510597692304397726233613706896215287446651497795092207015025378668546001001058027853956970352040671038128835754850767801861023298360033046025197014772456195391106470063783911680252642030961068411174029262663519604762282275345577492836940499935945130493670832805211814710310347193061534131253010098806428990118592874506639787664822751395021659110908605583977160753816575544495032371665325168146741022108824313953006210663747967263224768665517283918431656282936279519112314022278125819280892214209272340727371419299031195201172422905614322539516694224055112553330525921629410027276017233360997549295474431780008986726254145513394924131740519193817925701334628492178873101624549692628792795203160511480203669555495762312146678787180402346917496281389294840684999000733158163433483541081232186032014645641055106754913207449511148518744585309097141661547497369162342928320043547528875047173874508571719444374575328460858911844259814310879861347755697799715401557643792395789618741977169615835362158045883964990877126805474659968437790691433310688188167891488856538345673934262415411337417468913009430952650363348741361326728802700337344283012149232105825992504176972334968691048328121058644128617178537727314350445687626347563296801617473794641529555379562836340705035895206387770681109897680850819222138447700323446688599927489062606247756128349644353128850089530989954318360330244299373687378962328136149741986329579472727809634351005606560615729588150615061515060738665579034083484906099362247140803893935358373070214043605352744627116194717097260394124000660701486768549103276895897253712308846801549376683847945745994271318661446814502629857083108433934933907615228603374006051082226581720690384374020537910363211347164538927364203885450835707900148139683805453284181953102208510552148813790744997486971151103143960144396760478340284548612165101343187624956096204638612355604491930273106013950703548385623263353986253495498011375466502632768065713777381341767887054233205201070111392067632777804066682055974480057104617579969838614201804062685691411292827684405890717003339837573377998258413999242854380902426004471714915114049083435144592471401957048224253421776257110429783627797654660331496448122128674689526893679105567635608043247244025589432179030239878712272542841631788078802470447919085488527703319682900561927998081400994884243604551930144997315487784657471688275939753026868718652841353547211469476123431660757749540056768179691412328004483400600479126187194150665085923066057675714296495792284855895663282078650651459466974644383213900591185201035146709945054144026000493669740199753317456122186651546920061676341156612827131548739703964436810060254735679922423996469263779129537009034203157881051152498295404390013189349155337494413400091468802227203399295203959054652472019823792369767605037708368717464242454171444976673420981182880610952831317985429768106439598040459286953032745787902236133074920033210452159717126843234200646654396169966124690745146523528625910353057908722121337877474769182768666224725875397952436926492525116132232556332330180864450227357428140938957292144413679263645484448682113466986186287445893117821366315757267435538731011165192572588408387824732299397227404957448973630340714569084131352361768402190125263638686872442353481376629874331125786165859506965044459071410970726787481834567922087251761963858693295946133023496131200369706991568480490203992897477591710520332141744899570325497188840737666896904726926467836343908773953660164519068287656035427268355044348344130795717856126290744254487995466631852598721750638134704848386354733510128467004492632070844222870398591192076993863121779873769854889486994389439144254705016098650342643676346433135109492341464567115099467867919254677156004495857560249137641088957461097879435257324779857753768969148812653879024523368059380736298024320157352754952532474661441322495918110106328975479240711816446800975251419643480176228498264627511121523111214228315809141822444591905554258851426343695022795576397434386054456123701745118440301743633347564789433130432893754008760848834644383328746326537173505717643734016601247405311875462293064986721513864863051989692834471800294453650796283794312636566603374383867917159247963999583031214961083409386740982545533735176670380689054583489054901218227579120437812896331027721188545190120511189208219797165768841620443927210282992372990007368670272035868086962537249735108315525376318382646752712645663318430538684237704388491354235681579217790978692862799219727387302030175121218084060791888474038331573896371864814587470963431645250015342428420281359903773467949373953036497523978831348447383732890004470845733223299151990348813761533908422660048034258544032752333813632426657153186583088803043012776174610882005025569242341472145950166695950463069406789644338143378970448989245678172686879703611639887490509178213527482717710472069860134544343480544532079603339243120787246559806815462435801432268670464914667610089425401474228486031257501047941785456796214567345029333344629815761946838914103101273175120364689439718517929481973181119140284887092273291270770340668785369424595208775632902564067539826345064002458209396359698626367009931945240498846559787323611103931199312734917950158165864836890038931561792273653402112407937932119088984056022750954257242670127001039224133968010414854180407949242791853080024189317848873123145474331893971964433239928604946954128327125728163109959631554485972842029250097776694625169164909926171179758462746162750584058207719235375375565275875161449448108467754690397663699019330506646272367661458156877530486555778234119244539210869304826612894365876606835478414895512133856248644236217394988390672889064796893269237191908931330886974146957740650445849701278333406500039571424337826469252197446867419156803543244540145612858629727743933032238897498491557266443539352111929586388551594938702718817318429698406276233152338101643076432539094713645572823064276464354160964920949717393154804591998966430748689401963143679997409098886789457557271860073591241145976142971498115072886348619584107708128977544100559400721860475093675550054077930621089569599684648909878517116977469813560272181072350145724861820259801285342725746263207032983425911331152453054390724844946606223509587358826801818079924813633789622603228196076749429269289570095490167315604277221137836753061175207900300179775214515520717387073891967637034245766139704678971197069591117343034975863666393188593385186101045133444032567747518713647749741790459691605337765691131051678774463953741460267137178875171698992755416785314790334046493856623257977592847404081717525348890185439818524138217756415653024309632077589757180858189886291854893229516860301032883267145925808893354468461095494158968752994103968706151936348697893563212165005863698026753995886778815373869539432463182001971831823444126374268902882321503007626257471533346419170190031047592609548718046014373688979656305555228085993061794867100971657082208820120298431235131414148359121170178240401306063659881288197520353733709555111675497562347227278324804950944904937012978545023807569285120462378273051535783337053195478162847419117553762831006823472399130545447034153668613972716066092108870187583145220376506041808592268051837879062143547922222755649384937770608087636946103507682911000812371605864051616089906394933064310851723826031687304482156922138958701292939764972057624604086892095264724123699343238714948638334570321751020472531098378975919228980626894953022412200604965693284102021884078800336750989870269869423756522491152433988159953628269653054831120300461195829471710841424739302178196409348954311177908926289602384873801800988490591623123402378511724111021882282038878278707321884747567689567872810696887645215715746652897924068286634067025917993565327980613949075492275999306470491725604985831214816001154404956177249702612306746450182243671639721382333139301580021998904056330902437817455706822429211605633779465497625839304199561579399483844790832711209414802590183309591227703213697481538632125547880872392619686985397090336467267336759206138901442947469882093807555211605184376342066707200876595580167295132948175304944304572939166364252586806029240868692468703571140066194814479282612040638976977917912285537970952000351321357372866110862347253164718230772158520342499303208179436630117237239901123040374907974822507999877466941822137985312693075507683763136168484399722818074045707101715940512867423819281372724757388765329492252781768981676506052179275198657533740322268558620392613799628867653642929929969085770589401441862900119832850678747284560497436540119546762885507278751374932856167331073339940631989042388822316449631276251989552880475171295526826695197089019319794532177729997013697400615115080490763079255778645603472962665933795981311942428814542169121548264681758129233730696540449663151593371978197650398215960119067056488851620810316500611767270239109712575687957288267947457366866190017876213042538554583182807785353307383465737470349857069225502943890651644926990889476444926529424933367858748271027346971467070596216088516468150332923138328115926180699555571028062636044118081690616700911998278071639551518825746724283994254588855687909269757507968274775965319739478454477192658741883655999564491672285004237843364527566062560172400305917164875647053159323596149189516286131293455140265857974535842521893625211939159179502315975316383769713948289042622564019639413099605763032277330797130185378784638825115754631441737675397636366443037674340359770365162973613696340821132187399607573439877696261553040581450965920925496238001769302869395027067827819479010749463293798717915838312728881954773353849442551048837326203560227052428234787258336467131262701325110541705808430544590677108891032212117269236235382675559436737083784530770225737829528479301056802765308096222104485415051644879314353172271134691355104211922001040187923841173666127123335169391304452091707371411826866931002587056977007005392328173940767757734068756451602774427978927542934411711668439116332362411492717245673559835758311736097132972886513848478162309598565989140849036122249001920265710789912304137941907477738576448762324791962640508884133782921700859421165445355027462447702503737657379708630807655278107419276427513225403145090259803266213555083621391657929170607408180423375145786081388949605774913144175842527349056727150927376966342652264965433409136487111671809936462663470578959535775441015454612595704790831366266311449536733305118463345032643876566335930478862437608602516114774927761825867742270196679760002051747760989352156692536533411294848285334575569157692651492426516698618622641504662499622418424534521492947322282508608189181948430399147025624497915407284948950786801573568706758051994350181039355894482160503092424323982641527954040183303825835275921819903832180543860176190226014682738238330896266692244281447254699560038986073344485634629090030288947071561443101587475605686543497308037736131040557853888971931662030186742451409934204389638652706447835851219928432680495951696290847058092211796629178769496734284453783028579778030018687134273140337948515318231931141107970064811117956078350346761117683965745449936356153203434789813238905729717170187784369200492456220334835756753084754143947780276878849633270102768125095816432928947059992939905457486536631495486246742503132398511679045125461901214169018233456660681166572555106780095971646242602755250545769625916578389705216120848626732539019870843996564808944129577167161343604825056330682808265114274546093009657960019715974041721698042729895075386799740584748472316033305317205610728111472211810785293781266553211555236906144982288275206380396979758987354352995447114195758841740136089106089330270587756257382964388816818307283640572377222376309630007115759850077865341710851302506692529516371192096461476576431826152479243622616616158399848582258648092988174532824294584583097380349566431719953000250581278015782993133412355259105955757150730584517281342357012769600662630209397129796154008192929825168691680772498865452944682619570533995654705433295637467290594206447746809914753644827009275427546763661414669125543911788231640477165408667033555641208656506631748702232686676332470253111781733373707347851409744182893600273770392399808673947016002127202919869573038778419657572265403390007025612183358239804090419726586869561876934998529745055184793424128665204936447471782383586177336604730530481514599730910178537574374254353687816631368295789322468559429788742391783714352344519257182311352410855769185066174383147947352901715808647200884362652675088685384638332060002371029809807918828940098775269651664616266275283549655156791158991386876677681615968630372914397954525027475808289860490424078410821281010555591142812477029309936498353966293537573413208314438098730886862764521654507532886024934734225677913965909926895103039245812864324505017425053469791181240925420263632072169793219986665144119388411629784749707888400546514871921521380098165708533011840382105805077705722967410576002819218583684510157110939246781341223827857097513028476953697278614282545202616151474648138694198783655939447988579158233169356864943945317758119021438780675819069730874089295154444766115480587984417449852629660488435104034750575872706053306945619747700068617384788269284915713350883620740403953253777771744984109414069541086948451888805434898464473132197344560817927263526612394543879146767449619208710937849705453621596636503506770914200639181159071725806294155773807953190045389088414129249741974970528531578606167131555358469624047923125972615631541464182952381881690623636826767105776043984111069574563039119650902524677577482210100627376233678176156531147078287938936854673831047359202962404942943584829694876075014227313208077287607930757668207597500937234025689540701929841894633538649721638544198767463323170599342774534855739943661124208744976294750863756753751700265709140127451305781147561945332792975217712004833412658306897682332915923114101774692359957969412227353084587968681148874651841235224812331340487245597151135922421144327861114511917500544801432260480880190218492076221981564040419869763869233760089337084257404556649623214341137425825935106120614809141141789535553082832798280020964861314054855934311531760014975372826849822456709815799584230914171744987109421357481897761143579911879122980369826358269985918726071179826343947622738370902541391833877285462480472183030691818573857998712512495423719638720459977916503838174546829635277976788258269782108340556250554456965169709385083443730500357318948690091081569100917602859561863287445125348238302352079929014845574320275205564863784987941536993404352905206044687375606570113182618652457354477477459554558602196553555683323272783663608166117853150680678834460653611591163492185585124206157267387448924638455635980867518745447001127900498124368714029857820696569716066774031869018280737194826954079797087522334834970536618595773215712154927032991758242049980811212751768444451447673697381064598946038229010774086383478733053746051372026609957436806870903087634475150246517476175569838757449597841779891952874203504812272531657992569285802899359369714191093919005201827466529754230363596003017938557670501128827773518568213920195369056003337614384508416891186879057005387998208097326158015208719834521082873538876497560415436630659438900535828426709241417004926627582154437981187723018383096643014676621269561869196361506909593883520721276417496527613548280902408608769633636458350278031353846318917596283689185917664370477504456773952662238029792089930068063160396030983668847620034702303684379948942466120178218816946732882142733986332015317259692347020954607098638393769565073953563700371400652940861281063015038714468505355258847162950375663545124970379012752717622396404805237034800234340218453268451133803489057803695139209315359442490157301539529470808613147101578848601543147187072644005115149795626839698991048993672290528405245558974017517779760413541094206263907674654292976614847441235982903300984921061660787834482166769720979222704218631014242391966869449501437440567364295466257494819171967321212890938382872213540401154203270713958172513176071461907094464075942147832311461015342028979926083676951916582778551714157106718777511165102733302734290347227754814666260123903931246040773539626981553808537965087944899639631620537918662109805528093789252581378797370615809935281522294972533647279886252212585138516949259974250070448711838173620255039762267787790193922030339272503709053219331459606575269509948735063387846140503049868787981914005519151479863527885483578261858407093695086656366128895573358309914749233990431928723816463850784111158423353485111170903654626415729622113723952890084429183235228274441466895458121405489658108720114499510058679317062169621062037634841467479267076439679415327836687233960118875111619391315785365521949618136776158419582032059511659452654738747773666034432594681967367858682841247026735459177400881636110288366411776031834542913237861733278787820034939757315549723414013073978026178283398774243684400440356010252762491729681230016055036935014972208144543156144812855195308852846315180840744817236335009945816847161764725523991111921253331395692846798623838710243633610075820689656607417949648677854458195580746504833838160788578190106181008540483697919647333178809805065459576605237888146598035049579804920472464070853696964738484671195217112993696504788215630918287483487378570549603293920166297969812219964762000563179659155660772281857729563289859068499402124685130931294381576645431559575139674556386480576212182290053216733148942574261753142768617250088456972120697617758810093589989572182699738631087877898994973410384451048478646489891282746572088192026477302483894115798463386537604962405601888474397684459758819067600016568937447086016149477642757981955433559917332186018281016547855858118779596482397047270402068934617789039575630925258456847444388639619132114552178579010042237629774748881479404910696022582030634720862387349956597468191210157106047843814620229372354945207798398100857993583752978291968095228895549171610635443041923541963585529408778230991765879001997470273038665590511949808500102936100959523741709075074650152058452223075705139745984310039853190308452377306007586752590167186119363422496754312289793306170337024512710844343802153527217414017589268667964563562001148545670322461137595441295621670787569890862390604407096535833577953141161557781992387417542795542474578142422499496533599603008888132576270667761582670964894174973696260780241615343031932958320105779993259034732309882972490273776284399762479937427100582283783794026525387835354365634413475226066914967943361280492288921034139634752581241559997743476095756581725739800853431482232756324814460608226788360185345938552972818345479671347803045938307223758782467226753405319265188384634771069916603420788343225578815203308936778360590262412924485820485681908209909677037686597182375191974576689423571079639641697720771133649363155830746233173413237392691294594566416678111985545752585667423153936877311947078794060775374688715509728476585435862994813086466073224407060853510451765924826322679228405789059223383824527623317421561297101568140586548316901875794111154803056917167919277346167317597869904889088569339304034323135099970605796978239090321168119150408742556535487394547310594099465083319927355392061557500600467373857503844603197370015616508920415102888926768005492141844252613461934110464710557965966909413258984097325155199223380358052009944421367025234426901156137137856877639900661345296735246262544647453149361811521472258410207731856660695129520108342480029819597317146541151649253076730875542191747066338837699044789259974721073459121881750610877065740563205511679112625561365457015597580849316714129921844236563736654313751680613587219964090529760384755183155308633307641021538232424659029368689445210863640266142386396278710508454984057989206876363736940103566753517122020761711968461253440001404468083062305983312225725245028092815576377159627642929562342418488255503359842478638301786749866202398574152631309061803978234767867117856937280636562805577874129659176907838563174137411318016462846694499168093215513338399202040373821120677330031967095605055170495818662330342904052199002518724880342705232223544161164588386334886848479966696763250662312209636923254563669745905964250438213516077916521304061017423217531240071062883703549468364840489030707765913715394171629292539512091731083949008153188751772087532837847467206845113911694063845823041859149697397802854975651484283683476056906009922362871331726367292013466495693664588138566713722633008643071748369360345806222273233163195343296743305645107114386232947461755976255507304282411956406811742235798445203041944959540672033464832723734357562596932569667411981660735733363008606130534545146072309515553317764157091253068188991980951464298755525618205638912630787790005749870311377528405477650535454975173748124785214690592824674942058162083377276679948698717834153091030228855248505205835273563647915451574046405923598366554709085739441773950656512630808628494871709125493801268634670571510704774303674159416029825133601376663293906781699745843074868597064149392592516360333836651385109580542593505038482718890215377457174268987459020348343623858786943157128926007600439508015141433625046229141115995692111203536554938701381043306121307435587178738322860497488910565130436773383724398311668452818884788205901679726595446850524615332841891692419299824213169943061886543813076537621458467307294552861730495377453828166941705192222106910255811744544841823919532657509845367577588421575186635350432715126898902952102150186869766733514319046157795358269017815278653225358904125851183529319317859431360344626072845854668350647391341471211237226868188072547369833941992582523282419271887885581002155909237641872773915008045962217317214470795724753305635065754559746606831552644217463009915159028005012942933603188337059821391940273861918999737486041532637760696773053359128492130020775003169490449445525764063513952849829490563959795602371331192226732084743448420239760529227153195022530084539863634776478654087525202509943544934316219683097664585322879099533678011643852674436344779389658176134440680756753289006478913206009125113961923633576686949020845824584848238758655954127130828596524800319894051340839879128258983844162292194658261817112065949592762010424495741406715711075946527080335396471997530903119739506363534189321795782545463164252375552815092403354482629402734533322666804478802534237753797286119856800834338947637478275427668099761026653265440443317321543122599668921285526452853237244016859793663270339536223144803213307332354477625006736998952394875852123356254211944019823792915105207312713519492312364129870892412784225834995482745771240898152952557351347863264544006969686939722536804749422320897526282739644025619911189645157686683812571076227985200227330071357316842912981639905711384135711936026843384076925526264928396070380995444142730617099785248440581259070470988643372889923164126655517819903496304846278019285535116909942404749640806348520668960700623447263778669012245739446939527477285817766905296281503631579565756909060504653857862444369334660615853490971819579713723860180250537385260114412192056549555860560770417813840637775800708181112774406691875906113401674689321590293593434695439201404585164252623763676156352362496574676403224321667407700535196062823247853918424940172356768277272766657187800485342280966459642715089768215836885657666304842588403660558995222153719911416383130283865472399110147664366953749821366875986963088083564599289748826207219731241441085740463451429233597170739479787944426417339429988054555857601671197577237633708755236077015356523833725188898856261468284748361890807084316749032001915593672524911836162195138544778123420754325075064242596927141330102483502333253559810178391035451320322604393935442092827126216521822312788405968557362509702212741318889825568127895757115501037364186682860447840714954912402483411823746427425209947913617047017231739652811119672782615068330197370952081997474237168149789935295811753009139952914179900567580528385990184142595469833069654701272052341934443656379678121073729466128945160685647154636519306617411514795995744446951640740229925497303637520668474496494420895679617393878899552042180732047923909993851288327136384959768257567428442927527827934164514363418480487252823417100026419385695416976604850285380461408693831526843777875922067417568692707093824562226834664723506613851989329173094459147971086459231065321588881900133684948104422629954847771565622981185081569667394735100425240959851290378916401306332114858895066781450409210472740912224228983546566474735187189642612920629696107459162576308979828871254226870988116485997704987028190253872468638115101530075617282898109187320150211111436527143868757962133436447647467992306293954453816524737583497271934380390721764815477580432256421989414273589492614732963591449566740084079222512528128033600179969679759168782071229256758421509753914105917345547016840380050360801417571928350994034590467439756009136885768089114143519390578478119823405017958889865009820302535579951412605937813304436916771545434248127562847011477888978142819351262845220893664769340698321999670953331802634699540324172307218037424791426350009344976143051744826272246398001081152237671779531286377028429569899270026876011961398157602747713906096031466626626482264233448613490679780658212843125234015934004353841684260579610759405567583154048342550326021558505004256224399809515842129688020355627413425194063328187551651449158222953455697530883251247456260629293058629289161133285076058805715164761325435694875443874075984991796785851493185843925251124761292545190319318092088397613017455413967056525894499721497833575770379120268577242360781713978661597754818658873595936157975344060600447895522204967947412489039147953175792921639662026433898287196075222750939760380542139288409621619425499361297402349273087288209458959178594099688728120142615028692518242706797617821389701746342036335761417716775840026246279249302909557422728732505494852362310608846908830190858876751531067415596642356641136283996617228032238270506241347129834613704090361934413548523130403984292688785560483307283375924389726054291375012171080505543710783890020692110907780825226116371349298345407417815362752237338263952672263251141502054219592922517073539271696566389524930740130204321092485501097230003045485206154956166041993135094059994151502822109453255502364454744785970455599630190965121201382268477001818642940771146299370290663867799354606982201554667256909964898710097306415691080844241002649799372225998679401329900458356350929305543269435273161571302317914403778713095247072587375973029426625961250460770404850208284617323620530090619462247723469286479654216726035306417899731596509748440994019814705099841007677657599156120741322773954890372053516174557969252745176742427721497131560406005223558021773330424170187083725319005056763080248361639524319803431922937152638666128282746145851815991311708587446639059538085389764643256713722890564163030070467776442037752180447889702409509423161150502737250342062112057702702673255938634311096061447247011521783713478024404908128273785465123886550159665205696616129526856221936060181439462201161750898654411794423148171485510208912141346950024693456435345171907156820754206298780155460977461308597975618096485687484699996891168135736240379735565432569961801945860078931758684407374971226387352639481544763780994087299461167299835858277708635782234143267941572055460356905254049358490309575792632324645861082337881318666484696800758777574777995605362357101718369644289539338074182335941559449452583400392766968888691086837501776010169594900175703217771921113793172656020019559500733264160895750905691003143318015545330610883730795574154246638105263176480666477454860837436898254369427752792356934988524028425080290100168619979146907387232059118358522512399568475706869093526239541104098127400167053188286806214807016428090615622678146024558832855008875968846183816928863342038219119843493917134902076075091901310651809319060857342415642987897056746547778452139746538606847871128356359309656292798238496502287048804062739753092977065906901646199299879091209658525205827668367312335615799182959741235828805039520801382926311762808888535990903003258097047878785729288303191650400871416394843938424924192533067473049005518296560964549103561827732704227502374723717183455534369144398669690248043026421322299800571968943068604822711947013784524658385429009792262738639803153153695848149080987921905896017721407580455229498301527480990561829645948219528788768613354717302601769943081164061556980831965274214270577591258660782504958441452786613386592004050490807295554564569814921465258648725677294340854030916058359415832721107126675074846568329569361960636482171048600946471887728967578940965976740011720494424884191684569053884613954925390507605021063423356669313467638037418458706731189786336362744896049297957640030981368790155444769358999721519599224971517507917812292812526322956139501237270184874359985604907679283314626033842218806007570647064107252774045031151816912254904920490176334878501407202524166587947571552493990978378206288309968947903691429810901266622784944086450981394962320118861794108838727615681380284452334268065601918708610323775742488693897447288811760222487352251011358619256349230809740881773304389406422738221807830706933286074939876475807879032858967726290944891718931314701249435191962177894238407298071799358190282375230680456479033855259269863198468705375508076619585897356890941964762277221072023286392767581466290392020368802518847429387071876804862181041551080921219191517647381294539174952757162605665081422049921536359446622965062830180110365866479234138168651180097646319352215273517469812897702206465846360759382965631442418373189580685713409684844210448164047396474544999929365678310130631648261763639689472775478122898246581550499725741852914524450632606768402025905682774626704506994709377015584135352678113449860313396751459530672896850213033070615272834588068472019113829131308717988395797924920140393402765033819232447530092689856084460455202760057723704126041596407225333898289935256594018966107819375174689499711470042825741134287153628140341579359967555225824238648281047070820211563696927553503039430815529424264899039643100665683889914187139545839782524622530310770255041595860908116423846672906592267238079575146111118369753848288097355497508847064671020624076919417317830763627763338597904736371060322192866405945056785008688304587635784418776877284844590827305585350458583073437479709895885961505560982530374949622402780503246597910199134695843247640874491615596950642470025688531418785604890251831737615845354014666375219953027839318949488120305183425132601228975705903042481428136843727025833908261042131844616187102272608313575195967221038887269717391696381006290955672068963597796031592505419749471875818509185619704553015429198182082134522348204906453420711237826140285047546005449330055067160678967184118734245570106757804706396865249267393902741569621777093393840617335046004546550982488969886657616958049615422053645049106108802686337531497278413363377565845178270794620268211394251409340650086540202381796771625717646300759471762811649279870868566428596963428428785016562166581514292158219881560549766904756690164697991737268181292518482650243453155083556378101346410405077823267537974570240173779248394999495751633088827603707185878043310346348894131366029932026792898594511414848234962082026156400040606980729064488234573587353857669071856806591659038718473811801797180319650973547131264566957033535130272647609743271917614028598184233426028991908791846145534192709321008873614010446507146738785424150272675012544842670413699015716221287521743318929332427418856741537007020970156738918710849784039306170685567624672331145459784246282611269440700874589521000712125813108427259997047343421838312235149953329897175850994721510816658542988398826002674246430825308567478768208328600888868092662041653417392954762544380547165426072264446056802259604773804979097756703726822127143101963653952674427454334097245031734075345296467238758225581883008450146639020336788465019251822591437122468476471838298915868168377327137902182176158529039713412070163970678957126458999857106073058856926822376739390243265639104997845082665265875297584228313544410440080861763811870581515330173347129248618274342254391540126292350784937344301156161932257267327218690700524947967772765815731407595125651623559350452451269712258826207953242266198463798113154053131104966874020841378159947075973405712128957530262689360652289578300382163275095906890714325675609382260805746563287800088570605169581146179966818989774513102384323217168629946760055824398566899766813579825445842183757766444618580154074259208625851457419518552879075240235432471952616280467180636413939631018202165342808913090827303085428588903341025363746920245877335907615694394363463582628426800203749728701010652610004155851918063554187011392727455829922324547879716830013409148772751596708999534365581983367845252383486640673177785302256220851338100464635008455432090745693061474700600788986495967839287399485974264148730052865218038479506557808001764666321496289785573805635318581317881187965962591473281253988306172605339084584263416439463799234520929366098972009665374002254478088850652037526921427458212121381286558154637564164829688806430563575374876618340684881982873935971639309476003243914973197724241164082787549673759965009948076070475240160153617329400006798527798153770475100572388677534812789990577745228262016140934780440543280152708595015385996794065034144112078847153595003123619715166192966425499183846188175284867270287399079076695455287731042451753591681198172913046548978764689114138975617859858187603769222203425692521413256789881540472702430589236853099442150636365490771602041752917988950380284792465541532455687367292151273164362153959600172428146969681585332243774481872909167933938676443661516907636720371726449706268056385603524989420114591387150359929798914348361835548319624879778321802217939866865118341705568271639894534557579911674945357775526006903110015105008802753411828801164477251815583217108733323738258795976511513665498589236139826263990390711290182536778622542255374459922280503802334426610667152819369754275902749018396021829571203536157857354282189048572951066234612667504333518919595133381360246515110892340600555097556791412581552741750672299415552618891595296573688288882171063658480625559939943152163736365326952579833514294522665218686233043557677695827237111129650785318940584720375121709851073498228021938749531447757471611519230161730261923754781990550418372297713396346671749001920367088251111687772708139442888785130433999658008070399430012786907191440017835467751558525014994594076947281898514081878898007645943434033106347656108311377446944555524199872252648629539166892456916740288954500249220850643561387863740803744560393151234961755361997494810017079968667584250244797653981202966160170752762533283954638719339840005234957845685147191861448681705305028738419068704729772041175060537578716050916914715369897914565563873842916887774934538245203148504263054323755732589746212632676889176125241996199256778145392348635232810758575473538565039650013204717024461764357726083903990199330550423474051748135177205101494351779729898617278697831692542392979691731291654726343972778329740425011739753028887329680058900813145265312160413514356348628892122270533707112958099900941065631932321879627914759581535228154627551014232528972785573310664938381347008717077134572305504968337292097456044009031343729125092919218437150900272278058160477241732796864593024091197307265537469733808837665046885342979286399553883547486996811204219871405976530876665791359605706196385738420454983711920801265941391793379532669504767011381533432520533754322339942475272991287660664651001386191235599217024198496119378235855841205492591266911438236849850796500851160193555941584577745657668792225053898616903790268885152105353808980586954257571516662411756388710219019652642967739609116447592086796432730563459997113110765304753312317729025123616614663738296740967037396833515477981756846532494685969554669917071381005198055842661247217329311845494273177231266464687103031149082602977909918483658497719073652524117394783543570633282024190405092655197837595022442485205586634498455577642589684785054688907976817980308283743688855681836067003617478456979351880215700706455733996583953109096188516643674497790756416783406152539572717049377306851971326698678415943070934771093397112441462986473145123620768599892470299475287369969568678262847590467553755460475338944826157163698170891570134402400892923009690344208214019686224010631117344612288543253166652177520419132310958243605503084558224857147271097432016721159308395755295270162526198921387822251105908808366554310449749838095431503586196589963330330341339015429597224208620906509166703959822426522425296163230476747039519908902901530360299564017914227794373935521438124206801409492951098969517110167793198096064617379073407893981515352982181002532078734618900821686539515734972122781285670032196260258017331413623874516397402554960319603992312265479678335413365317739547799185019121784309558436163753270427200551450889147384174546691467513059016913692525341202188502010113305759546374960837380627571664933784109740406376928486732392963751745980817643626033689912359354549752472972978687829801834768753850776231674676321196720533470169825362284163565814140398432123516315468364301884703280542685040420519407963857703024632499621377125446271342327999813534352625502988537187388684805929118598058851377633925510675421657636161356638565748176678981348672179987517371045684863577854682746453181344573516298666985305964218130526509614729358658214858197080966985880552051400130853720481453122355912988783988533052868901989828315345565955877429731530715018153164272746045417157950160030850997977554191104696862850292727863582315216257344040578945341254628666840184905101941875673481541996499685013419723281119256347072186743528429784068556319998504120770731001258452928602843298447524630688125791415546109971886688077545373807908105234262496065263816635874639130778046114353598431573201792881920220262076840870478803567168392179699771790164299933216632688710577654611082787573047956282765306544008760948757393814095230829414223608300611671371531945632258450897544648040483718311670148480928874699184710734817403465948211403971837119381275232308104485534441126486832373280987799559606508357768721508413108863285437812198241407117194956491803415702016266959864538122399369474292079917583137377225597864182492759689441461321876685713586515872285845842321065990898626213456177041962950866101142704792743721521138746697947943148760263376392705487375756293136342230243965835261233228025355021028421606992265970312899695590848077506365401817170914490846835752088952134381094963206469967535349094878678518912371020593341242235870585573930031198202126897758527224658488660627301923054692208719402591945571769769488828080402585432068412723919224357250684999628300328207432792802978083095071670176452537853578831072609045595077692993306154343586616257845753797334929973399193861305047326818669671400627664715924324429970212163748558527590389798636610964709208316808412597977480025919055910325732920158859255855912839526289311343023914941742289379797071553944625635471234846010439647454933880235846315805113749151449572955117875077819214340701682977884356050280650881051886786035652831200520346828628850555994297312862128642357816992683167524295527708706555665161819594021281059078530251386296485992546698647192069867994959681886927060120551342164140004486972478180423948916192263987663276890158423562658339436497899288595371144239327523414298605570376851916964339118799783266756968548124690883074977454655966842558379944160085325326697139137751362058671224524489402514669513887323480754556747111567894487964646744730529541424589583201394753204645491441338600134275532415919751162525632960201181159515717162932366949592546166965682579450120516273927906504427886569924099447696893727392595072957123311623342871816934436618651839992233439974319561501492795351261523081812206399102738292841422282676775012211009694067965427082015729482159442685674720070138120746084591313385306248777452367825413519061473125919585416589031399069884208853427284773296897985671811369282745210303892285888314048398928064211518273854807194706428443080744441438738405851685540204638303261264101662730876763799325647858122013909234264750084218671995103291817901781229522960940990765050693388866473787125891791697339229942791793927785298107514889618540690788281459783830209262954219076704511606746760933046532635286835210175509210140156020485184159730666145205595147788612352459790737062285933684920636022126915100500703832134117036314446578120564524276279883635897739873194021824729317835813567434321953762926941204907036941241703324043752936469724138454656971470520657509569240827324413321104560222128667169286953478862004544752510712493307567106303922788736050419265266732871603945594508481897553621757276763210138130698517834631743020360342193281592685550313829083068609746706993280264983575730639344610059360569303837352699753434606505927995822621153708329803145283550969264796941125458490493219952986313377969818887751902583037581251315977687576839926865351999507270001398355604674204767504438215393121514915215863896594068123840760025458148093829449147257192235210699527674911340945219486352499367142575500643594305728242132552600056452102452066936716885089856485000339879583916326020145973481733033923844114568677292679039336302938988230406871460584430948996775851005657423777381965109931388451115968389644789607488609008872624037546678564882734645410355156723866320418229708153655837652486101435336669310812158474800171071366253682726668394668416884658909918604215894977668647134623274826277740233493580046018908688765462216314942837492394373901576590586311024708935134727725993781961005872527821449833584449230418166544512542710899423894683981621414588787478127839530389454289917197891310227641918022241298452419147118769837185495100995993447790169706478593905735257340593901768034873480008532713899139413429732749712240540654643231990228302917013646215439012127983662232306230677116040385192212782155251930159865863181974850247258798000487342690857610733474283113970714483268022796690752425670666364774994569709902427302452699881229388485365029065750514797708395682872195122695297314222338904119398141315290996777186585217834236105336723150909848581180210239233105435061484659379531757503216651286166105476127701637763309042057740695763379871326526921149191053830728629042865890365230235675970794234002421039391612818373211712047265371569966748286185249553416477773060266982113100466253776868412186412677552790657193740516278348456178211705682750692111608105640202834218148748969910886823274000143765648257113069529255975928100807260407658496679958740133405225146527652373310741212120909165904277157601809120630147132191918973110293752493135855593094495806335309757558258205917514796833167392891417123093046154289567785366467408140342235329379025785485733097658909451649204678953731470367776628582910484383944144657367680281489370469743902416131325574209915627811344688313000222793539033157530856839323639310503571048820915953925444639690487362752956105431369028011876634629418661638051151814617269083746875671984472177145001677336746334524401987977959598051467055220976170929190778923266368056006237383338267060889734188519277225737638213022721688443561202697905270600070724503817754564456067650876564880284405474356503725714500565994156703321507549667517241638567708560360444531082835769622213974056072061902143172657870383271941576530944354632776494176739639255088522819539283107263315871129187653066202752156541063304162750168036751494183334273537480444634626743694168403354994761999148271566587075584363207773750626561162542414180990734483359930926225451969136055487398734755378075153590458325040386445245555876379441785877400164844599053108417432571202813915910887787111614053604498788911827408734823598947121968817752684680688304661527374408910113093017052849737924923182318404698856406332670597379413129217837314951966407635288229503580933084439735136709986521725785876139583174384248622420717331696611685628071359954220432034260149521882379418163419194572672166862627787701956285811390282640794536336168711716930246714947845822791774828830900839530103772159720768865436549740637565363539588893476080033086130064234292101181815284009625797214491399186185325017878981131254852222092848653843233706900623660698923672778388218914539630945071024618567967411846717607260936874280790355279694426617096144579809718015199793321453693680579764950456762959733447470052440837323870982787278896186003852403973655562498093850861045940469270935192679485696346381561874317394593785366864462570529648798423268431414871127916057830715913486203467189586239418986026412823784622422168817376154603786823862528990022006469739142805502803622179706359088331938539096260530168424370223869448555130590196184004027949241121803859999688219834593011010436567682193384473633512609791511686404655333547335058878469772075676131279670165352512226243617477483811302634981994458784139772922265391253108986816677428087257052245149873325718154922590203401177181000252490611300749042420004274753130964100935818224371721282310612374440594132850041411637433366137645204833169105054354809079335065763112575045537972234720767076291629930500871595752018396848989188661281282916859549218692942835309015081845510113373200074618307088821881049937595970348661227939086541571409367928706971879754684968356593421743337293333793515182626095422463497076236645382114113708225991910624734576044149115276726916811137003823163550434774357347701790436926485963569748389540052417688318277259977455964178815116560308930684288478065356456255152165095961048591492107705365142245063637417538669066328422184123423328736780742113035291284725812104225334019719461324048197566073592962281920053188755480902070732345665316724103548220691282430291246764810735011977333160519533607176738724242143643516517681021437494700729109341114425072846920392932999348450778259784648822629851339441217605345402318080485170756640604220462124593816944094798329420554088753623782845658521347171272853805847269886752335716830470456354129633828896011966678031508673666863276224364583697960044548708693788220615105133860278100240120254547823754323779573698049194980904785783678563543539851941868201105137272387128009889893852558036045322473946791295262321767175815573712063621686042891007191955370076416844480802631855359221579766217470199806260150017400706728508393345692124604881267855541784776417955268936388463231842073922431433592676963241370294140968513630359371311126612326338399025118698175012682358098275357073130869467955618770416760970118798430415554066924067292177992579720337103097475479717260820630538615282947151869370183108890617533656168400178632401556204256875605195741404759676649439195632858536423795808419056323953764289555854663166941755587173908544968503433956006431464806905367107322182019864739210080914570213449515649798769799438474570152814796302853110784575642039347487028642733123435882530612319972947156691142124634187058990036026003706781184244573071497756666889318438648331686911344658586790050958077763183160674254849290658921569599491481206793658199650806262183569445379491599422757446385456867107566134599554231435213251009004608136525316429805285715696294072033496659039376038824058695151979155771691173911072915495572124202112431749024496699007941645182060399508936665146757785557598720563506028809704809133796250744786958683306880016574026424538783618941422492047107068395263300341852401131066396365789648884779753520347434459812760701192058861464241937248729957362334259555985247918245367532370653999850248451212831786675637771427275146033369807218970825623790638624460991244331872762451302200961277969666902276178764383927249012367003052814816916033697957901443970026505693238865835420679292105054996812967762992583347989744812947765648350594025875574811807689988190535437033189507755707784859360400369877043083834656948994732584723015575419036312379462368240079118348229515257301405394532091462442911699041610761197468170200766963095633780012624243023691796782194691192017614857024681824774925801230406333244815764903617057078584135603769937949253097529245885299802247702729794490548377144760427022051102857067363536698737755572710273207535454818568719590085756130523118821870197768567810213584653492956373607055907098443890510270041555927513213530921662134361757073137909615599442569847012746688282259856715343153126780952648151728010223861957915038655146364919126540788306166235849565207300393313101457119217107040854842977394974656955505798605457875027201948783764082054117602752834476688035726966791410354604714239229112636182638036850933355094711257708450648968974905431691032624472000376379911950645779541633208216233860505572479361466320397367687024296537699209261409986199393977520518843290917075414801653298243670928475036969148940521074408628335859795487278441649957210226078444270620753939260950660837599813635505576850338324820053351521895588257627608243219482124657562619107298014574001645963223004770174939117535245937949635472311987461495307479135638575653575351179679125910101034248137038394383416639673644892358366506794389649343285361290899519082020755334713446985979217002126890974074622600417837423848562527215590585853042527306212540970317828096153589057424864267483166416222396747549212316682149232527045436502015183662488328128217597581336340421764848229989154537243464067621435643241435714128888591809879122311471907746029092646805686692909409051978052493657918525103312917269124439891190141440124473706432565727160757022724408738110274364821847902541414708440506832513182977318212382076509611762705203800630492051868534342728017374551802134046047043706197476534975746013055410536222493460459823141603824808578771430427492617052868182725492969781603601797541962159207823454305389022280934130770653003936994469713469667393102026410887852001351299570715789565675195115789281419797886427612168106537653294339636919631901671602098635869200527711374772585192921887074136247165552864536236191335648504262046585441682738328065390991871973575672970923630376917726273652828827781986438836664057664621773306608141728463185127953728863256681527998203242436843641532359826603646129525436067936230123255942078429089683816158710495476139246107015468082124059436941641152914372664658970098157695443920728563531553425577801595559204591522585472654693459456931981801554454554591046608189574361564505845451277751054283720869903473779204004169790132821029405576260993374040134273784173807569928641146896652898775947451645647412366169300726778306276092380430489749483789821961392403440958134340069277671442040841191051940417009948466310157329182807216780159339320665741527642662589059950094706088594471163191468870955193953726060150858587133780942746189952972920104498771218428116260254197947580121369804574447589591412882893849470902352680319847903978358532357064478226361701929014641715554260014257682429951080689619214950774412808943108574119736411429713623209119242668135952140509814765490878363833297426128355697321503256871174250106086457469472931264647731525345527162264507557913853913447187551175846283402962542740936074437165826310712958859801347200876894216955228820472428781802257686006165031732916783228299256464509668389803329745152374045147108344064639278201465068159067083375147447329368944226707333216121461989141356951956268198752747449593373677331538268798456783845521885966388558121378477953667898887045071930583454678764962484634008723708660019845093140016229176892277044667358125843493373519186494872605156049390164881272128328252594558389957298089351932190145483696822931932720746667074537732973953980122509543434780012966667715652490179351848941103416498649925060463138643252716826749334009207360405993578595303813783149545380490713528923951270829086526819735428673298041417077974798085290792758498461164268745086546741650817632393596377581586944693971553123438630575287552699156133414989093717357364251257297136868573332600188308102807086447678035367506915479640141736518946745782211624106900603628546606880458239892635932318007654107014824801778503368340610944987032192668530264897778226485658512224047837601612653982025237962002268859601656434617329008159297779830508432631520523895969315848050736391499641237009919873471540777024197153730005606239751511170584890002738339093244478657798306973199733121642968318248943044524304732797096681371930840958803592977758658684052887737900744434973389363864478540448056092906387671715141564882793294501061840435588827516351706805097321793740611034004886284679710794450470810404915778868732393765584908335961026033466309324821780031862221571652142051881869275993384813941753335948447467244503026978886484887172140944992841988201405898494811033183684419200673987739949863700274784448959210099474305044696894385960574934266421802626742124700920884403776322848243073877486217912100785888663534489490011092966621185490864499440998939495818376756350457359972899912456445540639330818212485587847811553286925253995281801750285015709529064017106196464634134163161153027502921190802714785887864353178439169594800320720306775008816353623397621868903991405270562135422447369152453692640275135611494668465298642232226128993021300404177436434298332715673197868180444291494028425067889619069063748701910589648679930386847484730270139370642107258977017542735382892160442767520906735683462769885919641950189843013173908370808659490731724697480004078341637797827220790974456032468891806565451037482834156298243305165075392945739473088867295023589559274108211024488331684441473127253304454995820068354943050235840726462110732533170988181028043782761839050969214217788521383242308039581142634781446206504758041110681701654574249206444444410851505041769840829477408202460109078801888354190103783925846744135754814423490482045760047176038588793241302641773895971332772054213986967372487232451997529508974884310688424973599185452453831928235939578387218374166028745044672158306351032989984599107911068234864978508112909862954172556530845498341250833257065311559698724617467552288388349275954379968346154655039159947985363790625493651711430837467814073844453657831242757278229417723581864569024950549083075281390934170080561944265252755030081810196112242203299083468045300206169422684488457597742100352246903096116609628923908549501801202402664293335933000266476099173181109804157419869203281527387820433182286348853017595552554957378519258083493135338222279996587537944984293144515415546260743718524767040026188192937259226244355719051398870272964073161083890287070242211374873628212933972347798525438873068243263860482353830065605763788240175245941151832389757007601710476169829373129493071864233729941296832091684761485056446070388682298277152784128307596033376203042633605526329113424959227204399451579134343288462807161120030471856052914188368718873777339106011479801579982298176740779534376722033594446551891419830761701967511975185458999621938565676758284140856451752865018528594084133484408921753951680559441055173986252988350108382897550631698424942267104000083459107442661858260499212860952683675632659327804325600684192994553863345133822791462516037413668617052185716280062544699340204087220212105906372286631188251308586818808167143907087702025567606369202423334598162596645503197895182046131626604166674788581458200451655218326538022549706331571954291043318585548357535790085917295326317980922249484039939913415100428328284951098106121075882672038380724147127463242296533996656201856966832340101129539863355550161228988177663864305201331957068534968349181803029013946365462261625527882472410910630893656526065409580175123626727803484804549172017066143685332409472709555920256213615034849845798534812350142053996556069503118325749205402669651958068246289708543569818769276599922353902946972495120995599821446062346760813899167950155824488033162857768251497109576489534032998158863310651829060743772448712774450073571319861830791379994751123318008198243066420375879561815719174942553026722137915586491325784168937711691059702227743491428349269248438519562701230189586332127625621482936023061687833951066042566207823168512893185327956396329005234938941982939673322133297654882186040991645374642600790774035533801305965468782349242693142370305086698132173362586671525266426095126843732732104695438071018593593336932453680110987840011359144429845907982878319365367995688742994318959074786238945041542285962958479731213839771229317178517796753644876759428487144398892984967901446124431136181792974907188307609405622657122629342366158847727529941232120127883149642056113423937770958013316836910534954415004212884697743652106328484830455644533621830879968770760931621551293114212280799101338779918608724445122311663904042200870312199622406881672667311884630069788931193603837147673992849804527093910466811710947583952292836186425377207628543296624170185404710606473532615688905898556717310116537676380038368623755788353949905341974068004981494522128621478936318329427164116395507767888619181120026920029621079591192337811295446424984800616097276636718084964726798695868590007454431961570318475607201288896382863293735330242618387240830526717611403145524050781846412659703470304275186262833850514224058643660040654807483871506869022063156483209631259135725969784986145772304657811970664067077562709045488238292665856690411010670352002442752954056825166477906914975737763006767741444237039232796412641350925351963050505860695763230495276556327235355967635888183272610436337451095774268134207741954016834627770559147232192489208361784870249051573834963339294114506695764306830868018990690348683284978762017833605887682622642756195600160247563360440692120091169264847421919789219235507636292856537268925924315541963935733711495846349124108498778077420488264537460794134756608722519849783305891022602118414320707514845268291293857293611848469811085017275759442757899080645455978131040730633649713512140360115083729103858676763965343504663354029234405495340424662508301067696101574583321277914328434674497732609979078551823185954042949855150487400068953514877907796584606668738122516196003646135448958708164073835045463697936917675114247681758628275127769421233239998769263459888162059620670397516555505686649365041992952020011238995314932291898734447291162649372380932628069445126468437724611887704766235981308635327718318755751252356139846262584727832962414169181078764063229573925861210823275735483361598350622196499565612286249575024076542111022741325786254827512686943469561129434845929378033753116886409445820905556106715521324124190592210606813702844939497775096308855929091375385533696917547488255263142976685959889808129338649708197396335203577967585123447308437038335102158558340346654216581527232202270144037726297485288689106685604287114263514782532116731546020772841063801001315303238992224031182775947584891370851708822480951413069036635194837604329057191913917118634750310863745263282772377271690587934861228874606367674420960175635085320533611849484745008527278440457236776549512032020452824254497015132122452853801080402922231820157009562847776581602399264369510131691562648260640510935521004432569436665144390450514899388291497441536701193270094697105081217683577184167671490964152243995448806319074117218964653385216071717162160910982907087835259697579405027860850816024011786662996971116988936911678933070623176028591164336742427828869840949363654086223651825901090362930160453257846508467395146014793891342214801684286170852904793368163571132753137151921504996836772597080872431503914452053694100474973633657330820884246700252792076729066649357291467592586070720596293061915070176598730460160213670695767285472514914767971249117599497123793355214693023451000047219727973534603400275211031178238092347726874169560854421772360645239726242020650599361957010452587090725595736966050586380256712401883730168973557497991764842882030937686861829060625082329047661640444772719234061393157794497799042680984498903169035318266169135209796292356712869979582790553489330025662489906539534243807482945515913556097612252086687460622758510232664118480473288069576073573990742802573857301035636143165916636783975841170180415130706257730406339767816762416455315792577510910063250886351160404213851663926809254143988335911157152895679749998170097856237586307241512399446511126735886030493378396111397705637945289706432215766084491764715696385700344187092281173871722782150195921665012282915294774448097800888658830418699184339423594375475630946450897935183081109791509214702544272602333383306848188386184816328113079076688526121222686891675313481912250725011972205171946415942034223304194051216053000454183602136611570633390875026875869660469896768685166318536804919104404382361410541519367625829363097588638492915707794574206642573612479125909330768953888301036377982899702375302916672425773269690763733769556893511429663892648179378634534153798327525429986817344423725166096531065945345455811991004674122297837246966085264604998651922552799821079650581632741558041384171794396459417572819902023740374419747681265891816999321421141909682130599726558908418994227676956199401161285558445500746436308389616656046092714689000712649506552726953445345506824339408905684071563442264920908088133786283002478330605663316814985622622883498406492403707607415744627168645843746225413213498084583090640451686791555782440555803786821892048807909828476579811897718101560605704013854977419309054454609264064609276600805942208333820479084544795285576627942430735499891351321955819739595012349894069587818830707136629777116139574112384104855789439831164259530354251265218976271772630998450981556931524900892568046704622522207599840616285888142640699193680048025729748570900909625740772754675077539331128680218899233525432030646430220455743946571366374388664316959177692805719128719294045571221223258481959003896020081634211133613215165515858114729736988109475583197684249319848021454175738491242144987603291176718094822258854683680016075649508178516330560393884494433859659772058062586624602688745260439902641667612572871628440831826796435111820905046514847848367182989806476902872704236768574761532787673265902646690802151405159606215417072430881186801170722788593254732098132825733787353611619998553683103781902155290361362106150425181109364229812405828591075082757915963277950680671852855132208052941770158446904324513706888084470083401167231235032564075524252345586852718328251385543775653898123228744196770716364735102816853376272224306700692663250193785503825243387559571312889441281914292285292883571226071188616617603095443296764985329879866115998693870700522711278182719970263498467052636996273622717100861634695824752632864595579071186097394466370283662676504714888105710957933719456055228083723215472780217649855207070680085180176260328330313752503402572523642736512832089087720867866195560655837190067381745971076201738769290432706949031283809693362097041100642245183564388754353916825796473204155897804437819721356695219839557476348916913200461823738222541059653155737047377790776143948393643181948617597994878016616376323710860276233629071879027717546651575634402675903275521483544281973292866168938410226069155694670792164016665902285579100084986622719849621295279434169082853500886989862913199385025758468350609881374503358353140608019854816179078048203729851659499851789205637167474814951114644697337884846849976760816843878687465897066023257984829947971855208314286478373367532706807461173878738061468250519149289424419959511197394184859445967264855442231774245586496502825272271039917096230504117753960799640235002655553252124369970742042518637968036547995459681456044826286174099459975481258015065124480371357796242837175816642780016406923229846567588985324520299289913044223521789980224067379148848592348533104596277731223817469208022339458858511313476276669980696309954600282327688697211365339965101069094111457280240086221384867739688839032943364420148919237430112312880383559861605853290027632124229797310020258905579120599113885609874836807487771841672987703950860449674685062145323900957716199430258232609428859191600068535253205820689230220093936341695154274149789706269940101217149458864162137513170100834092303182652119525722606132331186418413880709407495899812618588417380434998756300813774094355161741016217002227567802825697688557133826290341795239066812916478457840604240401889095045019702486802688417237260305505223341004911237857861978019860911528324725608884820255330362973466479487721656684688356652679683647125054080831378185427664458790777831216885759126990158242545379708305161300294619351571964874131317091784411689777770436539830981044473689615365658637037711042009913638351079307652845198815102713903352921196391880939512115162193511619771819674711089628799397157971877608667039841412904211755640190060229695126252424246865133865032869329942212748423435622011921722666835685428908256580392588213799969205754569885034052983366933465634865832990458678566736481389575925435539794696381918774798092953745378196889980268235348448349418365944094235141075697350681231848464832703308073158769010274584338093802145198191127522603495274618321144717728900355074022030777147096955733923299817242504447921690471151181718971362863625791636974583843102533554060137537515271243651576556932115710122261275510237056720086080982479811288573288821021677571812130637197144340351570482324848158438481871111597885232279373691896351469313554616050363739109369669966198441275646940242250408927696871953999506976099999588124663849302224774275759117104162914392770085632547858712028813415208063419654148839994519601710404002058448177418341327538382378007481999987459215005459039106833936465019804188367299547704876802784804407575059635693615789145145397164387135002571031165650917101723157843656860273582030450322651445795349375661668707862655862371462375931484509767020767509881837952566933469015222501058700423132288291366730618782566747279142500118581899469152811167532910377258790862779755317507881096744954562737906983122253120837901002644620444944669690865119528478021066175483230590396601269270045448225578822612398663506233374556516406621008985958798530613678738036915655131886977837306010542518987914119795329081092452600788902325973004213390341795431255047453835431132266246376969912806039097005710118495841113129974050809034335576736833463781894745236533107969075354910075486380226594508852079417464404243617741423618833131315452639166900183372119664531553856124554741460495245593479657262001480664175478243289672355710194807709991082952326383392708173167852400353307182136843184912242408838717615361530692438014700714127001514205761401784098359543894251731103662150411950022684562018532738880856763466840760106883890244496668732002151314933319478787463415811602255498355526825674505514919078823765123436278846987388997706483898421511492446209182935226323258494584790790078987908653473587040864667105687768425009468647591708542227077119436198975224207530969153193030773415889860339837194501181236040960799195079561945965312268891563128193723813442168417795843777089708460005126514774305977474806246031029509960125431448219726112591279136700364923105078585346188661274934525620422638442547330573020968883259458090513482911291030680429667679240246957985019614954528889679100062836558772894569144667510832603208258029795691033173361179658351990533324073249911699518959445637466748587049610702240285129039715308851036173590607949822246559484722500596777100699245858239546205106420048610163436153515715919157380908464757535880140401352909082761584663795612303368574133687917412244552062315869891510736740129873290622469590656746445576423925715693350636267162077890368878789729196126195027331372365463095025759978424661971403383019784792036963037491651233965751804614081681906969779774795315499611640465029614073136474379637173708870386670123631702142964951889728268820921944554624139676227464904970614676619873554016191979199387578186303175420642257869965910993163476348517326511863158553197571356579253436767918342074885965559574487629348056104944740462221676904456136734623531283785054043879877225092373896488768194165524599386851953861586392921149557919539414044316477298053812643230787510237961069274250092747519668127437183316282202422002400877617422977758061483040654502543851727283934627123456235840016132568795500340004953633602027839765907092346701146338692098519502516557846210959561739533679972236577276800651375676910890329197693925176093410498233286932795070831994612936964856370641834299320723923520643005830906763624060026590737695569079866850889258163114403407225456057244301902037958527226856469968962042684580632850033430560384075266995308342149944333951921606133009818406778471431862850548787654169981538575497040501787484902925704303897201055218463063677569061485495769698235482570638306638646769138069562202174866200388169524882044637905321262798990929142288513808247526280520144786633012832764374168708139434247396334419652858743420307405548959661016882993184262060979269913555898758308283847818626168735457330428961520845945497120811551699805576035376244277349209489266517091337541270190914305950243221887642971775620344412648856412616183196378304628250991606465144049159870561942984106557903895627164347614157014743069676799628238326501321637280398894487079569508613962830179193628691077783518313875601415473493755564881374583457970116347473684781542785993270192118228702581407702984216795550352446259311378147726301667578019579998994992386373311227382255621206206269803730324988438510802544209609008556243283331866205208409373766908366960618501130536717867112423142995116912189019300208414881916148670746234984838970791433287521458856773148752608674433932053177408081226021189251158310411434291828985162340583440145195609978100187595792659300691605359272048821332730028403960257329958939917172594975817059324748742739618175773888277685953976113513874906182132057926446881619155354764817989125440757719963585471750942001454285432216823817698765461387258643969708965244063948557665659963819169114078262689061736353261350254705857643378180066938012047791954621967764036690815166700923791298851315397069648865960353974195179346839192888425865780643217589510115360192219860304412714867205436961922511041294521631988791748279218510364839678650918344598216719240322587794127387806037665596894406793326999622705430525581458073285286526295816407097460463268154662205915194868576305412070167668242044719895437114881317433679880805772992191578871447871477437396566499176237001760255646939007461052433156194555870896633055797099393262685075091078285798384287383424681517783351133427986711274060020438196760837975346277892272916127061540525139364339730012876045103847400685749787370733386517827598179876598739487463293790066584566777678275161390577835205021549229258461108494603428072191948957886030008561451161553785032361871676198172879734678997184755472916070407083273804367154524172536571079042845414197676434614234913225817750862142209786803292183939121133109956793191174601258168743670703434992345739542110902976866279679267268436696991686821511674822392175548130895278597440133385443032046759587993881577271856160835866359381244401951243397279634261931601859256326460018064820783521630432799303937959240833175915663786432643107244627346297176028868143240895519770969625468628558840059148265773884959622752829107359666548113484344543424467224507224069521017026915791212046654824607755121870858643394663456422781477032431499554223700175768843175402849361253045004659375510661511880064012494034450346671751618676096645749323512664465429636830545597967477390689026186947424189151630718380607630181225638805193706431001246179433218936363300746746764485417272394159014346506011824816010874258138198445005223738395046805340652800906021182899110380102046253678509205316710236499051599593215751252831706269970769558137230089993709174532404595328352077044422121460637716681841493628233962237132109682340691025210185636612829042487034186301005480567872626848497149785489346694757081435271028678744512469640479937160438248238385338541235035504837563706558045669373131707807126097908084666673677754890277187753910755187646514971860032941082838449630471327921186581963566533121321915341047791775774842514058456246739040727622617691337252143857161177994536217912938344131256634294377891756633648033378592894295068185450741787552569139636051440617532064492781066177391737505697313642041734547875660701892394638550879744502458553173343144589275794787427294859222201299616312972872931354889243976268992849447806321466793366644585787924631273429917758750627525981995144696531566118335783536898821779171270064646156850219627197398901861263578495656785399903426390521841612658643257795414547798741023186497812803754444124767445759006951845444603038397989192736564795017763133307418384687905734205475112129936212358878966078268291634524813476303078758469933745962609125785610520891648706838520835721930996138934679228713286615143201521601660986224711950006104164687066213252869533976521585928282167616587973379537231681089545155698387153930676871674678357620126757164414822681315447085877410400525230559315944180016244984756134660742151827093782190990016132212402774613986468812684342101783373605500243459386897070038059641616524469048345683485305680407868682169584385651978300233076175103734428906334290761028890849284092307719890194952119651765369394093925703456046788614330489480947247544193519119827926737674772398991999369800193805011682764134528251088003554821244222143516238894335245132634207223626681218536392943573872109574356665086647461142449218324936748273910540288995394649184463688739935082781983132842221742950955556709549578791672558036774001884763427355669830179191784710058754524076004826420026103037029025575912099745814452280855682512609727972459322014883619239669756985726652613947918761138869460570492566798765300368049133247166026216649854442735043149257516103655287864642214200085306707285041051860190591742770185162147570879091200772193610259224917067369117576193540529463154641206726512079668954523042260304867749630589952531582799829897389826210691262025424785582913584175426274875787452432785470067617603989134864512875745931205866720259572143871825408595131223890705532787121485184559858199578504391328129736664479451559337052874833077768629374560128879661644615688961041818142363527145492379367374817895655036520815721127958230894818365321236906548128876585942047262100334235763582822030450841486056007286903842267635343401525072825219798936718470168956252681120069910199774115542871510227302826330318988758369076406165066311656455912983139371973004002046109086740446292140347578695418418097067019259727464212358502892109662773932546115215435108464567078276267826730698911790723839738816876167636361608600995782899503537141774907262920705711549225252190740227335047988318710563988012229440294340145854707295409354185126376228626077014217266754740012662080146458919118819111194660250214226110153788138182124852007632531008742314576283888987331035735780567025440833120520473059405641869104226815598679726566314354790379274771268306499191043711326659324947980218250385038897658789005099467402606523307128851427022236278608835087560036872947677191569842654034308619169671258338554111315184945624879710490103228620930540165970972426586134276011105933446183392116715010931534572697199155613154783253913671452044688033985830225145744142309337294609589860117968996669443106499731863286526081648856967091833547176360472853477124878581161820693030497933640640001443877539241421172914700435122400849441591164214087131148727563079496300061648335714282779380498445688963817084408911102314060560023912721674807842968116528713686196173332948978582293698043775286582906517682985134638546782314674978882913305440385847761595804597684326978026858731489173498684673073132936141679853920737059855694520264879376597877553380725950468614080465855315730694624779057328899311994186649975670373592509794957518917542896793760464991765720827001996218674011920432772583042255399001823909806372939793886920557392786212856092773797571467677686935582871079466188731756235384992854310326885513241805224124841401309925009746972366067921921624754991769933673863191946353312733881636191053812796135779909000380037565274360666694483642233715494721060114848777601509143928038579686535654075274263571616847282002579307031661663371780849990317701968790387914267837309593211955712118047590754262432813382083397639062089551418485181603822707954722749670004932929963432504056297131630369961356314521559862912313870111426497415891570399891861427963480817799029499757011077153271092197916665592199495197663337062161406039825673706362264192384182862825442269652774297594787279677547918664927964359226972765025078924598151125346198348077235474836128221104419778913320536460457249437681021278610717937752761540970129792570150846422514299234365425597678935111336348915889606060086402287894134730807082635991766207676446791138643478686650663797667525865070781635094555063435793915369678644713649648618329198819127754089514201056128740057510228468385879061991288435295715916845579077101822593662785215892150354218434793435904425499677005369094793318550988821793483659187881923895159943616134979287827596059609389724543251266216358105910358443775773950034283498981864589665773912862741321647455883181840700511916742384676337204311346034692993903933503730328155631715098228374081624112334962668346898005058425403072112990339503498639845978920782272138078535227759625135883990083008409727821095655397108136691167979270704916341652542685861757690750623739021042103252612483822233721891591166928530857715051127617153201758258840376185165524324608925633044308642099389341756650362882062777249878796822143232719245277966932662595098626748565448056813552399874412596111255127548733793113335590199220845384651475043924936041339426986807898495241024719209315853963859063870679539248371617009031115813952711432618704029294429521620303296310212725685401659715144598425531083090139031982022385356259442117447948928048090820653561101394750859103000059867940278434241414523798663638091923023497859008616006226424279687626105339120400280480924406363296270423230098086239877018943306998233017743552514789352225333904558829119789919370200093847097659570056052171818987721847990820533654900453559056782753455177475269172283864566082697965845352091274857050429325188485816264463903128736771993173631158254778650338683884714279520301850019013608619786312577996930924115085459220609433815731416933255836354209558336037693412229524622954606720316423074729110242746383842504776793018614868683273835932246679269969671572396592372505934451423624134903207153199016779706240663527253594411045120297722907230822733140261135620747849689782498680555273521291260116919057936334969525042811194593841405399172860651353221704504712985779360286805087419670630648397742809335346162445625368429787199137311606529202285819544715019870809812322318182463532530850271178529484897748457493075828123320420158678391073863645705709395180332523892763608685302025275126101219427736444675846385762458157879868166273876121977864545673528403192554809129849106707910466829591951497085629241493206475766093270654420643329192127673200809586204644529250309881706134366324104591304867437246345345812021013714979276411796297922356471869154461698638753271990444439715063616543026770176868351892800415691850482609109797379809510697596112371362124233219608215717773815632249960936994560132847074641899255845043483968370681787109379419252961425700930025218653072745650924623242154132664590888070263334741506954565907968945230764901145361466001149925113150706215438492098186118355925126429600444780912798365646617283970161093142647742676449514162729721569991512468501291917619862261446767471607319611115901331973416525672558800928235917666358264603283901921098216181513004331231738448343152697396080436792721276983723006869416228154878035608009708306965580385298735126711586089218549593725520010888529108845487341919969936277276605555729234001747849386193672194204935569636207628949885436008644572832807672494508715166058617788877728035255023273730994828033166596408327094906397400723582171218183502009850824783052658779182090058408776143763798987374240450370851253829735546150620548774345932991205056400666628515938881675117826135432169419921890335532693322367203126323173100961862797962658692528510042012634853532901888306596293928858787223210506362716955203227341175628086068101794116952142499910328137593994376358736315084373564385642447936638680253069937996298975071133574781380624114850632150485409554541763349710663970257710401727391860332237374400373916150659734051721907412854897175286331031015402273454535321621316779232750769218746106307634688215709637976949503015914405160980403319237627211807718837056407889593311474750724883943418089220494917198388638512441881326949419738159500611269480211827553822440459243641049939994783834311609078921989395034195349010469163792918157416159487744978955194535116207091355766190291362353195832600617701886586983611337050816282120554821460597388567482609503428416823816974301080263515771883269921827699523106273289422772013126762351184081227190260727999995007853699359168372665872706793950949353472550606750499502441861028680558692457117264810517111982261886702502157824463921085906003375733762112962094177908160542959787886006849189898264410400971226052286852352770048953042618043987188499575440457488219361068785443552563848884198366447536400068549102650038264131334192015574502158412508824995246985006037740603547211811283298094916706771578026331835305618751840634400950162571732824310689422009262286530176562135850439860423503926072148471977301191485115530980252147855399804775521750239635002316970846707400379924814727882792610360735266868376591779509250769965935816783397215480981083953658424110332549213145563650512527257049148397703354919815308646378272995385444416695366494742905926381545039177232948925826290518026245366908778006862678361270908291414635645490778745175278014605347919958110510370559290370442003701185470188735373875746583605349490248295777152653155052849668762162500698822246475474121038095483084437724409032276800636497297138899791753155796559819245974126376643892662869420523650432212752754409838609291008211610896151670375372507074948906750404639182371256476097032959788625179812305144080870471964345667863469832078414612304415704671347594393615370939118606053493123674869200832574914755847410570333944033177846959753129078307326736131645154845848998080885790952272032628708221294929861660323595105136302061899018207580205113387618849374387970743238221902992554528904828457696528800849719205658389949190869285058007000932458586725386184562586157227483163352236020457069577598269212331189283524650904447772257525242439087366929566761995016569751443746015702421123704946175957848647659398847770297356735021791382460631867026127215062254006077939096553646661476916614602528210421576427796971703215939072137574910211823627881080035100768647908022160252147302078814827326466051357802456985857256396042106805193582505379905149977319992742257370410034061671270576326030739128104798898983404367726191691388984994184725155824683914944918426870860561027861679542630910430468400644724936716820349792929947330282457190000145506818253005963121356711220167279706969736115872569865954120388676343107629079687961316939021644270690531837982654508383146425115666937737276578149110003685704020126204581542138455145734402454805265436169975282966378969424109331425016465707236919683279323976171722541621667160622156552750163256663775817870964742307059084011706471350094838229867430606709579794460579751877767305153292103121045077616818803170422774736697007923587106889774810857822526312577830448876833473431069259379096243960379771638048501822772060047134431225918665081065719857404829730491110723176210804981377386413727108683045762186110327867492978924137768571431358297898652091514999544516858252786184072760107887312176743068049086635854686490942026750389188526278951287185453743663364738743765472534741352217339469181040927783396718245901276725527482088092086062427527642448920138710968123288324620713540926711570788745910406342874633070342779842660314826056689506665314597856995574331487989442618044849316845922334288741419542112163520007196416727244306381861622644188685644429454511011072215152220625222495709388066042020773098112297301146984341945205360435304400252894373618338508495752472264769677638174047298609196154243402689971939357215444476864797699411419483334581081580116808812456598562625682884110856074140942652592282259415470499474094940112702690314993388734533606929252409742413430212677693504891072829010134753975693442855437263095925685900195317215437463663611202262960890991678729140236214702312018219295513689470092079405097956681478589797679068778300748672737773447372477919490329242104883676831708835053060328168374801118151593278665318818225860797433259744632920618781420880101585413037221901165780095831316478823425816653992167686383752167851499315246203854961528324640430529294330465785877692832859834457359780516722469682223694729890984267265548308748030010908178400471741406780565299930216411325909369000233095143461074438793866097791913506829574965542091454464453288558313433348938289242396663881905209525227392419037634897152193852092701358886047342556994715544379622420956670451892891028133392037736299604183109681681128411701002492665563957407941096688303344815853503321878107297189819106264918901938010310314229149880375190765944885021893507646294742496349233670170028480216071688461203640909140062967913207144420580635274281300300538359314493153388877166162507439984058156219648113392438082316925248805531398649391184388876891085679039061245708775496155869155780522141103933963385997714477652424357182884196683715103657330063187077175701741674518874322096945579077812848828743308607224893043497737181653882531618866122835238814684009747910504121920736965594215815118213479165971722227593623843739074029847749257959093071588012613467930783031966388958926341425730350969083065517681292327909561523950209321718253868841613042971599095473990032786869962219012836967749137889433465857043605155922260646494735615021180645300839864077007221349670238073948898662413982797598974997635899753792656459505513417064660759699811890383124151248616679028040806511382175868346705919248298450453511281776168807834867794327650994722057712418533486683695029107095986054361705438147641004202006210109973045087458776944020997820657981901048155244126750579612121607020168857641672789517286028357549862771834264825522009883708838877210055169168956010144309679255253784698490784159427809098044128733465870835647249999305186195313962083567830223738218844910054298606004517824521971693733555933698679921288713314851631599869833782106720926466469145464471070798721960186992977292277766742050804849765007907659748276685587380357394530565257439956278167002873420525218073306916853820927917712538129832752219410438516525103135722411997769522861899360428878562489898185717183254721349116238493689739389907887799683947640614575186521797560864542960540307665567902023374789319843154914332784101740074774290523817731717530081889253285808110962906217892693121141806503590829056614246554290995307478658583716351147894687142686325260762071497764437756989906345638441681985918677209405054213162838966900661869638679098059807143280531289986074532031151879756085292894430820748552482241936509541339541922973151718754041467376851778788471717633172668073684623816264396225800362786244869779620687561660076805740260386189036111878854165766022247567513129213149108676200842884840004887635072556402702910492553501456786944970238762884074882417947346645085291359540082205254736893636750640173064988791525203693086200418415490909647442496764346737254350713244388746930911274908025662177549401531663278889498502676643893941260325475257283553605084791030804055375917487866505975609190056315478210332300109749716682506541175522649004949668310250243097471227491771936532521237803027419981065369661227277023543747529980546006945302999426696996566052743998917890262930591567408060262415303332558417594341265234368490499457090051037899018088145525466799900486314371576439142527159390959107412681930612852496204996673312745349910412905406239853608280290597198773748735425327566204412898277556668270573361598104212150450793065660792729931945060948686937380095720602871934712433624494138731855290895601432065242662010022544749514456513123273236137665949660578626775168448959737066491730244939279855691305979793040982408751768050103069316974331417905014923120119791578707790286740921929289020316135561770461621487419339202584731204765207533504495937213356221010797432031204083706054646059653616935004080795343297396518682658234026091588596302726790119393674680314889166972186055992221626856399109416614122196961076453399266782349520223615726530186540744121670266768080050708350067068600312947309550635618343936715076075308222077931273169081799885182221324471790927861259257767732625160990767965959041412755172831972438665733504772188153484963572654991779461689164345118325932127240748573925822438729478301059218969476239563651020359903925804351580217030628863364723606200823952547970582001027027887012984057790729119058722294761181686697677653273874822166358206185697975143383266661024443545732059373943099588742555960115707349181165899645346183900858283302469285264204805106642474974566708141105696753513662805240120538009448106921663589461521846847332528643260218497736094872877272249237955186152888088498344184344384108280284333531508667602915603399342169053026784265274140537857331030096333408184398898299843146341050742033254329246823680950359908432523889715317496198432013736846408329349812441354290237842907581502892837911435043124580546460083455974562002067411627687246980683570830454458273139401888357563556416428718927064990023920009911730444933657068593596204028057438098789011109113369490787757972680771936654482979940979870802928583015666551780623842902583850795886740219068721494899118927717743115557124302625208848291146299209366827162009462037375284877471043976378794847804739313205549510533446056088440479644090787347665169429868125556836225726517903971567692807137001230347252152875753641248217032590990670377895706134377323819218465767038314735523543246299530618227780610073033951827518107699930544663447684241115751822519521029862668392577233794724221647554783656679709275544369880299085738110514357263537468021270963581785831719454616449394802852359166193181034125613840072861541488650804578086646105770713065120589780559721436542183434244486516229426353766212337836530481357126838477802687256014978959649617099599516556801976825648918487467852092224759590297432509142944084775163370983523809543243512782580408817386933456993080613476835237271178273973680981177940683435483475446288050660936309689186328063486678125781511016005914134570888429681502327112921406869262632657840260349262115594815758909388784813247417057369772162303761738319283463138169675841579593851808373105438315372591807481836906651827616352315218633608518158895060509834660664361998064236113809888905007937082261828665013754610517019957125889000718484089761787918864222519867803201434093911173292778893729852692438950974504797729532325103753735046099441823899224472081008357085041051208923793447912074943214216624481526040432104537805696978268360966787230820386696329061350315652047272209298164140116350916527133487769841318739932585385135077227209491891442316501039821975362273881970029698444209442094235146673529079705396041726159466507910272964709608859461226527188947825367875747773287332125663281979421253360911088602358144811479895350484913892964212493899184135292045078860167638834413425263902179028065419305485668878641198962319137500880605030194537405191907611248104548058100399782134551127566618172912460638980400887078406914104753064680423365953855095084678199411799131892679757132475077516615239360528467053095646651509173124273654099221714839118538524875079535770013943852283885644352202863362941149006892404054682810249771758908351723601594465383853007103263767815507810327566986441593027189279085839259149102951988877741002795492983558984781920580109135785636439217554669902773976062689793554124452478625884662681387539595080459052389486220813462359658262001790366765862179863830802697047184226969072426070078471823012027428133306550675677035551795548534220047579811221897414084807841778791973194342172884081177517613668127295733487799423056077165761019244845963908426710592633813004259732762460503487243891030448669943529147466760887658605245030303189133896030038395492463539341654731146961153392066354942627594546711848680881585256074616642848247858731365741689993870557552897627902007372915612367661273169207446241340973724222777516110340943718880804832378628165714666964577406978942638065478977247872442205905868458441637588857108450971775258407331437436160917326008089802489711718535675068143391800193436878591332066218029930926096958008916256996994266872833682726062018615744132347539611855838958789803562270902120456752656699020144310519526093907803947370712742168435736072714608228974357588194424006389433669981183054747049884184090415263478888724276040030579786942491489196368466537693706522403175350857765381659134069405311690468512602731998086927601351584018635529816180306644855820485283999621442499130235855062139680053627133030318846908373670510852982635110399640507015468809003365185947728885689103637507666843396584820345579722871155215758861471118787248403921592866351428122039687167224318638216578034774545718910658971622020875560844763758260283818937925864850384116941799468538323697071304262471950914244918156464141240707671066687893343989570953609665476827893437145967204835765546446537146943688701196358961007954447172539322429782238395331311835091834747109351541846721639121774875632243167943886613189956753627249509852347025273723819646631141308521341849444956035675658372064453205788572756053760777599587835166668443195068203680238290950525547086679047863465277611353294455279452528526359784831181228993667455501659810694946644619668964701238154443715472576875734468643235730772483888408904428392601262037879432639567806376947501761798161514017548301031184920139899444392815938933324535430528484434810434264754454460115299552826531811766106828155460868630014256017914140463586784698740181933839679225123645343586157830620389751333300357158000114491293177925047214867964185946116937781049227749350282424695687497899484266795136577310468263869138646894082166371476420650254648730086254853125103768057991917541889564460761718913452528509802160720001170032710737002445196289536660905571142750876920385842954994949277759371908635473974665088920270271962580447779046896873445634324212580384976982427066867281093392002864401883855374026024756741745725436402962010194467910191867008770871769571434924147241642302459127321283742556171580714674916943881415083339850066072683114815689026273691611240652618719722176483186689570170390285148250297531120820165788562741482293978621969161959249851951153792893703804344020972424647749665658376598869438950304946979066683460358223650558811596197162255291207554307247038948221357700411720427015648211294308011347014753424634835306036603596384504170403876085012390195456275585201168606777002423123235466585290428466559531315916785000227856860353975584780231954748912870984598815074450026465451168649032850906327252029170967476873544885061464336233065066301242305444713709043066780317272494456631377544698568072789558097396108123265854786236962496808311734153223818439671672337247525430873833494736848258238695077922207011820752119086792379388899050339253223189546389652995331232129507638457040349007628384212772505690837941818694829237380959037396373913610593485132485493818817106641695854986224183980983540806171524372166498569183406230829542387688490749506794090402321387055159535951347657409849280131644867296756782860827284163560438708561495933071478432312706452875182174323953146270515071872108248494614767371368601784878125680319163463295435992829000842330010306047549451260967593940123334440823988188506994887955594083325390173078749674745381851250303609804993218656097337812195154699833904076279605047991501190241851154312032470293749074915771525849366891705595400577762623078595295269969121062350303780029601762868492331181695736274244080375172274458280341580293940879460860913658114775204880181093237568072490820242440057829309826054304313548025504138290326125867033474980176867694060779138963591855456514339932837808568291991466971532168847328095215702913510860725616397482363310315626247545931037461570237151771164948797994209878093246971461586129391132259399552936752790367372906014483417202824407619074331729686466245534353987939504411982047035989786198763449634866451980736516872840297073547189411289736171479770971371343998659999226957803659694474034927630504518349535415131226792800563514162939285281539616930533728937630531037572217125280470122327712702376271164618889312067488055338978255664668937124793649273044059169984069189183286677598351632809068967690091846659359347146480271933038144343870690467901238780753707886504818288146399491856838787099577799693182314813892739935050711064957396579125515828397869104711782157787896766520047121710841091428914616861108057117679559050436660529912831329698316616161602363712748389600673118380307361066778883879515636588463136223405177344958660174113019805797354230291095842406357998634482287155005254610049709343514262307755257375889213641743430944398582411217725828795332616157492739955963566411401258924182555234154934307237639420169329804462915648779358328650794115531312401533159413367508013138925468478577284012313619027255575377070955470067032685174894595792369513716535085119148812754381009365325951217732537362297398241876825244571775418469619352961749858368801047043528437960410232037262262940948026172215616793402942451730642978672921522172394769734466580565338140082288320530198828911437756908346791806474800256113908913127643351098839982277638363980566961457753488002401136525655395515383760399533046408035873794568284008509975836820619822978222225879796962831327525848167112121308017931739248098343437619157188898092501923667227376960397154418200436225534674501536668158898109760811553328494320443161438178627493586526635032900999571053172305564441476633251954993990750776138596278892622258609331934453812262963177750850788030063882750811034106343168370290608471788426671746079222658474731546900197901217065927859652403089668949470887022873503252879237733793375765781040174256657097644016020655800692696634214947797016064359083944587800771653412794884889089387063450175979978495499520934860547898140599036801952754372977148421781595654936325033803625367427608209651506521119721726454040296772101214538886219073084402808174021426481405815646477814695671689243439153899941718076708311584891409259641501401312377968560435351417139094694534551866106359208442317712212554768829645569329721845980026173052492817236564863007637088058181729779750345818105501201261509129175139853943482746807601084083107067162734615565974437805704725745148036485053034617310495150923243167583548390485548038017578394160478762351448363371296211449743621847039786102932813484676568496014664125774246987576498034938337438338537327385647397566167130435434114810007950901478621684730203997754131115516547661164002968816109191588930188719057562538505202475630725116197312101428349481358153820500691241616986545193994987300719070768251039873054767983986930905227855584548236297333089295223783268245051040463750496416860918376121585552656871419486771249327722644589171831302786440874017730374206923017673110623598819078776629360800673153380547951526892671707457361666681636470731098852827852042512412690899062570075230920278909994755726224777788401247924086735494323174895031208610824629901614271681809494890955123286243516277623525478787669295800218649727077202213830548165345649736711384846504342486833973020642900639261106262990187452531402008606832622685278648165402952287519273936762733323918876845901921632062207945668410479673428248913781061935345257188368111662441639534366368586161977057605862666967915598205717080163949889760602552584270395474093048214152867711317773082002323788522531949643800703315382950757127921168200280904247887360619573469944599044545789275222494908469174822242525727010663005381684298977471272791119689516106503010173619061466585853450050000179999753991953138826090767559163968104464571584507695555054439481145537371651386847627927527434883850437938190094728396885659461656044464916888343286701957262320488974346366942279709464943015074452691216965999815706992950749958264413344301810231806735253128972678877125234561909741657593420453455428300498903415580996108554202506687145653901310984784612660190970929787268196769548379940096616712753348646470917628614589067477880384338969569089205030184651224998304285759218949924055178713996362554752838628214023275957852002543517137737060158456137983378967958804905899372427204829144223595367544819338656202875121211087920552679224577314157404990029452015122885022750054200668025993333629371780212558000030872586040546189034809101211004880754651633442024103672518686713161585985634759975058667456927015119337408255561174122812047624201775149713460319562212792435027544393038833024708528291038764530495317574852934796779098200890852825109788293880794552779637382892807699842463770807611478237145165468836561795723707480311135988147317166457610825974149245806931559456605713444452975971984331301027194966329794422256907661990614218378679691326495521754654139713294385302551981880959465676011162617515921549660020549405956368803315937697066047298074584478758686476725234384854880188197211721261540390624584282609746990260284942267519515558707482560563179026313199187429561170701585279497268970097281227985853131942005406774915732179123866534591041241362690280018257042396596524720599919912072611289375424694482584010847679900803232844133574723677999226970563586174527621687346623702078159496874120551060540347649283527581410264011324912865633228585150622626137931795925753942356764033731521362004658437128303407243835547610403470414947026538054225194135911302943602717390745424892359387914448437124852035289228245164797951853020481918309747058169302104969958270056194158843574864015155906190194801035093777312954373292273348675612574407950475176047089052835090452794280347896429836861078220995416768924459923164351158019657309754390165972003773008152011528525476792338854328095115303904235229070655057994722859292922775335433407594389399494232803259222108440680552276544710313554437153885025739378065671730868446756521857202297959492162574224739802087723542519133669603674369502751234117955026958883033577357609185187799223200710558321359244403737355522694744514105774497108319891271039013195278306043009741979428819491590812391550496648737955847746551253386599356911130713458797514205192753110616565151052956089006520898538563702493307214423293766329445011906795791274328437084277267959798544138849200531250927479952121116617074823374528068636835216792392285950544175281636845176800124676027979414144431748954642333290884841549367215384658535295905934987621199947996544424292860394035496872306935544111987378755262789092897407592827445297737193619412500234705828441456484087401626185317083834681514092858193191648372291142634298803933710972906729488462017516186196536920609732025551282035733315607345340947433764315570557541909247844223367887547597169202647793478455898919443635767546199479010014504241891730513278145889162035003052638357777321576830137940814918028837445847370682686558855401132744194803086822267623111671577208020090194003571349889098283921775506448100987067437050182979829061406946528587976764960296637785124201765430531838845937235147403292709902059070064459187529200406095374988818213160929641828125204760639633348591129993233601958370140566983781819083236473806772381258512964111449820165107111046533378699337570311417771057348936584157794629184294922325580647288284435308915489172315442054442769546946626836581864935569426755326222440143531748849050816832400176138049502809913229773894587990335205394642099751183419849044979466583890165147639840668688145820081960785525181016390543999055072562455673503232143037701253572286007176976705034459194832577931676600486159331594835140341596066923165612423158427007208132419461668584631894845188165708805401389682152380668906925035450196419219901095799238338299810115361506415062425623930339934428696461541574969931519901618305611463487216721414861382618343721553952164567333176878705832631945341428458294089883639165966017221118929800744392077141619333160557613283714443506574588244510947255739463251152146371451809270457825554112853345341948170992639256627911408136427149838745779150549090741176572514323369694229724444328197099344744001538135941359848003400440752362254116082686549348248504693852600580390602637276824012992328815165020033281814590485493185241007991891248257661363468926907299254098395968467270056294945195302595377347181701018640078485248567897043894551301859611238698206696097863836272872319241519945104239141693947718940687279603492273450988625129339347001234582985907314238883137581229507794459773241882536099998854113266254793055399835790363375887137575180358692159766387797321124544147354854125955289110463810121643283089564550508152356327195143873325106107236816252745837848317452253462947680116710915653544286739104133504124628707339936836206412253228438143859348374129392813506516232272262247809470882548370696912997819861758735285276409200705296460201019400798577942637333724475972903987464048960725585402514507229700843876746259204032514230580172185635491218819589809056970817425448350987601251839061090797649193217693027095977000921028979795516391483011748400141214126033050958783674754397439903640759858314867657464658900264180087041278404597827510472820019741349264628777893580887394389036903079225246691069994921614407900603812392792359850368262001043928511107952857523144510297139452902830618195028461161440791193507622759328603044723961042603930810723102323110537425764124014170811143014505937459649543439267870143968695128082015694350262546917541046627772360679847063901489057206873233512639585357504096859270249868049150189643402093696750608709060965329956437595023656285847837346957829370039004826484197513455374518172575952186366020936807828343814405132997703162623858746823897536307339378422832950941701841226474664913788945383873428019963520446147471730771575647719959861360254621111519414372048915498613564990923436234988862912223698177341809287384783487614168151131575537342769350580047688527576681145874755603524601330622645512408920098393541848268770722321580069924770689284130766290113326176171994637072409747375481137705848348693689640742117433311285510485080640922030933919640716259886898594562944867528683205023967643304362135055098225241387076601729880633139402544058893526430369429606829914151971336490873370400831753813760733163615010667859825212043183558612303655597100757385072108122834393061246580304417494501504048140618258299800978690759223202629877995152391296348193992137576283795728784281601088603747885550309212311992172579449315263403223892777818363685073299111117905770339654451483144918602626557899526453848902459835647772154677988271351089840158702798427487106556811316103289239915411817797090188935858923950081111857327036620499954067307339193009598125963191852894303950318072537635367544998634066249179138944855205228651962384926702642809809145191179017275607582143964526596177642315143156775557286267603270336032693680613634717403431394253539493275843724832569002757822595577684196044161965025296431432775245034112010434727622871314736282512582622757602555341558175592604881257491882519423534682509999583821089644352992562262030934597730593541526407061995909647427968858602297624595830203674160523094356089962197607132012919627609899675136340069502659286246886992932241610465480386900034446860045001315532419744997319748644728980638286772992624659997128588458150941304971931960714404461446817366528666397463976143501172447846428177716597501054992324070013408328515712912247197230919794458229023307955793462560780670241158500760203837986757460169517892850151610166295501626587582490110707887750392272201260684016510991272917431785081041725180042534778276970749318798696910181247362903734020315306160675416318768739684931782221045939854309420703893539793982333728294626521464330872018261605136673900451583696353729329331001064845549266439054312072803768397248784212201516021867179815858630600507933139529223298228255233147603289148946016173962851668277781661909434330682205111645931721361581982216552182996219727790712832575507836341114181816467047475173722022815374642789311807844529651339279779842346328488704136317887700138110773759344206490629715278700071301120313190309762428680169628509846805283906797686652880338866712774902376700228706014502798889104602624799001168749093893751439793643120186741446178430111474289299095524845969068445962884326625638911611133882414907243269656258213130655616680081197906716490481982146336126765106885877812030384778432987599310302306807381047237483658679687616060779510365534595727981173405474309178719172099145237844078824859640895680453814578292405320201900000021727791411980944106543946871114047924220961118736747280456311265279230293121868548088222735799628619919433912522908984408408412078612630844372423082821217599100166188122116203011456170741551901217444182125297581927634708990544936494864054659150163113038217301802689289894710880435870574838479158904135621353160490761255078487963140204152361452272024854334466739385110822600733023264862106799683821611964293227131605237382616220613616511418834494532013607885787372149081032765525679374160506549160738019306554333321169713428464140803356222079970308012006241429259787825497508260891405549610296272718035112169461453602720673091647216243248868515243315645254514561054975191830348664513924687627211462457676347369173489786519306954314541533127525133413911429327895016060455281891468482224505955137272488016301790786713787420784793549841836223751638620722315111390082259273774381383894713980303370573581568168761221127218767037897351301304047506855259304196326768864503241371276757187040450592492615797725603091503212566674925356071657846679332703304964930502262326030305026588970582861550986140219596229035181079479128296693841123577091743941003188090778000722991794616517985661124824040823204279840257100837458409808472995309091565422934171847421294562878293485519235250865530811465602638662727254991098068076769310644433297627709117319886166501048913255834725558670267935114040033978638848206975893107866620067346718187871486201610108541922224260028997454670337082986778578509167025602328375420800184634661650875881032163623109079785534691358272448956415936419718626613958182478328051641859476063956116374835020254597640491875623700442513977871302725714792045922469914039199719952484639734262703688404395971239193999433730819669480037993411102184860006016154732389000081118201160278715962159211909131882556250796286945410802765410442108000981749522479036726556706391962913243731654423491878066770667904530310147504811809099933283498533387975328318785916070171023529673506657196451097148268474962085753001773289497558844842669746255158039909096830738536255014690262320922617563577509135544566543598467546109739647679855373388279757286704708060075328840516868031699878272595253449351254825888460412672478853695792467889452679203145100539921039749592566219101516867511415834428794394242130678585277996969131116644140509595211342670278179344557400585335229112159377122080973929702469913682945821889428321190517618500012697158916729606785830880404106973560977222424495533957427107888553703661600113934179441391790792307679273712322775411264850452518441449995052131562860840113301285882706590094637431393939228461567054524995746971239583260873045470631318175784408034950162069586220667453883210432645039085043372258878135188685882206522840350378944172129891978712742431028052210538685218001866847731507531513235552309986396413416337949834979836978219208726890642283841896806675130528597723943680915732481581193038557248576668170364064352385719177988919770510437929638624378655959605179615287130313014478011048125122353336796996620283889998290488007199947591749839626864251716361611716903205308690089694178790364124433012741399873034590905525992243469263866354781745230379486585306320420570339931632242811360116323362187607539591732081762825826620094923353596594075746609346602319511544105654914391455615070254370283491763529302584420714734099618971137665615542520744123677540481770467203302150526674278008233233822817982640204289155863457021766473456554019169721285006030117383286475199825322157968757276424060053361221396516625558661382973116123319485153850883991846203795197529216242707606409521255003954358278619883529529962398944747593487124049491578241541638043575230704155402027989405761280995745397005708019095002970530593070193024341710717224943553274607512437910326282583087914863175851824602758886871287118568290111936789021829421487419789231744155672942283353004659546419314988642272580529418710407688573777296634388539646087946235196684862866552662198504400753884924917022220765738460859691709632730072102945709400749749347554100446067911774086246998810115282540464454995224642182977181982700720755569403397894518676381562017086898006519135816368760339124652746056652026172677475606226128914323342467155652075199005839378751940005593787934444543424488532522679907941708700609402630967885166967367549918963125502878850032447777251302347617194250322942234098824833291767543665231437101535606520763635733623392991187495085235379657843614622130073994475330255114159755171995269306716404700989978291359645413720341280041199808849713745438867771899055993566888415503412782435136138677562114328953707049614397865283173759418994417056263495657999173056698487257021892333285750674127010072453043261460125113907807664691273488770436063798445662607606919471873764829428855504911238405856914114939399466070399054769951425590060050051203553197257853377955382217088969486980421281515347497262278300576581586215175306832450167750456848805695409307427801766972922295075480914100735933719444069444304280965861952504935816723173806970941274832012404286715331327003694570647127767321729213611093552613967373689238275532552554521936552720138515226051692303013753749518299219761142716544669091833122463860854557956845136798922674939469197842829310501874794776550645475202798382602931859359244062562429860316654318837924098280334935932814240720334455533364504634505526375351498593253172123050091300418100094178168321946934088787195827407634704297106800546393309647407654025706950043682241518706772479384328387851399102505529461279139706214189412367275146925060054975807482587905264531542168521067639616224453855752275495574823041856157831228239025213423203144386834997156548269976780662179795544380960253144793179796570973924624762876939673486794100887000056836789843258611512687076371023088220410350739156119606305288268671494195861212688615822379108869655300548805097691959697035538375399786970935515877421996671770389681999838798393807702112314201776113794119947340399860111485545456210824679874026625402714715269561166672932866685281713034013174766894410785284072544024585067205868095802221722712105432371733287636350615595589181266003175042758813513197705170529775731626029948311406719717899881932730781482163096884297840623468046914427775637540643042130231128570386576905476187400192154586108198674704292239928364056130686960648143603623421531407146178659420139282695685592096610320389650273154246593969041079287528583349152712885251323695256994282316057133038777123422499291008212625511321067836361184999678401495291829340900062182333125757380625918657346083366864825652881460513178778349328664183461914792909638474401783115031014982404247391559765859968941379242293000726740829451701846088056878718696004157777120746474429365463856209289757166395449932292978078323476137981989100210046999639096553866296996407595423658015135433493209094326008975186474203453911192755070211161490988723815613309215640278378626571601329472753401944783825084638735671119578627679646775983063836316606568307258143325164156108690998803938474739276215126775341334969502554865630959436058743771685297439314213361159249563269207971296398408107248221527017867583091055288095716199572077418363493688383965978976845444534589736382954538936956481634084895084491376568594386266546086519873805724185753300287475361784458736476820699719659341678449721392805108739284985488187074142879264740075231460460264965615440138470053915667981425277063790297052195432715841353510742661388564788799044391588766411163848200599800917218102915351975330332040586992971672022353149087811603177303838885526915491626524969662241310776832796712360552295195951809752901865113112065344880900286616730472091508413249443827211280850301858678166803171487487746855174504848858078236126582290487535210661499329984159617656793343237924684233210028921087429916538182550975563505154339040528340104155271972390658389930852608988121203863580443773490569164964828733639786908030565635239580469642599890760442758271660379361878751964320304839658680315859605432838112887798458993171266854363978238348002353191269531800620362285621849817086776872327782061352641790855802394132590064033524434401261841946497653008255066060709473632225442391444098641601893941918294808479472000623758768783854731024555725138887919824738293932632115401383972901078461536975656142805858157618045387190598324585449657378175180434321001839338811150961081662087490641905695171784563515685184684626650098825209235661540299395068143811336246389236018355584439847927075495921826107712520195785220500888464393592723658689891283231970034509512418923036773358217912910498356667548729023854448304979913968966185177112850631832086640284406343716577128891595224461465318901968483935340721297142423916664530984609012809701053816646104466559188840889646211901499390991495441485955916243750005813573042619251625078297723762994505813964080690279129504780585321651339195945839251845746212767402290763843472644832801520473775205753617513230748096893907179352305968280370058781026525467866811989335408197645903584836659532842420350438451502463106095958215131157165734647439276352134301891678268573427171496071065240728657604859696571807371333299457569993979935411229989892107614032653150972955371678194301203891180266907567742441571868275832686527048015980987269351797748965396929934414463874487295468937367249730175272452642888013980228923220582366374355144457208608517471630515475911978747612628342738763946076896550614762704997389823094783387676475656846343905891953123465037753605055348710537172759887270969246426209865707807455107705085538230676017130834942575314089671851462364953806376033074985735068546382021088463116180725290834719866457331497758239177305135317615024865574192058034840845811086713196608329917202581708496739422870942955430447053380578569749997686395114080002157466148642774031016221566670677564582421792102302414655055158896734256643634422268300365977693354270399597339423549601002027198077303617481834226570043836014953238697947680269429631404750160464142247842188932260940185719749459942372197137281277890312206891099802318492564615761465560193687670443857757647013941686757069156492755403527838259850256405290143879501982580108231421178249137775276768618378984245073846026843653424317919903203752676162451977864239993498340842622264716162910599439646509890784954530398723645715475518901611069697286711288775689151939341064873409704133726837597463573167075719598158131133065311186562225636122056636681773842341579568678955812402719031737238941169651583230914998741551643565993320196800087193761222407754947074314244163191211265778076027979129456228134680803665452542925882294900777142590108690504857409810016256646889111889746497424438785394974728875900195156971849722632534819588636044134138234974818196796684263558577243158909401820867215819908212971613738605621412931983888762399424226459695359072188585729318629524918424900753282114396335681479088911775561770531711388117140171510448145366929508382335467355432662331996449513307730849342120305143795982027928486450990574257014804187923523186221031327869316300215174605002195982737004746474234175017803880181292797910038797471569429257586613041903880639812058259698159392425819766714065677225605496977826672694006748783603348704431478559046345089049461675973880160750336634851385603720203223976566802971436676258738404192139000201584164971685449117409918915529961186239839788258492002281103896457933603420238316140434991923456261638389576575589182275635555766795983923830824736916728452954897319815225851087839418548775292882612798426862352517544405093583675810227501729083442236206270306582052226707149555051195604422403121495989798402626912399747899399463356501290133296275007509205611059919378405634547896835672755341699759313885755936386968942659754917771182491590686311922611456061173791631938243088163995228323430852953095472117297847443351775429775876990515673610041259379801284531365734717788043580569952762289140894492247723891480458885005108248410329249321568515410815872190584463797639176674193900164499303267895070130778945387487999804421027633417726660152272457357531597418044492189988180545516565862084321298333787125349400519515077574203963829383381872970409493740915133058301559621354694610067307650222937506246700655926172176733558609574492241366947096636300374288635135972683435424414233770658764783864614199528990294204824296379370090380017380392905224234102605971690320893143906449145012582791943119051834035125819828515883383371901491862617057758506684143415682263360098469974333464600684197055572400993996526214034892637653834447799533229555258864212921840849625824733058760432376333064073619187726867512310194955710185473538159346508477838203940045897134121516645428718085055006484065174416135712093425282091054176969448025835565091405098520424320251005275323732959418781320722269490771075466161566041260190986047969986951562644490961522594407144155303890342280260993408832689567207818368022498263813007468578771485719489420965095818461289166273434993226389647999897652182978390001617862880523199344870352262278250781834265087225002981805577781389624347029971476112258818214406789529937190337132771042768618625897567065362212455302564640039712568957982403774433315120232989353866272921776028303106006108705786303470220583457894603372633499938097905865277983456393754451361064028626810331460454464229769774370722261079037708918498460542885433523840798905716035482680793682767162379606096619301578690719656198327280121400093737162037768664131595674623325681779326429188448853606631282275955594280577660324782911939425363872424883924337081400142409540894885240075709618137618620999089364020546487056731626050581361684001375347794985710555912085271509095665250038042207455780243913228916334325141967952067022777170487546583374889317080189078660229511171350989996244201732548703236936803091563076477803425768497755539150729080275936501372792661806496806723919291565466782528262518622795091856090608513284651869701966015270373752848037643098977749752009314659299749384271847919760985533892328482781458990055589113159892174431040712407172225486183503714685541384728749551550097008700792390060196270861779578040939596259575398008199376506388829686870162386019741457585283347413342513395925206439492058354592676353493322479479818886232387460552988899521055268846865517952396094663945265186359070208848466439430723529901860745774756269651770430423111176260722673596519781208059074274609180958362929213082360247343430299536385750942200548912094668499794296660008042826931441554986928667035736522979153672168194733671145808808398641121648851477576639933534342387895585401763476317979591760677310765292263862119294443907019935434320850891550089944098891486968765549143307287423041003953580299222080611200676142060163917698474404936854173072849182539422688836119391682793948125053338590176706365674217584454787754169781505460231017514992509773488614779588622869921364356005827220948025722846421097815407793793932293977773730008305719076223292220048358045531154027033184311683671641224821044948013245551830399721156447511444907011213254808099154796924664115694855260482904181174585879512303152327431243881127936818829660896881490681164073098892431134405269111321131418755885917081692654573282816228164299673101695055746007817321306020195368515629803950016248018561436123357977909128439324062729877601606409957388508189991376659438161917909566949542566035098171570860443502638974222655155537123051999909741905756200436908326777340376270116132413866708190045502694433651306548467648746549916250405692248499697702081514450684874471649907411769129797358828315036955817347175879390746874068743295379687494821926841466296744423413565286806326595772223721680351808706159990738203759913244193694764910760941863008357721276854811014763074002509756421525702016623954967600591855333714983075632543667379799046015671726408892996361904184544682147167719269015335288518271509233094499005133335248374544145741127590886415611102941274082742662313215206955074267581786314077684113347195001961615858679691127325461708217618594464686789669296455386109114858499193751489389086686065677489735247181958256090593778665765129472538869439333854430300026095705784877303466476153612709798774116688333172729506905776260597477140380872309325677396164668746338480547962249558252229086863289950548798988011744410845784334971424699045236131081422862361221995795205730765717478289437226581007140117104253725435395093439614349458649384716455527338625889537652890812548478138423422447003870406174779132162320664628507282758044818330462773715788155871618537764391312195434163482530438466480192630656018192707482783679122345747611093471560268598546005521343171761830750852569593581002464164798854045109873197010106255893782353488541354179961621359245686163162812189357929667732266235685265541821146252682634188395929873211424053590285798907428405250596206326220108242820560681631254090207275020354874125534724914343861325393165105288229022155491800615103446304859509606018422967225412669135784006745088493489293632085100145988871342814576933040586191148616251317079136786659099924356971726439383649028552000689392359049926972545762530847875149891482416696203751786641318957427636829738011284242372273435943737233998030219019154686897852074604919103572840854135470568538994286418080922509049337776902768661545754940630944186760116128911018849857210819773024435591793307207048872759782125462719805342097312077356196088614044192173882291284948832021959199964467385395336397635499995102515182994218762557301626844805386631124801736836906212903194143859811279423627058783555402153600655389891355035181518924394752259700346231593384701033126037442549309397994009611565301286588087734842172555076541442107914603045384084383899622564706745919541415451048392042171077844627190353083033091795993180697647202821327607497734355142078130772858443840452525060433200499074073377381155642308231556305857803920098484859196330255399964997688197407171406929772276837780989573623657088127716767325059768797705060923650902211481872492542536344258872672080601791451743688463329032494040868853589624754584967633172412686551443829305398856152187868962261107946732513747923795375127684256765042094421446658544667469085072116426293251382433906942337804214623657666170859125622727189889808262546035914531875139748162998628987342388374335350643150738031149849220040855263674204552417320794327428056345799759452786057938550162328470268283261116535316357587756104100212754359762392706313671025870190043227486875164233203254308399067935602230816830101396538653674769454348466338090115703721236625392962078388806708203228298494291917697074812036031762993107904182471736006672824726302367063051781667793081658023894944745032860178494231341518010517893407858240923824848979483963114065981729402197703456576363841573962145417193331048890362891147009594760238409116598763073048324874486955628445236137914770470511212585729985059051919897614554986087711021076244501787138759914680419283299909743289722382790379474803227792997448720891332799923620587722545202683487391330399634412705118345095289897976364720656566650276038456167217527510873717851160475313050388062673466645708947664832885164798868381775096962954689063198903392593933271471073227654818914361667255045438904021878495466934735970918598096596350640849403869208786946001592315021252376327904531243411258780629744072987784608030809996217442303158971572159576321041428389424292964361306035626149267845850814373859730558110035632532133152347907850270625467798052421142048119733736286191838559201444397225703011524752776265686728734779157812645902796180891751526423728415334955117413276682606693311603768882067028363153725214733770687582462838473105075070221281585385099852246394930222302177621383276434176521727428074749630774278478101992384379585289811681404623866868773416908969335023538580016437399271439619250334535596092026088653668226867240319939998671608854168870369305545548644726911079818037590848346624147007336889225614142942086838467756644150091229700286782614687857469457915558126485181559506910145522268043956482619789560146415470804235599445607152098702899791608589527828122688412022582594223238011388048798964342107963550881815007856767653559637394112409521213021357522337446742834452271384352729243742621312793140533883403026773666918447886815455891319737459967280403440177754710360259165106076982645573895309270770489031984113957260513770735218391579177146218572981267131255229250341005603488056023954852522891884604616021108582223753717953196710106930122862795317637708143696762114431295666143766518025589508676953321142130658211460685508104906098042134160051246908268624807885206955219952033285068492666678774112199678312512021802950973364217638165088196002011052361785903236194477519597467866494141056592347224227712092567170454304619724661377900826342123443598474064842217960476260881599025990634565695875919609664631654279265130785201008104079549577620445537133708993779012563489508028022311815446955305610735383331586014504753099153438620422343351645049792100737170556138545411279224426748058846333487202059325446151616038111081402385163704919299160719641224487055092608202003211415749210911081417398250697299782697683185680514480037545101552168598438726937540333372763368565831312153114222820773771176649289466403104832786920585981254916857083818569774800951487282624277049847430056908439165909603404142120260621946689676437150710694010466337630941490588550572835391250917892818257531596062975146401645949281907552175694080005135833397652632186740152086194301860319056931323988079888354920194037323511300773743663579348624167092638375734634185708700960735606550049096058890422013305014814031650896727599565456530188528120667235319790824012661477183814440096949521789575248233039020192993702400020895629702491692344773535164420202906145418326187796266969265023183201884351680697360476488159363072960963862399906707309026508760514276003270694127024595423631457093665756600725024737519286932046663213510225909938700518730210814159058880973472766483950395817099088625267393088647334306744324929362832464655017993577180124362437226290065614323668667223116496872925666802526567857847868862581490539985155435595927414062583250589313782200426714233725548613241721572322278835805317211323924826911347507569320480227357806453000448204189468132384401384531222270871598029895557928854053104522219052731463858266129633297710041396528816684573751091224431504747741927298932181551128219879560866428597394641246075095841513707098129589354683215799364779109605748301032999532057370416023280686907059257421993346764970180717595048697411827809797382120405528077719660377552359936621019487277498255062284850609084023538068036689636543758735522009300955948770842565574076435642056664686331959865887196696297668522997955749302669999076425733154636596369273204260953676483535124358495274862387919154443635685776983548559724871020119753002082366640097724806546244528415900487546768217195299923591137118084215771794792768502955948155893213479726961548348825851762286328510950695536396905102416340265674453561215120617052666233808969896307909304589295166533256396979520291926857389201163023499527011028721096892384426320114483776320412181847622887057824148554722697953489222204133809413527941971662591777135777746816834740513429330468605838286989925039466597571318641009006606324261717118451846535341558740316114392391941936376359434408481613416237754365723711483451095123846755811564364395782839554865274823604288367145954835824773670077598977869225404987384049123710664818190179510690908478219646697107853461146355154795902579709280826643722335558396082714006632308639276055443822607339359753311881169194994295202489994641490661360376258035578977285708349352201966353910064625973640616006766442295614916606196228962041774146798867065246628999461880180116215200124635822273535154796818243862520600593849986508438265989710588921499662760399281286042870392659092652945089414444600720091153234232297778538079908093632192428802097780174298632734943505503385843033638630823105454471520038048419884510493580999278971242482334485459050230839414321694467591792486136815556334719947521163404560684906261686933070842660875290205684796122605420489521572756744937610173041029486522318561933799011007074928473078982744694971015527013486586426413506008380017801841450908743828957869074805352812852234862241566301890017270524287965665901326524263711437213883197771457006389600490822514879000445647814203130449927533359358117170775802206667628619532131018277300780766219072359162659929533986218482853850165793018267365865518944790275900907363004723923619628629227048693986063944455256216518976546555972628116955116412308557299566704355632118624576417547740097936745541867604307017250717037926082812775069539673034164964167968137716134109198619293414452905213166273643745329456536431529607891212979326396822867786014015475306113248084542261192090892603264898974123514370993345667284280878236690241539310093344119065761013769950396187872514596518371652868117581158295142265650543216649583636385997223399972508272770882466575468605905467175551061102200093977397084983727649734441013856055818351188812972976289564541157024274840635407065539081158005835785756845274172614427235074262638161979246387971509133836548673320726495968248954266784068614370164314926696164223579919904798324716900539786530361183401484487561993839042221419669492446487144547146963582731647551270955455951511718915778338429016243352084706524257538596429119081148284874023857348323967582044668650125661847233254110176385844352357977745078930514135120097623262548071076287326437418000505736694796770710591311715111704954554863866638181934228195298928278760430046881177475782549974094724466405284181505720717881705866111110782957121186499584518062836179820511988725032621572244221794066231761130732947381327167528463394692735560765422776986169113061022245347396758003366170872485994998999138895915506899876598850372837162355262476584290193144247395709754536388761160381085070795194804444019894758462420504237041150669883294880874730291772543810285253034406486322163818535585106351344095917338799968242335050941254627022710057618147944577599279704257139965679157984243759800722818962354706494761661477489691773275964180070013286668336086133201621865776899439683504234473160150820962242878081377922400105157148698340554705491922471914078087482061819562157925772577930248808553247505937154603001503479942710243874621461012557053561076985268734416990896914350058380132673823782249632518229179087239512739303909965282590885649875880867650507159446689488175445478842292623305312574933788449383449047511870764040774639187189572137334861441215839965378499434603570408229181794976915660885898476737878397542914257178101920546565070965479867569434327523536273464111645119153027296370995956473433885544521508201491118682923752460857983762952031272743816983264732645202664080147769682058432424946459081515232846243778649806421971277745106894293485587079713919127830902342160540176071586389828759642212859015338298437193188090194619959415809871557018486976676655430654507317054572801356129955379204909027751542406256060669255737137373373499927113918867309219905601414674689728162454345678948543654309500079989417339849856125184357692509967657383321396987536009494298656581620346740847574560008421950828091481638931971097852852754261656563365070158471135145031798158295453225818861885879817300311133816574782110768708275808668288857543900030531239444444496415206801067312525246421993548945318803972796716265407441933596526589709058278745657802101922411949047806482069928548808331289472637290550066585391499662998619356321328112099984984907947594188949423518085440864945999700795893012963072171203200940084842625088537564733988272244608749537734571349304774045504367934258737064176746126561994232408810523114268510619439556176596351639925980972319282353950451340075031958765063494324173239869832868168731157003801953267039458603324481585607657352766634138887862278919662235177384670565140597131283049242469966439664892605262532135353240077497316217587986487544403780359489778013750311845097747250243622880569765095729285280326036851101512822899610249401116114744063087593802123372987236859066376702783728122941143637031749705941258988653262434703785173556364366662961260002217469832609741473084215646610187310347256634341449363236110054179583609108161294441492237101798911778729838319313241991211659036033427362252233511556335201686236851965940038265910871567123385124897726621762279447990215810599941932068424254613819620656313911056568254602471246690199504901483577981935794023266223490832049337117063606414389985496280616278667958180518408800103123304725987167920838508027375009029008639269174289572478160578864287128232672917452267789442034103233986343516283779028624467786833150881387855121443946126015262503227917064792457354732172660545284661308395503498981440672619946709283220219025605001101166563087003286100819235366945959829142627841835019518622926445605915687756637344015269832271423367556150257000604215559738430600924333301676957849657512027560344273969244194442598202567886002230842139726431627068847695656695095305040166258279827734744938291036819562979519088094424690654307841282620937774525993766854388129962700693835418277162207831196480219292336906040927165794428193196094190923759632580832954023864638052068448970952413313888740525910335984566374650888431395351617065887662093890764292637061915589146703188171107523594278565577936764871550834749467439666450332013199492185981643808232446643140329081666494764237414647476958356645534267886657073174451302231131582510796203834409941532114751713613409136961772143917374828578596998940417356350542255442532901461687059344092413170344572053957256378182644566128914228085324639404414412940958236909202197788919101199699646605346876464805644072876799292946895605552093749399158078522420952077199406216342563133233735845004789456196165386351333672002002046773707749777245957906676559350853651604493274695009773587871247532794154968824271601113082521551089989852436084689858394922444875617337302501165760491050169388723237080238526713088355419818310902399006588922829282363991796622342521550028797233549753274485906369115085395924052569923310292060383959769526833745237367721373259592389089559249501458255784430050651559447910238967967942664765632657020495473803941543238248988677505347746909927070588401952054485650084785583419127377471420396744788752124030768585089121956602603776284812651788859412922236969123134065840597754025719970821343006728731883968939658535837404239183734532915428520544971881424347805005973513036981434568890323953398927037625376993408818175765468955353754789778868390410901561624506203139322995876170171277915316079444694099977488035424583642113947782025938018681710746214323820562496742700987061759892266114767192378806334928011205551957875321725110255566098098949397287093000244083029001596023797218198685974251582460664146647935895926838497056272617084327935277167330753785643247978167116937159805836299436786634654955502299913991457583198828994790017193752357080763170587081773341871197056172712594338871517629017918911953472813415922322028961697784383186638193413594776575370800927628246309338524996791792243603075674017250626226653153257935422555492900714284253740778395566266525288419810300367130076689786608571815769219537856491855844349032327400116124147323145188857372459956253342104632110051212355164511525921507698865168183447552267197649663206244731050816036372252768614343930092658744271631693618344573774905711931367576168354767502186575177448555910323570438910210581599178750290313996188448855892210083100125276359957401549496825534503428539890832642751679229533505949801161092108784853346347127781367363878255034555187598046523648150736185574478775203742633735208051146855635435862267266656627045117668789768712153142704715629832875073155370669636638199454222743034962788715903508600166499647495828420716593308696877644021508332518004898275273486508459412123327520714309434026229546687275162140196216148617109907279333826106895904127398224023986184312859869225961501319382383709227946300909442271586133746425559283201179702261458040960925067261803888655082895841681899836191961199416773430927447408949176171337141410764061628005836375538163752040336688014346877031074013157705917730074394525092772412708847502330124986383524204753061827582570813329541615252218324214972279994560236569817449360158597499203403068009168707332320419528475793706186655011763260961363555709320198864307550502077767648668628621016242751029898902290834824358403865436886332438210830612551831718430107681110058358058937702532066918813756229524174027736660438793512475322844711241025435666644143826839181763774414027787917284862096677849213825224119025476326633345950558834929162994470693035886174534784381745477529726643012017931088566871585113448161590965462549023123197854265122126511730186922044982387381368991250856306941905958629208090380129739664726390647372341843520458888352091142484729423178274160962896045107442050965233227418639315229205578006266751497266121312300335725232242802785810294540335811928204553349920720971455636144539185108471647446131954929292817605324572327679584660445659602210645778184307646964337396137677415700844147012078412075840772510953738700781340556851720167789267085791788741381726770331827572699262890425043615742446681337817943990207669197617048285858346273048127063412397958387454302587090733749444327948341185339193916757753945893389644717148783391452714539496723371544302122981309665268733648083076892410947336585099920164229339056336349182874696187246246065921923719210800670620879137109893962280119347064641884346099947444395130499559505100488786939129802869085981141547975276799538963413491799856183559446305784302249620930833046304302426084168935900421866324578297488435108558257994042137142226033985450209244986210464816733354964236526410721786387728886836529476999807523146636226404980809287650150460915319459337413738494026123421324049620841462697720975025921160561892583588966928581986211801822317663635032001671958762509374519603936854945991621533903280829628948439487640776718507499903824875582721718378583812411007196491474795762768579302176557231297909710962459741226549757645016285504688447126546223823578725965200208742696818907029530336253745851898638651107389678245772692222544679842411225839503575611134783144609073620084893588388968896332013092723308257635527662891476327058165144971976836087372134610598271031924824362695517234106204096875023092312211548032065295010446315476734517732861796005962646779888206089725777836173064282470435252707016768366150401775357787316527900205507090443646455003381964846144391915949583098568600061671280550472604810452053330342501684019112966716939026464864699777016364242006659072515173098088169852930597230927680157259306400848958575671955026577082056013822509186097133160204331860118113284195712973423630313925234365244052569154373587061888139948923639489450796510978925490489352310967152197472734920423444002199266260730216051521747445678966179405647969105041371012240945885904447035093330114996612738191780807946173346441211716822858523424382789751474141325001798666083864065413467194598737457858346069606717462679952336816095770831369870618281115294272647058963418598138372408690644113987266070938225984475617248205401685756955695347923842607728905530092869115814470962985605142096502431246391294300240662733591809318031155473048048322979396020887850208485897862499624366123800682702352037991277419327684368645099892647344665914545491391510628640737463929679757798435547414108617008088692060036864166607914012705757002679269093724224098469290174623797881469559529338000655529086035302227913773058229606574860341748860567743158256203466639347800701426196563594770687534029520151137104974862991686077704932191476275133780951870072342961123079589885658187078293707064251661837930447983418852814260815465562712567146286378188104169870866274693897393604172224251300514672936794861395519605126677952656737437037755228282126624554015698763995505960512135698545546263275013784764320559182575941511699142832858504763279522674286171077372760264914432708860621581078965242348917997419116072357632858749637895908591510007487737266629871398622446314302480434625735991977290547978597174590360286651175637313147598250078427212068083344081004874962281880287557394520627903291876533508684589731560893556207122031908153979031495549577255210215280434201358519190380575832495187185767417155323389455353805847460139831242161418004240221724558020287916077553000076257039597988198185572261711722488964817893779507080613418363719219857856049093446468936759733087968940356732102770843114812637307911479556045745268351750214116693329042555500950541100095462076081461968242379447401536268202599923283604473814924776390232805331336351982223285737658254958753687227694661567606978134763108206240055112717444745877120793912779903819957927761670628357152832350680323506336731333701423756015151453018715403630318675170408808957202521432846851953723314629244557764345001292308886128176206363845823163104755283321770203832157332828800377580004589242455916612415456415013711238358671408278133084768642238089196170474715699300285010838456472936684703378990230585773314783394176687417331796249118368320478488895126978199749556067335678972332639410882982615033537183723375974047014222872094448701328710538166121368294875075032952654440906036638828927194552783226563004391044950420748783257787858176685653404317318119582312493756290419448924317064793787333467401609252625214735624079828292010845178993152812383198732633332697722521446289428182726499141196835275473636494203081330896407799990317664690109667433593268685602899406918755085852208381356361428497409764449668346789508290409449506024610748443917320044668792397634832000700892545845646884799607076881516290216010631445155235582390884784935780308787506268668171570662383017626711636292019485020817161795703465383303822849806022794656873910660402580653432077386227220722927534913337876968992426288415908339696161560438565032521642160928900026171792093956207217982348649855271045138457772612695318267415617930754822660617401107796015030262970668522550875910227991277524641211846375678335763126287878058004560808926747822641009545654842182449720200510439413997366913127703746916822558232240640336409450709740603138206595871590988240763306308792742162426759967046834621493889745508210347740873684825707424604131300691648358913090240358223501025369683357475574543870908635321044484651768046538010688478243185349171659148470525177316862258344414394772469319897312090367638859351047013053851950921229645916378091646969959663059724005628457015862789727338871858494515367543060280976015536054949926986492551227070664358874066493570457814870609663713093801212359125520005603777211969520475091142296889749082704055080299996246143251559796570336958686417816089727655854880856908885627660884977803545504364902091113455016079425420700496494995871358309799550624307149769966713511455913450907036207454354809995521105514147988608008212161720373375262365981258303461587365789088725887078504874634546989645051370649678394449225497767739789169883549460425994941284374569651808652693614893440037918908520948522128553059296909202618518736303909095275487596781357558743309435314336597536313341318865540204245622605241478172245827014765034442104945771242772698792393235196681046175012574893118621204009032231517663560829782510483544885516602372502687139060836421348486275873507425742201709042258468653535327100796951539890832342282944908310637328326755981939608313799507254250935862205166883975157017959158816106088390257225109325852257713942590391847196824999691910913320190911552673130057618395398534438686111603812902249366690736569043635429521052637968037704335708117317963107376665070029284143365580128402133309973699850128272387347708735083617764552953614478576461613978064383010769706528437778372026689983286951818258529858407841340096839551322168231766938947195584614854844354080047927043561931302977838704360175914202288393013384662302774844652050850237253819447757735004314555627621623603478580292066379509223540342866022481690516342486921441892681272652238190252335835965919195706152208746659938922475870998881176309148921605006852760897663812740246827642414415880603292648065830223001683358782529551829791648618879767913559073155020254653523154218105784928903836227986732209753990512522960762203128690668731283101217820222030569134242060572489569455385055713090860353682952970436176216208969573327153943106095344006946081368728202248909256229610977300944252879302944533744392918766989918261629019250604657816098133841389050091144044609226936237622871891301361248780240076138298670656796339399454811114928941976142648205268890008863807297366733336466318930451024973522662192231585365966385294167521397465097306796075994113360170568293168829567621072766164382365870533802210933127713818471179719795220677107245020414113272042091334023127616694673794289568330801033103914069398629506104442604832182656564363558147734898408392470288228433847169967729163027115437570907553122511512126205671652000266896627409660578728683874754914742751225956712120754030351063793434060445792269059170796578577006590888493915921448500602310809116461226497463001305706105330480321405312079444573906660418772962954596111629178053261092350660544943400531393559742579893297595488865765524709276069577966710121476514381284533915299076565080013353171349186755539026616842150411738991197983327706978929815149761359426312204182397577576513484820229328916273731497174367127709278724185237082161279455299259468331670738956121834857811581030004726473142128295402092894533743967406234736797236796873463284320660964013487980396374361399022076074218444883474044553137630956355417184361609421710928613616445581922603370914143581935084519873068699882144514787845286020925565584440243201010545608276595050641709016055913456410590041743962867829718828208087320217155462379477781911457136251171143255671162097856142742194386804827117495113475696388504417132666931780123626918448207587067132254730165296581726897402789352129021959173422554393522966540149217861852937978556559834229345584995998415363937900635048766009271384316883568365212618895094485796462055215557779468505100329225041090420012697971761624179540294874440015319709518071173880426294503194548377484814010382973527295385568428018914460153440972115398354602643101888406451124981691590592734271704711319436897908547939404744002755671969334402643822662217363264399820437409922824007019552018094193973607298118845337844760151032841123930420585209902703917848286981035359431578423000496355289859109405080595930537339141169753149815207578489692195368323423291951129856595261823168399752637083601598624436761415537969994265907483608279139411341988968410166518891223160304235412560884261965971533638252456776404343587004146496012945931190608750385836764569692569788147186532657300334763539098282064000961771662286872787669183305705610847029355499733971005135386445265897698745729563328044161948424958113829082394630282527279003383608623198440026652021279715896595944077087206095887444453056538821143107249428988161416918942355583550693002978247787725007865349188402592242781296493216375991620931920064105398269332638291802737127401599086878416703456402894859900566569354921438651001373915423939530405117661679784776674481347307520502017737257623675159691237960686049702653589563800909117135488146940117856997156777898120231360962220258221814351399801456467512471269186943769893962662803963538628987170633027399827902691915251904729627614128527706838387129370356479791635904006442955429805551007265600551156783978614431035057210827735101914545671563771437238263831772768699175050890278535414767194748137172477089823278332590782161252421499820514327827510436460392326861853830944083198557914541384388959627872020656474343326452322788614216890551408735706557301731254555188460933421176252787043328130780826159000537827344581779186841074716467276645563529169976073690556099178591948878374171668792394985343591744905789285220193664327550183207125345177590855824374926005256891503308911309222623422092511507989212796118364951674189404884589231154419560016421873566998980345033801654467412355210291686128251787821087073446385084093343795400824351585242707087029325671377215211942363333276255211573242991071329888381431009327061818281671887477343934084981558263465455051827758747545718322722869085044371710997349307400359746348128382385247240976148973562305689754282795762811221077948732394016070524248226649617016750696905137361248566509915825959097581874103818366974513870859137211777978957142910010817693447058272772356522306272201423746177573163279477937510576335721495383006586498296559484528547406044319703565078997838262348588358959049202624235578588618209007409325678211295849333348541009236579851241857474085426409369559347250883466238165597513330142455343098677609983918888289279299415952281719452200431594681160758003093593321126453483270659950126934342515404582682224387759606723139281920900679215076760090332729942461921515943047500319070286030888965665610603210202329162919447837005182738783917739798390624005853476862875394830798714082586357897979046072010894675188613710349279293022864522173842311451790016331676021525514659178471998126959186126857558064456330334920542849411537779108820088103535399815649351331312919673730588533093121925218765417063104869592955005788751039244712299659744653690137670756492880082355481039842006110596513961207493732089676630617664228676786611465414750501160404528744998351724914698363164603872455324475422540051084820679181800072703160290879781895577106081612814153516487952387358361355274019010663032402758453216011560154484877503809416738500719160049240298322313875422128255556158028039140451048592684100314591390252941785804957633870625845796886311770595717075728489182655191195312290430698445243593740464729529323899370381179350886020715655281190653623678902461484672422969437788224734710385217307531119775594547954321696277146309859005494636997958349925088243675571038032730185073080711069402613818104331607360319745486191434024511191456273603512321547278889804016289275765054955912275220969680790216394229268955870938215042846212061894723341435140859099400597259245951625161057224904581596864618507362321714130273912921630724181414377248882085690341334556866903173275288609483206962240266995178800428617044455131582777601656993488380599358565058638615785310988172739192970745740445128874895649130322649122881034982638768768332780230726622666121664332116223294091463978268121144824433960863426576457807099743098227903288510540739955304638200057650102695381252046349513083714808100106727655031620802609738607701028871716183628782741326143773423120844244498878375548922564379415336895919236613336129187679676745143592283376213897783664276419023274714078689081657049611572915502451981375788363913042117690280921256936727954996984501083523361875481958245923876084786931820281669052357732963901986735235525526289914165889733534048187013444514346044575197140755880636449481288952946379831738759013226409213033305617003771054429263390701785073989508503634291436975008327143087918058900315587940774732537270651448309676124980009923369826416811372610324403177875694218485378226054189730594512702009221756816337835693319110140183369074597322752968986949761240957930140485199527225109323082630747283888893554189678743264418296083813056018894466241621215456206530868049758847177589033847198526421047053138321260548708230414462158409736111779135844855507078155796358750089741476154066470923035363842975709830458139574232199152115723407187365506194440841292369043691114780207456195399351288277497594493431475764106898092835496571733283871927775929856597894193296979696263818904256307522121278837604050848664143868073134972316166531885048621564633290092000429634906408383647198340544097912372757883508187912753083848845860645744951566786674742026806345252305591623024098734888817618003538344970277085541754657348719213056480497933500675831001949427388148789528014773122786595405528949812988555624853604062385322215924051443934746198096996235007821966356827339955202435545999539723129193013914784354018378725296636815625247018462498160512901899491106973934220503799890072546694372068634600293227699602444554445606039300762344293391145462046613166871180681808911862200046744539505959072566559646957537252191487815205033824312131001124268075997097457222152794275775080309618175780971503576963948013187040071102407162768252424673466582481314655819133726363119676065006653929585017130213310660112265722767043083789467983265850035097329338825631410476045430649215005655872794649698061636141346100893079913683867927924251617641222886547743234641397268710159668929577900202357967232473555607119868715205466422315171205583666337921361489026185788224966400894864334499930595481920780250643183378137411614527551872587708817653857339946084780086227236472962376880705857506959666337712220148511757277927227737771135926227898936989447173806091042781186174333643532195161738224832039346887621625296104011149945848888285295076684729044063393342574945569137075929153447202067790609682269160121821204087979211155810484085538866554521058211298659801655036487027303846308271953506588983215342074296699470021116421291997375798060348990538762241376991403936430398542992563552048705505593973485399849201692686173798853226687740017953477877974072716647803851986565530614070639209251846321004865074893361098657814908429567744951077847869734891676397356539797212689098599036039547791056270822402340262766814426825551039371297507607917884942103403956762379455620017663867506674279099202944990293454689859307224015724803310925011741700294933419989519393576872759196036656472691143841855190873728198757374517498494726087620864936733726307769048786900427689608852277506639116867345928290820706976008019254677318684591903374383051788472811773913731996360824841542812914738433918705581089692101329409126107653338917261432772689174463799317076642612537108748095464142162922665751459734179807062291366052412298085030784229032607562940322225180683283688390735159803855155350930094669625511395957135070505170724941958351360110785211546044166172898018073452727360579729180956435140924901659361103494233537305826628286770408109426808671492747384869560514760693166348800951602735785214752514895100080716823534166031096547909991815640255052483284311318652374507636602577860143587236694771493366267899781320118570165032414111426892579947434448482600240525198422290933397950131204071592720382334970402249315819698662948506424383219201963299396215721079058542045359317625970506385597143241135989620279047778988004353737308692477350160746009372436182573191315501314165207463511467921793554374701704045202663308278842268817437573651603119576510597519871683364196290441057611049649105052690594914413986197872179869553164346957575207937913202804364096120961241351780750069965384414882980816251538497430133412032746947241957869609765988384690247003890806396871980230385971169781117510470764777096389892698923457316299438730215639056968383638487507298852933505973561698427241768372548941759646157749105332883348349877446861052166944376956106598986869850033236888845859165986740182054033647373296006937085356279775973166301316817409793520832366077002463274551722581798923342471219416982021884244928162338740559146350879699227115600306010173047128801216899213758635517300868399107752699906993385251517861875293305425091617728499118128668040872822842563644017257684538654367974671316711730498312910580923797427814316741276243484357208170566318274460785912226047502339260531246031792860702803245114134905271269286143329301355811568841079503259918058917945775600512704158540514782984654197133357583046790394811671855886042394412288017223229975016543796626999358592897115012447776010776104947953704204572952226733972915215535581288512425731597281849719214530240373698897058379620806723183374436550843211469363789677524653913574780976580500978106798026910989026197397962048395967822290419050490013856957127816213900370320292252449854840155198357898182195217800160064070734466926300500383200998478773495096683033831997469329299591165082927893835685916451757776373610498057786023840475323593849872008459050804334653213899530483579672622044549116602762367190002850431919484858361704013063542168848020724727196238483878362464731254615908269306964680175210789377072939787532278215465639765032398980095049117831609738003607318911700464602171117404196950619994646809981205489632668243131588478784030893842823494984105670350514633750221269151755021800507880527769897663683342598550530501809512929449953698742136397365493868676776872200881205017604264500775267480762386630361183681991554283872784551491844355469573734829271828866419832093198974617118536046381728756789978513467050238055961848431258389191606941109072163093932956705632366442314731705501727994452832204372433338765701118506645590999057845955604516602722010622857720885376073340655837005980888083499371596026606067704537183859943770062960700020493548108091136435549725999126119281658958012577253842698260033988745348296513972237542820332619687519437623577512222965259726709140803003778389415592166583948524114401491722634795409121551307386422809354403567207752355847993477341715582043344336978683449766628563069341649270827711262397531971548924627968512167646195992367166118681043745169528226051431075160339847766942945191098460074847508797852794375333025168359620661197288253798138920427577272898513420487709600155176377369695318544308132749851352463895457243250738208468280034009710786784211219866655207642807198410520933967041984971840074038060255076628811438283350279148938528167266767489113645696421683179648869525660096423090906896607214471631222691292229595825602522842415116420688946370036606973540042022569544318950436921729347359609787250521443447118821456366065286175878511040841053843204334039232490977537924309653558679111946827019875509641536221836818554685933283756119082355743801515160757391953148710494058858269950788117640136515201524773599570368674408101944965135118946850593800297749433505318106324378774178801716293058242312896391423281173448801727891458320943437717060622999022287325088683324217622051648623338302617299156624205324212602046519664032594650696904158495528209731499512747497961712838393584391092470072564751304736452977681560566321793239117963558948373783357363759266333080325295412972953910417365395987715243498344399046906294293902357480556777792227108135017470564327043473303225151022516429570031267578663507766647511486979601777744568928366890618072060756764317225927466118245062934346664907668906367786996994729463921922918637135767290786018317471441110424920246026326633307623362381014740213098275260712906426349579504700820842776693695208113428944753721711722168664698660402866852292237123355221577582404076590496375756850396196549349874683423335839158989819170456754180346656858133765630102111157363857009769069517355983587751097675326183395943305969032906578251245571317559064014610968463166225251234788293596315500707539875571335993483327862951364803886854548842370424693444556849272394683073356263756670054516712357663648933140213805864060235908132440680786201184800724108531096902546190707879753111032393599484442874507735183341320430684203025555711364998451140176355131534211883231135312536820254217570882870078592462926093328738894579205365680269949631440485296179070446827708915568289383760110208279244742060360185191665189541630968069138087637607598644370745534946466482178900757388709751857299009473618043758819346017532361413599336040335462935225077056362486543654045558693050392143103345581600016444642432723256920313180833826590074514387214196894130271574874514551618460649667844458632157473146174917691887868111693238484821187529220712258069502647812288679607085538976413745193351049064249212934991910968259103624114877513508162517822893060289655472598941347702714460000641602987335441613019312000594063183815070239567961625613030086744866063965198393925087072188796609278169246944901727784672264834198524678838350289695323859521317414251478548171216883421177084743055749249392837393235759120099468947105192930027225832851589965608565432621231144662230142131595574404094755081685631505350132970317382826001230394261726805995149032605582336188576394204876195670168258337770617935436235899733790011308886727278052727236957599661850178551907825503262384276799004877762072560879812485613732876622082434103534773521139926019547390271272103864662007831643538495491558592268953481733423597082069340433998608109812210955810024827027102962160263905095736688567325034674573735391889168135183002917061723027545236367558805438279544475576373632470593181616316265401555456066700492051047599601947189957392082550986920261275187707241653253054854430393989235609212219287364479343502973696277790848840196990225280039674373943146971988006965403852178798953075800784362453356661055845533028634047279154155318978904246035037234102303553167726743476921897624704724018759854205201582487547572067008070068346540388778794607316989732809634451040389314645984254495619602858002825985659939941248342908605593771708170251518269378985822238258819734008807744275823320887793027881976061045265764223106148119681087201248076650097195786009447946570401024197542604535751151256593210741242965188153730060659941364382191510710400740133149307774711998468460571300709638279378380785462963976772465410544326040190834307842869465931935337057918643512158694023585692662656592948285642510385755849639424961513255621443410620795230942242813775592537471525542372804665820887974883865708353028854623756563529727748969596098427696277053929540129259193156976613919520452026806238029701838694862419355128005796251223443882651669888171334539397086992120675055560090978528685967927584089150370955291936089617084972142629221307208609628914129037351240793372878533292622683006124110274871562120498176766544217196083732428668190259714990888065562949791634801494296766721742917498090275299869945610520040446390015137220703441232341002402634898634645487949843799108262978696312544354842633326816354468403380090932889606474407459744365205877612519123576517131682266925730745579236859252624469571217771368896808662910181611929821321539585360416510436831063606920607614028838043341661488826898360101983639520091634331712980261400948383899501431675972171809077156724495044007729712758799100419075858351442242279931659298069573437071339254405976948136820347470650954174980331689245868353465369622712857069013068266989890915691759914431976709651942428644687734505998397706696808143496574463386240046040397119283261033348409897174213217842739088553067173785113712642227865691119664126273950096059295371421377510251927026355128640462152337966074740295728587179544436832264175783732494579724558301256327555273045690628116591263746193003496362013449378559833470423912639557145179305035923398556092285863758943305972615564251984966528971319478736348903148109806038431574872624043698818131849736065454134470296903835120509999518561955715887688526261265013258363433141163369105141110150500390886501501238263845932551623465965078352101195576303465342303857171904153824410312417690515435963701011758976495779701668944388940615344143669694769950683312104300013082025368299193017623161651802184396325562723203590137357278539634517573847559217583768803861722222848024135699857177084434416089376750214313043550125011801409878645933510711206785043907712966456506403474010854094998750452831606499774083791996610168753796623349638342503897085166750819427215825506956425457038740969176718244484492549862874892864996855765371935403071253670822796763695714995662546696834729522119206508803323890168484785952783913890183467176447089419055904340719551421569474871107563440630643459378020972087879093203390678118864161150200879477405772279451494154678969225663914363189543001452759786142317332735173531621860402408533553529480618854501518558520844838671727127006705551331258001861451106369671636708761944217476837554702190988864768155219979368255047287983400093984557168517442401630503064108548266420654163034540676871065468631650747317893107206815657234902346091735597968268294062566187193290948170878774631774119716108678609450157669766103292304887056342197229146193875855389839841176835255553805901815665873932731125534972807746850463404710745736882988193015788310143281559913659492499269017107072878155357333318831376853783736697761001372955243501510163323282593258982525034989825120802797539462795555627329138257511964654124582761409143999753102798137744378309232202667475404523493378583982840584859284563791864566653898947826323171671420613179754528994546630435189492563220442604251105716987385090423039353722840885361680886011616015821637195644181958986975957438178433310397514994444737391809446778799256488169297103577337959852942970987248373820677963108916726677194106279866784714520832722290703554120424467924901187133859401022150482785304569378629557214934756296834256649124922837357073802292900037418142257444774725281437702237604270796521118299632873297092307296539804135738485352593901450665376722246134028292048479620898394080705245663510149887061671728139964166065153505968317401526706001323367291948185765532566616624855934087941299796412449607752300501515417234884534562657476998818832452745641036394683599653440401979946069226690884466463594558060146052463658943241991147728304652859349020427906552018598686017545180102515300747124811250206336187278308223432899009522998900594317131318433938739618396628866366974876995246223295477338032219785788870607472128212322863093882185179843690290891541349388603131777201815658043915808960292794948942598286704182900396425651492839873807678925282543024937174535143811635174665350953573053723484335694809993216033567211347083885898118304242991524365821354493369454451703130591335571875704598577459893744739676325160969353093767033229588454613106648233140840438601688787027208787726612449001404537248401744848892248855366159073190558231216762238395087484440779606486242134530680820948714052825542599690992299907643942852552133683594529963001354735274914028238378655562534695969633565693239426635590404934559603135516491183295245363779718009400655967147348897142098850740395026702275174072592645813415942088270764336157431197709106521123363839748230606792097393163549211411987545299769700827993412350362175708994103241012293950780415486495259447944971612492235118858673918003846006304587727465861413988100417163466150584276462182596016646832298595077025870579393968851381996328680231951224271415038771150063074586237686964732574852772388565185880677973740719277334167833600554104685446863530986844415477371125820086830402640646961841845945270829171101161645613684553473458040391596697149645016838553715769003010403254382290698940966421580524642319858921617900675175262009560203613157044583131379761944220253201024001561393837805371425507665676340355268014451862318955988566672689217008377222844776542196800033184420484659901095107765037040452641170661778612657106432865129654627900740432054592849277656117760522134160486068376970528836208627744995042070079722265411671978119865914571032153503164214629101775679092184141155907085516786008985041046877143121485018189658156407475365953373589661065384085295139540332370413117171881775496219706640936675069358001335632374250945224884153666059806654422898710827905503027358025881073127304669094369659652642337961991067118566014247904931283419926249256024644075222732720533405762070720499276765795182577436614749377904822675736103801049980055219880810295209164972645862211498494035091867533591314809702437375687906994361909336249337160384851266620530588281165886945672594969022290081924380284230562925286499643667237385169227557485953243382183475670712236770967681897254795170461892957483244007947764815151897293294363868201593137573377924990834459052647357519273624438413472983492204811433630599982334688679275813573690296184780962059081096916479763622423266949158909407504805314298791652209412125617001010149535769357762128066850696883591491989087263438944351891708929866573152213712575034411409643586234144979769654496518757130881661605612028600011999551238493604282534691637259006699347223755373632021835962857216262087775526719904406806305428725192144066720674857632540809604634310102419116534100744533393252377671067474596906686288324512571678767148187772097991724824108301775818013114198417720338221774543977682600629516715089942500300414553284625980466367354247025301197702704087211561357653218147341628808213953299648061931969001158574623529460600750667594643112050758709049927865049608701017049128406292433304299895917006004434274750075622005271293051298481338812234427773600104972552048123020945093756116744044962637513529959784843675079776954754135696463025258413880562892257441367887545463194578357144734197390594372807891773089870860775784336732169901065962642129203158511994693796202786476728565085749155811543148396777691041153099324999154767773096495424553884908445013774384942385193642802081956348722911095676383803247561027887116441797261409790441376771910832176736212755868392035787752269166571732356015133261183920782609921997549280568259306341693358984326103845576694497061801216900173241905137315198486102338731011769401036912507787414375171618339692490804662327960643351111263226088738092300982197447399317260932635497053959789376254301976336676074576534695824301182937955200678681283043968287999199313637968286801580502111684061883907223115289915378792797437636032473329334938833978809655501731773334610596270522508935588412394658519568002125923586048903365908634471977427577481586986556888956791276932772283498083044660894160544592255714055374409551870445025158514785035254149200219490792626886880696038950677120730999174658610605272576188589075493972682132751483483313211598534347767583075869787512039710271419077132782182253947489749054801655606861331507904047130085404985190325975762928597096594481630233041591542361979029159550765991972742790084870304682844378883421476820469640483482867279809729247864707234230388371545057922087858516825404240432337282482481292501591556577312630244580181531097428615184424669345584300495077563202508817551960312812084249794176106724577083817904288123281788494482982472275569047855489753714831971008559295444096074801179221734044550759677636689035321501517646136585259146863200586557642059363469679160099701521450480053611171694130991485941636952747022633285293232313783981966907914143695497316463121222844872467457200869966214169383572641559699899018243288942229409268350522566343158656479940624679849201029320841122010286372329931378679513102527964659918919502678532109851729445368524773966329504718647642161254892394226852823389036738028587247657341855806637737600598999155163592746666946596797104464855802596116687609046086091627242083220309259825404525471818797176685376123237037849610800563248529061028916527849229265235939593716625620998253857766970042322115696783642564201834878136411005991551925230197342040624633866953555308889583134608651064796232310739177118128055036206629008618239337967327864741190615896488577555869215316961387625012491392026851101257924682529539613964377360098724018808343847691899660414512326646705284378539842020274444505900183239320405632090361248346941973234731859107039067398570371074885095073322968787408233343122892827497928736712994132390557896482018184657086862723512292129454206701650566431142182825102355399529710251191240297368383390645786603954928639381082470912158269798051245664826461489321521981910649837144921743708605380290403329353021575333821127168035416593860375120515371280959431176091299986800258168421837634846978520700825338311063167988976386994892386593517141244278244097117453999951811732663164754490970042806738432643612794742959175797844101118761944234971845457262907415112429669386230510837124030708573825589318684234502686464381406849990226458257988110465820214232404350553991629393511866048686699318367475499851402420677229963297469523102824674585335026908578997582105598245914727619665677110527585231760801457529200233898037539735444205464013215120216260592790768110689363415590024557098698293775717367110352336999369555884919118562975091906552105517904590537347360354092576159540403574926500304131339833604539436802052856512331020408732547325715140161423038239302795353283211708325524292738635658881478232100134862179851726936462239758510404162263246455701919118223864965730787238586576584712539732443242163736925028308986400784677031436790940502161054780489338167151365140571945002197050891087615479139156900296795714962126525512556316422460925863324174545496478745784160803025658011894523761040807473753303987455555795283728018897962629798670307518790079091576555007629957592033409494617032284971274205540855246393627739644647278563013802029001411155602048990425256495457987083255996157832841577854043430890849540424979635373801485186314498721634105220135572941376215360544902475702806787831724547521461111293717330627308536857478662463005194067405650697598704545892664151290469692519422213026745457052247236713073479461997399512177796638124106478123552052340061607660272910880766804614267947636490030241720637267507074986078705242024282640312279765684902146159547094115774155979150281620780318669991307298040475082395459610043922401807216141330379256619318094681933691755745867145169607208671842938753495286421833613670540479816692533366697774297912731896463368344534190838000989246966187391811550977457610086584927684908022954963327332614380121012275537761685509252857754326377988924361331926089097885237161141764263089674587704138662698470059801457872283609953557528771403020851984611121974792467480091504861971931989037297729542926856946142110412654060870886692699033285222160636733420267215559684178335289242183465324635421711325581529546785744390062122371110478008774383968572501446137648061014145983870223144491141519968436314275747995148107002900572899138316575193707942526886279271715469273484695806680632281807613198558695401830446444860047271016687792391775495900621241741275697412306262759058466375046825594861450977517180352305402577864990025168356718142783657386090997679803343675500092999423553926280281618736373830431827708228908561403047015455128896220722387943546053650812007964493600197005103364065908023563482598437579317008440247184402359453462498344061145085172524354512521139696423623760535475938496937597004402965582940189638117627008611505328490020063203170035277460552789000797741418541687838017921346719024357945334753369043835296865627889370767480478830686984620389685963579971740615856803397006011136830929595701540661396711630994992900553535743846250900163948917249968704495467599793817350399294083268225305338111487073909224411079721746853366441861167906827627928375006851083234965983191439725364417653139378340216756901040638143431179621618627062000204571961001368126388708411312631403531398405322051380255022697714810077921576312696893782480540119919708991045269005941134203748574652313086603115201013278010943032713433721529750138551186118497187213301799120522789573392548330150916905230425457778538335317897932112283506392816349242483209021770931708005664355374062370987398055510481872310241270052316610704724908646800302070876705067063388342625505188609400126839241372004599860513909693451438761105924251229557149700203940709346491003759693446307239352539123974048019350476031383861611589783605363332335843147652334807058316262544339541415960605534166877657284600420268879098891491231134866638461605972109124234187276684407786340687367776973281958671206193122205619355493235154081417571249551425751283530568171414197560936836323983737629146839766821487815271491510790414218767554254637269971703567390284428543662908857793764571398875263546277164214541751807703579839860522461539544808080183588428632015855052097728076390431624931086378837421992739614883330194733207685181792140404712918346397891220079678294724952727062982776666827437932227836006980007342488323064940058278919564434042431309846194688169603916009280704853568387493057101699834127494326612558929066417119837247765862184380525666898952347659176873390822266957776083903753376125142538294539836523379627615576859730832764929775699202771159048792085679520484984626236100078242535437255601746306176675727872053407527061116095258536557555007821124558965553829604592674977848632036524876327396046657113783415103778110447088704207389959510816211915483360199182080066646937670202487574183452709885822558725445758037199914344483007064626495759504265263824630873718899188062296987288216300165313592312923605416326969793512862101437615367559984205388663530692840905547462817833176892035120092712923583507178965773417798083681820503742059951466813479034756103074256103279085747593930575549592948243523684091126188117015405880891512772756904353521211923864934279249742603790309622540306679864959506534821640486831714172537287192376979486192335316643018978864680171504959415239400832627510194432114175070668590319295292955433744022714387519259010100592324870895441590966071996272049007265733327547968666595335364081192076381882545891471043868585099151888014197931780865975811631246844360560377030355247859872592925582236211933199443759793565271951861846404166253621493715848043932529199234333350315301279833552182672643239953339887312290079678918595245234169136558856654880682278246838454279003529676171238854355422241086638297000395891185868915772893714527632599431611053307934258668002277164610752779929475401971006855491848291076176378591767779981412126570284844617501182756279651421887170755144037564599194153428217338528045786911279131360876770540401037770640360970358128193803508139787884181991438632201612947947158129680590696251126089663924085655657280051060595787141796564586842986509416696507081291805387697722311467533078442357249894868697903085881681091801835597002963556690170263723466544520124414526407336274451120744766677464602412785117793785987402883140998254258669161537679508704481593915379906282074334701331435523992612165252286108959902431726597949220125385584762781738037625441291856457646706088567185959962950113203597409683424462061284485593923786169016815149173608571666238298655274739936432530154638761908354390206023764771134784780585890673226967052930978674871554571171530659641794481351336853563164656295832928840973670281793827364674244111777130349849623280299452588074123538814830861573096611044138050569391540527231122406380663292259795876224709404445713586626195933056683666584550480826826865401482902119834600872672238982352828689847279182921436421897639440996568872599956189218295048175588363686439919477387126573477778781708443235399384578299143571891789262020037894034170401456262494766248959533490939107364238252611400583009662531402744650966392281298497285795856836821887840997398250321779151003867690499310389756374788793626583491095599787076279030666733225985449355483929717569457842814096430430163993387069364054286089247397720983029678297124483347892762377850151578091996023012178278197894742400402583976278889881981532149043799269916243174422397973581880231624221617168605254142323160891778928920512519996495330163525241092528553686257586619367906724911783552650248576915976377935163154483559135184490907302720055614709376910638241651257652296302280528762116061347910598287856075704966162592763767054937182754154511382924782867220473130332010649216985411265898297009321576134364031988010394577778467398552715889304580040441328350302524865306449199270797263119886817636941462692130964334049581342278078964906454634945890578340782685798931632672812701197092134683394141440612406830737691558075511472992248460349898441039545668150081353023635018876792661597840337128195712801304324047254932450995981945318603086626425664617767670341009537841131414340007161843172736607917895294916066233199751312975841892381857699316320531028618359034996679276065026476128777574641181459098718600103787008751937410601490117487484945443973031109039899225552233946956567129289148260834820622725139350018483529008831009785603500973080811457585208567045619562230929226586776652126061949654960415287935730144436608627806488657869614852947932878484030585756793364242727553588525357902227255825853595154529573535175702068591179179761412280960042417819400932955638495226136368567590530344549141577297204683885857384263673982217464986224936792703107894316829453906100331090460191936296081511813192962131264742338108939753205404723677760409654106690772172206185757944462282510050989333315406712908617215968114292107410374039658715116954106024172331465245564020125770102316871747621783094673603462544469403132099629437021765865669105622914359632154508234123815752595224304968511295427367212683187125739477586088152071765189514782825458794761660245697551455399981682109423371180818430985362081590022284007514431621406055619747669829344326610074324924278781704293535830643556862343051788624787320339700839422174670788128094102806019751019834067473459265055827619549200155970725484598287021781176090819809985061615711346483945273691670013425781286286313089405759384459705964844460203650380912783755804057476292125915971284339132285211267548503426158966470822683652829600108805566344688836868461269538929921853382798456420181923213162383481751458768493689405833950004428904350443723595110798697363141997884140101862935432762521498339533408907202471360796949795199215461510613174805444351696725230044582814274280841583571370960454888635165459280534164596651136562411834469752519252798243728186225506733584235452937678930865510343735986276556902657326829583767478056506664199792874726188406756611686988326574220086782554790292317178619087695778552605198719807112656525667580279956946961590955212897663770987996398733350140236821751107778767764125447512716923466023060983336351587330667137158843207452581977298167278556408306371956272125814836271066343708483368733900066738548749797918056105271607051773758695684504575405729971218136468444528977912125184504351146905942702744636346824594386415194533016111712325733494266647403143610096739732776333599834819242717985275615231611120053138956162433212196619083248835025694627451339290525996368829173845134315512277621116220028875863506955655756168402431192254593411611696897884505783443334672002521708073333543439797160461749782705715774037881112017646304097367765682134452040892035697792820893602704739690294967039768742338920834458441566270144814098667378999561377260888329193865336573844105992153670113975759425796473940231959113928117222835956391624492334647144857008699429203576278841808619793615425009975650085228633468018739855092559165287952925785043768450482942928513379726836572581826789325926307523115320610806472249880776521270196401032893150585472240831927445128570747255951420830879889142801430253502684517665691919144352412559354469418763801559031518427063710563436315882170830257665645245574070082927754959496936617455052071817163932069494816697985042411200765407932151880502100780099409034004296750453164860773051612122561574032599280710740052883637900958943154908523773792811681709205775796197479025936406549260139561295795746305983683420358095125853965038702137894746647839414891437738265094293294161450873951628840791214683427547089037014693454535313604986282002580653547570919873700550567524257822731670418968064051845919458214391238385262495849837720213173194818795474985244477038082108922263627263122863735273811899018565917602555034006819078598836753232114148877529786435049896778137325386049438293537317388676818607478535743151238202778318647907383677292978011219631762240881624033770914635659368464357015481204285777519733803722494938473769566839933116546189615345869213999339298643468934716603973237572167956346379284827435168135640989394415287802061505756328664693231015905553199560339108806444433480377976933854708510189474259437256454548777585639799766839762959840374393325842585250845029338543134076782189162362633103061195620392131799496342717064198614215271528944199769147150324974307668802618234666388709095777913360315389198913878071127364656899231518643312705069218076713201179064170512354591455676330443010611141059328139368975992045745771450083259430094499951656463983636667274183250163859679837912073290448386067824131883343271805464024488266694027428733733049888572245581233666274160045724486193202108217172375943094422059789733271235441526805646152810486942746299097922184563244901899247117175510762722379077299866686718130983791107507803152294852130809415075566823767151977127773117354933446932398457113493874035954147742820266053666352361554860942900672592241445074896500320072651224118369379123337773769877318646977931575899003745637175972805388347693153555638423345344436787338142190282740333338069211447980636359554109772811979634308301462911692272283632612467621357392250957982176303351231781286536885258906771505407701105504153435005127961341923934142291934840088182317143117546999955228602388436054199460249059078775056369113024580391585898981809381181910663191635520813926800652855896438903217978865912575590354275999430874111908033467659635790216108502360069126204058386633825866970292519218629550981195216074211211423939933102162948564081450108093632080415562107077314400889560502704444104038739021274895511702489313709760581862635233082822424110157804409317301362222688886283520996665514889358658717421542399614128551232678650656074167325887048125086150362814988902695951223070031510207712636342023376251515445605478025304403991895669048956403282327302701295970832247212641553945631354774209996586736649794200064408393670673180083423656989818323379061334597082476532573094626399432446548149969889159358040711300460019515058012502717235309719847015552098684674895379762093886431824057238547814962823459655757609002452091902167029985383555164302521077719154538444584082764609403398132430226607370151882669154813395375367766930571463715944106295680715054464582513526889086183858702233406414806992129584145364381454608327454533040620033507890849139999667350694773951253345122124014044305456996222478310254031072621613625528339558440097796906812919820131599809055771674549318067303209912056966355729807384076341087505583320079963279524976867657673242284942404864111916228691303883526537315695453433900504249010537829463265887238351881049085627352739784520028268966879391702871425375026626631674200413493182051630696914213413589889487430312114360604162810706347396074866806828369124774434655901136381852703755993372707162007240847291989607146346776616083372878317312406169245117283554891538383158384357998033569833513225977077298196241343852851324068433906538344554419910903710073676787944688072029059975068334326314374848042897545634799726085912186671419994253418607385293178839492227009410719990446679282362924814713586419574659836299157283286455940315446277996795220328132372412655430519700734962432985639983194322579813561354126986673457694980898174384667882510989448929486359428127601343150620512566330008824793808525302483359630100216398563972850705274089287180083284722376709106254829425006250710596721090391613007643217438454198346840823416348910852245112105481158162926662221308373854587500001049710406869280679142595609240489026456642914781280449368120431356646230360607181764896450484468850608321077325819727930811020800690222731811226809620440757834424912923714593760624580986440782644606648962607092810938403831819654657897467320617046426548843492690844536963333908312863521711904655708343499001138962657481291679028574874326504083604040015330382042760601135742343243081705547978516099638251649915623066801626765985839288442322637872584886792270591161466710585449019050059650952020053106729166919241304356520309236702242710576826085083530887436752241412268982756783905120756351877987713163212229693001117102405345463282180555358046102649162879720224512111797150788598226215581167055161948749160283048032902963739613979852844449414548928571712885946669027340080131056309948094305459610555449418951995003401135040179115694906247740111459499730820943589389405560318803047416549252247207539968638364581218196700276858195839068007095847003034880083956259649899280172936012954936473466730000431833326497617523670593067903871952472330687870508479593358984911021857189315386730794680986964992329386448766317894540609910930545285579770120840027578415141462614964384277527524908254026959452613072910602807041949461861613886059643514774783867339517926541888284837360670160344343652660435053436831757740477106746071462642374676378220382361746242845940193285427870873355407733362959154035759110394493459555194220469033198965935502241174593660832238620029243355190157873008878830213993644370936223002584220078909109764922861786255931387401127531116713340783842033679751300700339525571672832956045212159885752989470892855245059211351183995278127853753285813624225427965528129063188115478181731280564595815131922593960438177960592922801313706566267554049924070745316326901507716352489654918364135953701067029188358314843035840010399438271216408983311237772461092803387527900764846787795725151863025494401856356755799457400587440971766113761698828636860859326803263772926627449936047707266126574541677989250259538576628812305567392847646565839778108251291031303803150998044893365142152080499905821111326684324307866550192882212816612096828865062150387044158408818986090719735248562285498654488453057539761592049732390223939123734881311877871769046850967391952351070937265244174505712994754477967735161976005161485613988594698746663505540199353262955907189580335170238608506491806748640026301595564270547556290993277044027334595092113687029420651538214829326881873161229979521012002968980393183849105642378704542098441556410483040622119823272279873655568054123879252125999199580034706147355679574344306105479296803783367336524739984241149641925431271145904259979096290069571509990488610090923712091344290260191111887383110775090985345833963558135829755017475686305408238761736970717621466318408919324150635081028786061299859040784656164498979997847388201827302673491022107695298605668551429002054111001269358222302638933385668553183821256347492150297809836428920704014611678734625652734380390427932483128430871142200420443959774770367551240589026259436553533021842484844814397060853297287963318901577479111480149561040491209863187142381908946096700097150967310003034410378681364684800155790248806399273457284603086562379194332899969340470636425208405316882407169496817302730115092394952408543343234979238199142270472449340310684151328964382127635082633696608894566310735333852972779553204578419279548697804820513846231510402811801476632420215657298369365034275885718150468016516721394046249363662988445429275379887799642442888424867678014233757917847437950739678060460186530265837657542556547526750514710870067431378207706990955412368738108064229122579354814193483607064235524312043458103040445464735976995503394198393986085411260071048092975624992540066260942232667575143353829281634092492617983779800808723087633973864455118260974278904743876933721195032951801188888001012634372794240553846045387822659581389152008048913761978444620542459478682979941136095929711927250164266273545179837883984981440906359301339625647038200627411192615616478142687046546344585559164166801909033392016371161659225844357978524495489928332976058297365087997620997015249154587389765605426702184422631667156702999259280503276164323400858832142714335369206954853400160889788408114347398831952004079481486283817146962517055970649692943739333998497992742178518023507855081362794289031091833223514863254104564850053149035178850587738558047360026313783556092736231903490314803573008052106905309987450229946020838368066484731223154854217967220554246332737676402554606081652835077200495942383163704514268090936788532776827315469309660027475928810827567461300939231411482843221318025033968070417145985828167292963712960840266611213427707202213354351348745792271979378365087680305045382687409919282648319451401839543333798902432423334350273448450712167948076864123962251126574684341255346051384900178074606526612849718222921154075472092961654557754560447582430764813841977689522039773799403328465851382062619720811916375775039219773852450497016800889705102452161838640208002484010958873070145297603357523428024192416180241949902719848049009613175369139833609155645804075590768942381358168371279971353073448876787107207290942248254162602665716459887460267453596652226906394807545611112631839913268036283904164858485671392557534638041119584760803252412086400750128206336522538854860473560216900774953892184158957361438406728315230508617995535388671587317339661980158499033176368812537575751794141032250566956776208237935305326848761526363158326488738756568791789475243115752510650670444413986038492213911287366480806739691987608615459396985613020645340191990446800311352109948232170337180498193478652372478014654706316991589649761212012737874199120670332986207147366437361739211841983963870676926940065880207151733614653530923066055849544630744993421133345811105963382210249410073845738543532194213451583357327803223813237976154541419143145800525821244650564686627820704893565210178138389642135910296409207177268506486508184681302813504121112158650261383689282987779507562975253343843673708365856551234057950860766293582417887833026091668073319876370093986813313608694979757282548755123463133440280824955558805915035966467373541547578961779721339817563231840704458559304221374709690023000292225479160677650753411885645876873018465309145110168671252828657883444490893077514122883566673595556078804442155111298543390097212394819289174640992358403437604385753536089311221560082754355453926486806772935695572061682021001302667255640779896177307891797823737893961192715364040958168424280313911589726879603678445817924578810927391850422806305973116155964945933681493779825640696190660579127112316216780640651634682701757579569060924421920568350006095792939355475883347962068049884401632196333998076966546577188364725616308078938025623312528443431028616425402344211006678741629925749031937476372006323230252924217185665683644022853071356526828564838727787160174216237927814511809963123812610627212434748667245486918824908319489786915356586992304952118473351987416747068837317022707896660475771125370769157466945269761988927550268166997966292960016593896683155059920859107535207859657859227223725333720494998867348446300896754410191034429059229365909860078804671247274137486479406311981813527914435801336837613146133990428176395262893736674032541715353783780301367115261031006142635233651450992118096376176755085843048184306458055925627601255433581833924059603703952381390490891740755016781223124597334756250597338936653581148483673641313946688457285831358215896889792315492737720908632663846936483907904161162528298608015194663470301978566813697621068087400679161673549658059682610005458182060288652244915671818126652185963153751356987421167588954993047118581948542140475013610501842010557005096424616947113875123065750434835219928938158028120818974670127998634655407578743636054167837854626028015808185684557115063704722074425677607680956309257427121861587561265016139448562030870783233772701574171695511651029210062703472061575409960891259958219930415550932321887659351214050753538221846140751431476829719762551487018363910491206005305287325096755646592108181148810613325500146218830130940710143773324988151421673198498931668387503465137348549942270688883893173417052624463063622964741033214940639193259079299947683202638140176235375105745528000396177435526092982117105987579034309088736073684654746384336096565784314758647766723410419434946581145489476195226108670891496767322814000317982012457931015281207754190122370754985562012832005841977860220698718512063364665486360227473939469479476575673397164594946373204597071163315848107097370134051377093977998401574211518122505614561576143139279489035202839259462926212410982460271268579443903180681753388479674878286431730136083000837473114370965906957342122797849160919902933052832009471997073911944838738166616818062228932012715143067726686537132416349292636862386953503248712307129239481265851191554129362610923836821809324606348026788171431112342198806230445997968852145081898135061159149265336614461245250407123774450687410178404745281501111197787413861879315723877008367203401958479413789331367162016024160367888784238355340002319293691998296593363755488554824334837851749318832359538004017024754956273012984503787612768903534744034098860091538244877621041433241254338180593807683388904201492523040137897350137997558097730363304315176087750860761514184556243148263734320331790804655586379846513592515972300013932971479787025025554576693274157314869927085570530025472705153377923909415676413244630340999572133595965813718552743509177096933973083889356890842178286484471770296175934450930042527790183805122196462514296041455059766996109495075299823215805887520475031802875433402065068904470707230701175138498972172530097192701178851407117020684138545779808057304548560102431571430516333347530208282696482417947465246342619934817365490295898038420653669243061715660665301997424251742157097831214413486535002558002362330775142172448567138338757656510890127614318445299264850976155675411157210679847515585619706690827752666689077686128999343115053676690741804974358305851877538503991947584103098428103650965973224000792708031237943719881507531932144539655912457252217775883018887810336678613526930798409411642690812028797794012018705701557841184015710587960112437990333584464847302597206734742351082199615560823125085161726463089820724270559078728397482215590534737162766295962962736805485837654694642629124247975557010233247632836309093621330807217808367085451759098970202077940355304689438061652443223172088827028578199499905245860661619141798961861414752412653944728597352212651305409796980896129260792012971048081702760550070605447096322327402713993438479509612939813689882820747113009953596069783542683207542220322610776549675388888692406421650117748792935695060766188492157891873335067964251422366633795989646300686376692350209496365926480203074825505061628670088599977003792920646583332986302223672644105817835028759429061514052641626511255186580340274721560294923762447369665670732058772772020930454251295599199944257813804066588938462050726290896078903187149880726479684131522285257961117063439584041939671701344421591583853294935371735820647200784018076263008151244165512047683456720143181621704346926988521432971068103557776081643098328665237036686587869534843142483002110199551607850236505851107041612152719292549413010129313396291663444743746245353452396755088489082760789941022033994624470682257445364131655243176929452649538338347207693615194556973404194354507025941524055071611115440433388654051333239787733578147490628604500744102342164459043204297721474006653253026075586794917638096202822656707823054796742302967001660144600602302776603051304291772597420042167212832122949433556187256247483813073994915577952017762629500658222594403611396094046816757208797620645482313332488078579978099468263898058111410618824510565175352432675584417374843399479038329214217940563655430620716303247200736849207469509479912399541798290939671096944939891834493691582218287777285611519735581928883508117717894904303643217876156702335316953113879162950220871180176791647447505533593608865722491832187481261387227438699860238309670217227498778275394604477001485123683189477515517087689948894069030102163246879689097827335638106266072904879401668360945168785985528601780576182214268114608701999712643520779930505648349498603501540607846831547541543312380654107107092017723126843729883324710930626075489264145320935217894000655655596888936940854284204841181893677230125537869262740334235277902867038576321768965727692763429177844879693642716464614603831417968296707106199839123151553479703308419010907171844697432854127006232643751436848413547946257902454556884807716561245005022844571543080973549130290994624469144351322850725120439882765270801924585936954874956872412241096460980746200721253674440384790742797962817641290977646249910535021436701935279380889819688945892515249569751966332577974498638481775693205273712334483069011389912419143105432568298779307166418103046797003279899859321055333806545549055846999299582577311521307260767529305307249817386112328132851928279872453645191861335048107315541835789850918581094650723136166489916299215628884168843707525402165890130986997011555437244262802777775428623553389491497956595930914613614382417133839686108247894262684859333013452209855913053085331348406931393790564099682626785211250842757010241298580334128615444578224164655434130412474686064862096158851924422970141357474839915323574615784402083538761545511817374329475103163543207974771110904780229184196536285144497885959552685048931912676262978115348541826348470980919136328116737013476016882940608519152699686123823154110463924483247395377509365179496292469441729334608812504554903666391782394917966972917160504054830694997140519324356035311244048215623156799675884829740141048489973196920585989878029123203470023682999417871515075438855715413529248085966952311618705427150633831608580285407381125490717631366196401740738014587929766889871707820889422080300038782805570453347018205570099506815824810846925181861464315605495029041931004579606492249952211790556179175111360804547557964384815252594023791691594542880172732504089910920115530779829639819876289278136862704287654126923826380725645185817852574036832400726615875971953874676419687836422123091411504348537581444734076379420682578103883346384047176291556851059240019097555367192069521638060931032003922064702918145462775655196494681650409286535292491105609444151398588778714507740031860661342927218454643613523560730222423739749526245169580514795299393527831200421087854561677229228228939472867256559868479890194313306274501769500543441663853184048412680561919088072720118581883773995493984554955085049859999974242391977663974870690644196001778314616887202783099164413456651960422027042653980241313483130577739687293800945551471170024258905174449711579085017019061262480160213153316912780964203716395745203422059531922755029506617671207577306102204415770173354351803339872126713093097467002143296324407744693013781891081949170711008043402627123794084241010021822684671934513849441767549316842005225354143506798411914643741777837512201041546555182141297130373890367991992691389114422151774944943410564411181662021213051675035925047548682534908319495530939372213520314071435079989301929135769987227107014754015201296476957958910392527858951669821218163158094130933657404208157978540306869425768898144775590590864713645110343030190620466498983322491205519610554853214123464516394750150975630268518964423626002570819145564112919035928518378952055277642571089251707081554334871590512279155173679286416313588678232876099988576476196044945376651234502251031090833990652455629749698441538832001244584406883614161949377715277807899005482549725281680608009058479534437622935829911158987515856403884764665705529167535066485913872644258212885418277887772843773750405275814539877166071267054154841891309099729955185373516508244905532841364314626521980551573908959622398985485000608674399673131639628688784138683633897952570321011438387128966536457561217487590317800484823686576152585781476355070792366165457638573695207670862230707852583471005507126711258958227605535000756859568938425554345750328323685474273402034361737687678064616255582207102487232352789080075212141437866007471930595490791188635732479753589906885543102676613331388892294997822842351821899375129946539361941937220464001002803505541886986003854671474602746868308700305940676846163990219916069973355945356613739097027346245024089541390811008654847589309129319244548178859563067809189166639908387977910436652644935596074900082336937756906075339507886603063218444090666548302816591299637859828584099645182758651524791518864792054478754802189172953746923354105771738544833159401937216404293419234132935626051140096317562942447791208782826509662317044677994856350519544295864324585265261701215372449420924967353797713933936657067659983857868606857079947021407858757353410525643961961507170887899176355212976665039900716700311150089455526452452919956790227479234107333124645997787686138233243227288989694309706621922879532667180217510776767997287225781165472033140152977294093304884597220805416884973998282309954603832522015052082614566949833442090947996665310730699019150695464587628560275060610203073800000874025171034786037141681368414962373883083081783997706173655340362665284964591705350423167154508275842499255961441315835934272403946846846148136589159899167724739376681694869906298338075352597251716735388219696288364795135619655594661741570161673950178219414155309285194653019120135596512562778337053212352117583686133307847574808025679178282855221591692163974707288533372984447214017774449356145914439510939404891804141324375705952114441931203528012137640886842292487486378712258994777264348245507562857519513444528705052101937408056550430702057120978549825720241642965240162429387933850396438035519856482427019673144910651699738933954010196281796762709005459879733187927721686952826373799115523163226060621391040802394404444814182855850473228110791541066010403295581914812194530428249607131052247615725508077826177785426000234190280882451913811246217262030030334191590967777693242404342474481499211629434088226927494129715752052715691215735659675201890133538672521208066535421791820459904165564908390706606277025549144225170961148279192330523678426353802087090268501854184578650375338966848078028708260139215321746053043020866620948378455882685567117704730731813110155209361340376670250953576364708424736284112248271381292590288371112351982367911364801089108157961518988098971231405464618854602373779298276819601131161250324419408343150716694342763874708101301015000471130436229374500411837203837914924319107790461868078986043045908749869006989481641870487284623002913294144905724960172866596361314055393509960600213144125196338419166921363345557944796231112621662404391176015613181466533363869539879026773946710994708017720516920687209582212148556994559097664275170431776606638933447415654115834645675270197113395655117234408867840614622346644656014724901750820899290391885323821678252561844221440543981305700109794902678811352184734422460347703961449768404528087838258023640841070325364407311020055087639722633424929111266527472766463352576734918916877147328940048315588525227237869293778582172169210940412675678929226862688624284994797233127045464552008056644180309130008815159782468368859123791280225825074641157113981617114107827553487711595585831654241708986546845703576974371347060396515189199574855055509420014708131631852916541894135367776482785091812365374027009038622256819855406788428875534236864676894762084424239934688480759242466933664458676556901845077898001770057879784826613063646048904545102372029888205588145790508260114803959935503127597732190292025916284800493612560874426213909003426070425889076488231464668305841023435523114541992861499641710574412171857976365529061460270565162165040912800673956796850842712571589253563790949744480402420248460290903980480048804517409446992052355462394539970434025901203525098208355053186537399355662187693987969759668861214753427328632622860127371543905498294575694698329060667437320124681258823915910744918001201031173114944358883929270496113499792572925529270399465206813920668602810963111695815212033832586220526993456342934697927718050574071859460740997933747743872909698384016501865463881563825840611604798965298572863106655878054804203366895042276333010473496290188503053885215973315319635459129091939866622212918258731689799312993206500786521960913544027275531097478113657322887273748786426267981741552605767583222961725461837154056040620621198069907769727468078646634353417924570196788371281208471769048674748779259298443707449691881532291751018551706165775178954329329226402439298295564355820583594698718918223159325304097448355461138434946589825980206273885150818526125988484324707098766124178429301363724149026064542684103786923221075513292149583896002531790164364571141833073320914775009577221560400410814844047420231202968292148533142404273844935518037490581450802056650619501185614309992655052880789918982410369032459355422064329194897088695311935855905570569229148703945346648365762731704482857967943279929594166901021849983872966104845838405688421292244802028895452996864994881508055684037297791586446553458355259988279215303679076143638279160677157545047102895675893131953772863165830439493553944201247335010289798500446417746484392699223552826490445509319454925881847638139841083315901565901315812473599807355942851988889925288820622835579953059893171676708282622478758078181152362956156121796157851764756993454862542157345161168920406080432505124188634341809752202371528356245017774757217156334897162789249836421037475698634767260293528854159863613237819679565557855136362018208651770928606504082583361539666578842339678197146531479842875548196092935702249434322556110888043172086692154090573548224289214091259447841349415429452566781666522861726326524449402799056071090028243461597055897682884463926769358007858175626510089360988914338120053929856973101817135291874357098544519689944963131903427603226386082011262745740997718570057886717958072803348059116731488416605973958371717941856663151393046660758573673824655058124397943355431482693697234644666965148854940958672991931471207677743660350897950513810332135421023621216127685114413973472608127972052352445977897296421695254162181626514877605100940003414423864991463184866335120354554056625156913634203873746142421154290988011592211557134035307617358908337155334967013004495083729159158504649685284588123130230916064364408985255918147488379016377028893392838365475609170667272188830228644003882504527499344935582611965962578368377174123356820237927774698165003978802177784137837517258239997263120914650027293694643815855909500523940781628933795335947745248746073085304307298584396250137697352691682338545020417396370540855129538563822625702280877175803014650818988898849774727260416943741118677828718218580070439219561826187940191426088905532674553545762265708954760030360053803908456785865199613170002943138082897265941606993679984745183399942276677150409048179813111469334331764493669280896984012595799839694657929054615566312923517470624107699991654127950882803096492533605962597613064875208875892246054125086816980075872675749711771227067503988948632210022283188530385348512167282372830537545391231889504087932758985837601940847631712399735159689824815455469600565502338021137979403355932023085834794049682089973645018159245175713588809123241915838568026579817982898324205233932950987585896951076252790153337985584590580184413560188439803767836590917926259621019509552189944983022179618761043949935055438658763129038325657135880040757340276189429530187585503965543111916555478070979667821059663111776713290619445745689470571605462152034376250721700103029029274302692067413877534960267975732554686896479661277366854411036900313333803254962521829235824341801126629661549222188833018463136341952935051811934798513635778783108743169767398857566775325198295842061081712756042798386628022269783296811509700349322923427870042428125802043333466678660758349048969481183615231918421116548448595254223299015351581008164759607281321108428393658267634624816447820314084005659834553705185335714949487837151150595801819522459391212676118061663268107321242194252501781228286650456202473979161493907722837582558957126030135737886268943445476227491458388440452475250605412900583864311528277805660199948241478868159776588246897073947893709518243944826321971837381174734645698086419714065359548782577533038145118210329237220877836373835182915848802524689905858893162779158983422182192841662675693667493341857983326062573110169907408499946931896048778448604411992847682175593207979609735503252341157136958418363189675572341905721810998118165503094888219749124520765056716079336162774599168383639195654959732333296254829568076200102404350836994587748779158076094958153914222635677651984289337310175629009482955843878790045317948785152062806046992047954897534644819251074750565356635745647620880922068260422047210997809189242222385432562549295037866570277428869875638156251453536280399735004213444943564423969361652023816560751460999570455440340556909543052572485713797914591786798319986875443487201025012086474796812561040833722914386873150320659503112548636609576800654582073778813309415825176263791107338275607714741317356994235737166697052100092126695853183597582012180411810915563567353457134967864737728136828790602623662191356381466986576446854468456724440051316059106280255501208965639189345176861759404619371126392695999414372706702787969795772342772475217712535269506747796537816666210686365615059629354682493412797374452132323211964419740418740312468042039836016792231100922093856280174894191965937631281936793586115230402266274099634799218744567416783355490758928180607292707257505267782312496120959026533588706935426662913205211761362940183119411308132079016944330096610304724649200951218939412362149597550447997887557633661687915546171326381845185137557974821994009701685575783945646942091411616079141800092848534293795183675156152684410315160325631652570852123381289958687847600095101870945380277272965766531084042040259267086770526576376177298210776534605516270417229174896100982618840806250997328855098077144090857649252359268890524889844065043618477796776093875678450212091427518464568821827102778675435383993249252760846626675592715508030847530595513679017181489130108221268329597434590319681604913921968128722356608715672774454507436887786741920475097398321181196441119066291725171244679926925602357550830227661208928950322156669873467087204530411047147208828007189215617189464903116020476982513624150808610154622570677400875226134314369396681324283373191788960127307309913152205889810023875992114418461104327950382854432051791262753107314165340166829863153826399796181973332574959652729434441254029613086336231880257983659206228185696518694085554798211174875275103013930682872979385649656178812228940491331341135350894493320514543234132501933550472868720120737995496070141145732085452474965073533307436844312166477767268544020034410289322503882432016237718001591934359296745006191963840761005784747391268555903118253479292904176590954864922642591012227729234737605855428210377979155567351781344747803358005558033291837160571963908672477581564723874291731241489347012419317487742715810814309661070901370125158630033689439330830327429800028032801689816935267502508497245568964717049108909101663833178168606917023374886763771957469129483033595966183891311068200372992062259017011524175226694225672612886793815606931443779921120521914835887709267636284027686603401185515012903312731018758860112169766217028329023354614160374381457842017642240185690698654795606003874135375120819252377566462008592420561333578055752242124014306927421958302942686613222670954072245361647798010642723646258271109948724183540498349886184558263764727142779434471747893145120435637890479461927383581007403992316697314175323198072609547898620534666532813405846328939285040064310488558789982789592245488075118578373705757694929242098880022121419076543573164443002298102362415519407866975730899395361704799491342768514438941341442908041297005064215862120062296496419401156925335591516079698600919034407588361531908978854496594469374338887703474694269950015929862178939645323854904849823945110527053915439437416524813934581931614451518984804331182532351079193208135802833235042497426760926825114443402467298273945089049526883091432190808746964301551077421232070328895369432948604508822753270892449239889109174326621680883815307237743465299489806547400864909370192771145912772778663363154395551207177374202164642893583303990723638835143493781526016095481756837819755572493760430913593225193755839993306870232619440946225803677607870149550697940094839639571124120141969248431444866904860478369800141674435154211943889683246429069629731140282522651414133397962067970978640366643511910170897641410033073653589231180174390941226103856982714304565965767000834279594144111656752622051900748764779258036809731281820223713768118789299793563764592900389580821458897652494570937152435917423161512476892022091139682472387611557479034598926126982608439513729585889090151726620970080270507867082729020158493254844994459199829161796074858132176996044445292422562728819188420514083551068854148025991384127569110573704610429187156112717380556164823956839824747710259879843648949996625944485370901332434757295527137965768359207577132512751065718202129324242450117106892792106165575122682608145295108621499323014987273789240257929480499405754887082241430283772367839732860848215649109726793859710273181902078440349046091050053277298778041167060689071073525442686243905799935233371029601249415482353277552846493027267486949110446719379488032659394567015279582789125449642468598846735791502333613310633663199355352658218774314629636170991628943472474626664631704837483027104841113152491250406536001862337769238722496616754908106860072893319810830932926114329240039317461698082306157827134728686667203477353768599278579202094487455069129902333324975314109907709874875131973340832493932318667221271522824534549977722961134719447745867421102825552743194785326875332902202084243556878077717717769678479940769106578090804586145384826653200181532299274049520089904755376461608020224052362176141473855511970002479142836730320123789709483584955271888607699320689213447176048013352100973409823850121114961436213537408775834500866885609808797137100880609789844309574621633698045867421075813935295210578890870764644333532220218462261732227644867779852053128559704263110445994510696000224359359232023925475498445624841134050670262498032940742789167100469590920185303908170902356467998400424970620541271858520185892955289352961168101022239650431175735897752514222127020665907225274951193109385512665604489208613939186868750491484953101615913365107823073736264428706058448614216564273808963419602684566366200253431026111392888945613282697662311243984192231863602127999150233562333273691091418294073189783725373887406364570571756287637905611283458623711130580490704722923862415163640426965799708357059017008714583969515968111472171299925643887235942927646314248479797336278556906222225156596853726491371803792409787619327300769349458885468595271956940218052751155209566383297360245515930390637809227488461991142822550534781685181633987349532844761646533194530846787770872250167288570871579877583330709088418038738323510180388139243627937751711272313113876757618395619707504871642282503930120618327709787563989164561402702717162433733512796717792803251943995309880932932612298372938304154205046728439137240586096360241620226362718513905043654208332770447270842215197251872576978314640873342815808938373600161668246025439144597451983644769103332495117482287085197116439865541230425818023027097507961849547752587103386592491792402408834643009067307599925886065397132388360955770323340836276293332744909249486019449240365124474548348665751802533216045013804393615406847779265915164790982418075854745052899226634874256907177029931162447532716879303929493721267815893840268435919618091209137218853722369451424502827541251561350550040369933556383793695647975205989311025314204400547209735282382833594524074894039879444001341118193880968538754019141531932795233407788052723777652963927480005695182708484363689495226312421797325570406908627294649568827777308280691206047360529355381266433205902015044837483875521618429966001519953031683531928164092574640496801350182731938380640299555729902621839492937710591652554968841292089920498127723422224779285634508742708783751117722195917252125068554487680898929588000327059278118348368273948747132299512416867360246569787510420489171185435848000054567658439513504345485477638801705382157857249358858425415086301602234472774611125997861278141773471236102150399740129491479532422380762322127833001214185192896047503002153292828635797777080324951856263989425791768493011234978248477371172232929443693652066275837042046733440462863829511757406909765751135811207639882405140790685876738733022137157981170038594850791589373872267784926379280049746787473026883872324160053344723357925814072613050554682685165340996514033471167686063752478705161063825152375309710646782122279006563508405615414504295609996797599561355984038749736673625582926582079594550264627387250093242152143446047043991451190006318698834946983867285615783242064149423614988227971796060943384983098829854024280028086806711252210344061453488530553439471076569327683312701325854364009699504524616116214424058638485373944075105239862533822037599387382202540502190277847972079540542979042830222028503781598407285160088609343949487796230362006539571126095702689342113087945227804753524338439391744997787644915969838645215444506664867521129477163123294396713779473871235489045246204525934364732950720496700009042465109320936671566960408319363504598096928809613134728856778860366934366387209621408537096926637950660649415747857362357443303515549906381505072210098905723143842591828901647019932508541674402988653407463382936904830171570322300166490787450347127592900111802165976244598496229488488830945437493611883033242961326317405250068021562413264512397378836125262585177364709184453296781016307088752863429398842742025870415797774167968381468573705884035965368917870969196644810033180797997801354430070772043624096330870019689301772454520122997554410761754633158358584257052293548658078646266324488384248957265396320507442687885018467625806383176971811955989071806488529233568396607376097375482926011505641713041970629648617958157639098180423118688349025055687425582819700389553013460557717077117342145549944264853981042771809275327872641242477840839396666334182396927678210052008232320267341409131733388310012483372132699001916168213354726290942795051592367940944573560915526056889510934148994520281143089086743174168116676279722589236203087833833343856343459567101286522026112561316606907649342841926864743581399002224266683343659138019609412376391748555709047477529078194705073169350115981850648981163882279747131675334123538350866016476535908132753499279956544993143660457231524171292806763835264433770469634742831364391181920229415397824739621008190064761345275404288947906992574665353430174352375251950578666979841782422227690092132088781735688025054626947201514969028862650859080133357530276019828371895152246217937386567432051405698607265919309096254331450313418615746598725874524929087568078867399205979066928661448797559280149946868608916235417177585822309311270885588239080190779944537321688897345199387984649572974474922966023032515703471480581439862174214673559415814871012443631499694726686437394837891072333990920335287491592128167346162921017997983378781624112756401541730218660879078452480910619066581105688873629394760673662865262979698300008985760086611138209800597028135864428626214952239221798650671504729430898314794813615172171879956607865261681346575167720274564126340078781398661194865724997653778470078458407008359364536824910266284993059482155198545534826764358330688329800867639704467889038605446764371736712902622015133917045166229324384903647388730699876523353126611599027938642262153359924274884036098009624671120211680634944732536402402385306878705170250774804928042116535931496826998756188098063368321140904034461956986668808104477582682581414105432980732946719604869269055379279626672280482124692612345579259984284587333969592938036889495076587950263576008276373264124146806714578700591965699483880483251575565681769400039306344239053668630495883470419617782019714767681165304777845389908352148970652907068328818566758527544442265579017586434283223016356002569904817446739661805447102741793908974026950686882127554304370242485428346999388884417190036874296693902822541035704487274622316787585855482862106078878642496839314048890575875689408042650125711879191148092781432781922265205224137407241417741558002965430898557523563864782852518582467814651980405917962837901283027779686611844885808670659178466704279638766962883592383988912845390893783323195510542716903589177084829299590008500627718043565687115406874916987387390582282216191870171959789557680929208689139290067232781647699448618337831486110676609776933834842561823825711032432608715507199897624756833581709083260271068317854667682545334916077202243527050507492898439203814095517287187972694320117047820106265833932749898809799869373918863724686690599531996950355042130142214233991130606925751082915311994944418151338118997646358641134613198924650372057340003803720327356031945548878507557774919488077839419549636379784950329450146583189887173627630907598385162614881228236384518641627964830922872720166186488647985991916575459528337162945582661354220181719105410915059802596729075283613246915541879085918862724414722910384603416427504792666586780703146233955182695759397368496517415077058036189875708112060767344191234846292186432855626936983579256293608099803100347167227317938835155584520122100832284243153987837998996434163290682570661496823481875659417719077752965630633663949528453290831139117134224789114594077292946097056981834945445620437114910962028018094472412033652862110564379162279061504542972025549359136046047700435341754847003948021773795043794793093290164247870040756605143778580928981835803763639901982919385253070250741575779110441519655108757120095418652851717884077891567579957603642216662805066999873117506180090333289223701193280785669758730862381612626772138355505553591148005075846596912652731689761362225271792087230164193326062423898948951803694776401102228126631102570894876593882980938497862303715229852224050396611416914990775885783641872299222082618266985034575901523457970370657453949161846354725056451338418332670723596174137149760984110828414773035285780654652054554401776852155151597769623685279462465535464524664346434361659747902427101484423544827060835434546331510296493785707605180603497413133789796556413536665550028332675119173451148527863623878196247866813310798645468081185681700035344092471685886652398815770632842458230520071013695296041700147290037283837478983632687832569918156382185152877047686858179311836471864066597676466703909936679413857542893118693313378500682337682673872901332482212960605708769300155110482329035510109665867391209038441164577824392773904928727293002556536922571624515087438627474257720752400813076615615285441642779925426678848495720454880409554269559758429181898429451803427388893287194500170020854096396647294337046172122423223099317119587183524561957395195500074738201291843730565890688235670238692454536869008511813615774232608922338972281327122565483488542517170404629000077228573907308873942020067528222058652934473290337437787256896297532165202807277833453137432815720199344133470267075935785251871355183915731027914865776544503285402988727199886600829409850720512898273287549654135841004402338509208116565611328945343961782311027894918679901018406447400514820672891987810854761239348081776690485438531897591181840955635673305253200554061409188938697405316097216360217099769480108200060244920207707443881528815442895510416828617509773410085689409434085269500665988565114092364043646774127617166824147225414230867887287890405553413045508701939882477336422729305729153960567332254132748585765329618620143869192424643329705355247792382446664774572393989756694240146923097202806045938141731467277932717236025835177324062710491717226752671629845191543213450493196240084623196916081558976625872602973763123766686191665208888029076436974805930765878886416278778443864714658262099906245511850378907607211669113583556366004062545329326099173961732963349214746651868050918606448533569026320205725033501005005419028937703855483791591977548693371043792895180395067525670337089711427690025158000728430745926985632199760712781410622863346417145805709029950068763685848892010187112842205825489466149626244525392471581271244819076997869750932128818295762656498037884322376139032942811099293336064553141090925293183055267937774436600741085282562129314726072048055398138107498035206381090981739021418977594528739506604205615083110144031501701756300467331437383503712514367178132783581872827469498423132531597016862951140676963189230763559222083649454515667706415598577451346243293309764808180849789264775529930476610123659329706690080853041098514095671309833446719907674198035025418194049228649186569351474263390673958245721743096311965700471854615287127727929480158915329088048752512499642109290554786023556561309756368117190733484139145736397759268081400806793867098597385856310615229091474320417807526981066702774023745801012693179506275561280338245207129396416167792082773399575129629813261285816604350205239309911477243912565394126099761847964924495890727020581031352458291743345941648211868619283841145367468114996209151432300708624552866381104985646072497452892599926866900058838788875829583493564356698109129092202625204766678013801110490192072167825779620799087394101843729096884701080637286853870230639840812750590161117664345432988623632170911016083885210765403459515705600209175921914597228139513359026781343084427994097035205354158968538647224739099736791021736794479092279055571189182542819564579648701568855945244061337410053557093641460701031771403513358089778018477543832268525372064662562656611841546111934133502154230604636077067182997304945415074259998724233553434388140695742542676771677453214404520362262251339384005393841478851478176528770071731293715803022777755385450806678080252930615389566679218679932132130266732178804190812180916707799323577243133692075949833758291897486458976941650989902786171351618874439868730940145712896946291503668591822915004299423055640432622536558845384657473383041849971795286729575508031582754186697156475425292084944262340826436082228013871401197096444044347204522974757470673057295447689638120027332407231642463618595668691039028380213156815684832898389505036973386630135746342698438338300237918579848049668518818449171814241862836307588242349638013272976443404208407414810192308572589982045856714531761898977133203039404933873939302460196515897622797530194263184425810113472451664377479669718687632823747745674878012955298806276667266873479824266474386734340301759188595239823820332202673803591995588012817808918522462702390611990955949953587414972063096555461103795114760929223307201624293795317479126370973844777431432342074354068318823553111550188033948230677130721678674677499754868437383319002698196731093544253475384480009599625866114778159452754353581774158746361190133229371084060329860650901222844751871083893167325787319930595176368272035013918532159903901067537402175289220741085948557060569456547348611535716430170436829822857035904039003295600410497224930318854943052718614764977298001144038145539110346104683044884346540125081798881030046587780870162308352138370579637074991801286532119031222811726692015620997587137701697689444588508354927829043386929545151243111493789177207889029825304165081778149815196006234814570137785610840903239129168000456062867505738632802328372824919296427896067203134134632169555930355118915070438587933753969452774249496835367216376181059886006630593361735511124136624967636239093643922755249420824520482607742716497825050280111943613263414089397930306214463737818024344716579244684305275606334020958879565657447658226687399553942467319219258642315206846651487178102422984714704791817240347422632502473135524200727192001845014610266523583633075552486362817955691437635667978837166786176244817900112153473259586259812683686007523117809015544500607190315739936682837870287809750401297824804622008856957145275929512975283200077627839039635076755438568475868965711152229195581939977928549894794599890962801062158064756675949487234265638282264671409736860318495420688400074968080416265156101742657796043825483966089179173157174924666245475790525020147813409386019200662546794674221248946992349273732329246946700625141622368968520234197002854479686306765602559843962071928053339140150277400338032575889642519278202543973752182637086301976738541027372757824309253468354320501851754607240204326739426598581888067912257130068522374861187173411116961335069333311472886494294550257164343781400027196644084491758906337424789391987497867670219341865036723831156549226067460193688077014970445498016409022133365534059810123235626498861914048027552426015888995407896236130778145900177906051739662506686540278514495678824733530203743704120643255566261143999697899596351348307882221473517515910355290560590450424362009600755187233334851326136535382455817264317779806154577053243606453451828584223121065636563344545887708203978502366202431243901950183727906016040108770051871032476834942323563083684079423651620777351705103071192063293196384571953986888319843602276774538592075748120170997757211366267729795980004603528563127670375843445637809569726933567338394845488223103915628916255743662346016520002036556087442985230309302527941094977539295525996495340714886823155657569031890459881262543169401059904302634625887254588850708755623451074173806774438313833866851760020206093543995857786999008830096071946205810402335623570460235445279663350077146243014831916600034212401572336209886365151627670031941174411099971730463364995905014557410791546939968655584242550087764597785414375644222248421342411583023845328348121258104443105728366050882452456461421898586894617761138356299778504137160152044204120890404831914076574059580377766033721265755439609681034570121364772230789053084176294443988722393319388576142063996899718785161714865749675847465289749796266862056872048811657424956394925274653594552897047845638870467896552142038105801671196779509516113396846447709259530258707517768550114683583455905104978035818104495713929483961795141527177732765750306763280873105240977791915629007056816401327722704360605752366324600027882537061430561866036706335325571768401042122021985837898787244339152347475226608329303891190352242697825175235661906909835663888667194055645044742036771635440237950464676652442820535358177285977984221328650161093219556821664146643445327291674958801035243440095289935796304120676005328357685638594033398457247206732473747908715252052176348070665438924808261366183530100737071322665139412378963517867969194999600580359611532399159873653073988502409847380759617951473121332966616227138869530722738507315537837988820813037543695957484359303898432066149562504000934975618539369155202971143704424605722560993628292417990831040455001657378845307426721734209785652536017525339391150016122281021944341569562044324569570977899911448589261052990704368223580779024344902144304411464984995462154969527163856624763321558211685705387635178224208837236608699982778691961271481541849636704859433918456306522381101458622292391101299024946745699118659206714944431601650139444915074437984927898475879913893465444066375590970842146461769397361636664678617318113241585374413814954232062317935665543960260822005643016840382259378207216724710639428917921150999831062768677715109441603528923248766111573201772207754769711519591676679916029817238868277865876214711917593295115641951620627394125413531766685743642626791979633998549747448331527894948642365762157938363048704354518885603295627475721959908998388361165578379007073681760754450029447933335193453250322182240414118723894041369673576357181765269679309444103777855679965013091402605681082286239008145711372164996664334703576872701087627858372145510480672862801480868853762050508237007899136297680332953457438941519807253607990170859015361119256922497046252769292078014921142517708592927251337588006646984720869150427195904366926806511718979095946430207398508163281964519586028030759878365739930623610421500387825266255996777892382952178607747811809017460341929287030867360093772138486746539445193866646049090792758977223954820189751317447267245777631408616169120612921651704336094891310698562722474129755352808731647384059490640177930941393410197982540607881067328245626787571010037737772701308936027732835100733176344677417684491532522374197793145501773343034701981194770210941578772507987327893589794945338751669255476338223442309930646624224971852911620599649934089311582422901805302135745355033779246624624744377749918111197328539561460350843660266221196263370401131022400493400202022633971681299868820190233287850044675519633667558413816851826344528662191296068706415917596067345251288502054838423664443036887300848764745151266832490587453842369499401271684023394841689502145909766888449311314868453509283899169176936721551938364381890353070762322070882196593095710522320422310997775661660529692438493273050240522292060271811866630273046218364278458108086829348724468226011761497480317131748201723938369930875262173944197744076739424607797137023573257134907187591227365530449373230949164703075847998536988240544900882613585229984950266426013485410805710744143830490561557665162320878601170262119306525587441829231250404361287141512328708905345185754081071210525766954093223055055753274758333442677773455381916824279154351284071692315146294292399579513042185405392598496972183817420378921375032309237006927222586136487349248855027310861862647663163513697054820873549935677423615032660493547683949102352920793440184424865487679137357364760314705209256048111654280630474921712192015786140642253490653618515996102821510446560474095177686331094345226639711008684564582567823178667794609771763037479222089646026341530845703971560423678763885253458456695737038256793403822630998637290986275739801958409303596761102589703437629688863735483979195797304073280319909024814889536544509591561943723846121205029652993493334907702677781231149417564192873931314661853733971229372453939192688339149102912708753212680828792609411037773145318455365323835766549714305842621815891939918240902663626688609323823159928247300815382299191494371619642989138120019856785359842267181539850368376045799741071917069834555346941494299378605766026116242994031213827012177744251106761722464684679995023378502438538930717288007786444451756067451281969293250935077034080132335975229610586961568551081085707048018207212091544480345183338758485459461259576866013939897439203308744449745663837623897802235320723825760632974361638434456090793236050193032150727904847621150926209457104922844915786803775330024536282172215166148618836130467206610208125137108694287516014412486146037311117074237590265177942901236904664701307003734757149802779331537735126150084415743908143894573640769510173434234161162825925654848389789637087985360354811931919786980022969528282481701840671124223099766269604447716115006044236328470079008847411340218934916333503116673753983065551135951030263693114132245138681361875337781139331171131514956083698043428862751920625241376089516157192211312502630543697609486066267972275099586549568568702022528706416055201859195627919490170834244368970835944852590557091584369244634956175044105397777832867879015483270103326096031820026324572881381259658703219672821365059951471547581778928232492448475698349192582691609703431228886785018436588573658291677133540428512749840209300219440660175743972993435462325564487194117624870403238599967195799824281101131035314477985014247257258362024165058670427276709306753442582031229142619047251287337611577752396139240621039214476133792991583542212313816180350702278308110481481326274706127276872786728265190816811142625753026664357539505296570954041849794648215104863295369559413089193177497285617051068044757433192487653147647263226350777167044644761415979919466375844871845021154603174696119977579529149578295111254926110568578867496707640401808976783574578376668433712918600641616577925210506037924724310836786815915233189574719558297449816742879077614637617188011710383093116717812757898106775780905038743830144714445288303570012884664703310826479610605604579142826650836276939207797332062895415967437413295217109058153135274550721974807062548450837685615832965248414063743960162079074160097262662064866724596038492219409413708099182484554923395589923398989630370121947190898995620721491840095478841351654977384752709092724999201339819459702406523794599149787942980140891017388195285111589389036115858761028027957926589543498838719373196013941213680629931274426768469054736365126037234369443685407869535328224735615104343638982725196185009378006037209208227327620501489594651984845901345662329476788354322444357946772662765024861393512914936256265515938439289897243118453095849237928670549094812200266745507126613638169974205954589696693885698323225290018274230396488103075878046692622524570234067018371364463937017793991976905637806753508719242596408414656803442077143783218067204056524397324128322439727429498951777934349453177706370928401639081242558912342438903190615842633051047492974617060466386515390671223660420949376286429115064791113944511980791930288610839374578530212652330196420266868023532191685526792300699520142488685760253606198569973784386290556228997994553632448706388253205644082368296490840068016346959927954202767908822658218891944934835653095799656713413764345265041567765028741982671185742688141686623879382427549561167650787786311843623213566338226252177495913812555866245053825095746489144731531710817336246300725699829114267043317130081239398225545861615837670756800567787385768643691136161502713660618878322584188556791779443489560871022007145859216140680097983212817762895059635759926047302318346149853715519317341742257820681134260065307676715425872086253246275647964908396320431555958130825651169725085585921321779040898144250221154272206937861170237420351347172374370584828248142235578404918248507809605654606810800740255817651355116502608688636404409986701074292063413400763620169323198220872008848097860485771528676038312924702488278335164101181380225752628199373455859823802002088977760577908790869512225388725605511486783682144259481413283603668024995870235595340793404036570966681881296633240825770936919275763580453156700080626726682605505991132471750756002450318200143401966018583961974772919477848841796639857761304343892737503276985941485563248666061898311476539266212244205472803138430341653240354885005888392758050423674676557339509616066300041794517107990705851397887525309869666599426003587513622383409046570548268934465645223764196679766142925136809809681075003288655151009478371533770528929052297465896580901384583463147392496077604660185059886749474962031131020723489004829619833958632684094712901767003715988881489528810897667770216620605548359403877433484687719323469038203873843304481886231253046673750438645999047527573765467976507623681769573920725746090156653523441347581289171023591400943972553968396549577916994013430507883376141506338962342120892244238746966796734295157747423990443666106068069465095701307215051426881859413607848691828838561567574120040400488473491954474996778279458550429743205135199269196043358022720133271930648982245280183235145694376835357175295388473338582553280160463068377950237961514260922494583638951325152861695364273799591550986636355520376623157730980301191880443800569660944131735554815904629390606219196636498776061504605980461955325357579874066170189594488184468134227553357466930208193681917500606927633391087726526470757041164000331542760648562542602141092059356207513855454313207065466126493264691252031644953865800309951477534865241279069102819226712900051248383081266234819569597985362525744347043306094415481215498412293564824979874010661124660552827362512227530232702374359049869126558180063593318918791120917168523991406815585034918052344670772341290432948018182999557917176991973025235249034521613216154769931121759883748686491175821705847480769135472852272372665338453661526385007559163864993918307248226993579967111705616240801820625242204689097888584703112385972699232506575467598542808207228251267011985671483457824636822833623930396346148996642650664154143228961434820612617553935726318145890727621167563972998545827738020676883168504239495094642812507049918817957116363933473316612394422130011578785096973598110324094787868739396212320773910328875605701561959842705052042811592842080162298228429067948950222750580097145939667946775986507985017542222984858317371105019012923689954768091475472835263341909821417570803779387942413804503797405394764284963798176879942319954382130343812366441868869834220792718722345343797974096116044872264849683556393299945558004091247227076757048689359317179439677244221494781778886907012245387162518302790852156553824642892474186190340721553423104126145757924213755837186471401479481500025251323404639089344690123894378399227026155627574151547730080834699290949375748851966201397019521357255117698486506164109435656666845484920789356759022921217492330391850634367590006254820103526465246822950422803247491945581089455579262572240130090937741921304305430647271658953110541772390357712349713940354457210292856252119181800985774507455704992730133171288231500098012921485258958835038428237373676320290939216346112234558598223229910686934424071339993360087685914147545910529786288692827047983674065326083416701286953895899505620183623480277566680245555722660770112501096336450973273208584918679777256642954598890112623682750998258280918361224257765282982585470671340836921055302104577552657557166596057682412436412593699038435812282369848880363594945666386547965128072756710126094384508901005134625356882115153500914414614983575212310110050487358885509589072293597479674370892122813354622523206168733366667270482418193732879297041240842474605367617670999024176267085316815122272525595944882458316246652313425250720898289014344813357628928956394778107315585474231348321833578079055296616175937480908331526084130859997624364589405581210869517000911325822584423241458164836347490218171238026362599820371577665800491512624778954522398578533119720246671419147230948394981049082289828774102495397287234785312919767843235066038242811263259101322059631946681940672521898797579888550246780692884812617696951717975338716454841123254459405262017898337019230500763424342292861943654960761020361465840077420860378811387701150025207225850258757003061664638994516123823524840654905992334247399260668236356442672810273875835085821506339192867122191404613531409875737207206090940340613087698761410705636684170334876169727224011838572628847614780371008259333370082953691336441355308064286391852015297598553979622701324322322382185510344595187232429866450995572654307955858590058220652204891119393214366139492471213706726542080254445018905900748758627771746456672013314604597372859382651691329125610226182627764154612671395042032139702938393332918159225557789037297973987710592186139735671547123015641707774873948645920218675862251073060284266572798943388407554558717407816165885016165490120977917722138625755650657283002176193318563488884221307291519378577764938382962122188120445927391221267760845209987795112629301590199046557442640510624275779628969424654617327078851337446457156265692495281510854545646083166168220343692302331663371979285836490292105531556452464719776253268558401242032384518952263045198031937872839105369502046870684964575466778139572862831648705888998970763257932771517111769509867881526301103525950807718991161229716072561259795491053214984967790389921847143905764879968652815714509883386710393734326020648375166752138633300505161496672261103347516066024359671067191439074543056426847154228726715384180119356305657975366551238180498155130193373205316501665562666329033558388683993641820995677877720058072633456578111594798378226619468977350915029780524257193983667777802740259783232172604799204311053885679468902040736483312934778013866778282364557319396681398588293974593775232403485530211174036297753594905800005230719574818809958258964439062426494436674640420174383277999456109517055840207757893982011055889421538595120677535341884078471596924227363397997850397631460965721658529002150482274473672989143813089007399173885367753465712212531725391078287308166820293230327291492830399593231001734128011165005948036850719568513636202291557502336214652218776887599089815830665346709335815748577130961098301857793281913513619673739636930982928099971238381741758997379354802641183918711341973770498483689647734029849704966831399784403793278618588553895529409717470148703265081991475689735696345583250427498233932160619983598537742727266313028331395638022933613132391991230027313568117478553532310265084364477773170557753236968882219894690525415270580920611024874359057245404422829148629902386434727058165813811392358599361143746019513751821262777579054792208879120017236569047994977834265812338680234995814605706231655452150498759381724400383709137496842224635825190890224800895515405372232674547956078904238392403382484926461715801074409577771090146670171054928947340308029529935477984855418274432865844256690649981197435030721265028971662959817412076076795313670564242416778304656557569141977274204452832148765900891595691101510172119368245408506877944312082452821040203444169242253119967340324710069566763933682342952487349349429688222524582012983575490399167528581734769153256209184366233558961940827875010265156844516064733320778986893599644732574863813205455111528651604346885733750977942005496712744023751354373881373216643016605070123663554678557441705395639838759103613979381804171999246461015875785415909203429740912618822396639966698070683430084463549801525457636666193471831728910390835309729348334534592992924673920535016611966310095282734535408152858858552577840307765194339079694466648509199317930015717722611646794279462025127918662133684624249032050203005794799504933660626140240563920559013785808281579985387264554995763429869767389917741580353791947250595717134586260767685061186878245860821622872335491123828092674578625557293344309816061079629362233187369771634238635929857677649332882865323007104333437743199709043790438165082234714210798885763495127001861281957864997864854331556396477974460808095928528662279664040214819521320386483955633803467133600794602574123311197748280211471749834080921856675658665927616402827236786231036593581888851092605022511720949091661092876599703433042506850585397825712219213800610511262199388805290513160500620121380764745478638904656651816939491758166512821478538928568223561593845378611818845589087117014643302021673741626306110939334540162907662176903494170620838164484162294031054706040182779201052992070314396305455192419620836109114221989324900670121645489567268785543914868001510586725038090613118261818666866318802626843326964969202703885762999733937339964357026403938952556632716646509755727907935435435895418666292575465187068104739921783500221079183996882571744004792853982553798317086238064640949356196680735077557624707600881780455736797126049108155539055354289953830179321763574757102006787338574352340163045284206973589136990546974443386882115356419013677409123508912915900473764409439701160534001205074738433430863009214512821344721542777743826913047021875612852844050437287335991207404278971402068256962133777660741848801068604793198904031932483837753887477900930852820121500083717464584369124112181121611798662923127960018932806720576153344526019096046913377367077187757181263507185097760132901857149811240714606540835420898206345901379255812865333707053185466935571623573058402300118567602803930389705179890414683835113513905393564580259255600909092013750164201794060059739547007632750123073849966434354777048744842821800301193516518226196581002339032153827014521093910350482656736485419932196539336087238896885888576724456696579494225312687972721975980180703595733878471904802757270505934167772022616476407283449566615808986428884639572621612874178209329723814902007299756050253973764945720614825535467362145641713057306562443323549026045761124992717886273348403485604441097055020267523558990075336570437320570202877938030995245607684198488074395592714231175112760982300777195754083556803532144465063212782946746149185490644994756815334964077937830055028570307643309646200206590146166732710890126902697192110044491454742217278496875982227955785535714716543867040062685271500850184505851746930675283487437355009049264736524841326689022588272955394685916742089610633110044556321248893763174149934421801862932045092178416164569326009090794212089042701905936807244874437863179585935248243377739176008436781504062659664787400195897622741285652298440705969088027384723000742653849536650583826505567878214218772145505446189208927628777883383183093077899912451681997966663974074626974005014522670338299055839586375806613860264267913417296085852551671001972229724872974973376454115786656214795458608025935073692933200860210552526455966248285879403142080715851858059036057139238429098164706390533724824134660587397605391669341877191948078677354776744190818381856651496581724998650337431703748598639929596247711964969152050503472565236156994570914491796829919425243372643738303492205247914878159679297611850156279321426540619985008319907804430664111342545197093396234457716172113080283906259938322444161164937768320453941179545607801294722066081153836750900947261960710225188839970917188391405649797220951150885110590617733701785390474386980499901102307708945696662392698051247205622557359748339951700819457957467074370202413088519910737137705312885032537716948941717568453953577051441104362656178897229909702008911804090945716556219190490029577491106778719902182911859453931180729654456274742722639791966104788655651306728345165492354512385530946139770936726946783396006881609959258118921989525471071740824515232733918812770734398100180362490543293950947893134100373217298204174383749279229164280201525490328694925961059919285854554131912751752970299065974440623583269003070071605722584218150498071868227690743545925747539766582986377232386818402107558401470091564765806528139029693765946093132266452015304252321851232012502232423279242601675526856423124708770238098072908205859162087664823626887385630176083249117746072450283501548970306116495995728171518545091384381775912394651441393176054078310101148090818578231938682951311142477817050164734938241809011698701467565396728811838423536710528496831507597672284273388311254946564327853403766320127980688929579677338283862277567546009990898201566088806555991349428539013094258591568947752670325602169531789995584204439183935162041042400170532902308768002215628396618358982854038731121326653271188461409016990206095476828713220883138582219428726941683077776758618806346527470100581310649938986051999777419618128240841196422046661717385630250499811320420956828127047031721570535040680537487250185268748055710895295491930183250684824470714850135197847682444322018269906784190829466756692468478847794781223710480964054021833243886940158448919213108543842866081482862219505585485545925219587584823238370303622964135719353782522441519017199414561380731036779850803214541648165118505313328892063015870780875840172531136810389584202366034587522558544878196834342681576646974997158875583773600322950761929892115021903688547548292858873874666196492448766223773274479642300959133051999444820565756471066551472275478888590966928180032784536418784743221190524792353123285826383925885755133285154913294535148341561680485263688852859093438132706201140249744294313657251670260214328315720819968241499857227409364643044793925648471641607486413768705799744046072702684066804392481348152252390834290784879364736320368844844725017365404939046476474433387211081686030321862104940283866501504441592040369179663891595607830747772624131788401316617767897339413425029893216655246046588502669609439833147230477081347147896999499366677895155070617683572511512662901894789265504172154744666529969862723921244029824934081600761971710109060047222256753366978668991667004823255017166548607073508543680070682727796702880528279239617936205750613835413666336444499822950161535737430349584232743415811792250360703572006834260459014657527175401610274943508128668037403434150268742738676362560189625797813116975124903455237066440564739904361552580925242236386784764262863036340045417254025368861004394901509220337162898548314621364872862093630668155197136130080763004636887868089864864888676228594934591007515868641334479993996028599418827564534200911761022125952395524844357970871443510479712003053789536173126324979097765763118490208454249473677335090339522731826596064020068631778031532423333220737568370787018508069039941639730395986770294070814425862881817820511085157997152333793861880084620375853455717610377963581384668678045050809941212015491180172898443220009156296319621302701199198845960131598066551991303065953454979755672335449868253099032657550517065350558479546367998914716565189918366833065573965301804269120771610190451247529983980626580013275395792848999495911855592599147017707646736609114152014858035592108305411671414830880696252913898081289548868043769780064265274993656328152507535373134274767441963899193337541445365584012329074079024194822701828186839944540778772443178837329056315036894821225972396104175928916565524402616134907451767810417958068443792982547637207620848305445808021451030262550943226119708113635736203125185348274317017521940741820956787061245049981493901479091988870141826701626879772575303848167484044825405825558474359002749095147909309759157693523919216729792511243444504626092952241991153744948574813547125672694511480307757653925368297604125831945803366919016324571450141151101916780603369883562550224971092868482180671103593206208455833355614589999211874939232668245739563947764729575199166328363884151928236787778998370435264911017005536328671999834240672175523743262603750319124637830156791147210766751130072098718629735316510924513471412122021083437587741406497764685352405335562750657096818236809247684964981273915818091693195177241576965429202883545558277064983323122307965865379957482023752947141407288909633534245885298773083394112899636794250646308338509251375398878392765945937273799831381494441505047926016732896193630041631894735861249363537794001620160805160496264000592913570113631712091574663548897193479367464584443198579327692737875667074570157824712885271571481841296702443279049904172441381863664771618965019282252479327252259903404202720325756620948654054665905081929180791103338258863101999411964737341707162733355145371834051327486474172641289181748992011491885678120466665960805879242566786121973614635110622944519780643754759074037963152783214470379654618021758564577756097269630079190806803740251546611372051436193610567396373316560854320652784695801410945436409115010560390051656584222135352554242034540139206419485811946651482645282044670091958366579824469594208219674285397107733420768596990824869633286416183872119981125617503472388980846239121805196085600163822212329362638501676371948293290236871946682452330676457880405725661647249803236533820255781300232622945479070203063233738332329488035695250252555588390327464153369879562998979346739685164031651182594215815082510302764639520424640002465297598001792816853213655318719902829001728346799977836862666736543338881360697997090597094439285470732620061405949572264409641229822080490730487609863816053100187460213805647792351974251780710339587091927877315662843111172169278121567564162210445661110580617627078918405816422523630398999707977188048031807353265767985491659208921456168748716535286301506295384763069871007973588716896634214021118870573237806045422582423831467902882790300727166923096618932474314218605079925562962675519034141433697608164037002356303388861435409857567518308188527188824564727538644200752132365676948349979721683280665165001692940630114279298108607739775659745379563214729196243413339060762115127243673735675884773081306446373673010546916769121376745311489835728456847528116113906155457063174607567953933757794107733484808034512315775777250236569561557918784184803933633467987104561044949287090282600731594927098165715229080912327757640478010403602353297827448074993326873837018474385932574051132360459475552476167489167202094330503906119944114757156421395156109439775562427390910106245833098842024824046305250149741033246663145933622916971746425289435342085052176432681733799518084973024821794317971227791850377136804021947609356673235428897733127221500304946515875255658585168690826189984078408819996300850142748568290657069092620881051968126512086202954509057222187861370231878995935898401927220376181903610984753979420951164253525792193658841307444113734455532019570018524174499324132896097197940517661478947546702641962667923612039096707634236238532846346590310810902813244600476328892706243686498699704127371717440147189904762039100880471498792615700401134057284115816356090754005747388422481688471521402835460382181489428033949135218121970967409943784652779280512186823002460632335474311655385975844860733802724571938927783929563546902064288587418645352453787725351199929754744498130477435566783332246516819791657933497850982563250363225205726430023858009799096977587209084023600135077556010715570188163288823852937636314243916025453967407025408121901225102138960570868480613443144630226468606522848558537291836860310369360035327548224770527975073585575071147184954724938943563257476477015604224464997212919978314458949954769719935401975249111149623245635654859708621623210427953099223757077466340917797371691234423695240752940636270464359702218704197044170332189063506190200357587424172100214006855226609427561438905322275626800906810873125001376781612360193252874701896947968376039926515818418117286890926893617971505062457811895185897042994500086451448625636985645983630364672537514045907065783156516933621861551306925060063490868003947694350491386327691601804592291117694141757980438957737045681870630948637929430621317755028781496203626462146597505053535838111488772535243193849060532458101319888845152615560576144674584641750638154653908385373357580726554067480951657545474683382299608780456393492929146188243855586494346641123843217557958052744352437322433478684681216253147464478646462584879028663496337173459441642486014009085288746820829179699239776367395883985280139381367813085073293911242151079463425126721745277340821168204189095685006682424693381428890665716729360712758744388174401593810430836947851523779769690572731571824137917866890426367844379249158142475071065118374733666459757369180441875026167557448404323421657013427842470197375496386320448557005925673845837624472446282932672245905906056348311538762146511052274971097861237087307762955500893980179100766139008286130711457954735184240766440627883003331751843936690890875021054593752871869132462890770055289778949661200370400693776749745096750308101396370142490675015828079476335472306833755259148968464959079596417321307179289964754651664189678548211191145226772096440978302535091532468156066601901187176131698151756608394705848592449662401661988525890778464670239558265260952282401523753864946363925659326368895064970416344400888611700121812194315132577022694539399042632290212941160345502887200913612034659006747630786680980941586886332013712297249688461081411313539080756372502497781606530937986844258909884394338794139069935453634154413223576574436668997575125440755571258905127062878566716218941539302616847581945854999068949340550925017579524269502049508135569635514366211335884222573267996089005141881009778794795321527393798318898627444828341122947399597120983227078955870691927000828123531537746611626501023814836262584193503780737554246996299057609949909695020156037789766623495869143771917701051797227400359846982522538228725413444086408443024503121345287693434172925425072092694231287039841640974746660564374555081252385863555984400786846030299564696893444883644301768181025021130091441912898795382324808859038171134368220166575681750392022534408515075418994570719972925276030160713141519150027472772147862480711075497445798700265849740640101079583828928993268072873621451940608008976075488589330025670223342840180668914724359416991841946794530300085411321420178527656914916696532538448800911249201685988344638013184854564727815209943846348842955338371771114159007518202262565643767587704305112886100418573952815169342895336471503418571709699834809452357086048988016884232099308211944206539348143693672131714026171049967124438184250175986474717784857064708342339247530780371424946829966417153232570584051509364137948723152339066373165677760086849233324441334505559130120250805967196653063441290835087151216807472289638799127433728722640812722753543595951517044862334699260728009551107348566499488274104782011703163278419426723083647172833507048621186611810637238049533668593927484471822002276317599350508287447498341585471697467817951438305969217539581232396863483915028115045985119358144056859707346321508532347679234150170372840533586845777119032508108714043740441257176013677117289169438026664044893865258969812345110660030218480460839351446042392364657076580428152899754841246237632841262853462975696155789364131733535662060867212507237843373973905828049569979118868796558265441964066076477043327332770115597609298274015220902859926618040949268206678327800915768040544581883820004655055626856189682813566322528598752973987294072389502485704012593898583631290468570352277122021595898858404145458745239815350356728935807270355555419967306364101466629955088460354906055905835593407521292522356096188311904365711773058343622209498962707470728208077171503255871193559604648939293427874689632360602547888069166045201047008440979208817522764701054086145450959661017520642667310712586030279158763922982233789559224789938111959088472806861970167413623464850711627328809120665747994034521583306251304359436785534294908118788871919851316148533285296366979863715733593360596981835140496813625985635202614989981977241589316750951764179207111429661778332867243293698545076619363162728252799571771784306054110222297449009114472159886227274733230684458391912386041369400387400356935845949340559051496060497545082641102452357724236895524826015033689628845404926469955447624578770771284770168576396619233558303399346693097117906980232856018962239437972209857396874941554701415258097238359430046520792624075482766005831006615720311900864142401214494181898560126121953821976397264148359594540919958165471600021229358179268637469440754934889278809916704950066501142111980711720150535285666063429846609465852682955986258118419307737360846823495338496845059762647492261616061219763511009195400073382475770396010172767273521659948802925605545866679329130209878360795919376608983423937709315913458773919951706233751495539366358188549410220413148725470582584872636187786981930538584724402411843996579194007174566450596393510667517756682170219904838472813132735423665938320000241554198283918401487182648875028723723228927169016246422257141339263575783719006768060953613116434058588645139945405194149212260934015968675011987232370419722567629727513912778837199874140569504195256627877625590701592898698505714126656699276534112277465276638656963135220583670327181323342877229628448041652305596024111995542449041423208688168681368957103870972939149011827273699724064211556731084113553522681608235442685439741095112362118652516806634723495083964978582023223228008608422268380985646423636336574056413958961963965100645887349675214620258775604503744372809074204928277036417109524214559293379660456187549153782750251241550803563102806416009344928403513043876108482330387415197310865496427584422694106551735769778922297660588827802737481894113980685106032618994699776270679400079793304513690105453079528186400515569778175264810764615011530531068903716183784780853750809809455113022641152377795823993458072912191656278368127245612563107554952437580868982117157494035223023168146769598694364115026764946153971444954383929433554579598234803613412744654046523788525085188429149358006587805406464273544654959658586954621653575469373089496501701258794633412739384761612357309632015392134905033393114976828820507236930282231365127421320296622201691379493225007447722314632369731447663718132156982562614453431138102255008473521097783283185909693165778212894449978255631685071131276549843920336426831782321219889626759703686807580539754066563444109384052039135615155612020251048626554498949972098761633101844022340959076338803384256628722096671068245561304879835828961269730981797129747479917244407911105532517918122138328098525130806417627071855867030246029750520228878702933727714206924878394530668065213301994139109764027960877317360845739321785998779946670742966352573424644829858871049981632932248403638949232527108930359142293938999870437803811536078259091183328642722108355681220872847889723458496376201410180061434222548267384278475940068320300381564673266080694624876375715895079398888754863082143929220311861983783597401603334648321171710534281879804198949907376713802759529919337108993686376156359802587081672077100610689301625199065436288036163270943396494093529155159277423074441849597599014618776787373065852970004934618429568596822051004532326142617208750363938811581336981338969355032789520059730569558927886181307174331611900960073996814690256473147041937653519104829466471347320689963859842078993035637587622370114695608296937908600223914092195994536436661767293806550547126194146773947499998766245363246560329962679035050312508898247015596315813060170840336347741430965796219704493292567051041850516440284645190826283631475719069782895471917395183017112757435106473282739094498459967511912112705932336144305995309719138366872792836853390758867345611257419660198119329283557180374590320196729214758810106414206559276196925408583022434959012899422938355531682626110454445218549715812045227314044695802332445845708276182971101898941551738476018234858510961053470157619085360284764589888461113699597315571769079247906739526494908054293024335413427250032211558852801987078153550850166018314819116323733253154671043547977169924086206235976190697742529233911212185993420316574747286833025785598721237012585080301533308337006896205740749041351171230303821316356063946464839905860107073838542439399171440607017664429683885714650375624843380193532302311364929036009765007253016589255446974499096500274425694726642592262853154356409479019368800852477016216737140896739804872496632994168799959391526130635611724645480264125588537588966306511105911550853792477931096364934535347474548517257693092134980687157876899900632812579579888004019410601602316123041571127708879713120287720830373501657240342175508261225754831075568458864062706392190005654822724163371673872112219103929770723897293226650476780296129216381625941788574519951365335831482866721950239017023554620995292706796791495440476089597665808716415920945934471322729026503891487540827513732037447742014322939913068107711107452333984493587373628834806533263686974331980749926525980340914866170840573198767429927858972192909082190676251619614823352119732824556453267424852238998005101510538778029650437404250623648408706512139361087847909085637565499340935951771559070506339819937938662504681416820326002250858269481280457059521755097415722387553972006988439036132197761053875532874173417405215013227919963569159559729210357989480401445160853781588330062268562997749830948824149815301653435299486338034412002872240896410740787148616814339446695221799932514288073628412101593209974244911484177513117256037694060661612289312029467319008619671421033138601886077375340693104430815623128536230531743492907220730147840067628904196298766705363098025998861033508242770309395006863513012454456835038083521465776630247754519621617091272790591493469632272825822974713255359205715663374177976154509352373088119106461987027160254043244050825333609043723038346275619349676722904909653732541252913028414155972792670358024287726917779528200275613269982640464686591177387862635332647874720224077960879534780354333186407987412615232251788800662249700053895293340161384745089788121282046532630045159456686439501247235468813571269860492309703682804087860969708955759945220100781133274569668696404476184776504244730035978274905225456688665306995686654407451990860752186281049426950030914421188783453418732022916552348282510995726356409907147836825620460958735189475551440300559136034344106347653023187812115862575778773209049067852773337414079184652094288487402936973606896176232591563198498350599330126027664830346406677991559762006090827541405641310264697043813448641381093441978374983549459550285605477079991248017125747608579470766674370389079506208441922905322461955202361760683353287736331371906086144108600354992270945072396077790384816965194302970802573450778689085809444273126699457480507993240288663315676432642398967476284532720364861155788648156858144454219027312781639094792189047689866069068302838711573452025674937807468589080867266900468470197540951927669490461298593408105841102882610305923547235874002326817214147237288782554045441684187113587905580433383078530134644961778547847771834005970186482391545479264572258612180945893429503840027565612102950126801005853686523525228368240746567975027150980591242665181802051437303454890468888835806846311136748724823678761951543394216299631783924549596976155631282238808433396873054899548253178342386467432469279285047404518280739194448692654555879406037211555063424217253707479635378398918141837595722038936616578614144701574314684365970709923297517785650509613510711492603314015527565643541761991584595956495903163824370314509972863825216813944120561888695441308148828673165069143834759738726279961976363184681170990059968432582649643513451177105792195102535070990982326547443614308391859619506845022200938093164934216892118328988963251299669433959671565158560550764894449336034473729205618713001227172621109595097112276781850528948762497782385939030359896208425650196576801236663018491067120602750707900441995907483973251719159266054359503362416923662544621834029128256240929248236773471727232318379455097000414320697118265497848440732757765496039727345179283701485495555283749577800532328961227234668767440540840438711603294000926159700140620896122516623685982422408415371347244714094686967679873604715384028205347923065535162001545774154057827301696299827370463456828218044964266832531416715012100979234613510728781198077743991950990280976129409022300208080017974331911225507803828318569948282526497713813334809639715893425741293572109966321467787831077463723140395546028140967741274248902528559670343128363056022028169661567267309518314729945294899850756503407649310691727727244006887578542225730121584988783044002962557373835657769555444143986258233962774363861744333302431329694958391470579063170412662361897875055754031162092604187897507292711557591453929712840157123281342879565479776022686615374394347945679271142741882330070821692765414723512238661713167115101822624226004018962383137174661361597818353837367929526581259075109413098314214657447582565987410868833071198053152753076468658585146365056177743888542336309086406487285471333771743843783786092877240044653547066823908429127057686411204003755472234517268629443550617005411344974740442688752415041080265695111811951610656483986542010191997247388470172700307864605235669327215122347277368587043770481149537515744864401162303385711112243081304665500377933059033727807346095297001961864840944048040702713575099847749564378706257001715650403238670665259087201103371504725032237664826311704736334411745410848030582363270344896359476580698523096934403333068470633726000142915024768612720071404997920857458380022413593856929425729067652649274382344819123374218554746152861440335112493387349007253240541874766881045188246479150693730264168621343882383259048070700321786467785786572611475320230770006588590329793286434829181914743722128936382984149042784118572484247840094840048869584558540273327141477431050103025748408668525654426154020625471205200882733789170332152564531809666314730975751667335038630543618361391271923409382423216426066514103453656070036498710172756349229703298554371237867402543011606493293285368260761201097116919928177735094873988588370803380229668164834633060821104716574196564360105458821509522411132558248872726763137973184334148422090461777967062676127249463665734371510917203355790083745920247726533287024639690863079099490027644373329677199793652020930629285909086825153650116482610011382220173399069583773655255294823334920258941438757759215104867825139659743847248111056636706212466552144624965842049601497285106646642864324135878649844159880756295787425932050993463536520932089816788760362826817433384367509868673909048166284761309991261405886710448497139899649750529797676171758875393696406904111387386545479791534917945916585945742144998815548010259217334861029224998113870503060429777988855339010844214079696682575959356173097625763350393730542953016742572753542872462070341491582757803710735421527495035848480470004233234199868475101605812023872677663688305136634045818664586738974254978622687479118988208296304886518996665438208776932998853171422160861236395924432239374265047519323288172094112765136185851635282196971852660484365982022551294053741152928727500886214413004918699233834913445299694713935198746696824511817977547245593947774436304767494506612770231971955639118885998569366952182717416766735913587656389435340631108401026097793243652271833965137160337899581277744641012084541616472436518916720967055195097613205991029855989434960794738607236830005525678348288625074518686320630888712072816827428213414052929574245397928711819608740499614421989839055798126507689712085310187392642428993854717988548373583217718247173289626080944506285586046735282777004537020494684545423239428961599618190898752830330476837849797653130713460517548404147259257193613480036088349880659121714701967972664204684957760582198200029396404979271236340599704910251887958083109077545706810881586084895802532729368144300939350975145078605451861812583975401496840852642638549571184619064537573991095861511913583668294170463132536532256990899162050843379568192197886183145481481911210550031104073653627181375338336048481236328181858040961033977066774476521417344061701496957516347482278091647089215358496866859959844804495268088941763698669222929526853019077156162914976888599730093220419376704466739440939712790081479458757916731966904481263716563423717379816642877075492439794684247162837364796012474782080082401268535197468217347861202310479433300378566910057841756095525085129227680287779196082672155777225917289480084401416187549737429461895832786966367616716676428786155022428669304487180206626858078198723167662251719504960670805246230250723936931216064544570574260587089156005292732033665885261246538949098300801362257496783404819797503491175810365750770372627239890533072556727507674727381502037102378441646629113590005971891323821148708633206175208014471918098156452040733968869800067067295278536515627404915472633993175311239404847217596820319011991370077953806093263092801746206978105221994270767675312348674146228126663365223168157000473693895242387435311096930265105373761084080157909366216185930723517241861583836623861060366804048406629856106377015343293553052293169916326966996169702736259687925671526450192793954166909055188959505723156676727846906171563267941416775056014824777249679236286023413302508636615589368659834734906112477131822360408547738168949600845780796744521347446582752519983467355942988624842188299422930257732879678620089018866610264359495421341114549865654449019584519110087503432625383217846580502818474383371828736446854379143831591475932515666170356965984885398926580912534416721091817261280572557193521106377371317378669439849167182772013790358573389679498456554182088103896158405447576447402745268768253917714969050207688836874525472866086000336402898872722900096056768909218840511393117068196417638254958124120909148780042346433165071786034463545037914853673251344626746832816799144209064096893045411563193053483069792119363193414167059717347766870445567990763169919653983661878394602104816564533621562297143120436770088202440809871132547232444084942475138185845584695429236931869148116527168811208002998615365958761254798415846851519544733795220784968897818574091765475225633849196325543163539838661163744887205191583522640072798560721000595007361004132069190588788853661677834497647347356820632294395671289564941412457567367237261513590585435066597778135427176094274956621285838234932934588983924267056015697428615990071111376141246569415572743817309249312840575837505805787364016771896332724779911919393741469025904011946844040502671086749789495336852470656025084268729872994397519424727490598661925697190248074682343003997259298330211105490345823048080319178134601707540064692211115162153480166760698188200885075722794589910279255940849189762397252741066116491303935553285054382450036044259452137216800285371208153870748679734466819720942036257397802914451205605770602059083872273033496842245828573278517705035961554995890461363005919137065379574838103944726597491075837146622399557896281176541329619090687843055750326958785813293055167357539633434722487676897052696140463038754254498825360777720468962722502311832095219860845386796079527784273212574332696666646193988619838024994243951584978453021889513357211664203160121520193583875535873844404644257429488735415378227737204854995023933096233911976999650914418235325534093568899653209321726062718704709110411092961477483659506677968794490747776162771170498722676110101949902299757362990275515634305825682323805212375634040850462961492159501369189312793813041257171890448379026453025398279143045446130311286974659525162309955138928732499538775855154012981791533369367078115937714725551218336730537024083218657792356220471123561179619323279795542660248787036799540282820479915737329825377308023765842217987090736797540439359841710127204665562063524913425410937679832867970973133125797351860473917221700535394887066704360988875905615953124425336915384485674952780878767723616169574715516823339777738973262007604864089717909770650653458624898481551731890853025134423051515768904105398961179192743232870669314323565748326679391185216839024545469956532441258329980785232767753582131470934626666075925229299090561859797186098449898005845908836793921079704025404349461442177453714379803114442393729570786886378402932501489062234322631239287868759435317885108733725662620976812341453517131067370127137015982346884638754737905474053911763921953188961290003776154783647120805850373078699449086032995569372115071499169417875058786660471490833720653643552485639944113401490958016315087034329132081275384461383095866966974564505468312424676858784605746622927904107513817170098373818051358773273142485433727417623327753461077788332644088605892812027854739085888007145396294214986247692110382083035696878129461304057650881162472880056082700273012768398504474862032327677428494443371884417862519999835276350628984165238372533564417867293790063618243607106498192470204038219267065207080193313777909979566461346971327520049618796329663864752842267420345665801090449572473927112258354016914602751832342057627899513375606394850066305027683208700754948052805124314321041804825201002870436318934161676588697562207707843528124531321554018656514887074931688740054557456761473490367029289116032886181371797954909076953969731236214412281134701913761844600899734117414215387877445680647944565702467471617047462389541684807973391597032539374047370173359962140903084624031020054210595554309035597356146534443582891223032362244380450421213739573612991946239624899986126995431756801204857203575251275945300913003580252425661418322674526941595351143347871194025132076062637423230283036702330123781615910327143197564908597544995822082416901273316987690028428656531522766661597659698403970892898208846750415363508246456645982680250397623272872633947084671066841639797787316306091211833234677177250032201834457469479941875717547736008601919125060538250151636415756178991680565348910174019685719720194386391300650390076953929683994884163989884903854535585215241757499494628347676443387898013168635791435532804098704637891060279078586233176043404142735216319349731126685824393700937198322782190112789033184150981767484602336064898243120627556999159354662971234493638806913128901126243825751129163102861273400603450345770809371765539705804160847069918768834192104698298735663208289236230919520120728895160494218103430716728118776121266974813389097208582003626235967437926308817137005083292184359593213138955448936312952954750316911841065909850457043529875541303251953157346690741632506232495478965310803866557352715652005698065342318105282609795882886288475102898216339281542703554730045883451228549565987575740355617809682248018860148634693515384237665883816602201831219040750803850973508063548580236350883928575266061829468588544256046481595248014067657808155323228525670796650863756203724040569383557004593230599806911432491317588252344162429311153159428253851594139796819128864818148858950934170293374781265909568046100794940580579433008377170672092184253981772391758083254120531111054434827147722917744405486102101213328912775891822705976468316900653744356273457524371692880497085417203115073941349539710207034813622154213266170269930512538108529362521501807159006453864319759432885112142238567871105594040535567204635879960941848277318908522193664732181780008328216138563509671027668838307046003227388239681427427075228695289704505537858872514017761158800917349184951374249059731787328363774244367519953001413102205213164605260693624378220150216531764428629981751980430081166016876493061024743925644450726019720451037843615307643890800617221534226468929660681879376268186933608851371644320061046519029179334279735269650015786792476042952242858641058155202916406919966627546455466040621499691425146348854341590066222718223340398925931929798810912322620227251548589102450888820131401432698909051436182446139551803370824635908909557730829632367741611106203567493814062946242374253831727092563608502510827530398062709083016527849740695942187217798888185676660305475208949423965464865461638773339634316120001614966211843464799213950551938670074159330825055876850784024324123625229192255342849570125459417447608624242186770671499027404073328846340041676126847431190503379593404251180597684323631825493037416114584821375413545324986712337581903671620908794641364945337119918461497792647974361948432140043398702183472965968381700169153006030884037782652289986828733867923049203864948157322802465578484679617620594478756074229599046037384206421505094522777734793868967873705654606235445706082561436571532836481150334350161386180976997316770626800002238267894402234771920653369542579690891699501234496152321199165695132889461090448805328753177882505445153604465637971131060117956842141662069294300011455396933557823425733227256860972622488306778955453172901408149439308127064571567642555541641878196883956181026233541781240226566907231560197450471338431489886338155706252200202320920523007140437624823730513022290418058809337734222261190376538309959621731791507518042193909923832441460754079845823905449498262916515665611590670458438533335135792300763007127700798605314044321359136507957921522127855357807672017849061701474329280612710221401170557887949019555927820144186542382646174571635787801382988313595538419589817787822228857064366056997552728590941625678822586700498158739214998024790656865817867779021795810980666495260669340473432898783698777921209769715638747208511515196373536282030917024009990851529826903835041020970323424553455291382957548603599214640716697801553886464135827303059293255872662845442957332664791372542416795988463517886901846518872044101459949849895268033717204772739186007892953911236142699884119082192351207799821772995472831290221048621317260523563364480416116286304188711104357983371283120535948280343361843217238209726331510434728302254932413121796266992917057245905960702632694652463206563472367421376258085954690835956929903727631086886665415684263108743869417560838894557718865383196304725727866863324587254927778795343234048643549723841599098444375721342476774123756435102730602888097034041262371013199643765261962712264431310867295207258875350752812313255352691296153397344592420789769550041432130141101639057174391511088940223083943282765442826644561905580222701200700475229822408824898509076221385403210843539904142080692230215214445542265740545657221288577911696155181005236990473772492989057071716388692094521446567473426198378231392189813823664913576442193594507156752022432901759112656285295543459930571463383964081251901657472564957214653188107054970814353448209949562276532511290152806608834656108451777725640089215123494730679223182101516103246157789732221475238058524560736200859608003799887540150931119083812631252452009854914578955817505277919867252328453256259299590037709471151950249825800852329085550766733821685916027075868423734067809833653021592391060771582215864911674875669239738176427270395635756432644087222633235585558660553462137220086231697146460224090830303991890710062339134664302610372629608963148172763216191847522638182040866404103243161119375125773074043719919137129981516505678371800642035340183745762844497150470229417586098988693622820176036838853498193739893496618411368975682054678170740930211143772980521821905004723076996861370807842158989976591121501235653351373516510313238273889578089112015887434774607695751990263391955153308095840358379982988614988814610322993549536755297122128809568300481947303422820426714320945801912156355210744215398384916114913475630771414671424304924132326740673320496184135029995943993354354086306883989591894320613302253557781685580898746699641713954446341776855120323711966416174337716088625264098200639656954324492922740296881502303944465070408365432649259140574979195166954730843790305209674923211549995715750201741873507563746078702631636033550272526270617811876875515294247718892738339212852236637944917290907390463005263761258216549035846860649998954730639921163789810570132531280570736053926346610918299006594987552254049945199447264483627438256211102003299442504494369166611164305677488457094317495500244259217888831456129055024702380505965890893186668398105539381593823401644164682052911807551275650196606587099030369654672297396141942646613847723958903776558557913171654355797641330710082062997015670958399157738282844587871609877310080617690271469208452248019720071234216800552408984918863162090390652479670109326129321969416079028185359003170733637233789577987421074994547685610476338686380105428492054691480568396136108227111233073258069979492047055940303182946361613651931559347343447358139186152312557186083053397734192262910095109345246465469701569595149218158045402448593323627673288155531645267725257567210256791636420161215372712305957229616832416628557881528759852568606616212696906919562181177579064775612876486321479064894152099915327129028669423815270418255903010930383346670181425952854498120296912351908232645436048435546076911408567153088630878208160559513783429770834831829756159771555748838555413056700455723699843152703937587597269803069622971903363062354722865957344160915703664432623641974052232756077666232949547886403098638349995311341530453569145414685513592292982521612280668130272464535000107499570229684367308740893610600674033141724848921065779393142328192036255634953687977677701080868348411690004179585187205705451525158585261798343353499058504477682727330718211317761366667400276847015472359883847544457508310403458940263495066335882098740400671536825180557249935800729997873007811675950454499338251464098503273546528272678567342667706216460219701831849487485054965866191797327489270630326491277929129871475533484072801195636100909750551739066901106045787358490054902712709474166140598878504753293925581278361456181579709258608931996993358683526463631163904427797329006365913319065792683131688015213794409609611559302742634787639163806009842844089485387685430461080636763957094968008984151313415501215831806564485325876132367819379775358703808859730891118717880746049339627277960835550387441183070364463265743891214132516458445300988372787646769513346079582624991246505046135943389168896376529032699226442373893002526713661175160443697555897469600949460553183642028026013560517379641693679073564644854119057363416406211950452742085915926223724236686750614193924259254162180951149976670967729885554640745521836664707384396403306419169867105868495694512688431178871998753857274696737674755310195058915298528244337882277387036059754819808018139315578341428275261144586902886305761578827516774792304518205187202412875205156939295060515017272150147669766339992187810221249104649798991507107455260827228812400104480440708987198324456750173336838224163361638597204553514128077216666024106784895545869818052234327597589121411972865977077942835795660521106730050791823754177983232887801501679046906588611388190386556556171118329975163410099111085360001796898544683383693383255090688579427821523189767393690368267955735069115869513524887973187817611122922078579140064744818991680533311472520182078969798208318780645561717509958372298360101402935468425649961738033189573083824488793477997065763800869831126617967494153737091638134043351381144485758391176930439958131272275221916442905033459814147857939944165518014389615891487355256672110959398204404893875593244998409119498584457928576049027975669454242335875255510629520916032245012779919781484151355907522458451940755437951041348953365643233366261941439866579823155466604764550548660260529023560943302737182737746754740457138725893306630314931993490166876679073318544436936333916629906195800137534194358981151234944162811877000805013558122372151156502766406377727917393275990489378673757567087681657550934979204734943724545000334248316910385488152434755990355588642324503750107763161843587627339155523177181407191102608088790214878883306721890873682662780066345558783701688246840722124863825364532570459663448585402077743866958290867445552862725983766898000652774469115767274533484292352781592261359282324624373987076783466668344581691344755949435150923095994546791385886960291637281008256551435012391006385445367410151890127573600685042105030992712197976366254603991143745129727714439758526024238312534326353407379912599088257078136281862870140429053377239985567500180161765718227251435169574194873091928356321072296079263916824910625361781253287538836013398287552821213099613692174215662214597599780010273001938418390261584382258595192306084686490153389517572266597484597361619565996079662318898598671803441506272903647372244756549078396844770323588395892910105870315990356460989615140007033057527188744576022571791645419522374623438104285853263609757254128374592509164464384395307203996001662597041163626934200917082992633626622394034044792464924080103370910479785689100742499825223823929978136655070146613440953353118029048472401393039544566360843727215409507339161951155798199710047748481584785887683949010901103455847403436099465841871549266523039362659832845745355467941211206318759244669345595429703062443680129861009754180585808561440971242524213189786912851613483290369672415562278546877819659176755219649624656398725493935266090490914159421652658537785974411410167051878301935812485548460247940789533575667334585100531456527511730307658770329505881885018926146598285059237237236611896202605486210297453177303848380172947044520862504926447796214462423234194565500675213934913580159714990590200325006170344018978394302720409079615301921182368090788735156670387054711247444792517614375380416961164645573148004830702452006329229305288374764591633886502637553526374670721412794196375957612242601527787379113961569825758379853093316167353105651103762514760816240432377411553224350738508124854870642447546879353069412712263411055119964605579819410237391664945058790863534080442815096680255486715253619969360645535616326722380965873290366715009539393704202278786632835759030594333429887933593233023979572805030149601803205300949687726696968206115037703592254257460159590789808890113441152310839889193575003523024605394056905687980184974777070694466238317524276182043690194504541261851716919594720543480461914581584975041488443908538472760439599032309914901805492017458032200783935718644396935424307516490467957967822115668299190274727853411138312284330417326827737193940966244733555730550815079497935424460001163211221266605209416232082281256945426122516819865885223494352226868308623164448252269038420697878881144386148531281484481853375195021899876557407561810617172669803191476323503086676527603506067980890470864658603860477641041671721382320050843806186586152323321364188217748531412524373829184690790702294691623149213746028053039537128484422077963396098052083762949363411348620639909952137589472724376669836243772767896882098280419436252809523654832366367034852404903457762710412592908578311761680931789890194743721063376307424683711969176604310637857718030365903728307805193372231382941092604330970985361094597344577166409750141970234473210322210163471347122018418059435118289658428532854687109787466162073992380826397992822279413965329439236469840907930419494911576533252367840091804262351926735551478953707427569575352970019019781031610224924143190733711885292862616911319560513547229679103207819689909470073175828185125631110221526885570903849130893048386753866822655796872970455644374659361040154451664566047361706874743438807186951577809314521299850463112455032477258823925129965916189864619032474633894659845367814722028834250495395073102287382113481857090853671832555476767687880826014696118495359844906353416079510556225252014010226257650321390287801338994573531459576648708274284828387482401488261835407589945070177548785636096406522375049409521008503322976825500127852364547317419535151210937996393282256432866257684937263980632771415465495529811776762107461407537008188764562891612438152648838662333896617954952767066973370036146468886073764853014829125817300791679611480904066106445846525378209134849134381724753130516250253174043745740250211512754882939232157995187009223670973353989835451354696554803607542625943667337451996229000272686867289042679800678060773956292410335253663726503565970585289150870685118603395158323693557990036467447820215637973355767926756333335156511665144389267458753141008075821432485724324166029947170566970978401737016874426005797687805429412979972731888174029723701823192785443841423031780077257179295258318501199997191053558914829441287241313079214099265681447161070064589889183220160437343128951069132842121075177577032872939398391525051588537520839069563409381208878412551912746366320373734759378207732848318159400206086365172178862667158688576475067372383927248613973016813215099012362258107937035148880066100730858046985190080001377250013408895080728632318666346064079226785356562841237150802707930648456311371959563039866938117657848486213563994556787709765872954613039218618220055317342591425632636935017086915857676830828845644899806079642649138852247675772056914620972443872130931323651194695095185746023426106011867126444927998546797222265516387344014036435414755524630203523644122335478870129487874130164532147831636606815696092911151471816491369625556361077141375293465273654792046436890521286077360316241832641190620831170596117109765828104508445815407805143803458561225396281725955192729432714767272495096730514353678184324204305729877869127473082038448639317495726508810428058132117182815950357692070804080466720297224952006007295824229076904938958688150973323969227794984098256152703967977618045603737765979626406766837329931129993622078800209903856978815872952656044213542436976964581278112469271718494129454066910354091629662935548575966937962827480499294511748173246035118755569448390240373625771867286531734130329199762738378844501870598111916492868562764541550154647716707472447274480156035940817793512225540684118048178770947031957649125092944019215353729848019910803590825935913895518499398312718760683671734116690467418183207481229317936102991809897037000426531231498570585236928413202078602135678051814970505104880448656563545688484760681472802849231984975643753701964312786404040288524308512151587644949707252022274303301974307400956311654998293055801896815347237883305371024086775718475765664043075805446626135711526800498519819661656035075288695646299390083255376598562671247129086061729702185569636825669566760560876456532103554519106835999883346359273965463554384035682981312225462228653512103669495148227169313060627309359657056877067295841623006307702811251319736399390948067752961820931286399352944301410079481726542908835508763148593834511939934872654087531166214571570942255200188569318945363448817913257341808231691789495226958438995083621967521247637189953939664371348951323268917641739353005650178159455612068402635201493994503120445431044164405300781448919406145466769251127452531928228431370958570124136072724721232029627145983307578305734998358388125676390886291927525892976621737113018074154106328565813724465624443331026308828208701733389193591130770803177887348398511902915398548779048808722841207830885125610803402629301528554775726318489353074999599552324642383610038336278799851203492429993916368152726281260955372744381887017836792470564530918899723199544280608811429411248452496272659126265511969742986316681762469313978564266129161196914174191668259934205978992417359805471483449700878206811760309347576698639045927462036716131457599610631529060280657066963491743650570388759827150619774084747120338930689360243435147715058011083404412864511131850746472522975982374538105617902948206453967870589031238732179633917519567709709296749173112764485382632115316897291910545348306062136441443806955221637759371938065353333144454763111663627896364441089727007046236706445940044871144029184990616436703185051866267989082381972191269903161263727770798700272965520183526750946357972071689232180700040768922125852695163182684379648174118961409361469835719221431349193362239928224980167611229366930284716040789575579386041789700028368215026848187414728429486789048246166279195570284982977230662935847905894929126121484625591740567557016511230770486587092939112700793925814494487726034179937830336576594863133243980216926101042275305472877052581175141327464430179808552865548175256944862895609803526776930038078327879022813405440234602693046108002962822523605789412416127647415783799643627352609512620713728657344791880678541770658805079241559990121284318305133732451413662828840097148472136412546936102227555507515451854471521044307341682584650070970046029657814130025102061493014435196899135094877026189147594746854575343716105229235114397217322321795945661364853211590389435464408991992579468299912125193973901080507507038394014495994163312885179098147105775436879918954109640869391424961838979446336584919840766036247850997286944239797748977509968199129223702761012399758346053846859565780427925032472700019147140310657679933294242719377245009358251660091257922311581806851694662820889787805173822007952547510838129203609969119628451727173487178270554277664429459756965038801498561012236649982466620112590226360353331157111435450410913857851119733788683539309831594667346628912228290386714987035636062526520811813735036935677424403743452365047082198302743173848492692055991341677143420245328604324978762355191916910930486434929823112024566179871627967237194963800479209551151930193306187757250325074785121898347990069275410125199002932432580030302001421449789471102030811615400455223714851457843636752138149241116442047048515852543539824237355309165313784636591025453102058605729202353712066562488472275449108670913272212529235945127311851103458175635353873405679205797422294067335640884023873331871777475331414014908989690310758889468701139298492595204132597902943489239465765711891909386320269711397043413284223587421173457616431478804269854700755741788331290156816314315812451747051299894272745032309771240673049992028743148795411211147630673946094862421212906366258514015477422485733431454941084504294942360947520752091504174715471949284673035180368410329563626711071434310666570806367752887914503676633914760185945847607586078253120297545800226979465237386345342849521001458502781994496712861867926019421282004838047978613920663870250368906105137070166773644141047024149900924313556104882359847362992977966118894532132476757016222084633760046855984010359059321757170968939449933792945571049716306500400817112012264480151860444346308866268137720121591927250094297584496237754717682299678424748205737957344280170633048940737042000068744439645537423039599312053190351423637719671808453899659778036607443864918452932134460465751629036172432367296799855271971278270527086535934565900648048103743688245156537637896972045803564475681212772705177675068644061415517466938294046941066712350514171034176081190643955434336661085596100872147822113994124105167806255757629905733524925119887426649577602329658492304547222573766205192721708183782158158572158750353591423536570816944216209781729210676468155348717682049593512332309113421452970438138221065403579809778000850043870476728520006000020104791798040348168831197678270808697660903788379706325296065278932461279917277051692526823880486579210645838397188943067950130261252709017102456835308180373452003035719300892398464043326512071471036452201507909170138360585184238015387008884002390140791581966803768833723110161844417564078742582466776520611117999141348764109454883302796965447220938167618644923884999251749419408127372274923128315916778085403833925166480698239883631487312647600725212428493379128711437994991219045166639587169390722504608443564004033536892307831199530449122340811990710507651768076106480527509643491055700739017822987151698776666501441668719204821224589034106199431719405821999722882525774780784883572756679922997378760757760350749493601020834417728198870185791091471103603446124173357082459831618189307206975611529747160695631413615471790907483645876014404721668358709779201203532649853716462181198782009450431114088779218956739274321706631118361279923059286414597048816875910748729503189163897268728378992653291851635568029287687786894941672338189376206479591083164245507171288438871154366948906253962072548708775782126925589611097669158415536162666599435052654783933710634401475587373661744284784276738027861624652343516144956969249517980737116515923229098239402311337435416331623636293818466759805105164308499491963417853979552373330690650276977012301411481970563208420738555261866036757833836379994427164069057630922921187086378820363191171706639568958431667684559790464775803244614159593407004092715372553016460055656635693435096110501662393816441848059199942779179646632845708231460019698183118877530319221643088071591275403312704504615934421510727838306698170719627532588178876683401688752952499110112809592561632841755146544673644824879295749794251487253577125150918473575103442172445975094991729675367988410301044186732300597678494896656149308070300110208406195592765763305933808901959621729903799219351928747663250517204100883337801086660810297094248369939382867482017295406360508443072436506628035516272868215821257711847789057169837041816524411218032748235712366106975042428142484888336368401396455485095679107746627205614037430539817878354026745848214765636021104349932359863155178411428842738470765508980012316770750077489245825655657639831125872202083590673149914665357631729159163621390222304172272483053064416209789084078343539666300090960069299140028282415357728869026899145475870295711301160330950854051106554755191149421447016898765180012393087508931767114801750199903303080976316315408205614314824168244375827702066637509207045754833688358899095613333783865867950392608695586223491421519628896147341476335644846872667762211038515679714475195555401786212429038184990144973471261726812210325157241171123948460993360705564782392656884515838986115191414908900702128382873269580538660184831456096112828713713893482779928426616569228783976285709343859017580762121869781064518068847468557697598826722423661611867386348805581432408260670493921568646798816457958554222671841067226653681145106005674624302278286926499969688408263340141027099281793305532665709904791716451343598960946192779554385480184186140851735256627283286400664124622528003168179465193206737190881061509964976208804149412515162121009262042224944332564906692987577638576942596799692428326290526492870543327468087684586434356953624347791569940249359802300124851613996472772108571410839203874911270943887315295941591759292852870837965754066159459815360527046233922506735917592458069008436323908255180480665504500325089836696326213995284426551064859317703056966388781080730741650882936012347207435874209854874909275112990647744260989348184891952377717157707751814126002189741085320410366877563786343901774287456864287493961224487468412755405079451425867105772450400997393217985011218242288960688248595533426598338769959868783843234797942185611590799257410617823315726528202809298099768054900400464253613278645051452396020325129201185931357959319627085058553337669496423804394372456624742361546830272323936696170164371733135519069799225185276792255184523698740994352793164195473716472738753967169063857020044518412651985246390566466383986420300924965849350497691338134604721821731338312844008063191582453346489672565320160456411050710138247310057931885578110453043607952573365800927615609770145998033850501253317961240914351197419529586225723406969312061281079404682237636819654267119208670141186545691769465548789831992894937018120019785097910218211643514046229140053113692038129432126570301336949217913300406868199454837100573718610661735305131996896094654159265382516375547872048373192311917792638512854294719962615872411039085824931901327246175104719612780157650554037901362610576931325779745614778140994275685646801981389171645804767846662344144246416232478200457839090459569402027893377460017836172703436121476254257295393048744088932971335755530656988209293786567698721304721458901009962178345037428830665928261687204749789026715473781935557186544414568249286894060287704030746756228100427571843911174666707253919805753407536329248850182069067451269887661959635525192842560960923424295507072325488308490921640163299970230964187715845720231062329228876660795182433753178848994361759552424554584712159889545739396111739896489536209605017538888658524688256633306142675675810185059139399627280162065869420155646010611221082726722230140226142757222471706855894668973161862050782855689333504170399075105679005985972774231423101907819832210218771596688037187661432120070576043033334175879487360515868256679924747988882937934975766175446928966230922760247849681862881664865351126243566936328652490333839695386923298861487110675953938548994331752810520661638850230705458300264788548330193604397050420384311163957361338270554602208120603484920306496673867427758251965438272585168605159994143391891883459620012257447480630210613716065910916911192646646524061278215074192663355482838929796619028228716892438746015514237415161331227020594822797461969110092620547375120009701104599866182730337248408783996853851687043575678770936071223922722961982134128020973003527511931130504537622531599315562705259542834752765363710451814380990200101214123086838100821938634046793674999922127027985109350697187018801793329764713783370912603111961398681998618668816303299004444827141161179279505620816858056214645378358424486551689527015023429818869377825013878962594603207341337879226375629610234379891302116623526602609107621706456912108171115085939454895693299838832905830363987954980469372751022116208448545807160236221706095834810448871996084467981403301665015897925911500845111370071604524407338652962177422340480013790472194902886596936034171213449591246930949802152007761759526909426153679139441580297817954312400761456653575678427976259309728499066544252792886279546429166217769991051414805624237421792813909465957628314763650721150007953058148708184233106527404545880060849026711444221234232842268298332587957448612934243849183291308813256417668210746065337508650063560388703634675505639133088354639431497577934358008464128364147804659803611617787941258574644327383283754038998198319543783203863851705743970545075135321120990373992922896069739753043292235560221716277314333499528458410271221665128428268543960384758155013314484650794136250126102726602502416512368766397604237107187083533705315929878180212574583600862175775717310868684486212383453206597489388294774660923991321477510526158470450050733224086409372225609466762548305692593818915162146117819756582493177862226083389734756887193445441493584199060812337381885735880241955423494925345257625181897722356372390424878552606590387153851058971934415353807452128865283008176375750140342773915570695960640926848721248431275402038501813021391362277256381152343668153929994588110510428925902053417673960842988598531932747279571669327166350064106763828694377048645423728351092902701578504902636109103483523331196254095935377176905368728313298421362771992662724891385427038531337437959298432093791201667242576103123440285093797925159698920822264378633291718043275178224387085542124158215613762529717794836889121909023072687726297738873036734109257012239822927037459170878292654064985042479947726806615977768928415944480271149295420186302071087244411207229746921464229659856224800970483814310575230954178416016017518584143738785613657471573636384976440631137688800326281352832124357289880475428700112144055607906040918985828954385647756255306393748911295815347704828026811921907437348884257917553150847956484723878555832324657297837338601498739621130595258752366114309023636206180695029932900134777320572566208756214424153436227214171193258417053996448489545279661604191626037789782864477550887541613133750321840308037375674173326207696650856406392171179550364854234433204034128591362317331464974994984661973556908753696875409696140614202449130167257284757745252984019671969483849179275850363847793869867576813281646658359347830814268209735439672177001138094628267750977415893990528725927058832162467394919839113764456619333456380954095951453263296461499029762969180428051367714320286452752748589042200379577651311468929131486474466547921938737856289926396210729112036290338912206725449458821219658611900610740674111180442117223900082131548708334448223114950100778677483189207377333460642793691854522918276727255936544089462300764843888104346967352428911667616410590029453302255471577805784872926374121153342905827451783957428182219977840655991936186615078369818164919558158456865365525345562849434496445679937820149367621409509000277317215967444312614133389315698813107994245949901517430206950743147370298523322789285918062667554130898465240374107245698909669328782582084398628803490758246206879215693549797533029376494804566231077455774120426734427177153698561286207705941971802145139723154858267208830212420986410657176659485826987690311813092242873940723015366694613203034820799277220183353571134566693444786487853739136314254658068231627222319275486659095278971142474293513893412853021376202186663519512942874516620615675693032327977493820245103552695752030633263122856026293725414254774839817479140607911286863750833030840280863799350994331907921155854637426935839496823712406242589935586168198895821567402869533520342944747698861697675856523154075143736271505571249138382036938967553522650771501034337122316212622600142937580276400685368852761787926116004283048412745490315662648499236984054565067837786736759435241067673077414254688229845916555296907870694266300394429894875679837109565053550947022038029381860962290878305778626338568599858539913564071129116886733125680295933773431686199266108019357478897431680927033534041539377493341757208153214759132377072442005046374135917494033183385211789294579356619551181777238472739195709264255744032987131316457936328235453764289868683400505174529398826203565467455623987437449294537949119062205576209675749851232662811701970064844833987709495180527446573064760419231754891861925789415937879788403631543901297399888038174527884339821543034775275597611236594793956489988812014238582902573398251544742999648265707803816854541618168923786746253692332322803480880586665439993259494646692348503119486813893448722931095192625349995270630785429742410490785351950426458858770772135420965030469416510162941735406100497784812334576753050167654985755864335256280832945965998088663021084905301679425449521041827724050513552537581516569733489915701002384289506112105759036830582137158633982522566592767625559970108675399420659166368914557395365818222157819197593626888226222856385007886029703253449480044737830768796282716760125951266220320435176190692301830024340543094920802903852867579520857342119833153138254095772749296029404774239409204066719354507858476733244470031518217898982453090224643687217200777032438246314472214949253303375022115478645735528110638839021780694417828121582481848234084649380881949795709057951061917200040499396875229064471836351994017981579162116953417439981610767284976040402205112496476672573673638069200462134442845256519518493855951128577968076313288193965940718586585726207982219037819558620470097568158921621830088889111402913062852477592669514934921292768588563246378372983553659186814664970362609092066660977031951961765050453929018380569192795100552933695436644886237347735173665973956985511390158244192645120066840662383248621431998215931940849236349551751145900660678778886338127957198778003743889308482662901239011762610693987637273121699021851742205550539926032446553221489362200498773066396338947630204577270338527980372071226368831605486328395805361450235275477120663888644705159892953489318238934737480797438381840401263854884272409260936212526963185206762660934014133474382681406568292328716139029131748096775952765196738110751833374404754817938359636973617243089049070061759552365480084165987923747007721445662766231633099839300915802630149170818604955320480137193645395284486472298907785738176704986056782779681431306520115300635397804422346195563406577247761543339502846160008907957782936514313372313848744668808068761644937185490210102783708027607168273684718925739417180965121727002712703747606991092586829797318059880860795919261814236755930228009094003920368944113830299412809054548415916218754570938557303270897319578580839385245816336905188732915480258329855928117647928090797348414567550486892801964056156179672079715625877879353258282407001562192208121834313570033565239948821494295951729489814463559589506586792665336634229865972349718833985407145558011814470852870181990672005675433859011034539611678623760921736509777923855348675349566504030875206509512207438884440845932328789688127633029477393552150728017534606857212800548062161685436582392436267882517536626716415833104391549066132617489538319365971184651237023230648831859269784026696094741609368768513685432615249271562770861458773064681274768934117888876555692536775547855921035371445598390224799928288838245574047035163233529348802387505719472871503251226632581739899714052986483255002578433980897274825296729493214210581844600107229342132070358519103059845042046496970068056343812368417866840570721574660001927478505095804055562538877841717770824381218882385560757875538858427947597116208529721968567094581797738791462146030805353182426730007920038175621791059803619326293271287522522988783141757184584588606968735091216040655186464176911704978660752539318211060137910625124811740434495855402150754685918368032222726073722015549526992378602937761110213603576591967089399594248462099557853894885609511494350085879248009593948023957142653592559986145719203989754381956632788835602477796321915737092183404164946968348297103806750594165573123586799634232483484961524931260968604248972472956873640518705995472181658161353304421412453282956109332684833751263355615256781431251451241322687306651004024193778460283866172222968618210758607531881209729411188714319625709666786206618298997064863668348826612865576495928823558117919636191433596265111424124330226859570553113484440594456867443651347665598503394396160883411711347633626344167407772058883496567009329290216783714025940034483642947904550008674424647735314309701410747508485644243451753270873976035679529935262514782141425895238037942581986219752915731175183288053593885132578894013490137058089249346690637766514359842557436551306478682830033111225487844293529024481258876631841486635475293697233925865649913237691169264425963870626304010254627731739488407925787781571156475702197077764725423861931468744045697958644211252462871674575560374292006859676281754163718416142228945447426832727936454990703134547690635112778002099444878348203538708747409165117635234491388518007903124735459022761973844107149392427610836980482333913999682614225292462604410620259062820858500006601327807629458904130820964876075245710170274041988900701072044173048419367174657560245501534641367518599771138404817685413466066176599766992560784039151376268314108956770971822031251461862962672786766268124203344706986274677564911710217824538253448656343727884096685469828526577562540701847060293938899745328766664071851346931626589153590483156843669572664547393576581907772677353603313115443325072808164314115400998052703135528034791892378518983831763896974205852855595342964172858508354316084251368349372155274164857315857468251670438287001344530732921129740719483441952472083432333954850162185101554232760434154992781005127983121611694432585420381279760007196421537755905480343980019553310730459545960389178215698192071632292250495687211186137548344124806017171627350840454501264001286033651660889638774447263591084814595622382028641050041570800644678492847806319387909233880174750807560944533826484049075714011512379660891446594551906948077492498540113794937985836726319828851820827615258449710529526206532611758700783471310402823882361881691933988881465023517007996853874719748182059028563564301324076919877805606713707854888502119516833239552969254369865641302623740974042114154948022441485794965989618335794496536967368370054165925143508806340880679618023387111459334285574056192806558706044653483380547942762011605464442335173259270789916852044214319401411407103506060600266006547860685676009421821011686352587088794562144131532255886599161696865603623709273115881899679154032484918427972002273933149844272449441531843444141921060568951970589233227585621794065709464153719921241040607139826082587164595718417436668476984136373266959796724150027658564067318683997748052767498129158390790876143338367472710982879755695848855060529085659630461205276498432263396559515881384651804491647393694344031934584865229297812757819886027630439614566862149848869895720808001604395103070022729844613763714969276549943677323122171826130821176723623609725533576242234551417221235212259777502268890381980569265233175808173678764881778580235642650142919308609904946698110198979577098425607682796899663232685943566898411589701952141834070349277303679429426596701549026405749302860274250555731263981105229431620789752720734752392103899334711984568023724899412511587775755185441915435390382758253108050566593372690702089830850837159909215596873677168015333726321380876590804296462901320159166403452010637467144173786557613958954215924209258215941198783281461880820938112453424006734922280054131981103766434053229503841231692923921664855754335287987404318562184049748338757893031694323007477212545958659111434223646837383444012565775791942668300488383576636121725943459730368567696088786699614186509089036104797234338228956214907363193372721238460656742915787236597136894897810661956552162322907193964670664570272585674066633060921375581838884943720574532002588756104778139802355009821232920117032877171701557099484225692506069779277332161919179411635778050198384025511182621781494958379620410132763104379326828270849683422850656004399238163528546129264333596008844097586007165045226161581749499342827785450853771419140680726269363825491399303738666284762298994364722454425842496491216672900079830298385845768106025942175779446811454458316462485599020564856249292513140290835683708319661796606049215680955416435021200016515850893736742623580280854268919928571109220064983495016310836772497330204002412910709294067892496962228609753216880089468070030592091768176279862275458840401377948052614444941444087494439624124571191090780075748976302898091898028270009005608656452971228593019994779770996337987715958650065777012424884989975065425981684542916310502454671752687402199239113227701648213171389442000371335742851843944223392525941673685335371128854485717134760207606720936820019716611283870326339351003240217630557617768219754568384880851188001681019869374862812620874319309515931388938376128621602757712472314622039400935559619017813996506989012766757440108911633351201256151255981475174159448602269117236730162897155870326852703551485680461562128737658390591305809669905477805485921116610764447337189627688142051227877868887547635082626327499986258097516281637120710152341071273496525941734519893038937692042934525261996721018882290091542006233543222624365456622510036229732462879686534857797849611256124516333664904441398539991165671566595433666984992963309041347105515839357596861148383214318552550090867319756384553551254980794544377773110561218971195693829377346725745745276320250170716155569768385485484165996043376084714733103297808197954197707909925372547725948388506218755125078540273627192454894364991506351003992052162618245632470373875615675345305037410825210932891756658576463510037470736700710333522800591726569093802085711663483365698959395885283050074369898687060469794100977433089642242021029594783709963279647942475674512137824260495869399773125909077290236177888816207466511849129650712087803821636320849674264660674470580697539022378239813943958290447899788830603810533765856909507055153772212266959577141638633812641062661711879368674477980795700608581513589349722141365771710121359728502415264555003422667108445702165690941057753656593169511784873983673041019887166263085861801291087507858872778336655712894174277327398584978000339551061567630495134592919970602473138542255414090404304711735905302152055519179864761318825647494147618811395124057803230681840481619606108114306825714449242485765831702397775763324865739522169540472578529260237930344967095313224523612658546739878662093729282491355068997842070824693263422339155272970589269543930928289634781810017389317817038082944275385926796745738857537189830154355161702926653506146972908584809897339072946261899375389174012988036399322078374880358981659366552871541391353438101041283894050658042016344766146840733314033328168521714439465581278782829920164549594865326218059812948011627520522464824471830528277901431534586314454592261058751425167285192500558177503964662301890470736718830757572153159943804994925577152119223195831787845898437529493208419004783807587032585714883123736776043302717514807911389972656511413816363420966293417578628004844301806742310540134546259778959906832101611193172566266335681122146176204793105480978715695738046339085169844192615858772494732956185555361297549611903311650835171488719875630822344654054947897849421233475803512254180484698044534844370361869074009490504947376011183256172848025708371239281440762266073164638639932980521931425087313928219610455282198341703916580861439717362873840019887468978625480809468278676428973404684199487155217549157432680637359160576012729630310552316998644927019363757361586240543764039718924919187710207707503874112974824807755364031894302624198193212361973804439544300011199634302440410570024211907785476461535800549844067428958299253901563399774561486771812243756048798274845187648573380115490047186129897107676229421303860165316957213643811619370028772773455465218889631071867600510762237723295235186864159188585400027038909555419934804863334508828133923096088416064225296203887511873715007463992610534112156872890984829171958111679029530857088766847096760716488589260429848247518169306767938037001746740598532954915157025875521121019266580446923180080943612756130653649223718242966526295259629906781570233457919445309291277245620003063491620046383973986740193967402934536742565745027653956814676853752848966158010397905766143900539621264050595139447999337645633811983744951913258182763778733875650008372517177444938853932684481900321990630608901589717170404968852005196175869003611030553566705857209781289899493291486382612718134385382975719681742411183105834324258691631301932773176860649777276214146222971101019894805843723441748961697287101595757805413804478797745563847635680481359616509339357629949870410615094925865875750475935294517510863168318789116912105017561526126571223229820005125873297743133413479998694381400488738959801694287026274398198977531982675974072600058320916829627897784168637854877822632379555275811746538365597498454073331222382849702980715617460232559701570502419674001691542613843562032608180780515383556809772881208385718606016986308722139671852505593387388910911440460796461142823004120837899596258207963492449318454279458949374724742956551449333810358985935226083538880139277039651599086755541876979567587141972985120301234553935618467044477220707032902796192209453414878498849502923096916832267635023135617131702497349872516673572651788239821545724588196100382378310922340432621748416017826141014696763197280462201361266983748525866636539070368771274335002431730097390169044842488156445043154016285413561760586164757082557259328048013288114951739402322276525025087344010857954637244422341958745581803068601425012940945684725796395621204950225179160640735593806733732618471284674710700100473766919199482932682105832754185376132651399624542750670774111410382652027605105594802687217821566750166047543263289555072832912287027151362459607812018180466864241447054998589213477640860313394006307316167017577165114754311171745983974882441561436720781593635231947135920907995305467413234166445338384925771086764443310743651982782408735759230631005184003695578836980736848653073350135471473061506867526608732787382831161310516894721406391708570164377613075275503942908087954235975159712964936326335758958425887829398450547250149364630756604857421331017404095923491133753750920090135748631547203686411343635741432254213854378683763455196493410331082376939008436542672204578583407187985111018722393731806584696910784907063390627531722122904788259579543436333873532256653410167571974018205226391307025635305492046217572384444561724191142950350613037860070257682027080837476153875891997630379709804894260823894093073759249792294186133353038820169364905025953633333537786399820254066646061844946409532150154094806388540053173586165287035781846001014163766107768815246406694655046428724322840709586849239165008847971428062445959076158551413882310781625780442630497462660933619101133544461996071359423855940212499067159155805409026870891699271137291879348226054725866137562996020917717285255476606648155973112309299499669843529025641868715374825661330230025461334227297353280488999917102325751181599696200854241223703944209234455179167894374165458915649882769264344184451830703878536564909675543835722199196097274895037956794281809559401083126032610563190813516036436235235745240838637982475161764090239599415136277777970562985846756760823356097039516385090719185404887664772181299705971218992904460194942485565615308811145953856466903791665452294482710258686157581251821086341039964264294912224595200316988547379173775361583241417699230633552748077433930394915743543986181989621951843242750867033845430687878384461050474083767083704834799982405551508327977330523764273878569135794238577009030907853008538604908008625085934061319249622031646018743410369602841685528644508074223388241763294319547023206327703768448885801021294633656704262024862540918941411545410822637738788913042583430571001626136205993250453575032959528141971751615631430759032453481791484614309935390767144722207344597324309348283730805239746590965771822156958283742775718896300876015783219944536178022282562432926881793015688226437018732137266925440994426138077887076927070732102157678088569185748519669584136365583984245742230462195638747376361593630243486731102557206066890930594593727866368474518333208072471049745632361214790543774870900927018223850172006927184639229154131340772063186144038390943640577673553270022209733107527492317464744415204143544894452094495195351248847127682775492127927978175442574706823729333776627794522218929862906701762503879704938560405679173368093517253258783754242463435518534305003705871297228033059465997284590818949726530228401188539951730023377633123023860990804290443345136451844680824085039065370625143155351196498579937810938060087535445868347665569591798526758031199593823468925680814315493233685469054569873475696241479145681905641649504771301241785270874569581674727581927584656089631355863613496435189788168509119111197149387928808721713141080212849966662689427332516167494957208505316279205834362144564192130141033949779776648450658921918271366551490564820051068929740481790252310185173513360961414795243305867723338887292607730093392190364819868268093033160921016528634631257044138994771214348876629065577563989587166561100849050906833964288832142568721842359871113409461228140095989377215068189258434561395800105978181852287397930215508568307650168675728727293830416557418902953754509397573672425511372285246402287872819848380528062927745241495948464302335696644254516749541283211702252579180507617569082766458032648447238836257004484439537167879475493305290148577622986937613915541555441518581445234786143659380076351605321038296828415474055158092378091977707089486347467041075765247869490851130355824787111240286289276017966822311781687918939577562607303800232611047581178748666017392894523282471481031729928148906025098054844426979538978297392007554510109793168900815453563907211269070218918766740027957822521726869585532833404505079909798359126274493275340891701951906404495604559494622791162973776584602208234958680677647576788724298813345464544230204272642599468487550279759349224805266014957550685618149278886988193671652905339104363220008890609993602466046580066318696324472878172965552542726729893619253326054037909583134298755065981267250876940031012696962287221318035747724538453042476820676441330715126956541091032249639751814266462283454631952339248425446387770847338170767572464021090407073801209089536776690091885742720339483177350123313621820384300561112406894434253003710568530350248222879056742676343838034917973345758465795997278044972858946521844145787384737157449052832990966754881892093359625305723864609645555869896034034611032415980154372464681476179396908651541254222844100634419091663531369097203667582376581566798225766979969698942193286180067951894252278747152441224244420201754257132995170010865492535487535714045831976182273512674606132863481347877818888877976526540146948333409873766574138641737457160402415735555329232282670254770508735574763566835636102778982806756074396502812968726767730937439300421044739580318012274172364086622087409421230562974946056933109479649068437322572750011702438151185897541913411796528197424324551211926221389002962742281659183265941619722089401235930334408725454004162966155549785040255559276554916938752798289992422601204990005135783209036524656376408339785196024491380173142520883798027359520522249077154708107402696253379444461819891313846486521848479145784949503636121948069727907830977649550774733490204218477342310932006213249933812941761430886750327983757987325689394407559787578960457404965814540585902855689918784845417497845454566018786785562734397870230744279545654023021013656920705240592115245182709627403271211315756658155377230620270743325914387841424970253643005194799201019256763227588735498196573788290163357862018380973889381021799315745126169095934561194992462246477803310519597166808049471905698796001305400012457056219593219594763376268167130983677705359169519356143358411484826995148268538654446215961137934750746601693440246673427974750430940020696470937090591315489735201176202062681236490292794231889539533661309321702267317546342807961458117310866989285864543075531555641794306981964104535735290222143057946711825451746223803913847973096643423294055611131144314643382465058557366027095279360214876539094906276781618819599239716585123816408322850976372843870973276374335722843051959374444827629297764575967168087069898606504000236043720461552571336183700691850700009149743970427271962091565698264195952441090969570422991030007709950937814233354257634735440539204975430588820237124289079196704052731179117961092547228401717192213410892310636424327398023712720796625159074631160416431623732657146511434700540564574443255325803880853538269850574557610449049620063095622799104336339534507047826120899552733432095621634651272219086962246702643918714978110417652312074415907450945204886490737920020328874958442536379880244727561995097136120333197549946550728288634963087926551750705839277169066315951200463669773301405158793289099802946967263814771107281004106399365407717904617108066305014930156401322137533271760125051002274923015237196274648670595063737984962190397691462203785560083525955109337981258612058309514383794737777367125435436864046165018954388302122982554325256673681013689348642085906820228809478332740964745974093497315805187954293974988152729877703495249575066269272275557937625388585053595910462670074684773547776586373605693860842593817066853391439485737788439165382400702232582538368471882141265797876775649235107251016414428120655922690539680623124986153352749836216632017729333324639065055889546715747774015375679068685737449736761805014455178741137565535100534574394107799458963948981679333607358167950886046766872531985192289903643005364389156819850103944448846680239174716914854553704339462334961713217944809815714717088973129515792185211310258570193255309825563619858036965033498675215140441133643543380776381419224804543393417915392936338118602183340883944405141953940726941925670246820473402586958353590617166170378323804136472990977870805129679350153309259710944928164588665635819126494144316722859370715326623374477247929929343924667362360939996516442893106906243926662439785717796436042406790504143712924741883139958849278243226228492582243701509800830977049471846917051630525270362563379196411087893539605889680478603913336772127554290015419673223092466895303956051154008740607155378760055837270008352159252941049898732144121413921899951886511132677704922752024746762883154978223980653912527403914165271698617140235653065739697403954537126562797629896531413842667046163633713524971294944786377650148497048112012648308480795017851843425132293102976840794698192282284043673377158204172795007848079419427436615147410649466957225051925415305335738548637069107569527077706213041477545628608762525117630077610408902060135352969383803773758735677492244542888048746232847366687007438842618188658556492553374028692098035296214322098021898205127902140081008853138814720435425416221421943896159522847312422403537602487205813876882852840348015429435191189255115100926462030320009665822277707307194032659407060781523666161914471222605734423043608361329054288837112323899908169687352226688926797676089274745456469207906238081328121936520167979274777481583752810607459765192004296337799524900164106297707282557148741869364777045153016927233481895635267982510636064558062302220575275854090120698713302105721114400624889799117610570922524961484563580585574864030668141994346845982693713302101654876908215644028650914769806629223088727901789497107335267822258213275269085799405551689808382065003458697381352634075186593280692250600847153706908987663948396577347908081353221091849970634021358132676780596005077799852982309874641244802842815490742364832098281238575965142787417256687632457400528119426891283169803021055948860774743937433314863123654825666916568635373830582505986740961865957699879434413590997444716568322508416477334213851563075667330099175752813080021938339935079878874324641976417173881283707492386655280835955280324072523678046325223616207942744147130605374388356915254556748394993460414725185069545146717496358489245287100994149694459093739908297184216402628667327430906659954727439671316528437131874982307626205072200704266647705306153673383829263710766378903124246094946354172175947016862433333362583799101108619623431291743315195120479062761211483844927590523550744904935298611806441858725672736011745521526330470347872981678653412334005426559227034193856197684719524055265431089467200037079122514973088918641149425907541264345779161641931360742230389887951502203825009685801223434667791274377090896310359135954890638458209351514239365187008196050277374237070182670619085001923921366295285889120600243474530905100176680603865126950236706656252996985683499646328005565562277523915298976756614731175835144958380168377161639231628800530064974440706623573675107199792610116079373406337548070161841002716420289987231447378382293415119464563280785649983812663624235155808825875187055687819679446092422712024942275052929504233046558704703308191165929032281581204376617677053393586120069272128796814115268599337636650925582659507502817538121761906061787284488666550876031544546467074885772200888108158998985413044019158536997517218892953116811122543127782970303571106855143658350958169175780597753291467023237892438151950419332954904469863911940502954759619437510495498326681379947654897515812141468077080103154908800274264485872062440660327417392562381586643384085297269520071012792058041486759244681562027488461743371408065511124399867954104024362533077002087470818356991726032419723973702129320788185890784601773963401824386880760267024389978850878595441511790265652850790218307148291413927453505073385197050726413941003096866054012619327089193291047988986111479772619126194365777850360688496840008522567919598753042528096385000504937792278530640432121857933555785242784963305113992515945475522811111107678621764365443164121076436527695857655411431438555228880850895875916864249490331389810231425822449059203421730918988065432422253522574571167493774212544137016806889014142557224457163439581520065862562598357004044042901719341274575741204469310280946143993060497921082475827155475947503118393630518327901969057800170913027741106734764258116022132686725825561738761740210803689341017269532394867104193011910035404577580960158254739548416786451227840697939463070805190205745130512205061359471890717491206817629495476914540210358965111090326491487145181671032960433582991778501697182306116905834259502384510568693696034624122253783788541929469476254171270824522195028922487961363689040931382031141441702848366134033219895666417006316572033508621079437246502413126872731246659382202449659465204909832730077166329066121818546203539393704309998720306095416506985204331632380810598551699256516769587371778021482080321039805590132494149182411835557945351336466979693145674647341968879550956733607685652110690237715560247173059978014498432324426918075354207351467072871757637322800379119663112533322576536943570501198946047290130889012908839183364544429811391295342575399380632167665586490405695426421819339925859390534669750042108062478909429959361028422339700721824178568081600048796626641565760946848828882291452525708566281661964701949717598932334290761169672991608428052641917531567948397725441108571116542577764435876770510278923076561292348386325913435518946396376745560215438906170504080335177766462874545296637192275733232848684963923533435533048672377186050723472419577103106242645191512898399342930660528318606602427874088559897207998314796132592166138752555082293808418348490388157893169806641158440714397458282705701649012386519051412406974328367094523919658223856971706216135684655360974699698563136176949214900734140546355134682305492878222077735983508163175907483236693516796839876532267460421763873061355947139750394533885094714765369750979865719966611689973618165690464898706215744776650994841757782122190999799444601420788946225093241342104202460393050888132627766692424076723081993200461355404785212436621507375435310770601047626240718091053976950866958677209375058686485861285836070706430222899979684882987752535423064541883768450538337453346103062535935931223668865643042729954695882284759630712165407467140821288496231230383063446511340967949969551551689130388734957944626035466899965803776586103388771501745049734537006440079659835452526478263318543425690208584306030989356513366756448999334185099481109315374098021467294842070304420290605569835588557389550207209997032994637650609059049758335481862498704105714786052069396194041794410205207329200417439182747896526034467263545636206872543267023939764827593991708234991598383288266003414613052644883198751959101680776363034113450533041924553813221735623226997744615545565565367777990831575056185977557920631619881177749558781168571987502017964295426079305182674000093865510493549893225603322194380321556118554330328980627947845792606012134369218442399473839174089611513653199684007864474593755990065207280726367121100310119057671938315570382540174590432457371167724985336516365414357209672016087106686470824796195615169832618303472418056041337298540189102737920236239544325760092851000235702615582805348146815214645223487756807942872001224277418559177273255909585780310180303527265271338901181409839215387115879686596487426789621347012123421782948984722001239155550655798028767372749990636986930942040086716076972371841823820807061164507263553024355925485813820374808314054801155141207002720948295704371604588292364234568132005779643797639582394537576430471385156664335377758326811373727453832827627829783870391925290381649374171616330710343167248989404408136525007781879269081294824214799503446818438649213415106215124253013793064182828086138956771882217922284584303549800461102012015080977071502517038544254372801108996141562006350345092049868388202414156264245280744538818931255415961744113831046891807530783079851623016390895170418574605164548115795703937299529319941514233849317655165978464788604037368269411497533133630708113696157359880394858705139519028679205861201268862770725558942657092647093814067106064359364925275887788601554014090063934801004049141507405966400963846887223867686906063209515661632543090237762857449296525640092273213427372271847562852427827470543680868127278935321144547457160226586885474533479897994310877323842632025113342543668614041212384306786268428538378409704518887303877923912953828852028773734199543404221943791036917881482222103757795320241298277255943919273458986334927139506153141494795476363676653496275881936111324333368863346874064717635434644206004141152650835520626194750673342613079738630107060589696571084529082996193989482769297926715175564714273024943273433390086763153753589407350397993698699039084760736122409132577590924976247119619407578062741079714229230142188069926313850558774752643241017609291141180531018669519659208621485460107354854681171862634252176788942220853386170695740979372802200567722357078214229749826239787603718555342771908071769736385823159580754402057284459825482605570498708164725229231397912641862841488211217083527512814463718072290155925011253580242538804148571341882582714813782242159573632532023074012169396657985538984275890772881145404619243734374151286718430278533015943551995643895231665693734880757208167252153407216271191551287735347960434786457339524742577828972413863528606044342620096443236255558258986885618157869530431464942600903759410235049193541247227991369174290294512653216969472961343335131476823567505627327485543165942970730516734138811666385040723970235330827115400038249330747183150441648844248218712703738151570032782712496773578249094037314022970128232068075324623636759322955906735835197669098540913055987757366948836413436746749876805694513809396006037394598506526099760979735560916300835309133251127195171500872935076880784643555148397883512837567916823032271012851010018344037523336719489891325332685755831264001570778337373651092997874680524785449550294883279187700317258005503121423456653032436869600719275045818245783709543185595919409280235720248742537701726514233605881328534712032290703077552607679755772950322317808532088094259500743387020034985199688877443459616624219387736929754818769379532075927574870213482262789714044902231558119198967122737839461433461700706172827689221054640113346445679634806736529568636374474177397381391041338199225670894146656645969760799253647565645095210520613340045393982011315838124915504982181924836608635919142464536986284631769070713099592004316691573772249736479491086020872534188500811139119045919335735557543611017364227197474008677257764245043593848074334813717807979766014275953282329683978254325183709879452148158184678117141801429307820015107188698782026300711025043573867003249597579496500377692954138566201822068930788428867838732882463673461759015708922001776963282273339392135122346654649234034948347613331337652180720673489442943471336005733347382578032555993276081036276279034586170105666807064581008804349298265190058725248999229789821187707947993629849163525539464815033050744029008076113029417816762050030778598093168556023456929475637082259461326176286329868267594491546973171657105874309493711165092192292482765904154535811778172551955514181939375368688247551770179013091683056842451484049348818926640697591783460341986904077143682341260597890842299494274384758193086714897999721827751764966754815181977872157609169846074459201294113430621657952035889496807187980345824649855239875134526688862068389101926389579272830155063392878234106370322836071239973339751679424045676455944929900862904871804081965882586104438734379995099706409217153236917774538090376310234080721994970732481501584143403351945421534502088863977936509444564807630775759258000622708972124809698666829618360543430108610826605667012330548731513807664792059557832274717189344565900873816441098838984162035937412161749973518056445431676685535447482008286827061411755080410280241595887050540655348908498239302627292507143400405966510236396515744730569936823990539891089042572335916578564464394515342440647274188959808118022924527408817157100402195212101628566818333262389610514287275553550117981348897517901513262633837258211029093255805468182683768791915542953920347822600662553485245975874687213423114675653760109794734969529323134894152389083900921693597991603034744994326585246599056920238723082428774455385543017431118926712214708841209185599058703324153975675197713558783593510926868187594629002416363543408598061629838007330729928666096273451527403479999476418514834718874218438675239463067374845628535020115576625907556500257981402350721073357651265965075707896222144875835720343452223845751957629229257951395522604725040006839429210346804601472592215214336935214933786111829328704170258503812192557627299373457285928358123709161264662917625198771702384504988995801215616717072785485851141835740020849280557199564519510829796484125569695900671549518853596099254629363442695285988405612621036321557380255913501967822519379942893220133794500452205830390251886677353814270624543503839315262100383777678160944444803716135086648075355062421048529349274455987693805737218186577996740974813689462048776664438137528550658747344459066739853887411410276355573430417872327674635344023577434001864305176008727173585553733135300069548845176812792325938517442306990219263680447295670734770721116940364089918772512457186196660680108854249255352017046920683707005008697934777098663561654803348224256710091228847007750633520346097765381255239587266026412120134875175095014463977316520676940011670638888954885318889403500260982961154044863801256150687240985385629141848590025835681298169684012880426010418006794580963925483412442509612418171851910040749407850675937149505881807596621051744958765371582538208215874754285156857037205189912606023741197534526844359211582051531085253349139875859288206461889042197823771904175439176905166667235395845086221358208504398230227067565528615207801888919898668225523154161780816807944634173544854822565511849065618938710521722502201009367329109709276357533915512167701933073076870861019937980823718922979036481492952361541752084592867268570911282283617332644505218909244167787475570331835602641196643280224962398995551529193039764491679561416555902808170037558516843970247209537080454478512058490993489221810305796835007674603841868563101199711283597805138976549903808134641720844614673855456809382601618246998938031191976571978182649408314340533375217489934914449435834197733727305082760629236603060262104673972103887819189224334117399330110294854949771393701417228890035359116425664773178285293617455903117503128837185189217594609332457686016796487745939240062454646627407102461865673240433040977792363207032894892846371466853670277788883634100961010304279521667683690573591084471026542118458812488998765938024579990374367414780434071112923102186064042813898885005786967826169192212271187047115922522407586596256292040570036296169674309182968307051298903131651428013051632058509551742000125326431627825883001075201785786881828346265310509579163195167757206764902239368454104599164462746656362652512106515193079124147154922723667344735532998059300490567875307380818526920030228181266494314145884281265380124932820230673252842780748191890709659063567216486437373479030441783622136294556157996731246070322333208724281137423267767060305630221679633340151816766218182168820338901141635179575043306491767556541898940354275156891994247760956967197033849266294926631904130818180681437142435153394551189413324230990623722819875272664451477787753334261458344383368625975746782954117208140824693664609870510638378737838550126690560847795198416432073644153135313576009506775718755797238188529496091883159072369265107225099280191896521484675734557125077751004705691118195613269818464646750080960865819254016512795945963680619266249386618318252781983695027733436618114224886352007085781234613513098154252011919944542405217803473900844341214672472485750344718948753401557578238724117860499489692371017613175089355062197649851647298965172147167975240548600647467998180154759596270928076703775259569513107165468678790776389482422950405284727446834261167127686238159020462329164826944664975879516940220732726466855506015066385006363888758267920380923390019931619457230539697841676474402975270189185871260147990537585777097490262588578811427485810018858574623085167671494803498667754867896068244060663603424659516534840244873105848310581659457887107905800619691104767780964524276538927021298344978633690698981171639200216678347461628824695657439413861163349158695306149306363675823624757909401663520355189171559776667396363107111698943115043278327604026625231679866065422356629647292598753080275311199241578606166599836438952322100070769216076216572484052571854763399395708200306446976543128718416732909591617151850683183319178871840305290908063186232447411709258177512697153572573538766275762161914820203409992884446211846588874085292479794150786290905112908152669409813272110123360216438998653780655970630312019182578789052318597510498476105736620561785025762045666564906362881084047373164909234055860090601943378000681991418620532154903195651911375327813611233012339700159100597519571815807452665695943316562606396726854737098827501126741819969694045026505373619685185842296355666372728764803525074521395428915174436946631188978831515002056577022332610715654706579862366216457368769586151005195470066491948644587891076899485415810134448672598577901175326393177772120835757121802958793800316026138905222914628738497058088929398036360444904721644418664430548692213188994533407455214863262351292057991450048739164819178319312445025069992018765004911211533286057001848241513312730522494940847773328071961743394719800021087531862930975278230968361117462754168656381746016323781763362717434584250576886314675682749569043610483947199834795291597899161595304283075852496168108960085775353262318790791950810739501574326977934529230870204976512608831168022252341320925164929278937171694541254449889070015349170223390437313462363080759492961838414103639779527758627889239390069988326470037552381392895569633665535979010873491907211941229328850881965591428759324462738474900602735902938415935814714070719606542625049615484101122842945320286246372261669382984122402741829597224407440249277624865722945848909769243918560161029536465861758055666542659595445399802759507324352988944567083653510546842618011271973349422258588851930853513729278840765054332423785024728707263668778060263105671572925573756519861317035509597916727827535667457210604909468824383457949543197736139065517267580520415392093006252993999110877753649127135773929290592089741054410215700295833757303220826359571590040635690717445128386423012860598490174886493140551524051595331449171390555024778089017588757072894536267248043398157573525398084894290063396348055201672509773801500553945397976466292734001964357452562620070274166707721130412434358684506279966411616170510210546033322487679848501272183093000081964579444118325843038719760137917400457688307562969145858250486204504102325902797071814874609958466574879677124248160581027356838297331536875163893863931216719618977738667702679498006083084943293958026769629203282509495981893456862664369733685130571810869068196123675078459431726061832375035351877945049560331675845243711985614919944644630133380244416109514453892054731302223854988147297331488270694324905992443951304062168373238067760990334055906856826888083026646222270049840145739946266800168724309504195520830290947863554648734592768043613692933895177500340056181093660013319793680557413538173670016751784758976791440147220303012200823320251994926447065671012146465667142184658634941306722438954609530100454252554377878044957129344828982300078755543824469316949922225170059539664942867562104407564266926875090268551813856478181127604190487060899154447419062633946231496260585426004650292440841311181387902065520244096840484433804821726593791280609499457612048994606374190802524614885011997730283756520368044533436700822031256724506538207684283941714153832590469259710741326060094880933044264551720811536897824531234153905761363906175253034813977464242019099117314083383373453905765440913862725662454012605941289414442207372059804245370825077905497900702136059058648443351405579914761371190509393810974709363919402474612450461271448622693749296215885603010480515386223440369794891441005836039169704926383250510907744170980813140522767247659884967303301708978177949171063437252783623598328538126410120714627535616608768546453192834591279290778476074465736837921371228941816702367445314320845115228569864265071306110586882378609714336805895898122843390200267041713438180072895343864226681137769110310139102817969890482052145287103185723418405355003764171347726896066517935054831927203444221862138637450475780393556814712179549560907433923992361886766609442469822825116545721049175750344262537843050825267268599601277276198427693279365327514995731041159666547605356190429361386619901863145857877426252464289305883876569877970634566739794226925758189209006271216601263088931796767449204717906732027851663501872601515054029837833477449186276639480954730203228281072118968217496153116457903257820649301344286841005154448780528311315944846278440502004734923066515257635407964624506865499329956462607776103571264800458074504576270063028307006800783652829129051783240746336149874724918613623371937333045428179503653700882281951352868919072416517781304115344995101718497973535827122365073118566807319870817792980523969116283517376872861077800896461810538935064190020495698021773050573016174442852634079586731088051780848905873416725402772547810913231137937625867685808997581244996700483594712174537128305427967929952214364199040921748270675832726393538048066110287650009061640578154526442439625111342344515422468253528484002470072972004016317214973045580119801868247766790546657010055982596264162299188188889416523658101388832791671255618356908046449901528959741535675032106301921554417369444701181251402359131107135112911231625387225208077721216531402016278267026153586666243067596998828581143654216884521633632062458417444835519454021483849256933693225189517515053503968761568746401192378010490067879308773727783272648395750909516995384198818431568517852225028745264042816874181227240066627521214359426983442943292857941116847327722864317369552472599741664379694089508002152306632756559100841181920603570985234719394250196073422683100616825391062486469510075917322412644555979770848295810082027583016050211588915007714083684102735478668934505068377381029995328971994973278125346886337611336396136239919147412571844573907492354487599946844131540177360649015666928483243428907104770299398232180800894885793151459391882103831260303292424077664482269219506936464897029740753229619753164956703187023447993012269746200923643211320076872981371158249610338382560671231974118757875961838848019493964307467338108775527128591486208113128110940913319163304126020406616210061540198458939552432300861346476870783621865692779499457199691555274414076528721869081871484972873237493047852659150758065338615064442027344822465744888920040652982968983013045882360808187944270783472381456297257883521606994806052809744838213001697629337888290738349355296680614560888949418359690142220710474492693400063095746485406027164439294167589718364234967145096045316128349693490641310569604522637343629565241601198350584991250004181278921113836690499450965652601651588715039604808810693844101298634723404283261849933314548224118227004155915444480856934331074953290415272398765371351198301201364889341061680588751740092963629147848102633468049536395649797425801340472534129235983234653133651478257858615106086675202637566384093250894809880763593124150636432223367655307680629114946851775532450866416180700273238322082776534586681768609670916248623457679656318872351182057093363077425792558890575117875025847483161156565533392964860241481311213559055111907845254243562684124362154608120282412618391647805780982800854885196642662671255757249655298475066913767025232515343840257088450103737763622832100310981152480695059885752723921404534220564954684726870665833578195777319494055830572338715862591532258690930962427234283087258249639729563744010907391650458785489919117192849598389221852888415220558375153308229814144136950793352912037400081017964894014373195979907398905467228632269909207908258202092748277864462071273093124834707434072839489337179565415571398146498193568939624656743963489017755310660141849220168887232186878715625973447481206036694276561607426708381133282733153084528658093092310640248455864931239654801045800325010872452846566833891243682585692074933924598856962403967345241412799702232918226238023000136484053042177338882135334354273745369388025632355763647995124267437300472446334341357858409548539374792707621071978154964901665035131951656106144586697408754095519604025039505056962819195117134851571257227455294408218539864922510926574118475939010706266335961530231590160209499464890482730036194418207972588238207759494337358654337590190007778612691684581357165055369263949168695326460928850943052802684234783302362933412463227410005308328631953492636162099961574666006684979696182937496978867617600992016697811376148338618145937300234871118264031300090695166840204617104379721609455186738782335477968407860296995466448874126737684477311250112560686472042961129698588460507184445439056313188508992131328955221463664220299729998233343720011907787762308546918404420882156878578232928849229171541907517730866493301990341866344606296953598068823587126787693431707187093870568150198225809745128607863591658135855843373099551714415426248864756148097014499841837331970816706723833196867869425537382633532303726597779400977761992916150722284103436657672994496147850356322066353831207088175144466071282062817533308146620472521478488780048243868714860473354341478581862018302558828314914953503963022125861426512605609301637484990915099882767481474950405485999630707204495488266063418483026082832290164326747615126007067979983233283758549179818704185922522132618779226478001183542517899485195048135653091066652217767981850336778463431749712620843610993420182820562907894936708600397367030616669958150494680222566008909784265480241760784385608775978566562752856768441256086773343390857774492503824049861449673240483530006592234814691377059223280041775158868721913256308473951439838912695053889335894683600113465701629242947701926500373027696516679059562259819333669918476080088246214207148475923256164532193119882353105825856005721974496440797075781736897312269609234615602296188694153352808901596572980299799750696852763515884307674989577593317808026650861871496338321417253816256770740045877608237489209061144759578919680729179288979941189706580900734205485842980180350144175962993489423872116756978428949624706059865890273058941053782069121975097482061344873474902135576979977222371236567462636574281485267538965930645272609015523844212783718048748877561826445085808754388586375276841669282093212965054151317260366993353918402033994158425696520868237683712132470405083601679019062543212617891353469004825052261140912840594018894928580334157276305544392414252829738000974127310052421517011805108773449209423323379349824644312350405067367737616397405267830874436875455407869462111508661343824127049799871666957999965936598026877474821408419839481903544747803975108153044637597385602418277279833777015987466266903832025229453158080823272661785154615392669169595411469666075069531712482514290490530836983943906053591787853242356673001134561119780685548791650438103220816822160927345416298821274003817977143194029250371937997557172300774714301395876988005509069136786014025965936753423700937647509288788193994315758551403347948558728794206388003452506489294002806156820382331194544788195699003736310368508085544232040200791901491371383858934752897910741421677192122078604738064548438189014022536685688923850539616593139917780241854863104439324459506996383377783531912746104088899133349937356557952011977502281348948706423046838177917031732584303763558572788847060344676827759913806648803859208435555308515375185427685175752204611870603536681626698268050281819454186070776956948635889661723462386286751327142141731456612713113077594531037098167963597640100918467204172572109500427586011154414683754312464580636568071905031192027313342128940194928449811124553057683236078788741514141055300470054688047062551464067649933491787966936557417372331432736897161204502073106170606111004671276655201617308966770338367471130648517233698623683932117454192665620930565727012320549425372894817133295911971305514319558105992961887585389394759696527250933505340069582445739442033630418472069900858462914252366209410880873227948036403225724230608825894886801746352796032845560728084062570822936597277380757901912323365042421067208240670562951172933108352227337247908909004787999406249377947677689618227752238189755221741565585975693093198038028981035592387191549225564197486482316346148041184849075837438036364884201225560651242600509253238303689993136783233211821569406930458668269065029296593281599814915380265138324772575408806357330775283483746978818162454647698799155625917471332173684521743113462393716486974644934226417926033330647943585995125081436043660702059001988778930121355334923822653080875613875960537280193657757736078946890145173873697364332962761420841266079875070673760410045002729544014218141876643135595083352576934029490573540986557089908243727826859320045268594082014291968932868605400519067287478479603792203689539023542163242293671739243108516865945019008550869806347816413378176455252095133876885234234700151922861441071212246019846165276131330911449796409682956376558615413179666633443211035910490322661612865159239224466862294446196077896223684035995507982994102779281041449779214988713425772046642990554472446658609929027524013844308968094697567245467002829545625834125105166345067169436594640418182847201360860615106435505657780407605201882755615425178407126611557464787112129880416271403820233135620777632677144581243802666731533074883647624419975452410854217484744558833976077112182365900386232284371904119594782280818421609107726199479962485545119600812627826602036806077443820019953255268744801473895872428433540205374825903202132096870235219108148389252421866000120965660551142913227540992184141787427168400066489524629043080991724536808472306483724676604464924981492320804080469321258225770827202842068820231668684897556933512609090996278174538524315240130607675267091533583313247753491998683519584756981115402292864397397033335246699389971897572125977304945275362833252027225093817014470796998502749872267211822305419534940353195702136644871702862189990902196482317563120756138377829044806390670264992485562233028104933021383624466156050734306392634959192868148534013586901498621370251753453518177889135433516463147162611155093362720293199591471535129926638652012567149900376777686697214737655028498746653082331275241141988154292779126920420760084595874200624490100824752412178643109523922634826368708241301631156014869547197487123261006951873234253393787753700431623633461653581931553868966265392326526379324979446858199217321932073801074862923871827857794490210533472811179443374405196070133255820743223384675107961951423818957720772319739274934333455829104073976412105981747475463773731724342073152471789920952039172298467066898644287126172453642910609755919919841478637822887401817640015883966345984918577278531748616539720490001164286830100225703171941489496040732305879545413003698569345435400137062010162930122430846859096202821835674503144550612037111122600229136085306441491886550128804495938489246807996782898331289872382064624944113350861256351128831101051388270962284033441861909890872503049658536563460371035583360326846566086050675502803238656783944865982223845947773815520147752666027435600609599917484631574436611391646533652168320655362808066016274866276149269411642964898603921023238642800421362403280808821734208300639442607452450158451412312450188634802800759912136697357700948535957758061115704446995911932913639970041431418190854098428334054364577502122062810941621711741829350617247072467936118153949383766717165752235089119407458978532598040164321399745971323469456748589037803934975199664602450637432180131729595024827847827196871624731445665137061321848647368883422839806407390719373732565795375745474353005020239211411354633789841721121785312588586728305419247608190690037402756496566651633298725786620958268118392158427227771928075411617943145078415234150155053395524307502268099014656559925103467091122516246527045425767314264937647729478023735526854377462324026544082681777623065462225215068160057919325140560761683994184567293833988332434560321397590683653659061239809631845147791857352093434692358805348026880283880421077943532902660646377880296647787168197646645125300842844333788251519531560926593660041872589210496042805441511252010237090478708669935912815197993954436426008400402854371993278884320430343500567543038551523802063318138455872174646995184521049789951010623944297714168063168297145894765478584775060391168113241868154369261929336720866358998860533622452667187657570888400383892820783413629315324263186988881552091305736833836014612693514863093590965427443663198895560808710147303474463297227844605901770285159316259058206741187449024288550442637102537300566026090301597388043918352055845589497471019971878430425690938991763108382207446271196621337042786955554913125355056665539314668040046185036553028565331662358575990978706488474621061781142000891039932496456562871025161072637448417161513391569436160527837628533047079105966665363411822257453495491933811285798436613272049400146355213134751316043098717331503527599623584161508560688328494120982482456490546157591837559483541462293934022787696291839830172988540265605094400684608841204655834995795690896275204941896789497691843003906407105938643307763281810740702315787812126752103602882839105006505474567803437850511371609942129751460297635529477602729324280621215677734421381231413030510878748661342276827387168571321094299263665697131653149848484064969861863581881546269029385052435716048648180761982528946973469639807111718953325592413450663042691403194149314308213998244486734175317687218866894765883293838769326032996473567376284399689837715831877442356750886006046492268562841430393836062398205555332178131174611571496367820048385254207076018186345571830663835164187305231399187816905505347893471505975107978860836578921667699697434977686428037987271162335974079979540119477752885974258654221255418747126840551664758882374801693079618843983049803478932967462794105795480102207643021116898150545561898119260468270783058641496109002012279304258357391031059878139764177463963949093507661345100019242490660736642427384023593117427053292015816519387631295414711087890697664639048645567762821067849263906268626221485074336200263621789565481986131481588412884560754842263595462518221622067366642031314683945715529536032983730518136901026867132446769371993882349342962933886687053148995902527000175317350196534833227655085039605882098769018421472931917483127755807439816185548473876935003737389652655252857399814957174640964807237029524204300947327527007653527380088536489788028887456756297750254076921246744139556838480288680810867664599762350072216905278477264824306163162059437431871352552208604200341546159777855010969094706420984992312720546484179880568442515403197889687870906629820695908246954609059016378621294144365121944197034478501312186365564774839861495512054776153964408025560655385835928935868128272539385050440258384647532708175357180078141755953146100687460310721963274041254657375932929809808098730977989608710663487758120684929160001061344025407919394724077506948666848626625606227729095943291154253121312139164342127082856235016822075289748252079411007493475688434849130832608156926192992716708929632679709988909049884034263789854459364732999397064307051772752758734419774587133411156499277793199248164724588107437111717055005252094102468108887850332425486937287510453083418236856863324117371065818719472329299651138838425157719822633199191481107211319054658839325782308722281863078133954786847697365548880425437962905378842862266295829496333260651249104598344180332389885169210932742342070405914919195016719274633393983182062891959843836729036395553090535034433547694753761182753325510554333369543769316003770904426434207687054716892136616112907980155654682677115595370139811592466347824736116322941195313743084486661520387009890921528232012354419477000829253759798943261107010565150545217152453967208262460430444676531042384239682089225927784268805311042748526205275089340302892324446141602190041675248988496454399392489217542439450206067593089775880920547079141272431497400619041538977245688824987443253847670870288299707093283118384387075332763002124271950531485674651019193473995183196081024100847088018253168828067707381284210759487241054371555496014335968168267187937746141716005638579421855537614720474586897929092197869634201469064580807837130389901932744107858184708658164867185575905150023324269592167047960426400518661310668789533766100983834069804752284684461368861833503382392504389320174330724527673302245629120470928020322836256218117634171233708626223393509567862654559793440568121748376645510840142369334705559438072564856572805846575892192059851276370700519695359248363329657792257126694236129976517739314202823420080550282322078701818229496448836843732238590963009860278445890596062270856153021863360246788718076743707743271106713032745636366360128300138961125335335876825572503502995168888212218510722194841367570003275727163707625941290905022320346817953936602678733974273709933181828011660346585752487631540474049347541328597492250584631413990790599609774553501345083849901391759663952083422794554698828831136822943567445604862820805000887567751538602700079592363579797409577804231669160836402860090697722522733763646637106853026368352024880089802656133600835188391984129428854874170053399849552367509578706330852799332512637789459357391450849756522448879452073548169413420482273703159333748555868184164457393020083780394733582864016043772092534451633285851388089041465956100839418696714765915386399545182811585378617464303462561612054064654235273371854282120490914396050547507467140350389002040708071839274319593643181857355523739940460014773293096935052473938548505572017679536441638481491211656298468911656626748371190591971921055002524037424193910972711186478344485824889686400064863087858975901599506920011249802893424402312528656442740356183507020023829323671298489072039958029086055421816787423545569355247160711479958478248656348134495650730197996323465434771090647028472259070446099467328999746173882203491271381881881832158959071091887250492929899449797539129348602571903043219774431714255268528067319870609534516684604643855121768859235187198796865641048117644999190139637359664826168601621021847817060537525172904996847381526840035601886331599646999023114801075914682035979381131577807047489173548389732233856227864261098967608469286894550701668560677093216135683920628565114318842068812748306930858473495763809557593089515550917885467424596362991444520998246114559832783821606944852645072056285613627918285908507833411193784669882836407965455650288167054195226091508392999030405489627623195064045333184093976337612407977610487511820536263646145967634286093650672241227333771414338586135561133452937553631582422583368936843035183178611169406197201758215243450370182667759635113486710851070439834535091486242339585211210266173123388648487445856300077189405591477256983727894170776731411214830853139703487457911537664710525688610985233317590182675341007159605484764011705267772587561488131267158713665476452557834071270864148652939037598147770637668374710349927207146939633980414460807062569823450329444458175314068561470075548231525853716638489413842785294746710072198816438820181097596703203007139758387405001066924986798354265030092324899315632367148059831415987857060322448029363051055361791718064043792859845855544182380441210192570350376031088202222759980612622833138984555931893526198512868592834455729083701479459420686135528451830200399639869667092727990606353064593640328965622126119362720839029874297056783821473684648228611396675136463488250809125012090817721179053990938203108390912586022002355413637571616876130299690907456440632868645328776528319019704846327336218910488182232519322114837588519235600500001120637947912610791076340537547714792094610451175082245162491876544450888934717202347896754984697326534244130157403598340669710555764951841363465369628977097160065621792768400296046906603654006060824136139832775369814581019225971399803151397509432256877231156379468412244638978557924540440201296653798081758372717708127762349606829782317678176469767485285564571741476893597403968698118904089390994031900581349850892154756588675126684710065379087433979998725305498105194118655149890575969043574451266509353028916003314102895562011573545735455338779986087276325715493199335909564445825283394351797389566648109320870234616309545706930357000037612397923416754959309675001844909568367515247819215236799080165273265855686124583449702579142765744448976360746988182717021457197680581580480159204462313327273779727982779042401894817678130871251500869975964533644504050788225919922453101950271098632150755053855945382599131154536501859008219739949538564822048049264085044710083127609727705010708582240695498116246695477252475090511820629802611247328383758141473917463614980106619264572566672656248947958565316861197330976016560247176609234670569788592613175034297308647598749910404103626114078592356849842606327406004912958106579912980413900685802500648297660624241170420934997168831711704205780122630850307223818077052627219787349875606673974309681086478962966930193640876493772549875468103187667400948181302239317109556804223552788161878456605960140965015033452851847958195882383918089863392332767262382343833454215116510544310165502472572998006513678107314604201275201002362158649795220883781464465043599575511084919870906591151704406347351019451474335709892039742779328058805497256977613541579646476936031503592871549254183483973725676558881946227138632603475536414694593264337362467363864106236926199238647457603632301622342586346631006527128338889018673151056971682097947116300165967331833577080723763418032657252959821402983126185045020877065582833788149908031384273661821826166238448307754448433962242722675337979159566204951508117111340708582525424742387967588919110022467972832463516265516718304441015442416809047431960581824288295009438250446646858579108058045205150085482087174849350533780054122982123848454869647060175669111420328588024609019538656905105251665305662440926721346000718093448055497103253042493112847897326227979824984413322131591745156599055367722584118094717191075388275954532286439825210169349629208729212010240156664157340657622542516692844916580614136433883903093347651387080239356952348352392534778204463896147712660259475559206122765912199689720710784177548219444722876030901167056875152461795159994320902426226536884418966024599094555241895240272591964842212556799244785515898041394298342098195238955433376401965661449398179418717748807925168852736491737317982155578486535792675983567098560331332663585390812309882895920537947624669432293910519316174619675011894640947641418478400953261655170887760385473107537875374947218232884412565894237552958872364521212952594883882809670277573239696808219702581465912743005396955847524788483511636918180060970306936350345589725999295709206937606590621442947808951790046397397585555550566642121459902318687613936110905511067416142580025092752261019252020986246562962283611516041871865197598421614785152557727756772125800482646632452904768276905099943782716975000460485735024604805708242866777955284126735334308147111897955797448421304535409617231266003082909646302195736489141364927090390801130873872125726693686314898224356345663006019539730576368461651131366754105468659267431233321282423263038045491772764234294232327010468510268652731571425587332364932375700901527141482632677066102411849171082713302981812659572373105529213834585131401352057925670617328850218588691396111071017270505330417593717540499540648628714183412388589242847615583369573733812100052893527888064661231078748386738806276580268579108158848283934330821482362718178237037984117262309026646792779080411352746526881770332142815698946297441025223207438901845595394300008885768416762855787920696260582735201236274372954176884450107230022976035549239339167129444320577861403983399315330559456405658301764381894547125717701212461231562124887979772042560823485915280750517340935112473107634948727371133538736977287404770700718965110943576345452850840613993400008829799090674022776083511843603818407391022213841782604596568731565629309390204085801360306204823715592077612672354537428525048973859607659964636235690359944646684292440836966839540823906491663204679949711698907525926431708826258318664141414442239882982445677094443275282382837040448436372193621286248891786209021962073878048584724150526178352666081440876394867949201938601926053834700523921385475085922813207653570389544826619105893425936578099706261058948257516477543013835645749100645067083678522633088717723256920216833209821376017889493763476481088082088474635260399507144209487805827324475300007695115769878397888593006260848797803321470524471129756053265170292314065107527351444895009518503666156962130058831543816764469396998422944880926602581249423769815740131330948377020781394596823027700725596991226596971476281085454059738177665275641382388034528887443691991332082272117735977433800327945442687971799183272569763472585241389838030336763296550132495493953930923323231682623725377886223105726549540207708961733525382499422042932781175063448384900774971888599042913437509407750917029446222101474887510930072776093922557172385497371175200776700034655111473944343042551600918114687492800549459177148364720442929842153384148267629021865605299854866303645049476934236548872473253973211294495992572966500527233883395823413116468545157226668824381637355686248081296621810789913577026331885697911755237362491577797400980396139365268581799014924614621704223391304664939075435763271100471458143901444057031099972983569106758963263718754140221617073708763843417997824352777706616184232282953252409911496094852880366919799486353854695283399900300744059023888941715452871081236335738361341453438059668461468598317092578315225733502102103900048147820356566404712888697471298110119763344074040961026254555231813913064152015494359039709999579037297123722932888248068680804780466447387650121674965363159166597231058879768410088153966051184097385887746867812229968254839616367878275408166609111814579630700453443544673235297732825742409376750012547118649160659614282857850290851222514720044204044519871970616154982328569398823856832373163107552053851458395201676813334819771463652207861054014031206602912658832522078836653120612152098705944654053472056210774779030901770415629797954470030042486253428758861907563862384188092333975669916085149309588772036209656805375958327436502525514662165948048614160145621680138256015981665792431670087900366399973325090834742261100344885356239039468506414906291106857384832902549240779027915129446063128136829590214632346516345559019164065585619102189735819865929491636839139361139337202476704247514888479401947718795385676452087992513459991896153799472922788046375303588878207966361476629290164896155185729080725390433330164570052599508766338636660737667092138123918589545071855270546548233368966940093695427831875442804556419724687864981051663358386274662481611768685588593441323162668443536909683977213349270540036036608681659289310532991578461393915989209429896659429497632089533693601544617214164258883907432970902165442166438476125437650608051932222115095795125244261951799996641053724479467749761346681206563640254623553802478912975592547479046777280251815905653855060738198113377692559604558157907410780688389154766096329672816348973721052188294237799609824145568607758760359135705674468449416607721993218401907912520341264791119509931911798392267978723371777184426575462046153111182175908642606584946514758916895794709959620681316786604861235737148539027106540119199181544449686093361320169265862208004806554789713878153723518465806217461051991958190283013885281947619767188233683154460347252239832924005978540324580458628548374143369112561073008713838706745906504356021379551561603761113874012142304880309002045261319596637035563888346317679874558632844895506722960420595761940998427471513768741313143369973126007264654692018124831279913277296611360389177321821645903766267646809173100749014795613930787943460087354532682379986333304555075774273526385278834830224488452456767308416586691436818435287660322316547308470613900970465986344030042696736761030986600912141876577978906535456256949067754496701227070417173808204766393494528620371696230873509193237890586883279891256455237103841698099816764475692124448781350627010100465734778294729074240805534832661212757411311062827608199125860046821011262087933110827091029052425494467739325600094170580631616086997141960693243774345139902341423339159632646479519388298598191081100066907357346748990344822892528075531026124084738008454125488540859328792068448712284144343969155117551989206800007354600781579516361255680043611101019059891976673588726705298760519521275739748844618274920967602575144942437780780948122716345348619452945414279976570654615928568341129053840495463926076972404028640959382388573269490695495209285919003471101751636659997966781522822465051677797648726212858453359640591698228708646707664139142286376647213853252387735449552258875556120725325996235312715326115111703021586465122578865756107063664995793178165270602593487666203707836393818143239000002176605519779155520022576227862725621836713300548483781448111090547986644058715347911518313807104672934250512545080931358675472024445768512137057947669182803552906794389495381246204028171628723137934772870146074485539285513680518481413501496573841279782759012782491600266152354688587896263494749526181104686817099305657197239211872497600945256856554728656609417550160280340945744745146665328411579193795168767865193622709107721215314065486775433853007755676933274065148684842872712241511399462728267951063203401731866232072089927743726030652989756152485109031463474486837029960073067083265661102576736989917681123444020448279828389052461309913129605446716769604196507258227365784313206838498595300190277257320962648888672264031984364500515595583370402753101300848386110982308775763341304368053659513241045785911905368419594346113856690732610989071729183858721269193681743847402914242137585782290064478810090655833607251567656356312159636769892869182414146077564221489100919516279369925313061410029489609191619645869270764202259359574882248130150019530850200553281441384760939579030379333018362708849859409610607125704915395579103983719384916920731701597781892755422290071452258392050730570835420325274746053932935088337626733340443532679338725741201459337195252215827502587256682401910873068982898978352692861610818635790645562581420889327407023092418977942950316429719069535354350606935340705536436007478615096372197968978396100808429667019455307827021714348145645582872517598853969994977816216736152177561131596017051826773332076228773048909395555655400359635135389635086205179661374304090636851575389081927704280365744731275138426188618025509714286159613897227246575700802803387256619409659139200448650205376602601903493153344535290992642423907098839745632812895957473646459645497909464817068387251265188256211989562311031292211798348465083371720095234960912628404686324042789952106025530323752455248980152485230358354980633257673147122188142590511073571339039739829818179481646211798778710599211919023692268514020801717950888534392673045417376615526857348187007015752785498582044496795765954787486575166603265482642082698376315681686238509693461605610038844058570418614098144432987676756948489197327448169479947395405371338553242997334904890639524955376351353007459418094162211213006907605220743113756574416030924993722135194749830901807018166055094358467224862203079578151479729229839344231424488235891532763320006266606874000398881908721309161816614548813915870769109137336322290100649649654710765391152219721305259335752065319519657135264320585566914778334710110140020173578739549354476795335299946752242618908399958745007070253942885498114464586330800486124365656980027084621453961737469844737968143437321665904220221549874491227492153565752199386134582636533372079732264006772330481980793552176829365067034727200938512395857717903136579001008064728015082030214393332229772884858659591346198932124444180603434689276777752295704004201809474165854018962425605042184963783211184748386874268463303932557258390359185972283228852502845747275703992728801661416990040289382358112694121482221052700354573080114619262970645812143001687535148780978126373792461864452073157202108238875529401489096431949511474163950796722917088383502833646823332283702565369777659926691041398506465371457828408061871463439947589911737198260648111101478868615645163929645480939971400855627896638890717693971060853549807699624532497163268854971664273395090065261939769910261136331841619074241270708943132960190001742621281417432184753791061702597384860495460717331373221602931622584467805276655270181678455181260129250331287559059311303646037916053105421222417886359686736498999122786896417646750942709980668577615394119041083335165801898746766538423960335340905527354350622760790231927535795821491580081599768346893333980022029074729729077957451679183275685864489259891509878901966137077643102277354360465464475054132925405287238232761145384569425320923283684509194172995362511363915833900836348412730670023813753042338828983375927307593503092159518455082258649039799753196616924140376102074940989774684041648354480773001038736321157975213793227123254789900879376330069912647603026894136665747059739085142838770998976229313145697049189190891625637424888186859142974044212696551482476502636426447420205146155012362835177548119059024416185074916572772168325671386748862364987322206272627316581246399974703338900720938888643277240538835946741728254784151795611764317916491049428576813715979268120843799911434837878318582830074300397046813319563927711558363713259987295571971641020140039710473904004901689122477298523963527540343495241374009726557848464481698858509249532566650986496905243168855362791273813651796762911343217675022943100463122555148974222931571887460820957794564233736717766897456920880177861166711633584655216163998653046179242747058271993591172109837738547112301440054759786413111756192562672295867132884764129547681876727038595464984918115328776407618904979886592722713386310008112048436367989396734204012758405468424404238492061135236252043677628598977859024088763257579684921984690939075795791993293315088416282966798963244259622733258870829990992966240991611443851303545786865098611410970209296548008650056883360414814360027241142896848724492355781903031314573544607747559475145857809744548393450680116972075973618062436765190840808117810612355977209029629394224555717502990015751714195581384625765966600326501722718009824266688621898465619372717498502844005262747248518176323852985747104160653108609193592173036779439042742307022388633246061163337120352909539831349219133673395641745810181517434266439301098251331093698170548343524553259803877590419862410941359809915997373450649115845995717807915938546238595813183355361535945936752679605744472207300561380496770018829358842599777648294773691786583209578064147235826846646425353930559544709183340429258380966417468788004252621752259464434735864295554542567676701329019719382876371768571199469583714031400625767943352566599981099829168424738344748697536982853028413940336284513371176186814237545569158526540328871028217069279996569362577767239611749652844812478348456752507969960880551417918409663760372227508438676305227484193475230265312817278007456774458063017511353014161364230966030553422598129678815197327193771993068313097802961804606416045798409343119945573362380156465048524910635071599361127574826343272537696332498631070530061804301256145309527177786862106044789720785039859195734852316514156011025379831565904291367945865176357671054319986450409279277570512717813941543718633559750314781383070142245965725588947151411875512747934257078846895267360911058747423691306605912956900407506419694624364473437615390437753644476408371207435273142464701863561497117874170187373006902696432873342722038153842741642542295117120687530260526647976877802412833709961707651882732458874547909659155783393094097285566731410516107584557138768207920860702240049640309661430708205134055311476563565727863199903134864588222656062465188544753882021119252337751175241409486336095593923492913293232796058127331229869737953075491666743726084243039810723018176872597364174899470910547357515992186199708534312002797917989093448451795797630449375345691069377465742890038123696798355645512682136935445748331361975430680374338983087184964741037551041383011522309199294853951694730033502253829156699606415453715849130428982252308133314159806528350362752258506269797558564111212553253226219808582557370868076580804143088745002748209935196995550882998958984386266989845571773187075445772538115641463957451062131459901001372379432113977005371734293747804464444350557728775222242387942587519589687759822471033414485143130613863709694086524467584256215246167884139895083803289165044509974062077890906882073856657204019495683368086654063533284719976966650870773092391173778733345770667497954265302329635053646750783402913382465492572768014027507967465997314449471810973182549864305882973088228432093773641772664491568184424990908073765528953514319516563565798118346592091928649249750021277321339938476026666780605602927524486989746146500839854387739547614345621942814349037358800542413761358184715675611433960826128150117075598291257723890097090787000430187434701551573412533678810662423474348574620297104714228213009919244583595680345465364542663887814912496063466441400226591893572690534364409335025535859995744413529633695315153562405088242066252229369587045259174895802681842313354106052066719622459891830344911884400890175719302627016109328901831777460696645639676065209153157330960341491147972510859660751128356738226694822443910279159581715634702819212962132688734559904720637660745191476930178031101660975930201878788930645940136744464380017960914213847788746717897894220532017399620101874517295220888501695627054993013698372858968380755576786079812009510046058242309731766767895280861400596181852257176787494158730084585996168263454294997480970662318961918770015551579488144455854385391431160221339813313112260668455698475940094321383749260309578670409544974910319112879482313225418705026928463316485209205772507294598499672330260202400131651411130140789378631672784976718840605539185201296888437388868980968651714465644626498073695655249110629222527913601519685523669480704257176221117570082655043759077812439029301753029428493766883617167075956136837193618046034434375544491546620902925545150940745183808532351198803595060017284103798342225373672799743848666737447462315947502736399751485715086560307133341857096894193838680208492403452328413683472325255616129211031017019096023726707062278278032898370632763640737301273321883942525152210511192604003393048834965130531915686660071447830923136494913371393608232911674810215062157980462858933543584151586333089277654313695641312927724836149200111637151486129985021683040362093440317676255035429046729875112284748974286042319711935836020004695135661745191124302470500572270643559817125985538576362117848685301584984012932849636221498178445033734733837393385772362230589506737659320087108748316556904924400660662213092359860658668648204309168002729594895920839563364423835061628410174155277887831187142344164507445374733795028358897439489615199910230542825061659009285581521853793336694398174128987831272447266480219975945802491444772372651160018085450413812939217409207127094485959942546505376978918539949252763592321207734352241866533591458883177709625945665287770915934275351999097011339868178729447350627825836683694928996502983722311580608484999291083782943850303848640021757851915475158917288542876931076361498529575591896127978372809002859780449207573983577601457669179503503625220433753716816390640777030628624244146703118595965722406525737143731535865112263492016083832403707251940349137933961361240873175965086512393852925714058784524379154464774644654069887803713686838758957671842249238544939066656649711573330182098441070947106867549768540497994163880194810061296669917309207339044513204462314408327671942961647118721672548585034670092152952247230404054281473564027897312366356933830831189305140950162032427970513648248652931842596687291456152619285807197728739505079686471452278522056814304677875681490605321101235175489504977090091470940586166634898036520133168019571098405890096174290406093180479587278297818087078579131390117444843486003381358452172493830512207652868719058528408035026613030983109180880305502060189318750569434305281385300556582230829653775807053835606840717925389431467685104172544195387300515328544460489804833906441703386983386226506163666381086490052833212725851608404552594421989075247159121950996649673369521109933904452110204928860714065880958662773598506073904426877407591010490534958348612296573816137543799558553597921177928387923609898306316758783962734683750054631376293628677942503231495954851102811755888151646094485639612470692661821529590734201059854384289822299569123779856262746781584060291928097930825791808555399191219309862250039690172407271566633655136411586066164641680191639789761317237613028093832741167125193912849007820689395271048973815129883566719596670077887445205229202919729549853030784036657383210773094029700002441204085899341599278748311720942938128178531560990160575247281618590222625188900138290733706403902346752598059794929297518072694712586675993900235298992399278464296693124365937853358551939772053589221451620039100653328710610582462036120434867339613793614477409199677652289592308449892385456615145844848032217283964620737468754978691734010088695487718993099248929012038101876881772745848461620389802869287096973661952284716760669574585030768701728701873236033285956417920877788002514179412742384978160437492249656610545281170914706311135833199408639028390652229694231617471125895364598408177149853060707832868321955645122485740478182269030332858699492029336083069417065774873581609197192286296635081092934057420143091715033290427974476532744888815416975461008467010320440217791734885413395322269592917284783931912280659012984057979667861944441217651917208814634870611702195148235552434249551919808339632160129917199937309413708034705355536141001751589322889914361671013235385638741315834132935168577779345186582781741653198158684998378042724767061270618610175719847836249045342245720656922647554459073341894677136926400738163087907113161308697455045026372464460663321799030119764875042807980544519504057833249574536022430411402291390114201040391107993938005270194632673545611137576620759200147311772002552665044467724018538846232820197232453352141372385424880106792510953527725848076675561558794275543439182634167510605529083566107480900533298310363216218335724560329230190695243828660196468228747221168526399535248336878295732668848156781803757124751135954334947491146429953530126629861127728644128246179564142767844916208276507112174324935025492020171937728211811006122511673117469464775220260044623430745977069520102928662755370617441584668351071303429971338106383531844646956378384600640540232485887282856349853421517418366021602364111316707870722466100237681003491585995908404157250895458604671556558260618777838405921204684399393299423422680330950204788069985582953277806941196012660550859374342781572184366553783105617898988241515847793149289118199459875663238726643564861277489015970203072769754875300465357818927356426242737487726359744748760252396943389911450689506093719290050076841926086812029458383922030039121387983443191853254657123801314613986689752060982312705963516082579490217160284479243898273428409159068461800014368605032159208052870086063078932250710808735515052062913131828157153507645883672512022453007626498944435515657291621835330171786403711619350185508317914715675245815931483598857497060536455746634388256439514719318721847345791722757978208405126000664628340514924830263663578838281978709313331390556339003802049095991089572918970937209820816069371175149431137831775459154180873832075645377027293281152847487511426011416581030550574711389637337914639104354876582975534572532506006340456496242629452030406427450464445683967437858410626408696756493038865041971322079478678574268897961342844961878676098088615730215797564584427567440719614523911225966572088954896477964075837400086496004341635866594702336348621370832205133341629943417696633833986922913205992692255993292809413163426841175309423633707195554585886364646940977150464133822131668983066779254833567254434286945003299475964239625216487031420948738084666674338166650534333945840837680241560582238396244911597974450472716607359009735081239499568215938284753490905643195669572286003547722468480998516762100602664759368570973617629823408463432720876757767956698934725780685399508171982823668371845683056067149915017158556202876209919450764071833293797480098077970866862030376317349878100641348928689849015543632256486837807923483553725724147210384749639336558360573746770939972708298914865748353979878685535795638835154787453902919446788178943869437613118168702478753685898831899070863502564156699274133387288646392491710628692275965346874325931620815090365026066594677721417126669465031204908140763228005039304174044696989124702275495219529137735630626848283757233986810586638211808349765312455948045269266388459482021828386423401149066484514838620613768407648724215908213976197615411689767901552330189948422158726104473243111494910982511903893368185236584627128775259051889515483799009704055056641429421265940993429612919197990014169719041197533732570511274044840390650366894848654818959755992023760256613701087316435728108282315658962798438051194988683838786048274826606281904277448843318328932510698449701488218171120065089409553771105858697680898233975844029461404582490486448449267666965379802982230628453617353640838157517147679498263032300428059547497098684802129953794281689065905535490024812781038348434801097471056765350686826132059358074979687375207960251259376934929643300342272071218646359676727714616393788450739363946803177088791806172296492792695716474041959249337258856838007389569134225528369001335172573776945500764877215668435992247460786119905642332271738610379850559865663015967271535323588755318882984826578762567229727737816491663961072307274877876139290733872598534777145619282089612181771254025245774232659138674723412871592438008220930773174810878257159659836951778260549911126413773806265083892212901728418486208813409131091495893273136514292450990659674942768879032806780888316289664957561538647712273292905410890883700315051073248797507592524603071387072700600554653288337021907783737010973419281603772200519607057362611438572814809569669438696563119362069344683284017943803906507894854009324373198273907332738918068685678008517761884224331871303776715536165002461543664536239420144817313043466727531404842104128581811298728643304108614152862977190163058606240517350770531903241913966584718668707716544145282350482230382689865740135395092770578252805747068114884111110868518378311122677892181788319940432982051729303639408664023994149346774800745442863710317779909145938404656192920980363782357079685786917142528394585223607907369780312162429231283156332184756026525486855548831851945621816705641307122913197118803686289687864104476566835440358011293299504592208152331931221609857006300196580572236062419908860206207920718378428086365985774405408789028410973817882790241624424090879149553094887742502760133471013688515661529149057078420822955098129872233327217136660176438508785500496077941885716776780716395872081080519382737361076894598239501124913590288485627111209526074262968423561662365156409923772143831959077016094988426025515734234467032061424188411952249565335307815214209482244692035579911182625071564406976155533999103922777244291242859591299543066140744051943682074143448719767140161717084370800582384220358393883282691116990465358473278829919377874237176327186420036026910721332923434046735065375700249906337434380700398436501477064246642629636843900095669652643466453342018603596816302564659488740280230796973291860372496790314773985240627114634495014492814897024647054473158189444292208970014120895412985306973796942270089206405914465578387717425841264372274331040508552978669878084368467029594687729213910092059224345589284224442044898784147860222455254955070793375704073856509993834258368469019016845175793355378796814694328215117160824659628438147150930215201984606249572400595375755728171677024225290329236083578375781680037654026770529309812873101629207063497937958060076775102705881960015607705123465318691883197863942548453829995171512884068937923304715827114738417303681925181380618644352480261171118440582810936653237444510673864042279771225138782688244556269130288347636701570684303562311307237989896160420220448026373810473130104116850925932127326869911955710113450282395768217555884708446028524724105709650035853181131912135449455061668020718885796723620773357994052287747404667115968609949235424902509418585257910127684071734607054258548272997640926860713671436465669588887930332614036540778592053433946853821978044412336504570346854402194085538339324393203293336024223283819926691103798666462696691735125563001560176241757604279750003592692425757993520164610947515690493402922812680216738587866864675194913002473776150363292474404388792645627996558399956692681192335590458982012664086247877465415710382315801192803762470387629104890581742315554784799022899507505646780580796157532115310215254334996740277736736905380391093314029368269815187935846445361792632570122144598910396129244140500111160778204816384628649291518411702084615378457193225312433999759717582230213861424728906999408230948604289901694930323744967666635720500805083894345586960222091571336237465781747317531364237612833561196357229552127432054210667726739325067362553227996698877123345261063154019286015328315212123196049862263978412958071178385241698192061776626338252002121613380212587554995505922978368826919629345772088887553978630404693197178579590945140796416891558279058780720309704252140849742249411608270974258201549729073583188363460236176411075161676210454802564867261720898642570888565104685835972592811426412458399126542252183336891279850902818277997187360048529380777772202560787971522473368325317257134726549058923395478157190119578631770007046314396142821671137075039214037533100359163951690614948118804607909988939854098098325236295650668218375469692811610479701905721570087442135892186485631764538220953301207331461299454456907531919288444244739981487963664527008329844853791226090987769535616047098504081327024720506158241200018773852091330372576488697938492321718096096674215501849666283811910039363564015357869894036422800746276810678411247845237070612051200771491436350451873458437813610104196717599994652103359168064357662159224163289697003399223404235609015791141957847247100049720496120977138205511392896414306038260544670200317147481256761028155241100792276444173274327965266971394541988078766378303096405702193658469668210008824816986378884592167531910255103171092866653135845512600532186362533369409323167095709940487762301045288635858452012237372739969344736749506679718075024989794509292929474413634833253206949393595439040665591669488894361742408955348493966278185948540888380814924836599835549401430176280434521701779049572416661919408864175274246993109236272944294225679070056741686043759028669619908996919670756429393460650547539774550050373725548180930472368261202238236681952249485098378338697722807592229107806321061954648418652387405915899488156094983323106501229483086065830012964381625191058210024682817447550830441982768527886094641898666408734277639298554974388366694139288494509093077089336540205232324272190305344632053102497842351331572966427713515560436905919113029719158019966609960557826801307808661934207983177171818509011402094573803989797224213650408719880505575558644837834766466156874968004874172072472226389392275179713809742184597361459747231754037710425212714544291149992256505945631572618467057170520917566582897555029207420205694420483494898157787240472465225819549763176978337795938418463007040918389014288375280322768146252849209395938477504785576794244241736598493243803787848088548581944984198713886870775250523723761539332158816185753348327552121020146211849525283416375133373116148694429995386627008866354572337056153414813672150120531559534677880615460815720624069820088784516507693004580635238564182578901654877373909445287051888772207589399767244222148391419370181994995075996873834617065598352139356345167246432925167290006717428364836716876352458887650718278513280383946486523182826827834225889708890942914969072264551450614288031034068363917461180420363978626191727783650747767187488554833597909452336867733880448549446316492626675287148093884321081941224414525863983225486282293983329738467345655605529466225041985261403909397503125999331102823305793862917476748706926346494739984130557873338275118373305638046905746695976091362320538911867713389851982957856763946733966900089418669115163866479536566168924441366105397471295303149788999630630597559655050759369838861720375634183668674956968781932688669688148118711748861441887984107214727062330511892893536464430095866516801432087533827090626941719441222254558977879210038296580363113955233189657625355091596916480593189124876345008059001291989111794545978674339406748714062413448548833114754816850792905619103146219163829450907425047748106272382827347508992769803540438367187658200174439952903802659928966805752850719579125501753845512995033262400923353202416292399979939261536131025296708682496069961052671211055664213355050310259538531443470857343149772274044091347777506009958395141141162007635549297636571478489486337575395410894994124206482538125766526380645466743947524803485407539647026290907574531160698242191209916102511447845011756723170922682794612415388657550836465861220957144498245473139742188432779501921296878581537644633557516166814417623731831858589381914598743313770760811779843082183291782415291667014934896863787845133607472959657712243451481255825647760671532968125355401411236098646514973922476436419624450377466004168032772954783352764419452626373943223036072811255637754750549084680205799127650875754909119713145491226797606707611235337279629770998751042560273045165984941718262779808834361257879369859416211517528897462787816441171686667322274964010023248544479658986260825438877656780889402639192623061836012235071793634681175295524851985177724202431554713530949374319563593897155764842988638710877177330043136210872313626886905729111915995292449566691654278201116548607252062087547641598508005273935629458099727903033462758378641731484505876555298226434495989363758977109695532549970582013415569043318758362589628260781249605793211128665222747279597213406031589143631573439410555946808098673353881463109434391680148104198797996717760829517173634146386393917149193182604242775955536848519845034728958029439856714433435553737783719848805946099914942576815015121820312148470641072895104339661634217554144637534608832586131685750709441324306952943544123496929441135246852036190824676423400990550101430010544296634909517123745384093436775788396228932181524429825615535940296924509501970130242340159220580062480051264354213657384774419388513986465042255039169989505014653151488834303732257879803892956992892323058944598559668179818401334371620519967348951396898352373572763033782763504466684040356503923933870565457586306743094573899437947351264772590110284662205351279104089684680149721792047689877287988002103173925509211751992214420560902581844430357079727083623938858865842107842976182210627657893467865705237994835850082995087031003790737862817086128262167638177538699742090955366930009009415026148060438729666818488536928985169684541014428211741885362704959680505461838922489315607681158288844747755864656675129597534567864358204328574466800441165947388610923687551714305993202505082247575439858964601533870247432016465369097585660880909215188546242618076886468022275609029555289676321275027997388242230024317239437093034767167049948327778899609085801324030654071813799038598428954987324242883439525296015220971566918069725278151467952520912960278685450603638474182815361566349306905667063496939757486513831629722059864324821053928318430117601958653319498756003348897289923554279303421727061501709898759141146852982626482046067170845805311697751242424969898742074736542414910796253198320440238189772756354219596308570065167832680676575777953584116121560639662887183012541756829052626863384569883676900454107157776396196724684408973445299795869420925879776910102552752733362209776302804973400605161328007666150624714563437616396798786638097935724044167825042330914497535155689999362542363387119962372843218862237860422526022123694250080830034320249708621776458220292642989867682924756904395629321946020057023789607026785587872689564424949762911744204666971561220939293874738160357968431172795301092873056569903706997473517223005842860640280854249911643915396153544342542462831078424083079327898353349953440563075331339090015487999358848969965490575870027833633679707688070157380034872524836004468883912991568519898396553291240908373582625666358668972148496427886162070027562082780090936747187775722055809485410015690653569804224015690213064491299128301566404432124024325390041798933810646296568149844123369518881054745192793560013249899246537146637198840306784152987160083391079846205835037068111761685906152105430392008103737151384626122161993170646635654927416433390939002172123141728732125997735142639094973950242085152121820436933281214696976393200248627652596743060455282847579442645233531403101165740081120289714865295814487592018061832991285341798659070361039109802173476428356562471366823447540410987523109779683597671012418744741819132332106098518363758384682174633183076072915351148316179817634379455676323924327671739846679660343375437651626417376302204478612503943835082053395577933413738963130596383128658215527521351330921069640679516606852416921127050212627091737331218106796369533385598060670123991578553748961634312792342757039306819972205751220282622042599597438269495918926208969310405055355100820526512738555308062772774658181535531557095080982381246895537419439014061950153365739274883704950505900111800736579836939416992703814181753167393030228176871817663731675615374912700971135031610411391660846021500611698496394061790973250735354391285000871393227042562544136161502707317271354832921670027350156633243972063056249745418661665596559247083949601969810039371243146484953333567238719473702380627148445134666761516925049115909162057572207754957129330414997363392084405435655335650021405234728208571121836870160686364000381087604351510243051649467481309920235330612970666285197398364725770442409609117885505389483793287705291357070475695191181610574135201677227259967587163245686982341092725136756393052290892619257814669394501273810560479172683187840426227901502947936077072262886584358397551478837973122308455114221242057126345732046938985115581567334303815321716536279197016891637800528453574682110679598734312519944096849818882731307027638834468741645103447540748257447262287316649252060480180769828469632956483662899103019546647807946295705010727250543145392282918957209970972827161102402365542115587528966957311841119283918803406381960066516297712808582360304378532687643740591605644237127918940969094382328453534501753854318700909448530124340898083011571115021746560271879903991470053061293590861017752023063719786292216639221622228855274461057154599864155200119479424573033898459082297747963846057969923341695313885708329385555412124677498410701030732877514129918299005578662748990827440536157208348051847169651129327002237081343735625740814598901711450735804906084163029617062224808568334900029778924105162093716810393975563933800236297313957865661546835291945908033806897337618506757352493521786448275923070154070868249602568479311139446207028653567782605521754291478858472024737868541485104799461145654362726350381919722133282451213628753496194255146991136917802911758817626252936779702332010612775832122506547567672861804039430033441552848803117062585614233921910884750551957788040168066497741378105016607275033728807523621885956996750524733058313579483080523994115735342746384439385528091952663230932551138633479055000176229484846382813129635481440978036665979149756963346392571584895729384338610504218753023488318636697324702867524625698571666208139403964726818479771388308287077247324758743520254052062384567275332809891683982505820351611007441429769980325785631930024094081998228989026500218870592925509173219541540799023311007066710838241101919243481758798885920482716195168906665773837440106991952952320012562916836213576641153574286424223275041706878529760916989864477333775858508753298061697137062154834327587304302077978506934742050273038121882913025626519726966502134065337704755236797173855949887305346442806827536777013172549789745341722429063824602118476743512579567817052621577573659754917768279646230571079879247131583097148068174013092513980605360766728031689536003839196160675446930666925702909253697106441503506665535338862287505595721298705339032307921831761317770318755852943889220532506847501042937147502775552826703068020146907208618963369004861079156956394882121956319104830468829564744710813649192231927053399901137012423037039411243353365187188559960830821425930439606242675917717908770359050431641668080346578574522546176480118139321716278220102744797841330419751737480341391244901046078621170909835264438091696243900800371775385753913200474961682332574431958117327636242038096719983714748758134738989937286472161559500910740536628878804896958961287317251546964958906069411554579652312283919521388298897460880067888231007275734123798673408572669715124002124673817133919851333099288532134967120404658131813809371988928340248780278930826898873707431333412980496018024046211569182731148858120908627860080603069356860330697582265588941906933474229950879693112576560582837424230739895512755202138798694366272552825059829854741982309948714986737322609703132460009290732622107200440734145031166767135412640121519889691479141225556527055843955334677919695756518588153805151830308464366858230871340338825471261161634904267792260816404600966461091959932787684020156294765322953791097005307780624727555522946239755318787960198935539383997444463150947624487558302287855294523729111930729251088675033389155551869008162940530995417486221366374421187069332416771590982283351115708132288198068753476009923932143814410925335354500338646363502798472904572847948462225849843017667698014204431666509151726034795236761982328887589181852200969661173622169296278639917842191273117781714457519087896235380154399780646770045095739783893501900252623674445659015253392042291217074616065037805546041129506058066633720042612159447198908527751895272086364114365137192354911969074087071177924500128270821897158001406564921470061024155524238649717625241197201175651800684443760773873056164464536695634865818881201980087201033886195125863538228466391705972924953153239699572526798990751628524376105382463002907482006992798563740928506388874352668583196648028415471388908788370628682470354624167576250204953967912377902783491339235721509178377647449891306688870492853250162039846269878308049324898885587510465799754118382809772469117222190482442528566196515986242271146994745093493871283940167753832544954505687036044297922555927762812093092069754991268385097183389085498348189200168174230206625200460003834667448132632943153788737702467779878726442517536316083083689581805856767153551074634062336039988659990137936505825853134527218935004581134594927139181755734989670434887219546035958340777273026518457409198659216678184806343053386192919444114079961419618760781015366635683230408622340732124845028177830659684949062629430180956375944080236392699863170069958808700512828883961536849597634924488250238366237577064795828485134131305071939167364057902504110656803332524127634991891888158141193396381965538670914596063010577921079845766885693833020314955167670206149625598293185416120888082825872794205726589056834072953745910289394482888260268695638853131970187250103124784973480659230993379507880272630518252797056203697360124765292770486087417202491414997997658924477136731336425089291790411056688133554952421524372346091172272751627497781714887347919913037241504617883922229075891658295664779921557370665278457410758183695636985966414773664986392111760925894721659143630903750895161155039275796071622305794815754346737268747336888048309204232761998790789395771925652205141334929696888958755821556214854275213861410366370950448178719012867473411371651288843678723915946609199016323495824543638457962813045620371814713909092250736397994520979882076046711719777732001508562811117457235093888432246190691480482115513873084469963109545478852970583999217340744380965880313601042518732591570264350265192543014104380525086257509601028101918926067368216976562822473768442165365574798944746929495396674186479523361346181601362917157158150856433606565577637873487043080748644961213099157253839364453516102201895075172229339586063676216095182107321843847568450260284659346503771714314988331888076984307935815969077282809197473475783567614562793532107775114704801409253970806356107223972217250730160827749400735898746709790492001886865258324840565626626206842364944111540357881655314569954921044663575124372871181043671244404937802625023514508203121415820879675967973091992011289678447048985406321477634100042041501375895493717877850427076648359885425241051074045259533730336479547688569745982338009440320663986144451921316598519018311854059273323968305506511482075324156056252073639802620834198109889905732677531467384012533815859143856930491277478595253160261336300935741492440700503480919195597241408257114108162883913973152275834033668081061040867295230012873467358915519286076696656413007162393038172686741787551371360767163046527698980811858297163921408841146757448087765644361886460355846535348437986743567366292407590223929608816334829864782428619315560027264471260224388324139687466070848803903623607928463250280488366635970646756868708998527435444370093786296719663939825514272097582446948846531360883955491046199756994631223934497414661207639114171512756855503174431717293918559676066494928345263777642784062920098198540537182927656694448125735465194974521102352934034899326505350371355867720847981131065008480335960628228160737096897441256311074124706116320632453261695741473933958563109855560664807551757087063916583696261333552206388963039655146552525374295885766319859397215061539874754234945180416109004833612586246322713442359552085959706123012956063696141330039724542094843939925622483104767789479505840356436383681903209410053893318321403488649522085517242597468949693371876568496471832715069348894970557190396493575136934251213254054464286889523637458984372307882904484975392699504021278293851280187779359495543813972180083728084047315959926496601743380688130956544709887201916610451087405447806535108285051926052409405680305973243057785519387552429132736307036727380789155078313641830115684391104119859437327372038729671523714465428749978295008276626671261947033139567445734632132367315706725029951443476896872430716520237216624427560528432518370340766087696594421325201512158947798216443896601787235315043062061869374080923752673046534349246758447999777814704638412674609628568130413356971771696887819895903053744662158236898592280195798454860104389875008578131477298629305327826982346039391306669980633882905004802337529215006272931284713207198349285590493898763132669072012006601401955640087259146829487366164881293772267664817547589936326210480202467101265878439767763939483000379035685236199058130104228558319427046615553928186410576024083548979928160613026389746906148013159687171868954142515061100885908861258941596294685893163391286105138408169867907340582317074955160905438509303825928307583538514520404664804819413413501093776877117052919313265425878908313048473259342137168201195096841293899557748448716689826339401739632363175376710178497427024561611180087499587966065030757462298272486888701160409005634709136069010866897336578396465673326716492441809370748151433800412543774140254041279417882861117007335784810554273262519480624012029668001387703831407653477544871036678447431238125724778895049366331357932301702703895429327927405637518817042010779219415755313017477531487454728078344939345922756976056572415020930170740441194043619743002302441841647915301669055675413591465174071573557644656154481163146698687747999318649487246955129494835346042023912345782213024035810783033340960539590567667187228982239646396868829145458206141109618773692219321109935650670558333770569613033267445787632339612876807687919398501002076347298106829472335737699212413475092531739520316977771351278786847332823272024294093161632844939416576496709028344362509978772292459262084629568779970639974017628931536312116302760719379833086467832715196989842599222478802313702154069001302031745801285521710411384713387467723416209239859459922007554384791206452776018564492367466258260586515981108615734500074229052888008296437285158340255969172909513234389183573033804187782881771097152749888597029608205686221314696165012020621768037545140449658190156746717087488476466415618423852580032360275186987566317125695324008586518810769681209291175863608969601219930182004798240023660031533794313041693916705504715240458353557592134275289437272932932865933587494270891864307875206392205751515163608868083682779367140959877947381506555088488026261432119181499056745654657786349173741277091145345565030912602290781294455653331753031520333272548352409009861988475310806689268544802779816808274955722143350114796083316347554840927134133840818583080065957035728478248428597124890355714189894063934288869937406190517582443515141549364322734133632485946296509708021521281056579149407585002722423409520979101900401259111094360509904292031590479929249852873067221600223710070868610455410170274358993387906196209601836068103148765068647733306081048211277231247203977294775327187336483462484849912027857663701144959290879187516914064327540128924210628594394341758113800603218713815663733390008041658175582108301563462292591891847701099779206401432785739204290615614138914287088685814738137733962171396175831556568626953103786222983466098765701949616848120834910608931838257977444466917467356684235930696290147578730616691778402229668272741206947334735704323077125580710571407642975189321017241045713259635610847962112867431620843845607290022635490568125114265472753514349989344938461050676577868491175023366568166224023278286579791174082686949545665184132385392201055084571296056829640496800232959084626593585512888860930342574721642899020466531888487373448830525170510374715723962348265022726859673745660982821006597174086597040681624195105001896398922328710947766317640648330455900123081756854711670598065023525135161217694820707298522114985191349927002896443825479878515291399067583205371161386968706647321665165825377376868521378408297635869882089891292304241847331502300510431461048100303249286751650023595068201426155300626162932151834020828375693517754582030198652205982722501280484049555031917774099048459897002710546030765249349292625104372844184548278409149235622331542490236672730606885005810100780787457408369292540354207152290475334061273340189683434465928710230482851010991701380062700537737286198911672695887022788424638536257396848462716534975869501521520339641055856035616985046083965496015168722168069448368283405256942552881062873834660256661478893642140497680665783920815283867680636587863030361050329254638159255905041633401322749999137007258781320086146077670153133528463267859651040022461643867593655696780375294417219239676079643605524927254427323899208757319117964502525704697877844072982123524114894552403516214004875502880299463542258202975643050256599064726680612072660584309203833823989547900534496366421823830919543174580738208360267538137546725473590637613157205839908983578301244195515072244123554012866968282567794854784463073408537596852692381526095815485106553970983404178557683888351684579637142879651164360010162547832927817373794164420107382282597755962737272111815112162376978936424857462951075981992723252901442621848786577126917496391958681415727238388273565396893696918983207621579830917117631106487390046217655130972485287925936724178888579772184725633323164253744476305866554943608080774491948828331960403477972329474973813261835495855213716749073190635332021237018717890911199547741842652851498465500305153552326860329299355645810356053285374170009218315931185778528264446392661512962922943456530405233708718997058234511332101506069421745793685602252511510848605171342214303173492003046279628181591679560730655061164702489773041383947496274750731802484768614658661835531345196440908192136769491364172539835217652484636963011614446261076136032726701501198028361206207965485792783134483450952305546526860308207932801481052523939471836525775664941789504841088821008188439670423222861236569599445226046982109970836576303620346609631530609232403041966341993191416547788544413517761480738722610276100920513740275137329511657331462771853408146376796341868652312608393873576733731251338326577910523683103861051998952118782138924096820269663313137129778766385655134254594692074676474211178350584695197239391488738560443739324002173601082142425739531675456230157673052827953179859807631331642529165226265932276267692075958844819670627570420961016546731871403723528203027963840632671111540170372004781508665313046177419301558726910913790858289713986924608558186011204612793099606563644159972938369396657757331486691693259749793218122155059664264634887676035937468463667571522920500779786737403549596529862716765185451726506893546615765373620552064828744031902169154731668149404763472577852351373768751738025324254119608214168820348952285100386225014850592938543988030040496195638115983322940606570972581606601698497676076460914279386397469226406725596696936545946752687870946846732330023644639414744729910963279885384272274727564082037275016775604636807946541687337235035363000248743785786018714626916942033839608798467128831653258610671711485016947647921174663403837151739409739954413098267768697679906881224150436396134396462080828815820184386203657021717341714052101108284882752833093359063913514381046811603563038383454645780549773535166717201591582718529196546834661797058611953280134888916799620508718953400330463006209955245964388992347602624644673989914106061842425749016307191924082020913819747212189996114730534731400325388417053753727990251949976350353233135187932709786562219544425398677540029719071191883114708235419699453817464404803145728897972688985890009443954961241266391147633655064660266745469723367754139154323426959081622645661990413169381481093007602038451470844393389185150621242925571877117700425057828934056931270366390586397153393530292261028757310218530208301085078716681659392605357278333810504155628399169229821838459485573189716919886771135712954196417289943874566277787484342969260358217918828723045962982789201111420909458431909153502077859202472778254170708060057052888405635234192358724646274395022015124947201040948390450676685966643078761825851300037760974743335267746408367065620982724751527364375498806031583630408000252980517768446908516801214463356918863780611575434090807274059227440087597400248119598337019754768868536022709647732442054515094974829966544852754570421198774271853945115972253508384080673995682687792003810146695699328715595441028144602761590538693994515212241017418169897987961424463538559495449302805036619311057170109510275837674561125660890002140249078574544793116046486417322627139245799501942719395644113183228697737767216101723480093031635220780048773576864412295218453839394703521468786384727952733994027266258314955457300964669452395804848190651353924899032281213635388420784238079128965657730199103416065950558445489649582431149112169936336791465902710969624076361865618581356875183439923173658499517863831814175636583607180743813712473271426791725427512946624079080207903458076740919758418551860975878945516519420834733293259914748925697006591200210847231018448902869099864240662120385667909834445981319485973344491700270680311937908467806457289395978449335356637650474857293595184170881003649284635015959188799590890969993770042864668654805556594675742657125174802046852786624014051401128568801401215766426213318665039334753580262207188914358526604039069314706736344063396840784287558224281390861250290768285617099899580986645399623450455095208020805257612575639011978529019542409724769178355398026295016448173024524742703312191729600039501249553281087806422220827542986414291746990728562670906458637689851520618845915519839786963363299649774505922027415149999381410964826718932074872920282855066858031973470589345071549796958238208786316998676736872715862212347372546943568439411347504433399244490983468535427041061035520819089220218588281098724295781265841125441549088589178717315921403347838552612678445631683641951551298714584917173056940140309296611767055716173908388668951125706492791845419280570538727555178882042727505132423581740416913397821116937374803498829692691686116411557058628093229449494218773577748408929388421254313173356192618835974560830299727967654360588174281206188895935027908553104272203723775709466153649119353454950387083168746591373360873957472060782345507339030385498595906205859280467682343039819153875736620182307250377276709679881211163757068907970728036257423193284308233007132785617690138577896667676273893838703390379717167786551009351320548201333496032932449543064177618967624538887706918962351779792126246195201822013561567370872222556324223461396778998645282303376720534249380485419556592774048924877769613068265532264478451967585356977418067915973695472979396304269889977455142096259892193164834297558759931190193029819268537250953767772497705889336101138568090873776811909956290916780438762238763310880706690364138963627211415641837539494795616531547198332165697839242568023093131557193304711284598173092725158430254145060330387722051417665740889671414854011918125994476933516718019607641333023704252854009592215015789308184548445454825671536825109455624186962873786027584969896674902371243898072801575535328660206967881511625509673126037054041411503905820147594423817152242148652323999366621437074764203859428749103513383932693848572391585063856974374729529220156560827290368819936771895390102663095918658793697453738607229762413072969031711875111038709984671605625216064153915904215537265528590486348705815340414885149482537808704546267741796915240688422102693674710860210960540544757229774713608341358239228552602396261597413612523168704699833867938206846380697273466020349070317239041827525587907639390565732986194758599849364200496648970047321584326245227220651662589271712563873027072292997211584379115423542065511646537983124213473924038974044355082100045531656494103464325666918545044246440092600441123816374559801195950576676925492021936937338244495252528618890070727096134757101286981633129377172102267585060040771462163734819723333150427450082181376020329483758725462169579711114648170394598122905144066229534307638600645028984698066697144770888057607415595146125850383759730657928715193181200215835179420254007950949731044124910313399578877588752626452053523274041700191257059979399416243493721673812789503790854467012022023153745754784981235094675255526123941190841219378253996274322288051381088711033817673156094383067851424889308208548721933699195566529262511509082611760326594548852956947994942654095805867542019304444081862890305091350163664936408954680589495793080206219862242926768933698330046708295520272926187002314524575140739463045605073641487424599013147909597017603903980600440142108344333796264420553535626223712101457885044493340890402226000651512444185278201660811147073438020627815847549653754712182779540493476820434507314387697027112457355759360856998089034778971314475885231380662247588039866577449320546566719878782809814163869534151475521955832299374898230500441880271705322254438941511695766548029481276303292640310275905941528848676646751825417337575412947660012975634558052704562346025044862190709285234425387489769312483850998050570450736339397989337758442608269565395425143295938564280238983803937876204172879104490102210179779541218438743580487810005937449210607844483052378697879517404663381526572749142376125481079042221752046965423097172900722435633848477155403147737929203612256007177544207949151434223934949553722064922303277669923494270795242205749227961997362841344449841315831659416361481588422838840867787475088889291370427909677421785662610783025626622330224538784337999369086640939776905757800867143329796990997227371028836766494604866385373006719959213763175581021165191824655892352166637532019438985337977797208383245544536517500121350254694416366430904441664147911408557161651789211931358282020438146723414596511474320481940609072153393687272885902905623551477501311107400743455099832699809433719077805962485810929438205879275042706283979829213452065261646464985122851196201184206587837222085186094268421092970572976377207424768859953077631028483120570520883856053916624171463185359014906701213140254038292081796822248970492890358652648048216638260156910871235191775835892229280899314716045650557006246832814179671973258040045847487331668948846375241700931939373352147150308384103344956711784031955288140282117306998939715731262865750244515472992260870254639090273302323387786045708641491516937496618409153802618100021346630710388816144409402916518904606105067070008662029373826769839503354477921101775203509206791833506247033459642923121152786420039749225685022541644692194700279516091730971015260734935642425317951905892077903710457672014401540910383536981219186504995178211593212680457849975947812434119527680623674861269456728132944609928860972882817080895789709524642379766929038029221094389095729296131055463633396350217718567690654927542928811593659421330730245514359935574203685121783799721909605604920907658453675740415538802564325421468605785895944409189723085787701251254325299014965389169396679449762132091214782042687481381539964911937723232348153196803897568294708960291635224870631564855839253432329484340132374005922685276839790587057274944508453537158578488362741075998452536040543179133260116848528564189506800674320163976019398050344898063466173098378244469285783524582017186971845153865461534783692530017905597367680210261836233561554078491139763312366357218192316872925838576710983033866837003136852455988617251955600794571110843860261223891721561281606957160957002070400771044897790131492207636249113425214134110432225930248653119034349115861923296608521442053294602815616664602009365855621051362060819998555991389430472706917831432277304110913426806612672046019194662326262703460676638556600210918123723836807233040477807359917890448194178607640398047416899008305678867706538581116706825307531021871032180752534335232826599750682794110988390752090329170704267669038465425611693258228977061689736695105652013879099285938083120573955048090877498811718511685520144583646818776599306402470278704886699597517824245658054682951536965342172369074231004219717218242431529253298965478019234306123005689930971047968315562746088270951288187876321139485291305359004672291284591867751610965288399088656404042857096969327971878843926800820060977645041748637680738803921931101349655793637984601587653927230923709833979988856784790779336385210010340254463422547465569403774488003785155200896522641143493069195740244065152715034674808971720019805949661245706703050690223759212861955172688088912911087247438237965886570673115775304157832053125619348061687298761600695215697410867851181231555428848361912592527789561903055177256152738826831678971892260616439576424198707530820508812046177488945948226427850415783929038709693830654762482956204508295058384638156403297554307104556076998102620276226826196785599243703245941854430864502589946068162203143799372435207369113467719337661027727269842126197895402343906344829397501616279696780643892458752273468701941730708041009963107922996642727565824809966415060183253921662104748030826876944526613833111668984571376102506918110883138989884700539683453560978521776948579359470860088131864826069485845164934923555074570410199088965779958113473264035237888285083001487168748995737603685163648437492430495718380900110075370465352225794351706350442370069281031628362943501033328746279665836282834992169508749167950951866150760484839637511953981264730840635533360541386821326377123011502562562310950318155383422944744157869789390173137439033900711830758891157032122486734120949271970347919401520737433279713815324937079425407137999401481531589658005364518204771250972282623862362242500335740000813046948185636029813955523641253709269113900158502856834880634570052235480424860177885390691451075116696212217614717995722630026288400320595523700136271760533059323092673546048748958073720086263331760608055928416499332984363657040444015898934705508500703957050858876829948232753412891689703369876236494791065279926181297884504408780034757732031086647052511306951915796729488994715247457598159381057547667809265175043511323679501656652422481765147527444284190569648998823806351101737387525204304586180178090990922006140444759358680010812228901837823017180361991861271577455911104533877416191582662022575327835149356003096802069698755595606583650892524468158113354633756037156348291723276726089730178005214018168721902524364262926655202366636317181948555589080412428929401263250009002149571374112946543215816394265606591686345789652088227674497016047006457326506735398249156778527214493436062796683345526250179085158726129175058339030597953247505645593533033752951083365301178303648544853794102579067019283770042941926985333508573793728181728169060967206244653465937906676438151854299979142374557130808383426141801208339698052131542002903744646772151818055914647296311303445886107682738474382960674512932856816845352315314598303847957920388576988579510395752318746150648283932497738800602449684496543978935752827288703513629049446263343815332889518584434833465213085791414615371190727811801581264677504479886253757270898147067942410868002404195909645757764281677458944759750771178926309658474461178400479182781189317346363135065807860132910590471693776506085263805035176601259658652301416324129030172561185202397459195161673599925892866167867252910122208575716309462004059975862340528742415205200599895859081387669279404623557806317847636465288148150905697623437243965534900630567471318063809921634875559324747461528701624713667854078519891082449677303308162410023216031478213018390237926436381047248490317897281592797995490109855806754437139507088183318227811684630011836099581239419461306702804515125901601026599315026278934309425195706052883080174810362786203160806360393977199061328532873142047237993768339955360186378357807118753871006019871739617454727002542526656952077738914569631574287162853474414951457210071322828832106846957182941255305048562431687883196597315909465408546930878184112855767024607570849984014468538222027031876443662755826285458080492659742156113208913150033397792908253067804037695688387448401166513487956463880115161481049983034828464343675758099777259562151802787421582793115597570658189376289914802636305028803768518939967608023003793487182451124619815066053867637211710593399136614632698179213917288933195358616920133758273873092359398706659905777381497885353527227344445903468661857475116440723124763027544268060133937022758052745923757008241624737379496658857427117140398299477304940714184399358561451990691568691719248228381300394745894860256910840991543663840632797604278141963031659366127392706906858615958211320366795559647355353883443074797068323314174789258846365677199458603276457949330997127067661017104660230945262169875851099751377280099677799329346854013045178541783291004457784683103940390805372745572562439324274756045987376866557680010399338238566637770907304095622713015056878702772639964438284636917206942241448247177565755400934550851583039569153951789693815944972359426849387399990671025219916276706557105757268613682682358413520417204480451154175901996820354600393679897142667041458832205321154498080992991558020324146473681125294770653907937756695403489950416693441735877786871925854260313398517774291131249046979937445556528906218517731605779974909208395023057884255283911156406120707706672463374208477304790479749253374013496579062177187333277659162378233300494870009184423485946510509757380983816018285695395610451641019119914985298908853543234923411720711816973753764057261921540189723309278042841371835150091560582613380898688167243986952084986634880915612921786175015610837274746389888689894211542106314541069116599705968731180072441031307136585227045425479162468971442412312066743195954498798567223846281943180781148134870895462618317788660483118230260541745411523270288548787219144750781725048076938003938546227761194559000162302891065257904225232426973370131241141956293783883537632741044105168917160444273536952115286343925548043717967366953344962663182019187746664384965484905399449072485624504761356501531345022339173128284880482913540118651645860727478100626480281462134626227905501758926780301082460645637700859031988307084397396951274708029798439389686306832306617528621441531784720564718828348088296214768364850852196436741383780339297618226376434618012622564133042535569101578242403961804275461852826441041193694190435335117247707022019153859064027855798376975653754828189179775654022984165672842730750011354898568138323084587011555139278790798930282728528511704123827142896396792462838094145399166865122145939926586303246216197757051566401990245714552721026705954980653688846267639053359617705083004844867626388738924614764895911641168379863339687506587919890996978592733632905214196571964239043326839768723667585234749789461629071319494893114683686663714644752754852872184392346383077310775072979401480287706119029816741847733101755597561283816134088504451226008781610336444897625470719702172444248401737376580663002929944515616797469274152231518948123334456473031499609262072447492680330172130099382786333084182685728874595312542765618860200079997726633904650556201785749782304404886110036440359873270105104188471368063111146782484167667845056571210045906048232542767332541022813114471810286205088471847856235681168477781352422651246858205148772635496747518631709479541150707582721493103128936566397309089988666836153129731045673491484653329247849588536255891876385301878933427311800628492209383624931841960603064215623420595981096792331724733185746298462837342932903344318669949201506838571706480286681731417572688367573833703544586332763182483403486838463425196615588786218225442750929881561589592908907688734286373142545024901324742066239455527498923561224160763035673406564081531349454354602813363537445608787271798396492166699761867840747462157364954361651792241063214201966899888319803743801793630944515359424653528808825814052527888708872749159896495104309467865801194684212323575281390271357194401532425803507789223037007930775208079934708192709249082121306769695511915667787695264316611875330511351406830259003636928763801272753402104647767866160595491175920728908885433296521550578791930775402787130309922656980227854609989525517250916462830714257717668779187478390589553914596048331318276047454920239238187872332867507966465404616441008295910564046136592991985683537314714686813100079655910920018085462573415315030968315609618209167195820786359847667931512733220563594158723618989230730914282475459879910017416470503630413098285048387307990070961652979631972449549029235999816077442153923918127692572046324688074366910883877506334869742802476467666640789924212694200860598132816404714825725175047754463332418519184020819734175208462987904070253809889199307707481014580310229827006181903399694647175163103252148011157884128359191115379558115516787114467985300482658053508102434530797919068591902211931714835844147360184575718653369151042165251138689650504434857021372856081047872917105604087453235760946591986326822171353909576339449969667442349858407892613447667135637511296064378329156240644179485462420551808987818930491924528924314598359342814426197940925038220523560941018796968539373400364714752102770487408431162741431261385824564254309411654605353588023918583555111876192777662417090769712085144827632068108631293154048134805175584276176420871616448266587301200307428976953997873929090376543946543312035463713957098821107120283276253860163190669081278525373670263429906791518116498538521297790238389130387802441426591393256387998697612058421972056746276929662423822087085870609513324911334859072334579021914749080779511671244588507152106313931330616458842701873172932870127036581338261223040058595373530486169146818729208612616075341859203497103060130455231604085229799192119364205357862119682640488758737079317384141486214767977937386858034128355057601014898713291371284445515941184088210665418404945968355013327735832773078744674734509854611153471183253182159205074852625359787957963507513870442538741292772415858167040280401984484373092852705476691294863691472595857680296763895732125409337592215609688193445907609189260677264827406574614272640288593662477601817534392541531238532687167267971993479097644692926954669071022134925591282171055311640312248753658438371453662401618584014105294438606680160365429155127363769785344456809737678707307633019495594625721728458357597156245754157696354073378013106483138240594468126680171638517666159300768101456652293128969686004586616604171417215021505741079564092739580780779856197218220157841230892578004360766496764477637132379460761589752864938183425066392204361239280088061209891565353505547973832952705849085936376419970620166624398857014538791358031675662226651240153527972746017841441548861400795152663311360260192837282394571240660579689881495797851709435647711005814383524997848739765276922623261654515997878063855679936440465200886602321928410293182646388862737455724909675652963343866521226165491108952910583930077999381495948448654004288089392338253894111503819531380943175302091382028176004901568052654641752454999486508912523005171966157972500369512036485995826003870791371143091153581469701641607670173393420239582027757255583784217644603633957292785910926343722555422095146385294525960367381993704767716989821621129014547522005617105526513965428169334338962952350989283280131848716868133338279119753457792727977347504916146620272242331958226671922311782644143179895115684044663733069940315451443760773838161199718122001909489018057277572542767134786033727136862448521382697175959877730179170393445159307710494693253316528547770870404801401245861772803861089157905978384592840475216586189889919810667517742183624347709166694019756332781998443394719826479485939301738761677283396445598322353794494709093455181514839123586328588654698751506460104886819950010285951707390511063642065389203880950299585368343917662476519808787859576866018448465958004765648839828427878882474821762629018794174703379661246174795619344668117662821078501773244504215975360208796491389747286968139903631298028049352612839069628537142492439534204717221363845210149724515203131476202099475583308312492201658441452629367688703000084999476028864016729987351747229735963890928318626308959247237254114870140687086510935401572435818071390516842973197080295894548075698016436116112975805896181267488859787425057760270230014838820469557366448144361361093759841693602868423763316631509628747427337979979687512039662436941048043534944446342034585412012873738370341859943108120817929825331273286103833697634032421979041116351140264180350332115991824392478873548508674251094732579454011986754697270764419625698729497297290983590088528322152151277666125570729095370446988543383818421496004367762751745522383120737449740486249224055272277678759791566580650462442328092046240449425107419675730209876860289731159942202331313667580799393525637123782838035661357011622063404189966014388975225843721539378825453433324609777359299221336364443180309788538343599489637322554421191548283552142929781859060334928286155144869025897324905919965333756921014756156051132348217163271505125405960104113556575629167799299009234216554614554665168204013686496539226190560167626005763243511193228329154595256650132112010611267418016390985997912155740358939625203285110838568466834330199264653755427319848179778427110050548069516300008778990258238412268514660354417250909787720363623908806083378572448778298430944806434988778162631781114051517651572693079740558530389866133412156907232940050251033416990149416618841729217731036624826191774041298606284413395838913104617123394504524058677576924375952430486885914317269504187399441551121357158611856907490621688875394927244551995663187532359734210561807348943467389971995591858991686019620678792665627048839833161837173638767891160816584153941563441670127354804605893428119925025993258732870441479418178587715531511027861856684258014819452568766128035650472383178163042541535502477292527763723981479139054369130048930840404242929788685943110070734645910246163052767691665122055148081176357962619578269879929463042663050186250355148036353547320787608212693191144130681984559550349341138280502388388590509303401000335618991555256303298439045498854089225325840089938381287383506193807629847274368501894531692873883827473360445822822380151312696950683851935014969664414806388989657616332054237602350539971737540435623011179960571945434741669379881851052459443260546457164664287523573255518232190471090767697281760637558557627645816258025681136917511788458979906404670696604899562969792632154793443722358188964648732270330603906861611604409459323388264114918031669997977018127985850392598810957909760678081383128232436307063432412335653507279108245389825938207115445644508524608819769284751998338762198467195154795819427307864658342032308571515676125334050727849852726912377291026265414495871848612024956310809679715372340160826815615687476815480061929323389300229648153545268324379738123382792491600797532550943174895114157317046282233233293745989661240000447519756349201441412489135941486413370777369214902448090711391714781863710523367221562592001219200244601720498332718493910217483378721991837150156815821055017319623837913291297880997025806517574426896147988387660281801791019529896993521213278396626593088842960128622097674106262728598644694807096141504998332814814604546055913196875698962266434796902958650723817092230406654593714259547553698466160377272905430638200892001245710106309906290305003028853801790159241714317756563117668872291759604426243917875486346854138029520280801266780661533221140919400342778939625881345610473820254660658918787894966924798108644924668145723439646722371269892058163771259386029659479342442119112470622562795118305872755426774598970071449171279446921314399521757347865717547027603777817411651487172049699321821951636134738928490600769056388089512546345312660690524586010825573256874205731616006031117116856952620804852760753250073122850025353366456185586244246358911283384341268317553936428966225621248253846721922310064837992951580207010001001163398311681552770591599765878000327085507123398203498635904108475482192328359038335544943038290378508601450196225624677004393608118757249000980082028606557738742894779014751954554465383549772141465281032035396971135070454824186562864961952234949144721743181099377437988041607703166555607676799930423678270530725975722803442895497321039372477980036789969689929677500615204903678775558074229574278290133408083210295854297596675332074881224830501956177950681189383565897117580322215841346334027336209125383861049768010581978063213173958168080812395771728136259145205073640393360333876764669255561899312540840464480884876456510042904646678565586688907827444193125632498215990043343122755660861302339900832811580039601892817823356049972160277259391283352347661052621274939479451942403713609162276324563511956871708183004375768575845354398598360569815711574619325217076010328117411942881663343737746001492419417709574211644817767747138760619715388212658908914727041340357351787793608511322566655250863522477885417173082231495216673244450555319082231285098111180952366876416174304186913222442631614356688479320756190965665584386697063105707554630510847571222521560482647213732356233527613705161186204737400110364491230453639044263205793528466252363085356385237653053905552063132048489346560745886034501055396786892651884270164874513942050192067795329826163897974011227499180523799641280895284860917451894193861396303342043129948631270088501662833555249152310373865661487851570498960642000264979488302238444889865078643164244263281928502699299412455483087909910061905844505446297750765778448349120651493362307096374765306389470178422235536585382882949036064006855297673571916679535330902046629361626977586825941727949916855332130533024394636793518370726603619520453885198834531557215630939153481442330505849050139749326149885850537818764223888696462425454537378519207934110240805375815337465881722554845336593898946915579892721851596653659889262691627118882122838993512784220570774163509547301605808527665098738984274217127606588118099654477265184016161028779984690807429144707448351354761752797515993935898600017324544189017269094886236016721148142536136687147292508573499872515153316695556806760996296243871878770290590791663457436000030194878821722927273055728075085298693061890895391642767427351524454443116857945545808188680792583451980108495712887384296357526374902086375757472859252312874317405295446111080528990715558780320224370517381794028383535704402687471706292772660406430848594013580332974435878936870302549341463404659960362071046217521069655555131477834890814131889227887309902565005022356084854905812961058369824975923342797278637475688652331911899319536620950974555753546170697541760196555595289989429088408340993333971600951411607502239163484103229025443939306201886550801930494657687509553816562543637262244516994766960999979249867627918992453827752578868346485666304940498102582223149065832514087461843465210979584008859093510701589536177096088610357783062326277258550494925447947523725915856418779124439560510001624318034489024036219498589730593898022802766457765950538150263638194107321857865890640428526862048146470753564888661510251116482127991830529771372107156929225174885670132085743305989411138553066969435991627876444397660976244614055080004327985234083161927148907423039206627227650062260510929288521966795342327269207659801368105039961799474274494072103103633458411121569086763166124401420252487321666232560069140631691681270843574616016152948275183083851112993120419664893350358463873153885828468807885093984059026554004792985609190070189335400363906783043228466671634746899703262391989536725321523463483877674937620331301304231082484177814446028195241902023873104820149173170903212123568019250817192691010877864131362487037269816827535465473140598701794505975760284713975002189880397525926404866111630549919878505512437045786419498282311711376466282876904158297503489881682300334894024247490801928982163723079817140709480122694822887943927945331734309257991844161105504428596136283365881053980872276163496684853487899791692694482696726585941147113982272557069734166959261901916094287661800312715443633354359686785370710538817017262483392720875180533482107109176096552154343012285420467280887520117444859188901370623570229770697049609268307904396767035803634628259906644754683200080062282752350874194176684908149595620508395806885484595341598841314532525945344786247435712427444958661305402895025954937174784039641319788275112817672589457416062397913526628416985647815833035196544508550327825420315772260138075718767879523854269072392509707285411857011147826278244777647899960870746740149613894205360858854773926133859095786258534311893087428759088853582862979380607896023713013496480060774762394759690464303201629498203972816471692385446428753290190881817737049326125499141425875494274758850010816549779071570646433241438574332911748669380246180472632340602106245852878077243892480135725612920116689012698252605490841328189845601995663766536926481870115692911181712997862478887390373176636192595122422661637525349073185850952161015906020410676592734841123968201912799286317943867759715708653120573062304240379933103156574186044895914565036480839922323933746901167627501657454533890788315275511662116368767332359271276488196012710023072372129482487377758738220931648018653499102104706835704151976075269405116976362277284660928706107184477574779404051776272008112951081041650340311615125836231123598132390017521836737806661909158315267935677074183660581201147916734075814253500895644580213748214896961023068928218514117079964668539212620291991798460900538330270464308995654227820402195746464674094067404700342279996160069930349203969020672015207325228403534464747311761959945776211310233273905631509366052643659286270830399501923623287862844045199882969486195347058911406112662486393453835953538743083645065941658632660023051076364662356859578168669011625766427961250777836150767607364231910999593763398759597425153979145574056388535432260846493222108190823551931453801827735407899501251010149281345552579648479953567939830437613975674256119454763072901461954140851068265367382913741433074743048104339966330135159802131035061533142266473283471031123520016023190916548478704146348747776209177654026978505792656236469458353109732248806235821343578360169268645602890779323343883238827553885076785295807936281795999280965830665366697835862825545748709239337725823400406219107827309420394910439078147492356766240979534331385245104554605212861834542376785040619244294128365317966948459771297684293269857767976018586774691809970225540014900371047337649422871187714160948450027152081667305455757300027351492221268542491456881856097007450737346868406315832682220231683677222334391316662372976077535686065262310160785658245880036007884214057569056737872697286601130710771754844336818148531896949219856724406408925926309215515371074189146459887804845938845075707315384492152719271554949077672151585381020523557267959956231599708517051913532074699904620823121878232233202649187277336113778462744903425345737188885583892855528722396646528320203548628269122361437029930214072329545247150367864988124602669912727905335673747738286210417698463960297039063336698705127893267120299224939720681243257545470231357511426724234647723787656198068294853139501255615705271148508932623759694855177593800536231852433590140764575829164995408160691741626792623438034135113275241450393364350769634561962192397118354333991480256282167101324963710668494491711415108853070030023035897598456509215363858682444820319436527075318535607391254155213341750703208170993698696766143093553255772565689998026740971317068113896693443330802289000610181705339030814617276203846445576914051160671272230417266872314479451127625486463900098078584884855015269430133328634796383479800482586268686688983030201210994444959655668951297233854745332276470214358894035047386637204397902642059770402107603455580221294279283530074680245339351224966176066024673036097802399397304174954032574056750452333119515889513228535436365292644562689082163694537548040962748651393021112724689008294507578207785104430135691111989337411679328552372016993066360077898446428440298500819339436311362324286794754297519169306869465143901376312861165325465910727196412309616965056141514628157188074312912362215627456424379397137094346319294377133559517127305005626209108516539625137527029230904128138433934323733443789848401587197896034135901352601844821305297070982173207844411481381726100269827845536470896762372230557728965868385983102587703836438650516054778550373808349201302969035673861671140362011350977882149349297880269844228510492412681949406956050364492430470146263853972088146629732493549076582619228671326386930129359225172771146725117777665374788277606925342564830868515833335339010600641825595362931523616655049583464603322191555944373016474381155254730761610305660270796906005457428979046655615092588412581330236802031709634798719859158791100376455750458130809255432097549269462663955351488507095059546264829456688064102594048604868995466849191234211321972333440166447696036525948578254433680555955442152530878938642519641852274881939230045184334353003945839016680121104748284710571737591139873203960296056377484693425456044545029750790664028106840115959941013162379031637892281907977333502838377830772173682670805211941003378771815148260577105526538720800230897550019948361521661706549216331296294752529061644499447461988422962050195823108494401995491879864662358817317710929143388080934670663517075548447824596219007202194394267712474813142771977704664082822995974010163997313952987859974695123146375334165614418171138389233618660991954279003456153250365011715154342304311122087562874884573188533126572443854108387462225329176978480217539554778437153894135017834901244692662050070643464337693463497352959663184321863383008172110007876696504624705271366843210036477847053493024677702398120623225177217989770091326498180828667498804829594227990356526984686432901929235139284697779442910771496340735740879455067694430787982508599824015656152700446243105015071381354722617903396853852549598158612862668329267616927776094639982453713122695591860073162889771678121360001729572007080220222354986912155560776189875870416562063211176792522080841087585185569471056397386833016912578812874812977834971104425569585761115950162830269383399717703353042191804256475822000996447960736775571588098545520606353369092919357473313088709334484333209036846238908094167025353739220298375826189773920449343787413033203602187639044289754188623318395816219195423293130110712851637916190181763015226175564224983826191341496123069610225416853886047550318169200066030624339446628235627250939055379405694987483646777563486560395798036630746947264998613575941462236235877570992821317178782376330608649860877395782457148129950266202949303442510068528087080305546301844377081192820186175735463301127362659639480208180415485508104862390446007223252212926662853839337164690135400948549582872931027307426662501764772868022503182798885138529927772757197856814221655782443977904284892621006292618896181791859302159458285830840028089209956810736217218916271444602230383230817291308955700463102931790382109942507723768890983612892735818760888573557624595114353058702934704057830510327403673087838151064576677110133752634869528660519077712254714956561830312208543105821880962451454505761451832386918711125748617823129361801543356089490037859414369449915496313523159883185814959300291422828880085738246556624940329845582559023279059497733388477156295968898053072025645785175164324448435799343583450720025411870828740373400659302844131688979136756859392715244480356156079018230341717919441831906458345482342303221541360836570222812984941743312135372043448442914623876240555740109052487540794244721805708993680583182045705704032248210768285337444257852959461962144933150988579624956154697024516677269498776310451598676611910037676695487285550476885709389777413587896992118315654011768348886932304179729024713114006589434482691013266818741739521480676707204366244224773193164589005143922078818789658465282985728726826063973097277522943033636200049195669398306211972536674902769342233121706071602291057566357591273168808129516502185626030526113862722629334865354916242432360739420168964448435533051167040365433178207165354137918940936239664989840791669820421063337820343106331012879445003420658948508691863020276976530843304152689124742257391697624276580720353173294467128807182949189333104984980232282069657744077807351878036859743905510456699609959115049086627847288648888130181575120710552023971665677184218228853421876139631159137181513808596795436626520029702469578532188285883380015872588515203739564489584253728569016510520750403633329583639369055186385222645184680655006522140603103913764360302900378679023908550550012981868209736155603814655774424985073918435062939731194434974442877633039552860913677067256679742763006582278172450596599039108400580359542675553772584652465876484140176949924444574510714021684690231508370904288737122882754459025153436236464805163967199950810894890202961510519268944290696356988389184083817537357119961266890706207163837308401481697822214886988654691943736150467341310959310812876268199253612161847561931607543509527520063288632440681548933718519082609477151756833729719038464827772114918408031530693324762441684967996793175324906792831437240817435338730806432012264325991857253861073035637056179820965709539100815370699903690514477721476034849637730817056505509527605594679885917313520650369900093606665916277545743442840607069934473968378845634319266248070143387319822671626144244354647909566885106539742971305959780949398631886492601233140934908609032463374402807010073775854624298490752189152125766658269212201084843931371532922900202754339755570957961856886680791152964939064642718685598127738332304917850138043670916972432543217557894607261886456610831019610231545423921425206031100260471341540693625528449155012718566028921261519856823948092905800706208229913660283582419767773672828195462811262008676973554517853570045588045309546311100641668983399951550746294550039573069273340525493496028149209760085976979591727550356434566594833818245263924163809986962951645985742773547103934680876601896913011094354105214677824077873051789780684378930637728300194133268607508447159765444025886917051958540570296730475252351103096503847788442233800394217503254553539442201237678417521618822442006476034573369341424880442189306701610333961772878905217726981274560343388278738237267740989656923932857861280481190189488048566504465843049274766161048098866150504845713628888410204764480935696283527612537440562746072561579366523333806022771698490950234157391769146014211044146152998061534912630446755237730745067430752381379906458639928341655317619396134703621338231886211669274756299664410863579795592490639029934403053506122817306290690553911106627929665873032629306965324818773761369404041593588126019519588224448602649018254556347434974615323283538503877726593776724810701548228265324302837394519828901325884832546879516104111549351732839141989660548265258130300736548879179705369041988962630644292318113028996245698330794723760732421197447416190596034517174547012054167496673145119810301906285075371999554299334457482342433686007150417486994027523751172134966619845103734625890988562884156240549255957919798814754504358439636370502505377896879141053393789208191930248689436740173647568176886826258148396206441444311569372488502303392381741899191990530269200380215517811947640347119964282644728120142142426172911727208078565071083823085390051582541416566915740904595268487295515864047698137735111332241800208368914599512725279276154131317865014290531813696805037575615310862684542246159336637753254068069042405683926375255495686196753262052984279268114880138112534837262695624651143251520723528671870887542969028504927337720864545748905888085836014590420208447019868205071412890972828841825803541718439117191958587701989584174904085560247219445322291286152334575927303560312000916013457185573725565589257478785774891999461971212124542669470844394113592148009274722454528776151259866555562441307221728609613278465109592737303295428692863886778234210885139065031278264223981476987447597270486479808934594675939239775139139959370541426755086134068917350354869777470450838017948684265690068321296332667203576860468932445845886392016798169175351884086685027034373261796043822418416738079595350923230206262115246649349670735352047236010625277310524269451958671736267936453610096092457612451368708154144079849283517675594999458633865876480080425556953060571757252802537144099381154276032493572745553112523882002365501619406151380454441223404237732548395498129387866950189310082098140430402740870583770502164085468811251151713779987154823961126131013424902333657949067699495318196981923538986609007540344264683936113789924770591399543382960145874271370500110893981452195549432098150268009932976849906404762176483277671961637250121291956510263490518340754826740409487635268238378743247361543746196603707631276062366250746453695081477033275019405375662772225348292823963538939388526377842728697901074194077451232450460272270986236754430972215274802999682953459554875410479519528082019704761209911642849654499339270903637538257299659755924330325347176536448767975543045671557231204136322645484521782729236206418346736763453508373911062763088005219348407280013463922121661665299379664363098723837587121519724550115385294097055086990311067477569630748785788107274703428314416567035872062334722402735215471433801144953255385953758311808526621690689703972363129150170872247424533975905668372740027981352601219552597291150388748835635484759175198132885120510165096381723288336058448402864226781501998725280454506779041366827877970287888578071950373859862230628010223576332159002895660403935800816991679376970196218653537954627362009191050354730741197507117566055630524315725537386140199170689271853206653110884323238564933127327327606526310480981227382109352530017704174660165341446308418639284644296554869741417349141751792445729033227915287939038448901502410856204667384092732081093497027298341854494283280866882972493396873349635977726053815030097742609710850664806078164208388545725938825214597666427343557808890901067876957811564687487687863766873792649650489933634556185980952434245971062016721635631567545624450551874768256123673356483500413988715876843565428728523833919947773211095857129899169145381676204360810960963710232659450061122061979678313179081908153315572615085500094419668605790672454651964020263584743385250047392703933214493321192557869575917721478970522589716609477791036621985575634356911966802800439355181318152029037399126311160509428327831289274636138230363368157459989783596017734837940656671878787569099718905179213240135808332349395907724306121187510527180230821600441835127805582551909484839569933894657088302497393369527328385289629066717704847790216855429631293891355086958832314164090623616700253438866790940449953555765591884138495873166950988678763840508625366310913221909891580317964004070286057942251159347555506972312569437155034634307380445651954984530325408752006425702835044286795993581608060677962137331068456506791230125561091299348682307527985867803798422600950126092706714988577267469864196415777776572703095608442174215531472429740559083230727515323827606019651143543713206499189885441622608504202613413005310674105214089992090411150722012972882474785171141692634982140883057342770905217779488684081867172439210094145355114402934628405792005815638276435909637772347075283730347840612584319514575077844803099002313206452707509368824805365497723707895538758243440508690395504940459869623768254086638723923607942972381885196431809399233808805638267877023132971602984697237231901290874667828236656475241598178685279299735200346429064227201394345064988407579363269095168752612644773164130766868521548089668041813082081645975048113864687392020935789013563860871602713294196590971246040791309667578647085601624576437597845218420764162445485894409604962661749718904126766323805068712758792783289682068257000250830751981676355832697100095756684872610757093284144989566902791112631088755901802135509556943635234863887809210407341106874190948214303783711642858774837684265128044710398927855835081765849058224702377636665114030418441303748862454990755764531727652838100971875464801613314846863891863106337098396563187539630707979397126272106082743473093602884435295182636392959701144082163829947234331595499190860018581250675526413743445771590332316567606740763210092702000895880369882640818475239165007998310405400418922315505575987396452245399126425275782820850011048239388696241998325473107219486839629697795386920324016956182228109810368079454681958817562008368554689033651814105365709747681452419458220348060614165376073281636485534621421939638401201002748456988637165052219909283242326070215716685054348990050958016369144408222767302198290652423963726987903737873992685759240044475195539522291721589520741636343303514808725528655523960685078879450015692574911416309580439717189931324331870093239798253281184951867675193239440973631878827687779565267935184355514322933249494458078905198881043911277238378245931783528061607382596044459650682528321965886324788937111644737809194070494692956966845494271626925304612096972789448714697830586405979221340477855377472309064189740900882751273823490353343183381224029522661740965821598530167104207296545799392783675122616232130999791717304520837132003974375952185496214165227483020753476534012592183470452044144096461131906857650766756833686190943677549422232866746655294431419729610457770180200622644673796748378459597419709734325558501113963066637596734100668049086105883266039212073840907953203103310846329824441612479903219461444308844802352257539476803770796785944692083759307315955517726877397818908386719651059523288310854050372479680886435349290121791602661735018865646799486306508243227362154526763842119702128459164109978493099160716675059525865461113926348849623882441252592570267746791355739829226464782968276917954700149121416800229988239111304522272459647668670200683363620075994858022943232116083963473274443826455483245124456453341303302148157270020313343074968734279783963178434183988697000107886356555015477930580048699580696906053932003555595316242971159592342332168326953258018980166521510611316126114694286265260280698870648539084211304594159019179405626427840955614820919948354049555718491629458393493177034363316740885020011652526601569586488402292570946347989707497656614894214055641927096244365767706825842968879472845160464664534751195762272459206698529999986807885419696839024316172218780043413672959937700291057756548855627885643594231475343917810763716846483071513034182773449353021647407203087345286128565163303333903560962571894960207797921948329959159968029737087550469154370676799184982776599094771514188374951928609388064769667053558570486850929240439324199058100201524696699701022132064829826751304839720267202865272140018417932837409128995187463521652040789515283105129477182121438305016242614949585858613101756594836764465784938523574996352462976377823085315504633603116449725633376951492478742458088848046411462712782710851435816598676491491817489430703295944648904518445359004637436563077415565603740691356802485552068092146377538978647437395092705649724217612267611620354050878533229086685713525804636424689609879288703631318728989566463571922698353754573018680540503469989753936995428598196162879538216025849637108250504524968717117526760231713290897541327975169079861154989968960881067341299067474268004450980605049760921437052108872143518018878895800010320618657374334291164250649571539443792077746325899880231069845816238718213814137024955688277660000486671094942783539311843882497139503551406387125361147221516186837779126768532523216946569276248718580006617185878651157784786399377227555415991898548812734755689429665014497214694065406266001038614841501094045502401898968029463795207482242883881857691754095264476758802641354415290339097208761094556843320277125049243348025549339591916380448109215616189853584108857674952275845603836547660632307407785668369708355839533337587149974418871944499566872205463651515507949475477536399832882748264417491220918493105330839527984077362493491115234228417748126382538994390461738166690038431711483554144388218601166848951643377298567457850846255997331377709346963029346651311483614267506060217541033406206515507006697097272512106517290000078047256698035503072898097143145084087991609996121062132016039316304651199993807499699879850379003608029299168918258223043431858942235551095034843589178246640873215244815603750683937057372418196872383032862369100338989991953042966507479242449116586211203542277657373585564852035456472654355274692256970668785463786946711505422321560984195379958824504857121259031071478572029791226979712765549263682392580012824897462161887455943551291541992515057599929414200524279537599661950062728636869806026486901099126924440046792982049811112549063976036228445322639013119795280030823400797705477648664242313591954457763657527581860422458995617136889531286759203502091891087863602868048778957766902369161818874433282962257881526693184155211671919299725240535884235505289831020275847035981416830827620540836999665858447382116973321446687535501105443386594124904481578283482490071915369879559185540506779523370706714190605579908042213494687812945487519571532333384527189663868942350255170795025497536323339030109922581660741213698037259480769034941814701291050554689207352612067980703241966449002842886254808143569960237941453072558435236577465034244754382745706286048635872925738541314316136020150718131509405929582117034948436136677612809596268285592932600117640509820385995109878322454766373887625570981554182166303982468911350607351282347726976332322559176525954717181791997711236684362342540280042101451755986278400733226340791809499474308963129268832020542333825906038245297722326424725741303620136780284918153842067139625015016099740858383210451838824076371619563520371414498378872933051854437350931008715219233417371555972785083603053053774513228370121582334355190546767052323021333268904026219341239942047417326921973599845245597008933760902214160152176230020281788445938996519391078672419526791564023280781308700585303342730412919259045676656403493493399733509908152830317151606438844839888440535837077295878459374598730362882090831796898647087465824707107485571728792023573723458299250339163895415030362229809456385012846996530747975643736694925040956568343015132928994350379955032085346002341150767001388648438200723384969738552676623565269020714802560478699133950916453354728097207651732085089395930530478861258411517766918524061565980404480460035221082474660529311917014286256049585504456701354001199335042347090950117178139318331613394012046788580245885555782490944313498244057859503576139370952691675666233564739102372469341912804181141617620338528219394092857279805548565364970151731834594263828738024201009595394588529673345587488979863002788021565203386289658541591334512285026029139416727190532925591041851549464437178915544474449911750350893895948446585598039334926561180832420274353951635419784912176176383982694048056971432753665761470050510740186642178249585661999476194314388793890343579670829520437931795991248106298767356602978510484555207711671715118708362164253508942244369049550333844352714108821345343536864557842540028183474564096672305914954353301515418255636520961974995576106130554407314863552427060698448208376074800612520687783254412536554910174935738424215388456204840854213052193111282393918073710990687318860219533762953528143800617472180570859478485619984597059782855018549765586341363253704454473837245058567968740773748291397401464599586024377996130166794040249910504789232256952169257533326358036122260891323761922034525845342031660124001499225870702463351875213016245590895244947957718744734486271685144970212958871562996524954417658120709982418355909820432526414704228961042600098351229733512458607626525342261096799413887156566016435090381307507650111300636169169721219485271720644944283139390648708415227298336716812973601725587951665696450122259069784521776070439601136179507666889736758662832990873372156594621854242387794699431889369717069990745551198435567620436818162726683696216961484076232680210785915402942307503067812581548009355270359282700624338660395577195458878122769991317304416436895104171224155198110742134026904552470757649139327983864875388214307164991921526268247695771489741412687082145830101805117769792617695045763225801694952557996666606644416517405003083643704272087447520037006339957734122200109091155376882702124750554437596691112654669860503526094770258749310429038072702602572046880537669192215698942328990391804172722872383325457386770775873482823510757454605810999092211981771468380613892422051911653791844411719326420089390255084650043237492919601023154929401316933904441860714009514787763466583961140528360920651662708687617293500044961191338891978837073358677805087485570551302734625090459700480500876695953979128279246368504003054979535006186704737864796711412556465948124368049861139511746101370802301687309702732455976963984390175746243079662582746899840016908603190127862724912075645597263366131475581863602159318594309594989986921407556939018313281064180474562339189813526470759808779895289593371523359150340342614850484994581299336168064483922375301992905012487871267782090319624210321535513574802470806919634243887788800261236209950830438479401075773063380033597048518243798139775708419849509758608059061682384248779346639420416903059877286795665243892702663220951546464831471312422698320553109093198124000041127009739852284189322246254638564151030196218084306606300975791274998993900756346767288255883916113650390256543052189871072159523541642100330574531952566408524221883684998647312500367633854245591971109605054002600428971420129065226276151382021838983447146145865543036706955051109831849008141745574850616341770879316071753630484974762747190152521801835373204583642026148481744734468788653107229563442775977044846629747110365434849107914175303302956040597512183709559018253358584932779846932005376958803489789520140793633443752551675337347848701079720990082663339821110767725365495775968673279890774116490321655457149615405816420111243732252732855828113598545161400846108515753953980198743139112266077155350316890364371921163259949459891842735091053606389687636898012338612698141904090788386661171122944587745046041826530360844141756193014281867400576450329965130671927785420267625431970731378559888977773706157243969691472022326256958078747193527297372220373407841099585781588948812577714322112079389371660201120439740533380927122984889140124577294385654987684474810556140903673942260832327995176265186536490528002147667657890850721315511801258255959985309542453199014165845639360688557322219675980558100388447358553158687604159942470108005515084355483947968261583990844864194688265458369286543320606202078434543124488040076896535818062756495247656110926288836667496259065847003109391596582703321191818657113885310951408199200377239855805295916372411130961008997582919350862649061887241184368711651746756513993404253248314736460936194428526001663353290420814775379645555036673491188278866214660638737201055910797238325565860973636888129359697637789691560914476474897270366474536909852205224639687265455414913358206029819643798059938682401203228508438060098231233180515843699948559926578304923374092883003320800457845266642636984243436732524073755194836937036956309514453620340937710910268938643624033103040188971960316010912134026205717258572333052536871972054906288933864420087153540361985710067108628182284721162129568959563010638686065116881911445646045078396501596191337026774203011458680878533367342978321764174283913668518220387849912425524993302329635073935894468205904021746649621279590195743050254577823939806217122128030981859347668251888196129995009412289479511843290794324828015234480637775259596633006750536405697476010958408959048476177595868170034111783589841056692260410376229030375705975054257461802021609841064123002450683821297868151496653247339287493064440383493482431553031521229770683202224588064284249255940217232519713076715028366951417034558192330356918522627912453320972565560903377977709598373393467736751276784179772481985841147602494457061253030766684000449239231025125303377898923973420381262118252722827798765275468722447475759040885298970381212815931640786869615206432734485022598759338464845318790575513018393164209218406499793716640335053665924241110148662635883408337526091334594992811625501327328355526190387717638208181917035580325951571595113510417337532912952385022271656318112305813030399899576314359784581754988118100322414832083863014543033653010976209643723481700983358071718490014225502667687566965630356204698495486238723550784959718725321696388923263915583339513851885234340094027127048199151196776214588657813516763015996837463987595424766238814005560074983268079547032629630785982236348952839138972499128013789059262078273946514470735296733161230594126721094646763470463582501766819777818129961195727816360378468610737366848490960260140480524972521829000294303589729950744172174532572256798014284774322081043266823038255099600791336158331373752532654391866793671313232587337905903481832401817346003892917651381982008489284259148662369148021357304566032607739320294140071574952505358000390130460870247701526315325422810260901080591231401987932147878902198725027515084207934868165050810565765148419883635710360005995047522999185641219040672947497016984124720234268474237971974256606938011238067731358132545103589888071096715904036180634581110223798188468084244198548916761415734520229816160362472607177620058336608795232261336897794308268378039687003047853530870635157368938240708683858525041084778255443487221930629783238103666294559282530939148872368461186343175755397996919615323450763481534065631452008752181543565052729200072857539460845007651616614485131217944634728802474900413031243699666844245139045321991708089493633930575381041541920038425764507681862217368481510105313930734476776364045819233420915290027834188455676370900124486715687189892160643320128303880346573249010355103947140393792908154170183634056182495167726615857186831806559328750503242325051826820319605804676852537480070147035462349859684628883292188693441276130456436328230326308423887131917600673981687797020807830877539304398768041135102635009804910235090561047849998194750953664452382799065695119437413208180752494921136673744766074371866105477255002557148199721660552044268767626634613146451451707981110294525259390297030799146545764763982319778698331454258979067689054116752812868891356693708547867392158492133043189821366156514741563207577246471338502672849142747675551742368105948337228351702418155126850596549785734684304737304569502371440950017454997254346842995135077261084632437229200735613573093993744132785502903321185307317775569979402737638521802685832833823733660705951410755155056105434816995053945006671392415252522675473689246512249130206462968576034865865478594738945555328668667580373646920296372550899182675682567181307254024814220743428771575549522639969827533313501965547655546201714428346798692228716198856237427793745367651687435838583505289383550212271983899651450840020413760482169831582654232339852683683150163857870989682765060097570470341158434475117923780943295695520585339788998036709377115944838023476458516592886853964713615561564161395214563772531065440628786819541850902288745171271246174872164206944041156743345474084783952364454911606025013898606040555376088407114629008336633117434487973749970365883198340598447329323703566161324148245683819971093175771926123337254688510338594293284804440875973882635415905415839304039416836385942676715637252184307532153657000258471230692919823245797964032570723215928041126688769625056879394042850642198429113345279659161378425013045296669111959977767764255829558880478180045626087945534564475104288781183638248123659182094892650802095849407069166622868341024134185713393571021766710707134460018021828474007883730425902572172247774725414674429863192467657288398847934453424758451133422591488362308391113511451088242395735348395825503564991997980737100316816699288551778457965432695003957661830315914653962224592705688869298392568770451698359537610992889606650873448805773752032008987248077932739805877020902832130769160042988027301234867521088942499946859958626553879234927485511859050311860336165797207197114417483666575845665475411295896268594227107543704409033439098615711668279018638366206795087073306036925811348494874500390443159576840355226074273517709028317972532920788931648493412494619582078657091997881095941011213447408622908987366468337465936222424961998684400027415702819690773512334979323102395947632890332692235984773539434877427406592130254755053777316213163004598490947088869449821906736910624747367971965413304243272694896129691862247277354862821985734250927994703947020253172311178473746017143984304621454203478838554612183280003688477774591627048209293077761309810134783033644644932008761975712953698435293455118304287373692216233376248994219366603072397588222432697574097009761507057279048534599892257671315471956031998847316130268172126005006886189263545296036394718881318069115175389768141643302060684906456555750278655743732011460510325811049872607197015468362944752454464574224935385029436517785173969079126450424715510877722712474764981465464424338272952217643447627687700856769131048506439783700716579724344259954506585648650613592700169246587727746219969076696478911836498136092285784667380775508312979865804672612285226384741544138360639381003853310333120485747978301948207422761049027824256412218877425148521225833096979207979224682278313358362420381773458083614312816114632257369828969761613557408289445376809519190218841592821082230822835228591135719373974617562220053042902574578102340037553214609092206471506665143948211960602213871178646023077504389571722411076174436715990595312774500062879799700677524610305284565519095962479960584432713446238096810843712783943492213979818140481030544514886882941242717902080305616325384818232350297401082350173663670535654793032419217965122793349997054259484448431069308018492902705449938044903658635697509550483848455865115828089604574945438432805536762898399511642279735954891131143521167907861537850239014874734694817865097407596767605557512421615383906648049876868047476213373247755721306793083079569367424143254637466098578177113650164852964657015825028038649568927081857890309372591146023648893818222883499413152795411460564070832294934250835489424870404692804927088913116276432278791709206302711039591831762797445277243537620174771545243196172265862252347638076906277308250989659407853364653937466769047737737664706174331140913702247413730780038288844837593276571942193951085312027460213357722777232453456660221388746206793452810651939902214971218224850842549806424029413402495766537554340603627256687022640293229133827043123899883302620116447381457492094039053269849616731424203935334034297352734171850679370048997470989235663697784249300624207122304710480062268816751631692312504411192030166142891662704510557209632545979684151644914477267063705896911954908365771198704274699560214522502962275503849554467261307708738880106826916692160735731395673763190276307565140604532219189011564891349765828380803817819940826639049294251813712223696088815432415373044107237221681306663298711561011546558675935235346625082683549467604217891075127537411006976015004746208496343851921525007263620138531524462564246127259161101557223942471478925918688686858764006014148422402133843099966174590791120260173555794114304611449383009644677699520968067744420281482245897225197585416939712546594420220695439826817481807892321691306399446030885553724048885692024065603304227291528751390898749569085009802186732341183310257510889506215760423345001754020907454044720724099188084353869390083998494999614014045966752666703560075747978936913384584279257821083701833218125632176422831446836141067684974142619359055424869599448571658628425139241038197523156049771986003589780576156386700368772702807842166485289545364568506607613477478843801615509426111657015153504658343013601531525143971259625974083624780640290791052176612994233748471320176948950091932927112845961574988528559042154918360281788676870656866036791805456598220484647850732917925326669899419182250550612926066246200571477635015337790412297271074294411258150376491794292635432163012946283246353948407055170989675731764223818436051152541157896675091821579319627637699161744805936258919470651408076830006894790286318524609396911775757885500194617142483948964881510363119063126888877412285246654065924461749655630914032305641723905846872131708596067021025725605518362122175620579743616112758098098014935411161159774308934270778115865410197075745180616134324272170245291426393919644500457178524117461348071302521678838339539491578610946858923444088628400408125725984821464334132829556916125720351580320482893866896561334565261030669415473600068465702431825618176957537223495313272910720997272533374063621308015191861522846517507192300654216044933221608912095307847492626941851755955778965025415453393927400166111161866361679260625181397798642352562643651119150885573306898738129862954575679627101788207644330198798487807983052162004983514802382080068808167572184659492728900750751062197898550085757203570385516618094322738318778158125033724314575630185831527823886197462362767963714258250570547442415455354100122110756397840886149234089185867719653153986729813759490335216346601832621518115792033791200418122331868372754018985988093741899498038923015329511363072158401545321562312671461147663739257041275787107455880740566465787238394953400668712978465017799524870457828321444423702150148072494437974156242958419862090988983127244384963407767012843459330658832609943390346420950750104617986835690616920967573975942936770487454965622354467708035661581266266017120232869763592970179814171862368707816122704613126875671360777734632819500526701688338513052952518645502761080721611891257209668559385592071724833964990237188728959300602785748765435533902107225345246777989156039298896001719117358772515792842856495629457935077738206596998589178152025570615272548718372753013292515568815064354062414089465483019206027530297095520939610256154496796128111193190111555610043918124642102267072301947342905862455092890144530988162453621137722106653509343326078577127864398765900509562595183336347119337585398991094890590197112587807099688396221532863070144935493434048939653818378995263786028466508731624795746363028393897707084352444056889928432836233995965890383137725682079559416069766028917699357471251002401292753339775773191737070538301311262157079564180122565510886107190830992204825828045730106633792525640919460690919707539176606344098321529829192028023412148148055761977175942743008917461322488676858502744722660871891477152488312795430231921209105552283406098218402431756839012374825609792322836011757545910097632969268882982307738603959776361700510433717424000427287069295560111489333735785988614321616103580872917216737828688199380195909772896892972142331075740540033075688983200801812016240799937848737815780848431394741973782042655890162455052448324873229536694677132539763056241613496084188013471749724963599736960379777022906947388850563463075974339335891170382875312374232659785606583387387560566533774857516471980632506205466340218674627770339323244619824676148464062006195576125771347436028810721636312029362545246193017578951811621269509620970119358641609275066838012080390532009260282176530864443286216541033194590055774147058372699205669303036863611657681175037170952490184231517891017371195394560532362066862181640170712340130888882546281405047458532166084844306018797086011308586685051222325839455376202380322338303622340472545547820035607330900302941598980134158496673241537105669603584166640129733218856484677967994182593479298424893531467808559173824224542087934086837918275201901955317789133449466189954300876568448238750282310987418068439439301165329110195045408936485915067206657151773918794535444473645520375339824848020312933130875915579623017051557991507725697230614275191877069277618947340081720379226954917789828288453227304801877532366815166522897491890567053495617884300854880150735963070659122174419538782741507548338922642790376162811839683190198072616018072979985931303964602745383623868226804073008970323159799356132504607368888730706676978446000401174618996167756187626238593405228162645561158316526461636977263912330355778068745052521407956666763067098287623152694793974188617906465666958717672992705076178016347074831891227157907370283121503217031993925087192115028203280431559872240285580219118948434943893753301501937786503157742644855966302449622324446203632222409971998629731229150215333511326143052856600282259170267814713955526040887304169165257773521845955994930067389105024934698147218467351906901785397261339334203720068642232174023399255730998410105001038887544188371518164607894532250598567254746100205186147819996184235979247861304584089608131321949457356326023042750959187494485134473868437478649861029841325998593155628221966377662263742914442828725243758397669862434616076744490534422905532759173182370023330715354510681287008579167619665818496423411480804510569193936000659869106211591652626778077801352962647527503457878823763984667144636229492401197018925071547564724443052338420304122562862695746914150567782178341969403942783066421811941434264642836014180678080082947832596189187090189857828244822545423618437070218947802330156646657260902947187097106687071684030960821221408688920758894985671343239806331028180496084157653612033686355428493485621752181287189785598190722544262422414275190783543919848156222428422253222115464273261032823143402886766147527418788801663636309514337320074580180797539788726696635240868449226361248029628777705568237265141060288524860006281010528922685539013202265469696027202233185058819821937456436415009806923079493598451984649934648647138821183850662300389379749293399433278826415799780788841307386039100112669077903359090682465821370399109232356489560993835015220231534878348899011661965857618373966921838995735985177643072358716896871271331152014697138456914936636692787250276512717493801161049909668361721547071126297540502040246850582477048397150288590052241491545756421438186954839296870898231555472092043199550984702057401515345985050446472955280222699747196714659801357373966021214798548882450752239586893611805614504868076164362175601802372974871434937367605226967072107563701123909030907273202035280082893226722825302420550379505795818275542579433501294536220599773924242481920272564964719865208975525165519676661771997118026926231146640104555473685334073160611335037487062456601461190985094878116550401770709786792198881177199195449761251664702529875082675747753495130452692491101989145661036268980526468038836474652526914888718134935139011071805135454288223042931295812477617369709861915967598531861694717003157386120726136516162933857017548428451240133096304624653688821733663052263880407568597946030448623929580306159516658255794335193964568041336323115068704087543485495528610451938144675520409052236540562994143496827249047126120235124191139040400056210613667034028366407811738155868968917867251562903056280530570018931577975527296499599973123419440150028809110237159282495555325584394473023267632184146546727148634670927383539361551139151404141768300979507549851985705551946232865168779680666883777853400406326044749646789625037514794266917674043643824021296920690950576443371854441345952825787491600228357146572342115260256019371579191603920696951664668491293275248707508747776651122566327367650037440711933762623187061428320220379185342085328913184099533203965178278092994306446018235022534849560886186037698524974853861869709335194928308151895380355142485066229988890742397976185496940911647025008417532141203870337195787411804585458827823613471387320306850142459749458286338785658368701634011398986925759607947519722448383709370389304183766037116777795649023801431137588875823488126121789362687932808910162619176041814352153949659058042337140926280852571441455260463509431781389517304696897909522007681105787633083656599247140286279485600840703601626972556325631117347402769221701194122204527160508073738111697170926045358893964778564196880417537071469727397845965683937555959306348571273905862815265802245950943109267230274063838449478548141788335330785901300914792635696296953026840895090705591121521963351846396958993591721275469604664149200699747510906607675083730234555854352576570619377321277287731710398278864240845337617414533857293987010119541444178529252891481118309993476613724504200881988747733088045827874695320139126099379608589638565402851638899785848362217557272027796828171168294145432635971333915213102477636877596628391970573550799150998087073268468929209447420727594741943269570443298937236589172196093761119414524909742087025794429284513518744849121974708592271734627894410001694088501938810904211780074459035617198317042835040249961823591765718127024020959688613857692454084083375192350075578065664458258315130248103171671226712053472404888797738737395954221230553803325663975465059628341468771073683283784579070307338271754387361183037438619813042429085751259955493346023909398689419847430886555038666885522019890032127653845581882025465866014412624656981897101503720915140547806005040208709796836455365307228384746068629016256974127181184729224992892340461458485606735178071800277936238184960285064617367686922116094415581473076071122374048014973413543339466464478199943610072035179596055334141394696072462871009361370241695911353376581428694862064763056030921197420798910600078322789895829576705946780564324551825439562881259688660387659420794578002107102398713158420369004109891014052974988481923093037919798347862241061325469664481318087674649475719918387838187652377047700750912740671646297830576487474336198712168068633014381644071156922295294413159586470800451498383437129956204649697839754683047676716924147354523700604847164325625154832178703940217674261218886354684088529769145353052016638364204422733188862047813194416994755446512796228759026470478886938273036951319863008195430168755206338105114909300613235388404549053123771283617635047594156808444257569517349005361214972960429027151884819421496677213150128444921621978076056653881362251499128658296268567141162567335598223805117152651499692247691398834683157751756242513472251163893761344821096158444506435920730110993545376073919269383403545922018624243368250933446574971005395476932687841254812515990171955098959323537985306899497836353407409647619394948652096793525271942149302156762517283747031174346690244350354368278641574633559032764743936137983236742941986878037105077239521520945173435608406108946271014364689111734295812081528936535195151123118130553638699718920676938485461648506712293099873068796635520234286458143741670898247720980904957765015775100105846348683821242426736573204033755398744551068445712145156665181294635401288074169768128533628795547315852919553322720831414036024482832426474152364343264034103344754255943551189621520065971304392555229967532114990449364651280685751310057869711338705914640245529509677330160336312157067605003085593582299646734359761650540022536480717323732427127393462954978646302008678303923342813836030089298562299144146798714380941594802622877813260831627826246146507535192069148501428400679257950017557905253879843424440170280126164239574036621419147502224720037482861305537748274754268472511386924223548678607367433449116653176711703118520595798530414261565935714869615826478398637860301878246733372737067338243156040360572537448346147550324668099266294930903532658652034584058221949945171428654144617739859646477502344393869252467297487484772588817699381749413180953421856654969751166204065674266689990205903398736433834705123637600602639369117499190039392332399375041265094731875957478163176162680335906023690457597429845216160362049126331715057556387815927372935376496435616776849616546728841670900168620907429826021062732872569314933423598164273051819540492370965085767938759223810453289440394792488137376029288792969045267925466723055585688599990339114014000376297612284337838182856262369754038816901654316806639701357278754578809785876072219957114216181634521004907355971377980849219659887782447214715138697616630986599900400671621633333234369179675641991968232639244230793399804941684504428783382929138342594578262222052050074988569728642958684530466501059911375898845358369900471704581461358551724434398312336491791069322183352632114429714799478029679862800717932833956911419237011345378317820730399873768272861147146819439047908135896206700781334298620036665066008772147533911962429222891554311421199926077755355198556281780789379431967477324885068243926108429675805829095363387078002182614101869964542963111555228067810026444472399723693903233470996069409432440306459122052263069647558840056613875292947700191579513235565314653453399932743782986097427478060078246677147864847699130135180924486815717230309125194866688507631539103923518181713346429016254745070283745012124669270878409533789387682772099300385162114503530473728689856217644160340504585476890165235977694789925790251884619131907071220619193759947619873984109627877408649302691092349867250040668871345433482495107604912327692492535003484142240619908563311268835436502830628754951606272546477902002625264026784531097170176192216991584107705906599193274977731690123675395053421042922727592448450823361386455130332279763741702985754597098684360134565210790509328972863506809774503230535290691512969733413033163372530692556976737053203302818489499382978480280184527999039077745571218912178869750304730747031088898392103221414712107837004172748935718403116170382200372093510936280023636290057092189632693095206235060609988283666429597697611452852962449362018038074283565014663382367292465706036347716885272311409873679748671137806546272811342024349291014581848806249537451810778446717115931114590876274885910799436684746471724780344172019155649608951890885228388729190421387181389335476313905090627474149750358057183044594270052976405736821047043120949491981777054411212025680697552393561228638988821388598843711211180090266507327876889077451910086898469975105077313232642453174115005013643674054597833494212087777477834938249352544850692250656379906565345777927849799114128227777578691231807891293564427511015088164780885748202266273342905969040682865394000659542591905318435742659681758023594955275730249795953353232663137923386679993796735632318796575306013762268328787265958634264876484200719386167369399003348578921612370065225547778451113711561275168794466040552712654902965445273533215461254856919017940584356608292926061059296448255501703610884950428595190853486905057192873481615627692426155648210446281891972774221453202523548951433395532838787210134194747373245757683405883579181513812959184901429519203330448301560784339576632730646869477013200555698139807326579083833987634456277304437298504484051098639705779464586741785172725900841509635806266464418505221693367404811443988686797663609415708682401198082457779484151438472670915841972369316815297567832749710174037160932214389781017229985146052462555877981143457265623288597277977722307535475259085285193101185060381812912720911642171743422108660834044059781616362884563465024017064221010074094443047578156319637457884424534645817428550023432078972191040993070345436532684847281250456034164584015662008535219460533591514325293379508072123287587564491506806825840613540454476731095876212606842189068405618325612960120523525722094858390438676673265873145158345412359811639554051860379589838948091714028810643319733793402872667548881274905702602377552798957017825595810483788473101759633054940525071727453662107169625016001452664642757980420985246217088575010361270673696424791449155903181790122333699186468500428513586280873481317264519728676045446219588576257957687195123741567502831014466426017788346806134302942044387346475027420794498993944703502091447313414519106366982709890397939007599230939614599923155958131416115300845228481244863531912190681259920236244726361448193949608278902537582534101267951443341239966127976773717111691384387650082422085884260788014095541905940483968368142166450359146711980302814909743022716743492345348102046903134612358610843786819975264297459532242603437766817785243682395517854951574238661368695977058750169353003425304950535575229525683927655245409757569914338033745921884470166172072134197461294237258520548935239307221547026659968523345614289861251225710181250743361908488407304789113566105503648467805255516253521848079663487704156510872415521982187643714360562902553237257829988341142066840286272935511217224773257787006871941782111688556086518392556474008674935418025525836157815695038329826230269272604647176101180637072530813210611968625678322252171867037257610130731593110069388016685092562701004550930844348841596872411848685986910196119950700349050104413743561669961297015834944417737161628574281461854313816285204957197847655353437174711033732724971848499436902954928756821798205519519881546569864758194723212910396947068099576388723347880697764807519344672470274437135830727209635341093501786014848027333274458515829462205831960574533908950023171875701075015011849428184696192684191568761564748018291163163078006348294709911668328678142179877007771552795069296693590692040740360106471417440464510986010344202554235420864770662691760923772625922559083580972855742564287471274898456307642342627780664613117416793272633181606395944054594600802384390132209926508346348868193937595447258825596516521888935248829266721630249362321019473098723951365755393006763945100695003506666747877995478492352709042517667927507842368240494768317414711382336173889196780762114938094725833160256564447625507405062158380354760807779687468727461019279219615168909709811966560466347803757940137748705896582373747268495510354039287492238253127022201286894164800236523016588574811153294238372212237822097722204066316278207611497507782639385042326899455226472182502786069585259928906394099184187703014299939698559306336794699712403239872004353289638226128254877590088400148888374543261911369141492496692466680957674860718167794761348422414686698290967132960585846077527653498898924001231472928977362907715028484573474686773748509470017547912731117117230054986121030378234164683775739028565171540697836313726892529136750726194604170880675037540161238928774300056972486035489537912167452854035947396567361967017680836167092072314754282163458908554417890896798547282062970639718836789820008954318293801861424357230161445916723489723022699410873514148060746288782162192304938697402435410752525846067808251591139473508941838912131859798197653370161956431526654123335062395836713465746484484609742154342086055673911779564775108847915413443564794744173059645561124351535568897679291745510604483888883522884545619831249559882035554578839854447840463777956909939880040628367599011502799901704011857643069602667622407780658788217051360069162468343551850582837101579903444131004516995748689041238959494138835604273841159505277715233262234748987385229470613360707194350303710562293066687107737443670808625931113837845267069247377700897764947908334623931850475701225362983502743844191189307040237515626848018576174134946778800477622065256422660743474554386319307812461302720492500494982743599941915337348521050653889648923271432511700565556132071638281902587339405584594066176999895828663565752034858647801472707806695611671850652371765910849378087887039441007512885964769396998221608357829864768933054951209881831131090168303056657921600395017085996330528266972253200053498812810442201092773089596354489116374349971387670583937871311917637782671706820747750283419840140286072345544915409460707516135771866094153902375606322660392222083795780572215747454043440085860935869025232189204003280359660537228220564355227478193030300016527906237104124618675868185272426029397906261754910947457510796009581349012695777686632930304100413069004889069679421819427171565090801667595738942588168614337813944001319094763975188269494876933583635682169279132176143503451756285816294147066877881575744292819918201312599447271207350073694806143889133469541294254523288423475669399413883812948920667575544712666390224993790561077873608560768952036227377961211758529678903466920576957537180709126626751244249893096850375658262729206829552646520151428289873630812050503814452856651112354470060237973645118876601100229828739851228778221398122888707853809359391649950941999749621452261030861295422447735709578424646570578335865179231027051645001029896250657505267553007049674738989148024065206857819101127560881321142381414740388257658841491740872454499616937527514240142918093043028002317043629786476967140203824192779025086516950539833383552203876076737508116670997247495977857002211932452109333347729105901394616209130867782312880068381353885043572722198957451986515947627448952878807030755401496556332398610059924876520453896437716888010073541801489031799879511836200252453104060893857832968124717988969043909098491069180912559639977166333674879826539962260582036160434830053405419424652376411077254638873063059137146967906799931355397440924647858262640030814231858110902984635589393494296859577015225181899309532295169660701187203416450563195567979815456822489077724739774879731330263770518580707385892675303434306820909363123731197132216243034345327660198321773647613151613870297603943430183640504978650602812233452299752396563432106727204152250667998262016944370108645959454933264776646020881563421814884893059262324092191859081505399668148666194985372417035059366515295257892374882343636268097383446318828500030231820205357253664856616694009907408547909215081200250377772100977722273573454673262553471577271490144145293988867869475559166688068872536203058162226210935993535931158877224974149507908698846840730029917620020931867134990387815615687313346702953763841399620835706393360818324568072015281502787759732117042826938245228965830182064975887253684158007600447738080246662748831394336362718054887543596198770149038402799969273777876725324968333849879903330965423948405083249553563930835274486909158382061104425147044980675471398551878841654381312152942460109979155297400652107897196022691117098886022987432913017029950065263818609036959920427522380012999967243574974125172311866230203865918857127899674910230777141533772976385569359956774946472116318128869179294327135979307098677366856593563041397612920762196301671232610571941042677484680850369644597224991167152225402099969965556820198725526254267559467307752867203893364510569682337674929287977503201163970344254158850343475811932012769056397704823245811139041195712753429887226788312959982587896971155538720931402717211226834200995130033384979734820245383191523725191625856306148330743802689209032445039470764215134078495367360518331836961532505046948969359447366660449703768586323366158831426281957489182285371317779574459529647058379289350759032195122805983773619678241386179389644840005892645107219300163146222439787073562884634191016681151132457507347217731629675510543479934076891122906739462776087684311288676655454137889456863354790867594173222314854411487492413274901914336703848888364106711230214706626081581050419353763366032000084460197764808094602809924261602456824350989075849735282159147599219256554434632427357827076157347679073138295104056766052067793329747554141631993713557368942052879056491098137252461844089642599725204329688180036381246374160933046722579827863662830996936196502824655246869056966433294756977261111108463072135813297203308685812583301200266683362478275799327901390592642407708707920607671482167044848668714480378486553239729907200197811750901066957689256804952897605907500896487138232705997935845593078059184943155577280990374648156780026092017739054146547046789988007744737537920164580323843990437887162367969262741549255515740626041131236267273708971362740966738236852073808231104081144553440126254024197901985883591618736779572305550100942246460584897503082984854580569058004017724796501737257367355787445953706474709098637480820362314926883816884495387031917697037511479503208335113333045389006360973756827103388003556247583605137720375313292668219441500130872411105271354938457019200515660442301434842867577262164656087169435761419221273077096130166777554822244095470024794094162249267708973297196712768794871636123010982992728104853170240870567910223458455043699684623285402156980582804505863041468641546275489110425506864958118178070984915268653589141843587820383489994768552485819413441682300487553936319854913570241235240272188703638200044008323215823299037592848239606481965461910901468494694635941390026481143842561187085813483778052297395223343906966914580531597668618946300401226551900421444476061580535440679595822142377709605293731131271509996836369478583244895181385541899932072648801145994765383199378183945472620851959954429136187701907682236731239494396537033884957801766407707081782822965714215716962865282326731424627900899253946439380953866132988014066919271066264716514724159539052471734298017690167106965196186313889551761546703019745432190974063298260354472848697976908162636622209477143981642681048681153517521319212380362599305141937986610578246589667286514941697672401019391130427700394767967635178715158908890836677896165820025558964857900546941699054887939719351220672670469015602924385289402560016727009175731928690291934163564945005822520533906390613037968604053780232830765227458721211228528498253475803928877605093678758584038816488731266878366217235640203464877951659117522099524856685256679476352535088081109863836358788093613250023477523718266980722193541556388882013508132461582729325869996606498277645827606028546999539939225595567597438029817567046545177942540393982841133872375142032531650937045704179740635201908556817500789719699395383497490536352764018903903939035076273196419755028199723845011907887587619548952430599773231765495421238028407576841590767253781353832066956962471298788490132976812969045087778744379650412715774797883968451014260704254376155871174926063070183251234251109981229180421441924382653340087827118017047704882249635888967048222653338913817594384878395678145891225871423064489493950341908907775492871134012256099830215861910390155168379928083251803190884648002284136091651757092493427218994021330752206856053220157462453561024999126648560070551094371655858255585717151569652046017561964533385423342217035947669796561113170668802284858767247161759979759722538580499977576776629776707943823606475598018964446987946375434753361510528000346210310623925272537731838145915551166079579309280836088185764246163348889263218188767364942991318591846946866094103925481793284124544460299563006258190743678050003047632196317305107477955227162449290446352398452910853046227015213521989563841837559709439903864133224528367757672196498601044097404913015129351195905965676081146050235515219773847423594584886580422221889934766815326144965656148282626844907708246451292882256844840323357908079608108479265980248342364487486408483605705631355632991624883076508876231309296066203654383047367008792094738188489425024987347463216257071577980867520919749609734263767123733570456241748737259862003363861703680439213958576318659421479881047449511233141527426908717460307219148189937132092406003606026358960101571972287206212777620814428805461268076929404551756199851734692767141013415256019603786649331633494904102116454924003610807328650560992366389400328534689166111522058872899568759673430114669868042012278867194385104762627049357714566604568633403046612882894055896840072511823693727818606069885704488842736508388089749196968256403710095501123337215607816118779922502017313438990506893867348206439077293548369357704561729641074579309967099522161440801924723227826004476160779915608111248657941105626368539638648989263624403987624606321118933510262588593523795440823289135971577285216317192781536991282542981144756894324293212028172581661305479788061893926967193583797215931651134566196403023546152893212626854259378880616457568074604922935734542680872241493168516802643481423547805601447068534505738929746806727753199494334586229664449452331675267108576543579115182990578642091635557991835905159507420653497104080074457100984348023665056210646338633812704883890952442675548173564007860633111754104617692282933216436930544725989749403124231604606870429081069885383080914451148023589997266949152289351901644673374147278925390163890459206504781714053763597944322737340961984433262474504873403599654355452831397912744079906790322311796771983144066077983088385558759889725745704728799705438838707664963004878517629038864654595210197194557807389582584716810175402339100158975663856055965164306758422471705294634802253555445005927459311217846258466657662605937245719665531997057047097124109733919245856456890491928060336811543713292700793061090794954598165683724900852161848644074116909119232542264703842357918260095539544096955282226214845380672994122307915947526334649339263957462068829619381372327401622259817848208597241238006251410753081563376175006346009630769579769388427605558312189940064163059071889871572688364808140998518119240097311276760248209130945033547831049187595830453436186888295240766641128650565596576121538910407545955174441474178522914843341913359649223586658625511837955525451686949311597073559170024151797096987990682468295392361952596740830457850057861313011591276572852635608327119415423360075135200652104058190623928735455639781987037535165866657867662378495911357524211483942516405030463934001190129864075273352344230162540519341890185936207572006336048107005490090419134893957539137458201389886752015627571146304009335794612432624115330030219869817169246089796912709537240770043914015974896510356160976131356002809273943852942319004061422822712949159296021363406842712221469759628531291592069007259436644226570261759856145571844555976821699994142944339956663250921575825747995676640265859785473673292716429139209913854376333589587723769144292805322374298191722599663266909115179429394693925125115111744438454896655156098795078288914854130017980242244547283580015663743332461645750915109787778421131153378189667665966316460775012582666398925080533494416364077558753103573196179675417975180308094193892792305610319889343288443007111804981426617956476553558771175584806002382536214235590682247464297442927573668532085023109835942887029272278994654381636477470625612899135499118904340228273534162831889612838717581591303035138343711515849862747580844012318698693966069797249931839557956471581299436843377554187247485044793768246546292743426155629969127537581105251773309024814653152041279167120065441247011819658235044106329156845762305727155490463981646956214554237622101684216109162761974865746522140947921406935582769055286341855755888891178108305608684506926649571923394994576442562149307542746732010135337545421438420905329930599445088155269341116125844843047589791195826919299321574966677430529122377120364141546696682897738620244802392051691233169103221306490327682494453506683447432583910403015020350128184172366169593857384958582274623584801131403900634594283979621600584730185793168821353729748048876922528677127762313984627130282012613268513948232237616115219456275603253465099013608451338788226176954969728002529045319641583955372934717060615036841232882903536708794044283772247907220179393175144572719058962370560947847366533132345040815813208774795077835925253281959546622228626123904784951241421416069196234959013072864272939588765729846581811999840979070026822390033713019920481806965186439867924427870386812651431169886555453840546864050406615907223903826496375414951138495070798899250300047700740835502176272450438929902205569580916281735707232625345086804047987096810526162938813573549251125330796471476557355353638287879835522940343478063471099225843726634947818587690735220782346738986433463684549286940603283573599482811457924120896179047150521026529320734131932604857018948235063049950844715154520334521146176021578786376059688462219452672728276006886624794494427265128510230141523546879869596289033507866643897117403480738368638758030836690929521313726124006720126959527525001951660371031722730464753761779539351918037625926066167392718439103552571057326077668954009736359928013309332684702359017242415790689407829339151306199625846282823661900078064706557955902849865722917321396562113864335352002680722917338303600394228762648519243564768899221382733235695352320376569248955095091153337619935307539659424120216696427053153467473810005579586990995932406487686474448396895291501927616386114450363825460456160820828367947872195446214743967253731986180857806843838124997217636103660892259312535205043565139074930250007451033534465158417797633219230912548175976117581593885744649158217993654041537365135858594132838925370376963488876205964791283159045937284690858248769922580415227050079614117235372054201929558588018076180525903703473264130667401776432223510649061813367432189856111905565398940063883841472429386312816933180370717604837949791770487356876568891249029973503653711337237284719145527197020598413455944662409822696620739137089734607940898524139089011700739680203769285156649663515038949165480495427740706365229710836032036618502896896999609565983536263029778180223428689878836732464357011817203943839219303353204227219077913608181645064651484315520635829943923492553697438165034667903708524203637537262414294741732682370875320052404317066810410213536034902910062932870604231644986018599435572602578306616900487120091987283706804580522227262725708465242153533186545576570983585044489551744144087360155660410117939177920470886424042988921863866909979515707502926826067817248302501798598990577505058805912763245260578456616407713323651262840507653232848249444256869082402126763078822055326325078125029234824666724053979743083109959351572252122511112021769784028906820479515958090216873581075737106938130629649173771406064053332119302924572758910892736899826278383114408023502481047390124400064649070873548389704560779990820829358192084388785210823831696639000331234484765101571452813807426275884938106990783475205910612639258577188477187716268732392767895943428967102961486067168747588695174412551065309114952029943758018989882923905871817553437989233139000088704305090648773632307178077631476301636597149535466024306848921354510978051602011709249835495605393923647943662365120801741576823012269973587298543131246412476166223226885339044043600406335307611164879490233805277225275184044560880494984678456086724207063672485103199754787595263065593068796149872895712778020354783163267605735490011895835120050835964016913653568026366420634826908185273622679251991184750636266522276574854889161850678660340534561666380685378515706959760264120695088869162198655923979079299915906442174455792503922119579520242696203169278457308316697367053816549991564672514223852082622326207903096990465119633612808719949160946915055451850871937240305076301128071629199174205947417436336394131489331708909379474104620628239951134696877570011109886679297832740505303356106966125206070534178257070936259652454055989301294870209388668120717753699405806635315708991535644056724070127429802232381143196354234951616871816256957014339674110287442626837946255207722869382710787490058154723803869708113097055548725683287296957598658421393051654403625184384057323827750527830944211970603941402431344160255328149958099541194048433648039403921187093351606798137039867323866340901676841272270808487944579435470717462787061459549265468015552169543598819846399279756870094048927569156899069188022338841022099098345134687655018869949224757965708137873430034584686159951045928951147625255498235092141223053947942901619361377383337497039473625781710188814181475259943755076157560733161907058807917709730081244856243021659667987509676531319714607054817605372976342301263769329473649838456873408107027600501947205447802293800776488691344731500776803364536492406295285327632696435504058392926214688015510266713275971768750098487991756401961737821703661322927936368865739540125315055135137052933320399529757909991398832257266053245747795906622167646428093969509501391690169102019734440164465680125867942813809992232841467268049696693943522187919446043009961680517593943475806950968104796105011455824298570040890747540330933296047650325169856908150023304216679049904088835635418258534645649851915588487508848636036278690837339397681242569790933965996085086978530247535498112078434226508932520825245056182829827819727179595114982678055623609805742624574727044682054662330687256543187565237326963467303714174709352833715380619892134032046535060076452069566756300449943113515515615361000479110752201294349089873562284708205046033810804818018379899952803614074495476122743411681855612903011229522886280637997425702438645605963532489689452433414335734926498227604846455164940641085075473390273566913571685055198317475641432751137450102464803509980651263331079410503058152941591096611923656972945642940275276680140418276043166634692731531966740484788813669554664992044774062475723941188337576683013029578018333225289453892626583689882165050141487454129299925437469596669640435830770652117722468275782141660318290698819546878329011327118130001500194116707414365431295254933781387425118742656780192114805658958611950141945861468273998029118163832545684495824871738809581784345370393132464285734756522860696095098314275619328366462391897647486888460446251922191622019639661739250579886764813774786583764511223954096733528740930066498194439683173923002913437476240465354329700575983472375558235806890795426470755941461275161173394175359925399028555131365685587633830175624730123587432535133718736361096862367089937795416625245171960615695375644392529653262198835935537480904032893409090803241071557160498722504397750526845253650737216769576667304691528307132200884512213646442949105096951692400773055872470564603839311331705857614933261722070554132987117389207369614903287137188554396120902570399311546000441913508788857718985706726026518100394566480333846164280299576146334738215989056739102820757623085499567241887066001784176532524181479008385265316513300309630357865193997611076597725790110765069895775758140770451792194015588137480109182834585724720961206378005416921512846033790456136662344843477544294919247647391392488568020139297679628960289155957558690702476924254849017349775241389072668788037375357257798864335198999965833670848911196620081967298480964484538160465493165051077924341131762723868081541791947878554895320934484582520741479770746225841962393342841340659527824566036754253671174336480912858011740106129012797558258016608700916975655767896157396049985642018587937447749522126154544336755166179361864655394807782431708044215155189874309591775722161148429999433923482408408245029502541183874034577658945653038381131517091035967304674719491999538792856076255182806690219424907487412443434809486560149273507686346930515636956271449298350874578965233490923815763345667706121992045267454361151708784351786261612893059948517431656939154646769777196458567801609283462115535057018542750054174852582726186219506202509152101409417183262912971165151724241330707856029508855200803468023753129377298353753039231968099719999143614849817600254920844761740041016791781155190743804611208355961542766620286520580709291771562311936807706605863995173241533035483562131542413925131920052563181715589420019364181144684808001469606027413404651725769468216738992885836954001693497746371094954626536744565081095484143579190205485862041029250288580851861960594844273189415534745242237486095270971479511413112185411226311601358070966276388246066486487352842718895038623969771454126862273170904661110469541355941721077793116998090588965112528576965582528689162676208614886721780891063003410823462827662205112991440876721754591169907541712774452447846367149575318462815557100885635982242558134005592491681278804943162555024069098514309368308020014525079887236094863583426200466472872579860239212636236214305179779497923467987849212969607879111045016275630765549596432061178523911972585610605628170264663328547675146297797796571414849621202899276436039479152607004301010098355192603052074980365976999278730879817999007553000992523294741867927418642131721582245719640363283914985867265530608669408212239116203920091868634051995610898114330849158267142515321564499460285623820581637150617203830771577359584052952829503078129940894524817767327180500475244419325024604349814053346908608548410838111034735058597093647076232023988007201612861384481833039331330345641630131762433690893201336567798866773983707892570488175554008700999831691375548923981068272837042946240530692021480682573880454690465827761688329209012877871833272196301076580717602795071593292499409866795987790192378722782268841055031656916266245034421142429252558455667225743858841611619034799297437654791193334252223489088917342660004743231238145343852411090622751356933596728835006671954422226316397412760841112801006338230390776061323190529644882462379236658335412818222019150175609836811241300031610724406228905148785202283013730457197248153942423345695424673098356675631256720717084947556799059719021876903721325741446666605790970777275681385785888040594185711120405539967480600389899850311270935981543948422137177968766039929865103118167380339841839391376734073795822633005107314560879655933619765972404354129539701440271192541825950341158922605696716499527235878015454643276492688308018312768596024151390325516705431975375403604668874768149771005851871748576004007851491170067480487212912898201805951548317809504466193061885097064543178027241783438015863270818466629206635398828688467838860563193589473667843907879087348402472109806353452770589757965742649303600779087486674331239210885885309941951338642943390051279731264495781253501071022327245400951726674952600264788215585638328574349481141929672630159404645617711324246250448121942167852603966285371692197969051482672099752935190680815868949566734475201380072253153856376395948339585024302563034947804570834342567709443588701870886301483094225767737858556601003401328610620397583413412429834569684631966039937436630044276430732673227326995556137712360035670999877363616733028428183541525311797974852788569866379191395571766916922957340475939933191615403562422538304500465392442290400613514507303321104842042467153876554380255719309405010496546048991062152591547661088219124717370782638134648337674746858550561581691608559755377121163565284179950522118496979615553095514109131222961888674412146671814803273143389539758501990517503859692817052685649370158553815329450970211299939435456965438138110797542169206763276206989611259261069796230476903271186521563413659627705409189051190619860632645762555965620848105928265745860786189382791549704499680824443462841051699941159241198678894740833442454401849559109472330809440428525605769623369706725155128973774735013522354208870090972449240141647308129705174906536000554376267437922243201948189034547483306542983236019791961765803171641855692278864441788117161433357318037493765142135092297932551797133902792490075924498682931904651473869638572918199967754417082957569662524074567632195966612103073251952834680765181887424744549065365360322455932728689349259016849937793680963623903193951082656428662504095194068040936228935344897314179848039538474258576045229665552905289546798727081365643004794241721905775725276554574034918155183021340512633072875069976576645331844630342975123710829484660232731953782953498095124462728376889374542031098283491232958970153893101526523444055529691691020121566468013520829731995787261221368966044322241259256166046967492123932606321701992064417086649373346192088080859486078417930620660749734894412655232689936758161862785277380688483273116987612892859823191328183067233792271702513056688920055357178243944152055735062920740399792971184029692434042373222143269718251335909645074430281457078318179571916044920778296580835804506947538739224040510253769790834535398984142755642391460267417338210237124722450213963807858961001803732028331602028924174435206984751160818611180061323722375227315040067220332262551708619837500704669794514162755450273986990725003872268040719912504453487452842058095171255560972756697643878292410804526859261859041671181327091770486496585981397657500192034091596032952803095208675016378433827729877987913494087787786854546455690599125865448992545046300831715674893042093597048053634120137106636909464060752686000594755573325374198315312165717098827634139783039767402835760407134504290346924343215306766884323804536689013214746607485600408162367815108143829454729833550286793136736437517946527507602224549504973806807835324573498566264821769906889511692403960573048158036243294470948279030805785048001142410576174411014365212666944817319585086681712745433153423192018087703222675057293327064197712253939181304608282970461211853446267271526739465767088754845160499111738472561325692395821257071758531100076979774352679486838139189201529524660989065842078398776059260825411753007377838234604207230382077047875003298095916733452026168327093389266848692714694851694355617484527018466501180477055407203011314100366409717105230889994261366495561643102230161365724271344044494618730026342895326888453891278700240969122982872737858892040980443069362469494833868129463916599339048382907394096605261192530270612429776884445175857382758317781339521112106668194630029278958034832543538780125130529459283709724836469168408939096579436220646965599433312273240525941429859859324787923230747943917900445923461220833384010725832978397718757963119382969956851678400150833632331155601819630254380723794674792746766507924547800927970605812757246017102855521173375895078025642252273276936298465662791040763377921216997298114270542117560617604802612586138706469049542970169709389215025067913098642426866184383212563751907479973037834934176943439241066801796814813055830342106166291439947151629932247718057472040818812729855840066030374506832653655891595083803393672424279970705446877300290402363013106056609996388916756414376268152228534386702290419745594915222561794532606474271011259755395255223119823088791977134664922442688495400402477668793454026970778295184263816131342419917979536580177241812963759288194418363797392949946006055224482717855224370610821699946462116842842493046500633768782582132815910069026691928655465533237639649640782889926223530386700237659710012892201369494332679293739457425615961572990413349590766148390690984218258120762775118810936338542162385581121377121032896120693088625763828016979046535793177973587635604129339495701650328378817067938840054308115854242614465636038835854150724883779596803546325595481382181928159451069461844537084962207788889296779017373726276145268971438964647979139137044059732191420036929074199171442428842836896417340170767149576125680836088071093253860729389211346297425381103044389665226251796004477928621201617172008332761831462353719485304122226437434829436531550868303371463301070542921607299607180338945652118565915221901070421377210387145357626402135055775053632834761909144248801289806935445347991694803252058029734130509964033122365903141312117698475637806106314789665999130670227418987541995589246443648931359325457659929450963216902516763108886813698131672313995667424877921260985431796512304215237143635468809377824832662299331173700770081803798421289693209290990492456529684225038121426598625465413556853652237275738503548139444510886109857470405713617615973243623108563678200978190152347742721720553340940147649707704981987151720075948476037610277395019921198242389166713703434130917333314685976403010041798821288717117082730493818050354949122464945648916843726763377825748749024006100965659525445966040485012517876873138896402231431914383654037273537965001601037657517615343940345700975674176161281594577098944682060412694608872333601921757042229466526806082311790729308776688508739991742901331852069854245989450273971784234319885935884843504584043471987252981113951933767507001938315982270783659356753628869238433859558172420035935453426221008593069381637759738597878620566957659878553475904244905041944647529921186885174188844503648056990473216423373427174270623499363724612164183152150608617932195518845097587034832845977345409603263145906821842763293562636684376138340771638164548813888738084347379539068986349091819006933909859834058066847899357265337068554771788103806929549740560473644279134735897593756092278005093613124088629033842633252246040463775652928467409271126882354489776421083652205734205622607185763080732691269135217812370175552526722022355337173806693011858447806757137090732898082383761664728394546517114134422941804630196404637471092655406038716702491525671602264922106324445671422162861176172652335175701831998146839038806124661887087959523429355099793767872033414898524766802709160221388220829066475950870419181547074999291201396911400315024685399245341506231076797840172202360470033155110101292716760144200333716962734957582714106489357871595324356696075534088206809601419693814958421692725913631318895681500380600308636085526989493249675185393866049241131647158205870906559847914876234838245476938839559729282451390007900745271233512223459239442498696040919814307014071922320405438106087475367346501076519049836933075006534043461662267164538784671770463010282354488619799760713127057755066658955968250137183207154068899449333179379358989193764026676040156345264394708006223271943880286113870200574880496461989489476609021737916837641852632842045667539684124634998599692480553461863186136772716651786214748858484027872959496780433343355582987496376334943483898849299193016357321347569866160993219085305946187877571993877375626230724653223155543699460964773096044142215129854810193461514487992873113670670967911966502174983415065874691068068722885018175267846669385142200570862604193628699579765389407220023797932962379989774772342699474560046397943093910967576216533380176316268394695030255859602450509991364532934430854832175986509035231848583202212811459095631414663056638363940535536946896384585559274725336181045343068363838651626233914930395569592810391201781883948447148555429186526910273106114904944738044344153412110300993689725725728961884024366833910926839233917374803487821477992460540077509666270787467285231571787150208062311993894028422874372962989758742131928986782096406356836004844076584961742474780754016159585404192127389677143007153926985713421801968985495891423149960148695943448085879466110343459210996311229842882359033199003800702960198927018947353374000802026173568999016565261482697750699953981966222098951422433975312036083882201829905406164584638674451528069869658489151135367932669101949543113989718051271457443650907310533678666340084901203496116930572917991644991874801477461408613487312465634342800631644534078846352527963997026654854041017414030342307741591747118273888331459424262765967424456796851473321103451249642772737324359567969037167416565455996215763775130826636478390862263919218859303581415709112864894288164898998696162051287977917341649083763965849663657358417756984995626605167758451091166688046407316699362353838536672208969130981081169416283035585579559850402551122680534551349681535292797719373861646417286415338750631306575862943833624139692254108596788434002134972889077419168065468825075927465238572163244150836313559887049564042944599655387350322075178965575483803667007395500847375204406009158494559145499197604780957499688091839963410407403933935315814964278530365595336638300521304917985423501754988211684592919543831833926434081212359008381431716208501256487027284953983455611130042315408982046555914243351276077813759538054703131321332542852303730735231098747573559825205826984954959299915351766498555877154865003481556731230629506929313610487295420616992500222166405735025620821399785055286767578557742395513292958550414130571417897333990849961846861723132207976272424144247870818228226076422705298129952269296545148833355938461155793031916966078859957918163499682770612715057300633122331434583448389023657567501037686158340509308178652782007981984438255257567073359585183176189584812751302244198166892137845004921041036123746659883851767179651775061294394014531914339283396603454638720561897399960204215571896488481478660766552170761884963464365696495164660352608689651672383384326182502270448553967068623918244486544289967984109857647034050422880271299171176610997930710006223291693032017195566813229832303501142082224881694451981503295924830929701707939534923642756043805448315454236065944081369902609161350775872146942031540712030457599208600508348328622091655415262695584644698574837694876349447231750431439218601145069109524094547919533399831524987374100550015195097623565445520703162906143486199482237368853586211286521909797971414789175788319223488909516703531357030508413047844341484007562541279225182857014240000117394055427130288219958357788081091899330819156307926367877067004705598335176726309182210417868709154533615713047407736603478549600155309226330060578837616648109734504897079462836648574676286329782257408395645220072995613158538102570769045959572581525938498316281893908114598752228265292871946395963506886991555872426844440011104838722164839351092026354309518982065332827215999655543141643425430511795249346204158248269387423312898968943262641683242327324359715227387796176596057032567840985048448449669865382048511846791913718512724349772936821898510389142463169562372321447236908747978496001127293664133803286103488357148611328831495470303634280513391498419470377738922146699328306715479437920639771691703536322650815057487191213117756214369429280929446758221401533956782722103449807990465388053303724032870219366502885443464878694736835431810408342929613506617820735979689296398018251795556054425330075993595340090806625081625108173202022230757343564551273663180294544535642437237531459730059700902879596971806253883298587876555709001003268876455154158139122014972088562832191507825244179998516935580922837003481764661080249791929304985505418984278939855858749803303605739888120507955577298183633715643776375754511635354191070956163456678056753298579920109935218792396702226963248352895511841910909975128620400935720601006206187330463135603177885370574124472389597338629847337179838281955795489724592402586003428213579951999702580009477018879144685791947514536205465065359218817889629269613495226829220126720617473091261378202879659869078900603571245133173302174935489275170288967394892503665651412467355088081590330426123100876251774419453508216125153182430845100196442523605487763901506929728464675355497991103177546262158989834633026686000623409931236202897164710250091664544389096502696663616116129761802757732507385024217664723702952723187228723594004280206035627101194813667758449291676177494269690868319634759363655112191547792142754559384793390022851097368331818884725654406532353379553976543114537016534289395365955677610341133551316701261113024385288017628484829699080847558946559129856205546225973460532054609747910425105234192162595418418886742888178864528392552999746788765997373889127024919306346689033780750675217274736786296388006005483270701728003695132681906363902783454568530378738973632387835178983265785446974565815146472551985190505732208307366732905121132221551495237209737055902172113787629755987500207498224447455484803438950814465038710363061932012468119197675510846360682413516524420996528539384867361637442233446392201129754440025762021619585163209497026857794270505930493693957240810853937198196007949884490603076165742171933236926332471815689180719907131346854422148256615144439360850151521505171225816208081313481455284606913164971484391969885779023886589320657873143936900337297264068162461070129354420002946092811547393212618667402238973570149227456055361472964193333774886778761615765525308649778840320792991466173471515778937202052088177049664694096808722914210978709299839577141631541780093771516022412375108513099115826079446541606702667065932430322009879194669621155384901595302142253908444143998118399406837776277679203735063633301211604567090878968153702601141779850786892252057314264175861120347345416142489976871115136804278720243187726522819861722491017478590219651311568616832132511088785225823700440917426806260679280576070006356764970627618598182768569280543160391109090748594976165747755151106625001211981599057883051924874376818809439336252821036969013033520392078977636408879912507005200590500086874543267581069023958535016359114993064583614528021322334090734343974132407419852113243116161105996105555051068083689545668666808896758378624417081045915457490706356256359689871725951159925609229601536636028495486801781008047369197936023517826948206861877849464709403619171235992744141588058952185939677044960614911418363959117376205415541183762369332404877972584068144908610746080626637677907257317026511326933259522284816843171637665625644780869037541314599092106980239304854028591555770689582692071820477661666070607008902645664543847112684468096745319907791472251251644381889133765253636620687539513195725182655250781846551987288907640764077482819950532502787956699995821132536515501559719398678079385020171243396719501275882853754157872048555386689475582077063982758225100333172288473437850676130711373018629336924159176151151722321428670004762422215900356003484469110753444392722592358991204604278176458626756621978020248402627515953375645307100313502672711827687305322151883239591421638434637010376191877230197272354888959617697949026916038413324619671582565577753611384578140290661605918888500883195164221229137006386668512702414849825270695145228258874260287261126584387380164611658122538800734138657550329360923950035121419540611822513687768234609080113243327460501789481764733069591855559793352206099450260815152065464292909368237793430493644009372343506780460152071976967899911144678156255443367394090010785773095978432854524002539912257245349056125580007727399829593592731155812159268657782307435045518479503111425555777905507573006067214044788493192649382034357576500910697459513008785456953238330533431250981298509056504585026401254249546849720025359330292293041437483460659752540946127254620527029435528697756236497026616861944304858837363717473301749304697133347439093613262370834218952401551598403673036884189738332220187144080917799944012633546645341926270159151439705687475668373070716981801032889988843392182346073404350606838608886550188771610538981008551982578134826700421548094021473559637955206164940168308836972406739388012783918023417961393238799231005691847900688003434080972405360086128690375587553737471408587220704247386859976961232077922127806217252357065078817700798208223841866722524382291577753625473292641645236528564905033496311496970491079903179917335112298904821708282022738549426753991565739586814971043619172224246181021247715996084773404347541549109252139855607171369445378055294587441975708859765705997988922201683484147607138865532361885928194421483472515152921170264162494101323022927033632567304543343796973748925372771094759928978120571655805136607737523838666891630192688102492386644357241099804070613361758866651890773050500342718211195773875664085988294124602963581287970358492236743774100944274731486934085587166623121724184027607385250574461932129073332720079833640333586731593418823956124530340104113723490437283140476459573545252093925978253514783031172658182466809438795483862380647807385245320809866141421940512511901155119908230843956652740505717496544301586258233058338444653554758294383118548626022697093884690711173016593318371221309454337552924967276172576229495626358876863402409615655930773274762789505590248571832849215790830177098076083038784042394941965992337105779398700748276165209747592821048014275704152893848482910580578864516310729800057926533570347357552045167143714555199029219000053574035793479764250231359934194578821166806227957686985455261899034000316749039536778595949569696751997661213160348936467557644074549460084639971469392587179580932582620985030765506107162994652140379745820739602565726629496457051640221297425087039886972011659936184384826186550034624185252407260807232060645513788856418168516912593183582998973187962275390317806985697931758756831702404964340762214815404560788331753064372128508495259555025062589696164053126955772412071011108203655951396907006186903877996789390817832228429710437196247464397453563211661916891935626297401909631191341825712822587538064936086147080413218926946806387343528253178122741968800373299512840871823082128706510896178274101271418265843239457676439600072940790601689960641894083707724173317054679543495822042759990407113475283456347243746894056556600728750372066978261571741329043675935945483839302171513015580652674482281535222585620064979427331910808392285678155017337868778301738518898639203540035804107014520156338386088294881609351256986917971590178154430294556609304990729925336158580723575082029103204301077121092108647678438189302744326947995822281693584679410264799432050457177483042312035896816148110818536010627207455553496719336480544587121310547639174552331742937803945217106542899868820163059377298405372481920056562995040065034891089751049163617484892391328331203109011056741560488287152184139821943781698815205144100784222543779100242684136815666476795212116468942569720510736226268549027047900473159749583223567616481549842192678212486839191796495106694188892089961080095042490953879732382344083158290304448917956836697504896229768820974571294200326135910498124862073249744691788303110781267875006188824097320016467846819973377907359352344214443187367874597041626276841135992971935513240202609445136794939462557705654923644841922534781739768732108033169066305761812007243786492693349704259998777168680875145943438252188865317943475033797901370907352960622062909665217034676324988648900921242799280526265989421876327331918901649074480490316422674787266498169841513743268774876489652045346726936843182046384918605468754415338088683860404983452768526396118625578502182068544371707041296829524181384554253996702920986063586024911014403786247970027342929052945214249946431303713718506026010364171032599288077619652813522943460796820017938228773391291216458005986672816438430139283467118156702149074199273859788420725469072406466142773945098841623764953663116490187625722966994188827052163895331964773593474032411886333156340620373934540822218780566346327229944648462018183941882777682393439480419013439202403614295801624852811504398421839144896876308531007204784325556751679122101145123749039809994211356225378706227442238733451862334404059298365758001891296792732752958178395028467295426049164372906583468079190716744818975024955475109393208165598199573798891156065279973395118407449065148768731388535249353229910771362166412759747105155669788786136312453302054556330301322320867874967620762574039895752470642616946792426215128981324242815952506340422369017704302399442490255533152005735550886895006535118272202462451753345859478619280974823440169190643093785491207952580662001315800476031785458578283847620754400772305941085344751200623107879722363015045764765347533425388464561502047416724079364215999036530260006488980864536462947236891357527062998226949912290781090634987919188133218428829646564919048783380986456352619502084442920148404076272613539313338388888155432249350415823492179027148851395539891758783030962695294376200451637749074083257382016923656647433420670968097795078836912848816030233925685041446173099677704712253103955974546480183832118348096048114934215194091351727256721118754036512319927619891170158913286104909325601518855666237278506885466501493940395826325692187549490838777490567519772447871865913649791330092755412606904741785804432694105165788337678734177490457202138337429848073544555596717221206474598960902011314952080461607706893471636090862338995999165133956687017986061160630480683992910103046650881631231291035962037578052115911117185421699957420481569985797871116444672137314955875515850214564312223589438778921078831295773681120937507897393386407623581818946924877866224116945369156286174930817826639940129848749227793914704165639515681196384543563353469628373426355587961021945827877147492804539600183068660534657918892209950192424775472051139832970515102618825017240263441745604320356816902057967404984234156631291462468170009883260613293195372319667977074330308788360427797499424746543071111611807823465282917246074498737078087336030791346436621266167110169082250117517533388446767028826165555959130329469922121672448362328050829174487025769101667589532669178098654294458684681579144965828374195709140270964934225277793342546595746178344439380765946788429175443987584818742788859360595352495087997605226423449413631838206390810848368661329519509498366145846803799650041790472192211594845707171218037509970102532339620409669753474584167844448553400714592677352536542592396424549044581277665681560825287720356744170879823329614417986785949459658459403770971790801935944216121772261835236785117204846480240658436226647291768639575020996970394681085765250602380570090624514476274956743372208152871139821126890185518900001874773982229554192017113769452913704318231371399776661783811842484532380906277387518016021695453307011681370407445050288329103661863054729247873876049864482593780525648518331920345297537836294232449746089207162268407685503637713374277910268471851766655801673633755133814624908486507043162751716785969367367215542464973664181871431252948655040145850011196565356294914552190491212549989498147510561892746992881490658807796177322802931592086334538677164097518114003873812050522521542151419189547567703021270856686807972377062616463206659542842135820003981978830240599337703915167320573199351396926732501197120298656100429218042507845891453699788554129666484715777587369042868412939341466591301868135870844771020878982955455033447761030550676907927438452898642132353544473583595557360145419288144626818299647687739939616569279917693650993474497193089513742689595626393296302120226341373467815118063924353212390004306564457605480888806968933623586020147783419971428805948759747962476792257784808211489711886670696563775712288622691211340573862512329399224546206970636405852878192800351549203780525550252701605723874754362635705953047684030182109742426615148707815325888036384052957672875412030177364867230981548643553061987860180033904695240940696238367633168003577698144326349348808739040097572264619335531411316327168317357839425344652415424659369549239056652904513991166760792457065119815838973161318147174686580439067392822871615476930544581574307364012880414388200894178903002312373975024411299983400068074201539403438844851185276230408081003360023424381433942795660426327163213469530800553244646513826014697922628401393786520080940290793470067828832395335392955647777117358690975001564312424332521905189593557555461885987573451609463044190196479974347235297058776328036782893593271328659225265602267591956803393225430850998989418187071114538596354131088817405275095403647017342729818741234974825368897049590387733813838286602643168986094224640226350371817087012478928798741417344269759537211061662516633035938772412182653445455546714382397976271702862090284288694957413756087309371666786814999246043869021766580135726542167974103823718340606026421513125848346737137621098268182644200073976619219246742433298960792864116891484130862215912521508490491490757627448495920277268305534728933156449993433925613346807419760697149876960668913450944693140671663299264908518426044505436939296159603334328314798381061251653215756909163668262527869608371174915118397077486441914441171256338380111774679524851735861638677390920347828478618073799196379187163886222289080073336314636078648537674062793801794199496504049511722976150834862926177614324488692312442158584326327763953162285399484200142692345927949699930993697193077238588986780873432282815707808747451388165253032421906174113913505079452110441884960204879693492501226980782205569201129573310553028841958085618677728507876201861257624549778598643878911409828362126168477577433230653309611721497170951366193630575560769443838072536304947599685498757774480704152982597706922043587345209836054706610146071685733192381968611561127012712550137228376715606900356129737695777289839308521814562673966450200939745372173663822350088896726413895213890842143795333209885517408294815625819575884150653029553445973929818722035927961981465511142866521474724266464225420454192742542189499664874735533104017356722308543753251332819555104764915272730765757011317794755631598228388777733386522688993298669472895987704099678518613591202880354104052602484313865067638378977072784298084006652110042842076376114049531203458565883570957979646662744644692450970935927353056344234659292386404120903458592515667565381630606957949826956550557020717765614603316701942698202001141180998406936015562427381576301930273153206426764323467428218744743125411676373641650081290758765064111935041767175233820115522229178694533028475360536060145626972267656612951829066538381481021481932409933671825029151779052920464162486781826931032136167256969313380618568893484125100561392746031387450873321046556822118509617320464926944987077445877081850155140861491858111440323238795527295669616318003725735416023850473782549714500441622209823206240294443956855256048114321316404955138706278107008573989803223867358735321601479512643721558953675139034861597966705599489251998001734577378478218568992566844098064356849185392596546341945359144229514917072192394718229636609781916037662834836334194352460764512280235554975449810439932150228682092942306107235345685660034520788031012152886740716662365815352557323389732901167221315994366527953322022525433955636732505973120747714876504761262810637983353826645038539780451177787616253928262720812774010535669345426581226779030544783638416642567055582235465858488271178815347445941767941836085713289225193514935635364813714268470316484208875662128189542611654675518678120324678027903099614553852385664596029954529623419737157830694215298066391971396327258606033367450984556675193773943297254536696447375774995109972953991788238351915434509080914976334796912386429192533247757464634200424114263635851934680395974929373685432667217528893048284435511314067492278939061043716524710673802856847142056999332839166651916034704121594955750371206863540515117094451949834176400373482347462240075896880978865918334270528436086433587057871361843384599899077108422055518101725672308040387689445848562003996058889662267532733234954058477192236920357519723418433453212517465026662107479014758203568137628905744148308946231895824199494846360631191936773175983533095207430896977727788988587562691498294156168718608978854088184385862819748805037567376320983888579318742909276344418624602858073491107612539081599860532302182629994722348014091635313289515527700326948112201769366974825534616352908884287701662290431432509909317178066387491617406656018524547006435016347300359129567193162487105938060864434348011175678013003361214149733107521096175230007678360720854048573915246172847016150471159487352627631472903138478889597477432837517787666233871791898493071646449873496591848430261384382517146516978385075832669054207944537894695000495230445495145435880251149053583887027721592439416575421832513197282961349691471913903494740835886193791674514412896133128808276786969914944528458350346151617354964560719838523726493590524776152578340112171357636232096478023418198522425006682835061209028531619392158547186686902232250651572861622027289205989244971725943748229007587589856534387552085285171018281252857289450905006782480167041411889922975037613550528241703598586311205714667542459474227871564546787572560893183636031150007429314373375591314732015380982995426190365847625110565140748885270882335259010617824650408986234996285508026057855827122677426085923234976870117098117947530441671385025409044097876165389339856950813398450183081583418264735829704811110528880607133658696388059339035620005026073504406659163446656602197695179823090424313243400715830873238027354253859795850409179866054845037551653995165599195521076714057245757858949586195726907433060145881204688311835626275760192366179270191742152968606890909549132629518358803530114394678377202159270456119415455398664030217732770569585611894990356101566102326174111085091820669975273117736500172459460842834223911587322527967813605438358761543600677835054114905644531706221047757344446407519400573674091652401043094760501279856293793798565051262957053890327177012006067732131318909872959180474384461042328854096204334855132478450948205268915541083844587011314601053535179184432576773968891717254348122285884403880673604075099651859312070395924991400934147739452654669145230840780181514804820842368416756504471507402558202649535544119844326298981800696775877224634107857948004451618201038703421409591863452443673913906280799408986082691770490621571152867542570947677677530880909801957106270179142661909634467261898270376300141808156299653309068889903361024826602607798266353898318627273032004535935500752214094409054141929393723027251755390640672474040486570669692542660157196422393300123653499645691880506806763373139640432535183672508683056712274384529639484628047384670651269298840796363078474944359970769068159002997299093665735544909177062165771780565849654410193411269773594786416199339975253829808341329546977365506883035714379077439930210535432593086230710958051567203683967745670968483391767605915578046057213878701599095726223234203872286712036442612982653155381738267622530597837951423996235529752417306110333451466878638138378605804855204517822976817628063171252824491602773672136994690888576454885760320884313258375084831626323867750835530186307196091487485419606494442334659079040988409467905431418146459442393012321970931244325990664921440487532818392760467707892387692221882765981123839846037204980300385503043347363785603685513375690987596706686306438279725742096312768533966496366368726479962018111152361589383062047201999740090651911741128700547914171040741825277249972881796676638075530429383785676290657468246501947109220347818017397530320620064599607732153513840645944875275560977776968641514029981894093296203263520828949912635498506922812617345374731989200564670235170532243610808868099822619648990355315618305374113186540950718734289572346578057866452976201372998027303535141419351408588334186949183849137161891373126753013895059433475082699289001488429710700651503427927127403550950337046692300890386802598555305004912400992502653792786282740336007189670445892461115935702018399629388313798304685208945456668207614152321390096816082179841838692656879715746428643970181903018840041239105243567931356367244874523943055952172351216277506720098668704411003067533453857418815891642318483459466651447568243350408608067499821726789223685233847681229509667565068799749581466823966000195072108727809628899548907691316140554962937024653010540423166514720169905147894591262522432754832167200151409577536408454721103951548369365408735485109320181367570307005939255994179908712093079776200359232788017399764102488852658770476141180333154875176284626868726273687852806937410862799686395362028839503240803694551383104068579320000532138409634334461823084763050680566360986015193817075076331945165204897124166851304763691109202015720436003121285223029043738566585302332860419748552303757956905820782843880802242675851224119496072373607965810702417255182387961095166092538402195383489956199915583561759242943187762065803781752853544795536168013380519179064412709773348220500900336249987091366590656156652977865863823968046752902352145018573670681072443082880084190434501786761038490031843486414472842691357672589128387060272527170622560654613406681848013793832328089024385199315736808451479024180579202323305447550148925231474915836769727286281447370963631868659235741829231638621589300280055316701664282775812993482926007825918463120169675126233824781577605528492035568711751443815929370002118154767897984620698979133681263731977473279950041488069922650494825120421986295506851885511988923093607246199202412566011892964036795322034054837897054427416381847372855972602811469379362607612832669570317440540671139710715871025525795606797197674456870928532829068831035904261083530331023334384974220090471917502804203645573089802904296401732750315234654966294005241215763455017895392702403510533022186830986867755554391122098272874826555185261350573926619959130850272336851544972761441863259333012538563534387128618818913638236419946831592218621000359223303724717615103465217625637054477449530792996125618849778406580635298295919779429235003216975800472660761927200199007685489421791480665855709237571052442494760074970080786404085008170901089608654809388874969725813742333591684493317747658675180622934561220558437164024520983520585746796837120900835014737733220954449309053216867862937818254303810025756260336454315424753644650574223507289791068111274472758380499299283999358098800575191155354214350659197217662565627040535902834986489066516755013192406637011130843345742028263846275598588314670893803188141897690677655945890222297540559925122007420151504174760945252625558562210192108711872953847297528956906575516736291003028431729475845219614461650125951785332686657940960354388952041647345876134899752744990773428561055092910242919326157612243930840638895120043414632881412754077950227385987040009791170178113569445044650491659664643593534191878021593251785739944697943349066963387418794182657093285708361780955538723294749451021771946385269528152324865516254701197037891191155065946450062569992539895641315491284501098655715094418950563103063151333340547613242484729598038193297284923106468661595978180266571882273862383748991932112291574920184991379453304565930071293126475667964024189317694046071694670919654597136737847920509598724146662918575878219407999632016102446223905428689283834389451921398358350693661644542393071949793503343777147891536849572630649210985676269449963180656800750603309607778216318623944604057940433899149205725196185824406526363017537427567999039781275929686790580303519558628251883213449473537682986618375342500223699424197583263282597174829792458486485541397782838557275122239651607987219611366574102281092831068888419175242168795168440196470833265091121558450882885919339980430302149464416757783820480928982773448873534782521949345834200612281653600745969578175539211409255008591403564905826717548733784160993034043669593021563716785943153422937448433876227863057314503779863104479661027810022182951159888379157005476437964601648037762952549687353555757110907291491527229081702486689695166075647120921469260671676491219357164720305155142084926626494150268569943021860090984843649084603198124621952098596989508133106981589743727205416929362069917475533624993367893244868772988343314898167089833185690900858789136760559204315495388072265751585585829135800608779486588947293563853276295696662407132883952016560349388990279761223067002546558198499998462193757880551772454247601564712775983174605388175494581847764451531561974620253689520071302178352884134470150321800433991184783241699625408295633661164040439964411462147298347400339398661491277789622789611003831782749778286308371409949551876117311486580835308889888765221655545950488546336500996544544030484710330769733270632132348062303348757660601037723649015890610377105498324651268093893555803194643851444741782860911491874822156181557751268078992450143818204698469252217964290965485672102643872767913064702525025002344059187174354340475051955022629863066559824792284813387671716818183175034285805895160897283885436526787280302934915512608039872722958393690913405664021378960878314298457149578560467327872554509200335990413808472470301452083310672117221449796547514713133635599876941772624167248298731781550787737521853714636744737371812810400706237367970302756761289548061971307877814575641559387956811490024594742778214061153150269023336885724993146750238862620652737829010804395260713801290511334526310957760058471073134872257842004943324675030204114447767440409959344836975597129735773242842743971344371073248347746423027652590247780282340726852878411018076524974564645441993000270717071916040038912681381968410330161989342564445969013456394115545417412273051000571980443138277120819917086866666259271496769755640928744334512444699954218332489599425765902655619255578395458320125379111365666744591618886617506733855594536986230214953385703867390051866050160032344537509631486591872231155444080767379793696355414668860987548202991531719372167757443798282972026810977324523264344806489498698557427170170354492861528364733933356660064957524780415388020771184200251013818457372117645259815860442068369977872257426244720918187693217438431664992494223159851640325217171963013594261007753011333537104939717901302830024610233787326863169361608675599355489648205093127458749919732387883318501691041294917666943716165330113072295806031538010671258123706091685428822775085975162813675664183721700320428669318566783454662478410240313536364843713726752457691955010913738118091676887236182275490220896828169932619997561656782335330615974472903419391628170517486369910531674737290275025486413327166593081885044322717663535739154525100624946352278446352592587789044212280243421784261359898789004956279219137366360711661541767496133067287213636236228602327962841317482504221137381142474936268205459479622190414297761534696491571205262035934965617608088585139976680228265508159860986831669846533710505376842137356642477313865845593824189433738677328712205461908880862479328762124318356602676232779794653975775908341043579472073254063697233538395609302599360203755472041773074510627395113200113062804662401940126174546189649210751753226894454217528999757455045962705861923959169710551246191796450251800366266319176622593478638339519964744587598625165656488697734793016742406254319302709329410480737333474688313892432970849742287406795915205452228534242761338660958440513793220027704229115999918030583366677927306440152203271691421250646999556699388205650326316771735580614380772656065136591992536135605957752592237314726176315129153313992888543385274946173256012105605241826028100788872230147948659974012218824818361313435433727489687842615388995422741184986341788077039641339800637452224609298483688414778409587740631273527905239742921904457677922144461410085794511087169741360511149293666987012976332899139347384408701715254372408187590761456183644974117861641339247197039566607339712524869981227389228451422790313389875561637250973226312004082500775818480585604882820449745175526518914850408433174951289358906514129253095798076453686287058316858263910914895600909718502465494985516701259430248181274111209272941460435784818421204450880764732157881663749399922112634574042384381733519452853955193435181896094552585268219370267498894101920714195402085676843781359515616981533554399632924739951600278407660209410723343937490660627363619038514432487921568226908577480217789299708926668946721122545056775247826458217403901166976889018209393975962660410084683964133154108668626922595908394727480636387961837993059363219830944723257912450207350704591353923383096205993961897235223235635036312712430913751137455447378548453266422009835630743013007986131117211643834271599780179127202281467543951730802574814255279797662957813864986516123911456713666047515753989017835776376180847340348476265770643897769889937628800400853142214779765888438462981905881850639317483382752315651372921943175866969322179450621284830744737270960138431262993072533858077378955229380370656472062403139034062774614252428301244512093698206396140832825649878625002331280707259582490339715839125102129239851235722352873915379610003135036784676702231937179321094887361368835552546175034283240591996368533939784834777217608937057941491493339451050015815786396289043965699073646840380211794383448533649176143193586356843245020230400546122813416823259817613849648740740865306294054163615679883962063558178230227374311459802837434266657152796148693397659395912195637208771533269726196928418740430583861497319956424432429294329210719410281740419761201776307081324879239984609038840321188020809407922444631737144770986383843273917242982343276528126790314271550632318784649116822318878371592402257785747445908730711248184777175892747699450423891076817512641350198591924792948327680752565053835249908027026449932076562197812696489872313189226214115489560167493090970441607357680924290161079620486950230080801984332655349829335965548841123155006414164302862807577567741335336320436246530465827581947450666350995460315563233032497984362118263521242824935805905861912244084240554375213525836433172394974805908967069982467481225306928797821968487998803738477369423070528794746301870118051503887531539528654836052156365797273019015835487895577541679248360706570753615040163154026594920226157707098312447145580320970877575886729181426345750479776594522466456612713322802790226918476955612863459774060290200995969772168562197935393888191815561021054563019882685631134744976541588245020690379997764288627116157668891890492414778761783777208740692563308385786011758408452856305602316080381646982477328960357822089487851618293283447881689612713780879593697266901883210283696833680575983183988963778744792130568267678417264228748045037919338759782242982789493466888920581456155424197103993314669763788628539664113431658160500849615691061168701976844150029057302818335292864007248717185257016629918243315518338612398174240402617481444143924496015149750887724078396431133693526568527769193630804596180653359970206646035361945445185844276093391048005510065624831458345355754308434823891775312634038416219581772677362134982993457015920831939669328982624482661006828438329485915811597377790262542316437686459725448002280916500157725453595052888580610190363730741667661231801657291885535939701372539385131787860260710426136458959165342718527539382753337671473227586469925087299131555386726059354483581780060104261970769526635394256600317421877145916028425140935214073267529466783117111695683039919069873340233796628290354772315219715793639079886308817837455701026863659192735028901341277218081954154944487977586124932517225704256666590006286362738479794582247284882663442760078590928972584631942179072342634152074601472076413335636505196010417238435702819339526027590932743401546940296421322738657129303845050932742199442272832303932701865358128807550562350064732301835685844046133974485014593378271531604211270710434598006188520426575284006811418386778666525872797200375458763626504397462530180124961537215716054546447595592964700169806308688724931561527330773301693338683831475553910857736765989797613910603836102747863003910757888725636530042381309405804711776220899965423611781026572829150257987342506564326368028611191616323780391400032360483547008894021931984735326137586028548889977100142351049306278344612711421685928179298648646756477243879412257453100648887563498099279034799808542511674195624996031791262272373455296208519584492707691921601143405256927952700193140740011660304528852115142444606888201359161802925338696343290491526597874733302015812061106868364119059567966762408662462552873314712664223608832245465367042495860778673271577693121325956399827907457873073121558924383372284403575494456094054589596823982667775043591871162959514634024790853455925107232098176717147268622286009853636025745797484237513483843337321359325563205452114644681349950374391287453775758132964412261959982407366031767621157660108352234527013246034474899723939013900283650325546970058769576730316626155646149672700590583742520477604504145282388015248448947048074381524276900970567566167672390937838396489413648191764695667656486480814832398669934786751347047448393173340239698055960466342890935795186900767615160812019995149972233169999122883111119947527254079172208031248580157159043373723277589174687221410966418087518070969930798285611304751259865009192870476480291119114335890934681076995853187356456949942709430347487908464452823000960503982124488899877508593900341190385822743185457099363881699468382098338139917100470864428680048970191685623295273736036694634305847935795094913176555577870691439051464357410015294045147472133719095266199482594696790003460273856167318298287000399014534622323329552061935373403901528889628749539130910667885365477692003096291605498951276930802175983272580624339453706020513593011196772501266176474251192076934363045590855369155196173081883812513130793999092557394833923044799657719434419833142737005532051064875429525531423136849913523469693427058120646934559001759984725489740978975362566612996312255989732482804611502147111812160860357633737293515009471845296406299756051939082375440782881757547995986603864082690643743195577168219561291908295977140445597598675694110395958906031757563176749112492856865940598924451363800899574005480702927943625676502911322409473845573991947170028845862181326302375640124488561828830637512801751195806896096392900443062052108390722627677357697143728534479332015051485783113816223588739285555775038774581266936221585992766427719274458603851043960756435209200717030189108420538664281645955908119115797206128204386304897799448121069229082569485340246165337171959365226288085306274653323252754958722887398459042935776510316539044699671507054645164575254566000410055489337081377416603401306700622643849284061605659156283946588996199878090600077816408979026702377717617546958545893129723984169081474838424365546381079628559636997919781928205555512784508111289428641248332788565177017971388022717969251091220119286932093666304090454154645098255348305350680271146728145168134435719833860354764589806083954273340983129423042802266838519345597776682617786224329310931943239205466388762434068445697372728957531607808222414844995039847868627313166829335917490668143598958276763726976418119389719534014793073873990894076917347526091991110974322811211025350054198572951219920021919601302667285201723720196248472642740235751967101505370766872551001447955714496755173268209538645732930648471378514274386682724457470374946633170559733188448290640256666989687915501847955241553114259475923005273706399330866123074053395317394825656535127104173152268610865483594622547429255751748132930817272810774367269930580527161004235188927336036028260721487337462068028621715351634642949436352063003094984713785696195090328498598060177090958248547370704995160945446854423780217758376275824119853772122467936187906316676937976074323667894542708930134968384911918026133193119371592566769552508844654947180613334886798477112471720553808930319798761414041812407771665446426650277522607661325093083683678380831591488387993586774490015465208502696353417584485553103615538987259013976057567266808806401971065809238604582207741447498252677725954285344323919046508821519042878157998707447669834996655173034510040319286448195552279389884461550815275259753365706619616145943149985539581690118152348339471279857415759116035214668082765797121640296518623265885830789450883776466505515828902362340066027429939466384100441464170893519937404250871430329186259187295487375568419992995510723812621910592168862585531332472445301461238301907683999077597588655357321560600532250175995283450691096733102776084769704311326181497123181650232324630997974949343949772194006257232000190215652460317637594121679145188760864187718663277078017999038043271048268007277218281599696654788460737106753813351246261696556944025225494587119746294981025275512646710076628982149518499863129400312083690973081942575307870564688735591384109554068144745139569012914744441061022668942139369476150389532770746320556405668783561184441472981656582266120947846254444519554627852841349985498690808152119101942724486802026634604296669465115508967680326788232533858431937416672275851541025704310432320004148914585879539195841445710169862028924787518113839007093329815422365833951205623074378973811947135379749487070279170513901362583037814655801089469592562321961980595689848551817533033500668820977964525918332168228612421723735708278439499620018376783201519929273637085965729332544985732384921823971677579355104394066067087811992838172693228584340777321971601069282740609487511838345135497317865264771890205611542000335469044981588953076594856703389574911579307720282856875708438118151129233174310824887055926789045944460216530146008030077346597018275688295260638126150474244099998975106222844730512653987607258646882997554454229577158619182264059953156653392023586008332122239312609097193932488636499536287129893252841313532002007655223738256887138406092073888901872216489655180795732733932843278089965750876734586973112773162414684851463261513166114274394362633546681370991623519652054818498379671320217672498046904752996702775571622888435046751226880569679067713580067039618921554728549828028037747612741661019525350442017006612644494350912332469773973711263544485695503802285240585193388568696186536797272904830994862688799770247094983629950903179701053561300448512682574056571280117372875018478731148479574124379851245369526571720126745966664023954378035615931764550615429722055494959653143931994373776148322737315198003915263609543341982637366222302200930552138946716426486486701402405817016584726408341140045232628757626351776056851571323902903549435194555973862017494136714853095160950666509562169073514251990970566824587319716567034178829433160985589018406592842107467399745268790789548447937647232270314821178952187680665761068457236902110056523178056608996982201386024058356517637773383330784800569972854316041005683251664958586417982934034538403597375202301935103626045233377624668777032817826340453328637906036067176123309566663753890458991607267764847497333762930138542153442823965411030733011558924374086128641250829857515134426146010509961969568722466105752358459252401355639870727293428685280556556324094938218886433861247181852747517130117914480817281529216525875378777248765385206352255972807919321318309184001522306621333398280036996467913570619229323628770901059802040069253826375658960411906958132868677926234653824687515675933678304746367297561051949345661528968156049511853765063282646758191999720352950225376710074814433920321393970324378915837022340768069868044508305098110708027910970124063000417561198830271663298356598535535881657745047285165156794599582492983019573399388407156682520804433035596507837975682532862786990556380356365802988444176281073578796260251969085260557635821627484053095627966734283347931739138394567556137461297882008032378348183866193966927710232554592202112982411875020956181256345043263194452031798920318890267881801120750303288777227716423268455386645128154280309372937872562910075026854884523117910859621268810524185257530507098544156447023532461993281169073487920238084539768138607327817745868994026756185394717777621623536062246849922714992763322572949736072011091319690189486972356000799140085754436247577307998561453694800981660259483286283861507900574223595963919739424968632844527266990461608590584499724795811725539036331061899922367594558390537139810524080285612199177583594522705124373862470717095498034079066878709710648610179666847347095860591528885078690603862021063141181424713834066043800134751242808699219664293336933760965859913956493871690674596493577014968065549751801505116289403843835364162160770925564374189822966968374331742016922454467910707081644059979767347385770157333019407271650184788084746484513683075742872438793015750320255768718858375719061804148797313852034040082085719564247590531722750339575284895712191960829519890380373531307698594619066845170493426539375804388614870606275496126573194768203805100037754252289761934695062841841243680180101589282821522923326752431320104765846491911306227153759514087533390375874174090879987748891711154528863130965536645298826003377143298330616469943097156455623247914550510215263636238662294700672926962573571814827364843477657521134870972514145005091841884681292221296804121928191743586288413274742199752548949457682407768219972450648908224280627871663809260302495697077096301363956128165287967819227988544659504314903121239547127201416131763729721044444677558916317660519598617719690225723453300797367491614001508565291830824331431975017719173942487724445949143312013587087712260697301888162810111064068210178465716890614570348191731297534202165082160953552977973951833967823745228515433010923988118513412652646978656284944345948577785529115064205488001158950013245296035504305559636220946601434414470626468084754723295538173968502257399021254438181825351351130311931242663267397540179908639826219259060653471743147750564000691062988607976788979440490716305180671751769735850755329015677750958040407684161095986582660898156731035873487596190220768994191208689511999428613369715008727707532869521287913556308370386890270535210407219313330505876510604092060171725273268622129226680641267508226587736096032680154640418629192836151077811927236573123209020169638060056631844480678108101276040385959466096225652280133017801043013678152368243955036901226612661705027462098695078600042161723780541024540814592331109877685546467427079918034969058054377961609346287667781952959680620504193069395163037625209742126941754217984929903916941520791318807246865638599825105638647291186471936073436527818286066601125261035029060308920381915383404713743847001195007983053172665264296059053182804622952191486845396657887886308527534715787541077832195392282832210303865381695041280437076745483365499844655950030167804966872972663933571288333540628587679938917972819242661367462496222956743030697957739976659408527902709398234482800559857234230570020999646831154374844198541153588667726350952705788155923973934266610789182265523857865906368088757777052926459204362522697915518782697689170500777465381255752141884976624564040751813325761796644730779251300593801501564067931154348214526109644907101951661725571007768003807294756712775600758146541026143855410859903974295778209132107063952953371539465356853314962450959689134136372738894846327673187156924167161551799710198111912175280144474279896689012457776881205730684641179422121241387616942693457590896672599587224210074442454996251182373389273915255409634066349999018331763660942053588460531306583306845052706587599879888444334112823341159250084702566123204378924214262712441894366700041348102948700342349854791752738026080414431566702793210526684541517367029388991533997893044548657829416900435814437761863114781505567134198472347141055202284415349209638159334564080154288440295024754758567720583944574039420896298857264393854932876438172564449929246713372396717965025348621904127175531690697845856161443335518605945146455760459161611682965678026760178230065982981390120716237156541971745128081245111138576799676748186279895436700560324249661621034464566323515899349963652759017070583927529103938181783200122675056064622237435701886902762678758398423537537585109303092464334394428829343908177641883028656751676900399256567155349457415104004904583215145621653700089551508514574403654672039665440047476572073666636726832440577279957934805839448109170338740445284157663994492454265238116264831646808026926106679587374465999946064606642792971873424953488872568488166022214537706034503528583065782254458016369306474740775243797149551503158203439482540004488511835244806011154038252544734596799029642075293399001356702826016773660054311707382194510829216109489162142096866936617985162175184219948903434056651056083197514375697568767217843116692662144675794237138080695781757515357395160920999402079930185921161981740210617035112800635458645315746085606943552439092809606384011054954438201384305799104272865121211585353485875937070565165233728187449829398081582421109704003776317689742477274527146700649399651521313722536364583208242893963449768418599192766958469089366694578731110215068364004369523746078586902044784848872960800565866074820742337705923271373999648856231705553874146398641475119823611332825131812259636432322998968727792011329982526707521857516109872421345981551888450818669970490374939616429916755730767987389446393047715345889152680038358263432725444929804026228251008357882167327891086569896432012162231930949367119933958973208452440594903566411062850764698156227587717832403227011234382308689432477864930194622003115928895100299112932072418315964460287715804672833789287205171775039378431158566145842650674072477514634098703586568690832734166910697094039401940199354264910836125319544800500921119172412410266556157270014702530504734018880309521826833682536259600807789324777483215115165695231471300332445689303737349833675933191051757782659172285726189407056689390254214514504683009450979247331221115146146891759723939129693863804085441333802754001651167060297986759788878611973744515380763209524528383053008758841709823045696218767349639092160594778369391658408498916520758422542806480993318809358538910498848806702674895091598627980067271600931002970623348409794810012760054847295910212975039013172622201131161069592778181655052802075092830281004499740237103174157521989793894334555778717086700873083553020485626458775804881569816550954185548130326546049423384422146033100499315206559841124022350763848055501158034251136444443762717378236855023371174768156995382216704863494480584033836019421404659357747395303027284685658162521884918590921809446638391704732344588896745370252837079674915842375261990833251030152648781275976285884440737904411853774193603553955921534937733844885605560122783741770716012011274517026777586801914935327455060862077964763090123618840154294937270767204123766126576847571803930082986934408319865036743614776843159038681106606316813634402024770794692220254795949327782958796461675107420549473238489630712589807900827924257061437156142382436933770853975022828753525702859879178185592821744859919076012030257047446172852468370249287687805615201341937808245204706867146451244949793874915273051857022730875395003133860226047765790540532273410237711666964104201053209210597515526397633715954426805568713128719321326939989759338024620156266638346891675038991002037471331113112231518888178597888502477538065877425784116886584723266367244420703697171279684473596019426056188317938339915015465308393046953033888392610115658717986041682461884048502622327328502086535017919055546201107155019602068371429119952862402845452421218982222800454871992779449504479184422769964997898532630640939456370618647764720164783893058090699974376226943066213573972245483115239602865619010617538604767717509364459491118664731751440886343541172700287438309292438494582004500626876108047792038203043745713045972128905071717533795174189295744996240050786535925037197950025353462478462202359885638541165122843334865491895544533690881600136703275034873670701218472161298289151974037250513392945083276442317389090296998791198454618462919360783673966126372983610570414647607480952300714033030555435688887140304896784079439646815177607438905463580878902987809862054801569863304020453983291595449047141110598599445155637859475042753068956781906998253456733758538114415693715808987740648263875178845373058775411782942147323415972650271452949534525523700506326212513822401925705520520509259290978882379355673374167132959383806333130093385887141965803480349198351244979001404429806978698094341642758240378667594630582012445392885861210334034121732514655843848532329724712462337005079410394921598478513730023535170998964700524606697132104991435352440929205957835859033879950725127100492435157614844342436195492620195239276887746252657719433395098512215332628918080200040514380557427819990755122534184228867404476611911157668487693784430053143457643229137941677670631453493121245468863009071673623915175697586176990124840177690327263381287969973758892835399301805771022416050859988545246704261639646835316942158855550130541040247519121337573554605837231398924628789483566751704550724934688548713841171264656581991386952563905360271421053313540126383892202576559783911861591179232842286984172820215984866186448811557530057348718081235764930231264926671155070028146849900315480260066809955515183345261782099878221621633897112328276789204241083439153213061288591794596913779633140861832814786980720131496916015663698054449858155853441512941604425072536705021491953008121042983632779990112785076663145033049682012253647189059023890729321874357163633598153278253981801805082959969267001146241345434283206403704577096757733833878156181148710129136270543479206556401220935052398749256496628774006155803523556857424943393666080658485764554891145977011799661761331965007939949642015486938856223961051227936139566449974763373038096550819382522416994711031917072066904656100486587752177739557229262083381516810339033764527502069590930513229393318079058026707605675705331296268528060518756139782654562244730959656795264389538075379404294113524678677763993877388623533230469235754513133065913268515253504653380788886380113560491000792907598218021982882006964726666864684394274178061118847448851222498231662653721016441136579081965382660013991157932340313508330487684816670486405345244988525468904546155454878660711431718325250074243414614323387069403645129508598517250499445925448679269070581128855410555325872425395581498787844839201981589390492821333794353831264892645160794908931509696587401231609588505323126422596154227622069691608116101551047618357959277628426812518440815757770066484345595850444123597622503416989349698618840675505613132834988047515885353650919655302108727878591786350804392120511997583435461334672166031782717985299477633888850593117960570369278889777869250542670143797474277575786009196064238962712959843323904145558297014317791361732998674403828361111353475640609643803515797324257229251772612610343980066790977294191208061809302482193967084376621445429069027900983401669199821058402039359739714930224855313476711482856484382145205051512093845641003935163842888414484665009972516069025894912808178419475055714438208048112184622157564966246873058408265236865780997541063368209659389499582958021125908694743726209575119978903569419851442294221243145256816355742769608157479173068853134475998882198870970101416235216031624034703474215736826471589407798918214589506010557025896213591025853211893178636884410170092320733910827366215312723509038736841747510734152602615459900065912333645690426803274369644729244121935329614389050576994407737318682329439532271929603001012169067995330070834529585814542462756800238117638044798340153433728884169899020379891748795825453668545345283103836001907857505189188719199543470467018024747881047766120199405727388690965625357203471400567293520076935374464039177899116301319904231456219076641661300832402959936067978121183032270726184145847372894393940973446524908312930362028377025885728875310241319799656642387401919759214534750417029585885962607609437295295005414228057602633006435898391109442741228235440518039372043284426376728836683342509980161271440308784917864943137001344133646609497962831040812465144632146796930649454791221408116713113742546747761293406131781068108842319444459850234498454368614154705708323995093295162190784008728111398015457335323559876194795330060503048083208419905649072944137747026725970381060776133190610751816298534761395130757556244602517292740134789882407675763220684915863754172328401028024904066979892643566655095742442892176898965187603482923487395666687990671613188201780303999879026116161469895838143874241444816648848496149206478138534547465446976588154015196303417624119473046237159659232250730515223986499238282154670528667392059113438637226294537036080865819349810759832196653090372574155516145343890168374688696362499545254985533518750766303275888914273478103573482586674657288398080146937871217196200630692863544888626624996403902528666572356881722315180449624938644082769536517282436705313936203620036300584989987750956086515151450439164027135146154986827347337396286309372143485396741683086151904109555780447784469654059367311742420770690278236060586152325665464541417029225710536947609613346673351900045042773034845943997467867295217351769542199115708934602517643908660843344933945975603831843523622466860674182598152744623445728332203625102208467103405489297502352238307638922233239551625488346342332869719226301055772600591171622412882131054274474584939099596753353980344150579161286845547342847457979030418509462030471089065246511067168884811843473623267082108529192573107610482580581687576462855110887939091949419615693515931776373291108091854873498261655563817845953238826086630072613664913573002236676251344057907684561808238337026842055402021672583282904594514275576040546116388856551184349072818756200415427397474803732872144566543211870091850428508169202315469499815401102681359250973100992892202372932343653237414722138041850394717590972817336867792594894998405579265137377955124556833405643955922344050542179747111439630229830360759155891020658096955614359189800191034355986583118143882515548949126857638293269924493340144542220185208445279317209941303679050673040185191023589469485024881394441355084505871110262877651443115782724735045880556069231409654745232657674647949110704561330641367871418031801561592985802440118925442885790787573475382756529283818724058346219022180886477922945164830020315594382270370253301780754608007396373915670825595691826323731803179611859653470148939195142907766826373362155626322178617731253437090953515041950131117648099827587046833664773379413992171572863848169863376245602223125796725204716103244337078316328946671388469757364562813365832263750549237154539644795725599149422592023467161958556932148062254164373658033566810523318291587336909061972737991873623792748066870545787002281191106467688764931486365225128474261279964608236484975027677246894963691194447767074300121930319950893121787338552282372149767421394844651267085857935898589838994757416152520386966571920451906910460669323279857049693991082030478144376806564503402936297851135731497172382869532692283415833976610871787430939901494738658402643836208298324505983748249298364851741247098152006205314185613251707886652255816140148464173663032459913419222253394975253029585859612951414727899917880435206019357490998950790033120298846756878006006251769766748062745069023955799409287188150674488712706963615270557810572406093284518789614565598602050339924565344921201495930949596708640329696556887616166672118873870725268460590494755127631142093323472412129034365825229707358098516322950081138990335177801492447013934718529555397282872310911120352457206675233107212586963671731454428867967231360974745256944583180822974483366148812391604321048294285167115697326982047962041527378096211149977523601855640782502479702608976848898649784306450621474768640585598703711065337321988063922047079435313541048799038935695763606029862506242783017655847672559164390244581855576467455752724933411436676941810489073595165819933923291275390682924717960836189557183701726150513363177341824856269377270119152719798387830626927043899707238413317023984996862821032854922838315035708645809341239362342637829651241965470197269579057580044958942082717117009312144062485224497666384146860364087641719209496573966118056978450759917269616392718676255873573945605910434344485704395491196107311476364259346115586550629828568594761738638778375708999090990388386365537432571931627584470377733076621677695983288614974314894453120541205684487175561836597594568007807738417602751293451341204021688398424863020991335288932251618165307205794653737127770380103835361751883454088170350205389384041998686744344930764600706449738103587978138258175123313627300131871062252452648885731919649039913385361563807568706945781938980871704947890358159377762617484155051728579820601976222575488226219672556016128254011056947588156999729066950095981604070833487540992193741559206700637684652903433059078694543798940709621023258770674582025003368686914987712334133526853814791419287997353394065328875808070985492242551019725579774607656263070467968287764580388934706916395842678731649605593349884374123299398409874868396711949954912624278573771607695953279732270668098960485534678152419752202045635389907012084079736510413152399264652002995004015982461566143784058207926169833409426147530250842684982211573885988677030108929884714450650614951801594885402226688557450637775478493515957876082717290790096670230204617994630915588218388764494288107006011364367671098107798306483834202443911546074945283904693440832849226407509536469097608672013470253135114344871589395426198937744656820330928532014374321600458975828597262484814581962480713618025839447038844015763792993229441247995817423402131074640035085128556369688288141988517185928717994519017896175849958063392638870731338914162414546283517429434349210819055522568629702811453352738589364662382241360553202742923887639218838125550200475013819003143189153397400003998227886909820743462854512476418510034795197036606718309261886657194643257724177872282038643065907836551184998295839318765916208730374628969342237535652451168970171806453348685423145257559272595272375266734809764898601534878587020375652182475840826718793460433335699430772698870032786423226952207459926830304728194968988934749087036607243635395186148060832369945600527047299858640851442692517009695376769115249380903909621424462881578920946224926402821306184627989007263982459210566540939431433347584159472609488201968667717178072125769890503282311426958560337742545412225999013461606282229153523407799148061398362612208970352773485040430447600867657442157631672519789099229160941394128896452634968863948204348370354696157969655431590035649959097535642108315120694545105850808828794317520969291615735120146470952206572652426821039583092100544818402180349537724651617364416619453545719736196842789771362655887527759034330469809973748713120290141517451547967062376801084230468152590524723411460304108762947241319012356507252795674966247245688940339133179769510414000468186841338090328668030164136659683217255370675059385614245235510119297084394733434387810833787991307872753283412728002650804436182987291096247233076391403328796567363152022579021168120885213784961055441198669713962554348435714836945178117065473370259741920546996810776799922726901724362452889412139417500111011575908502444561310219987995329442674821975725717215647635838643650898897803211021496619052185092794622493236490332525384291398573909104644277777029471752600685499988193797121267797034995503256443855373877212475541302717351870140523664792576622063235154446200503784176749677271945817013084675070213330614461869204641547362688443470962179798783318131268400401389792948653587465479564222507773440542224449815539988686590561037832416623158417272040035819541078023764460438901282458873293841324045491240969750961256631214081399062197926222456504962888447968664944820059798282373141962590394239676639199735445602796933839522902784767688679778694870710093720049986119786724931914527354875258675623763088819588310282035960929795175271311314176549271817453470251505891149440094310373922140300211521399141032315040637174145532952767336225893999361243462643659923641963505584555847262718729330862533129432635648285117378329055795689194938372155692054460192218036065202811616179146494086350759158886977760362876358946467862976736344568821532073487986515751560453184127468777545897628764797292581369128376679804129449120311521049807083635908540816489182927975873377289939787251404018582956342751933797931777784572907268907023423400427164706206218929329310648518435260125534462697624881544857541567261017335448993485152197567848264498309753029117572088733516895735558316340557545776576072083984918627077757888475814048421378753140187592959038292088277488168488225207716730662228588793988261064212861546276368188212907966526472104725954511231694870878561184572966615106698282360646409072104665405532854583110527030149771588494031791894361224823674361127584806832935580987679693213876277279609213735668975001275651612169295117244617044512793769023401599530180734614339090751433702087590852963656378426152681012747147605751752402586602826267393964258356572867113848534036169108318836542922308558432954770984659557577003324936665646064510248184549221595295814944746594941462180368597121006221709454891152396138122844356106979149356873543746634440543011065824144397759324703852987323434230557159616302332414519303505935653983663145026662214887935828757422528424718475659489073625343219464413139335578878520738134719235534112837314144362839645720011141234745071988417625366996198529160242068965580101497926031992891845700141235334193306517654097435285731496788160113881561797152408572744122922377009023278311769799390374520695987909184162892669251493290577477502302666969957944020883550731055956083839562203455823683335072427736269419684894291392058287199381201140705829758913095920534489517968293607555590550252261206455961689483969659024877504443426862261231294443974369322513147762425461112005620977671509383421517294307904362643560705845076953055116448361936044285309160040654340407545618842347964379345580737384814678808024100829170785726763613467597014472761627058270698534878642916684634461078308285675565447807841633676029130182051569245673067631110192795489303799837908456642670370945657270914695227462999290520271345076217193201077462414273873142797684136887772216110562046801896020056822283873194410956033404474027031629767213781914383414472855103449212267103968722311935882812435714428337368613711711061819489221632988182946151250438894182220795949505979494326916095498339664039558503963797429887772256404446364498885126772978585844705124657735824012019698894280237622052600859737779826716434073096273687727124585669932780874324656250262358878772779498719834818125304103656891001716554189859693485053607882753362879792586417963901859251161652427392674296353567729215186731222716456656692565858226523905305110162173447337270135084056763102936166140167399864214095239149642891999009695902585180223518200329246683591500241170499865383281292047243554554027794656857941862586250906295704773571278069069070893198651217120126370939470766344429444490444605893778629597318296551977158129233923551175345533856554966571417901609493544264209497705539060828535798846575861595724668703799105320913330347733495720807351558086626059471314559042542568197738807357798270025092869060749050089785519541706194980634359822140444016389483917381666378952687958539062725367660158986140650683724590444238813648242603268580337712985888631925845365683409534633666883288666991471869411519526259640904019981559164279809815272308121977042893580344195562259521555535338679419965622779300638493982882967582362687159073515202948015779416369463605008861601305291055702379232539734101389254837448685226506417001631615818984231678418794311522851434088083653866324807761593867540793449758963576116513010453926434866491480813383409142108955244727256135830275031789553534501994142573601595220591399557647977193119133200785609531382102005253007766395628106576209967913992006012594297109634644604768205950831637480481416936462460176925550325671987943338440547233914921885887604836270894615196244234753209912718141833383520878828159485377625047960714707413112206959170253581495396308801715180758176036866437032536143773975062937928423506114715530110280039540033093035488255896362949661635498977745301116852035595806653941683334449163906085984229533234395037307732912742611436502592221395869719084203052169496877362573102164074297477123818731541159893834263875002459901797223389132911269365541793734178437718581574839991536572905275640515981233474077146575297781576293494076027260631511979459600217110721329912757412548104765847922101863212918399252861038761935965822635801103660755390788162687758953064943570503082199467791771265020450067013946552408399164415070368702908572532038708291727491083698676095503954883237220438625431816721447425398045383698369585570682088026743241764510974496056982565239096268053773079609939867577385483562659240386693175558278196100330210642939350194178384704767242876590229025630691805531834476482461432291086618601390552020249446999279035548632926603554016357243519256210506948368415046086908034223332303523881697685893611167748547786258621678598060239696956566191928916706549103163204063612685131270196061206643833443836204640710969538343442251770246665249572442415728086695100636667251520249403921877887291465441222069547087146505963975241180351474316587734733837348722152935736660834918774496930355197872167481953037631570318113012344702194860234722985416226701795197336921180430114979950090727034086984714122768581713161125984919854998673850627481460055692078504082075370705643629952129324167968372629809813563916421535592246102709713434738124809510164050048224059322264016290083558450229247163055130597476461024734682672786362632391066220847829240165780080503496891491443355977507841784911145095821560612590283511306837044568798145997965301528659315419716506519059147982738995889127299693463471030838279261516717733907885426793428752984164678762356621277205723924339391906916989438986413808241537734692408644239796296642167177356353068163618270335997082328312261066015397890722785958085644523296920474660420909043153557944607143240320366016316755175205548712371335973490942288016208805498326356870844161017578194732482085814087163381279818541186340929532167091793172968435177068440632964143604528402860582615281280266344657881281756424016600947609911348768036020141370290769318126366250494362079431280811360015107570500900592881723251525445713799511636443851504846161819505618888815494624634250487757554782669951580140279262549753625987233562461476820437850065637079156749511107728717943677357393058402848389705024220860215721889193824701317908643939767381299256557053596901690534308927459312815125857240417994787339716115971545688467154185651100511643763071238915478636983155932845353946848261314017612631903091057706622630816341501674527547830146465602918811750991427043759645749955992392553677006033014617608857392502063372822337539303171213793881153257877357092147347474463214477445542610961367394913795901532677085848341747578709384690550692394575893399512342979643354363138600185273994116050960338099245761957990081275453134167598237873093200911452246657935173494663762321144794233600062704599781288143415262947231913585728291361871174128998612738333549705280214690050061846286346390279661852096105882248866712354773710417223529948985389800311677504652802770269325460658466498675330023345398409442416629597371119901113353733163081130018702854447927182691806422714422373231116067875959275082668465987224519125118505553335266735695992644455702173787289651459830811319844391533938174547098092565642240957776319180442512301474902322273672068321035798563015125667186046644367231152281180337813487065551419384630081650315262447405828474850594609806215446662106036323326567327746393899641229030116512341673544487355934716648899202465834032954986282218240291990946382301523508368344071540740519292392268593661221207313217297499098975593559495852292030462406828970188281133048564267012780763694820443557249295420476658130601155914203199195398273895815389428211242985578573447281362929591554566618042997283045110853867080286316440858308299663460635795336895746970355309857700297771270106378217051858117322533763889216413890179324322709828034571999533321623506216020123924359287845603291918961174737228589743259100114100765584524754994593847122814685928909933521100652412300646998547053902618789300698829009320189405516772746768740103052812421479529215672056928113095089420904349685576124409448619398707926699870729562630411006834262275609832468745364955100679132007164706853830865120236883145001602242811255835677220048967981924554807980305791136380051463259731643205196583140375703985649348409816175209618485343022605466500641923954160878894523436765767555842148099037018137898442040966765746722013385665174590956790521638838279762718329747818679184391885806510277889108150044634382602607050745389235162996006699528405657071651711205222870724118464280627968444742279053724344834097436356288126312583483584559391712028594417676254819281649514602938909792403817042321554553362400875580342961854676280918830388878725737161221227786130028338493005767789158207588456048834469045497655811311242596081869991820042385165742731271859219929359438980169518020139339145651814720852225991874647797031221387813625507962967809893977958333903844472248901483334093755981221971052470405625688735710963537405266877580082953952814834721218256769769546368960735376649365354773292991289660245061300991812862672128158309719539945666912062889236750015648081836339846902025943177493660762153729361035956336429760937788572244660335130399995452281169643548116802033187704700657506431554464624379502670355351463712267109541500524103266626925941670941793030400180000892233517150012468408113777681903267548618716990104207772627834475641965177336924678197897611676187833096074543380546791075247367550030996348209739231325151201441233554891295947867752110802051647866596479767489377761706869585432923328466317457294103348457167251200462196709350049242698161243902860048437601752548214474691826657531863681590768289647791894453591460116365860231730548681946427217889743219185799814808330373679761048235649262835121489511327791532119180635095920018823426925825091220808299644156584669898007687788079451605110633952120741638735085159869405455784547001773958256452119023040872274142274101244385670473929968736733121336347386706151984495696367528035823464387969625401310921438418832646160541955318486796607813521258718911597585190829480163360928919339947645520061938350959836354072322593450951814117641205287582930443375069062340057693162919097110845448568057283576550237350011978909172442551921478524372560819197341236519877924936934322272572132445034192363850763726886353450356981644406128074724519744933823121914642280421218995045016497350661395355162337721783489187400760107378388581260118374840609722982875225220559471219036514130220592860929845060796611622436886252936807355174742685115558239931419635241884959296720591640535121766337973362012640083625083401147400355589055353290780016672786845133592854373003571584071665838219008401527600409108388874656958449142835229967465209245802456754720610226069448705442175861260607657397663738287011125914803604096467868556469397282960211011018498992996163854716897996669762776941587979024058765715668817219399000150250978930946866004750212299249859489716143223686347713963129021177751058190078619712351937744734964090513976074558116655722397546192783729494982774437429390409612411844827213626472846471970493498029949909194092362721162151747936131442679025393961787041726778885871013995127503118739644389967391197100680827507062992404083387466924817864023812578802259175564865326522264883107946058457426198345948726441007362581289148966345130818731071418517535582424015966517147259078593729449377907885713288248839823475663452595893601470213349598273033911489487919302789295691398263471344492225151375008071071138879479125287095052502924175167273736975035401162083672558403460420442983339469217034517811222398727222507852866208864645171367692062561964079377001319499375185486118919119851525492323717992744294723861363341262523815227769292359306497800444233622543300453474017627612785821497194081909023161340154358919851383810868400535262725771325957778404591844296441240539316963884777579311711874012207725295814017043245274321899108050415240304128710090331958565238840137692776240181045555780832476147799684937960023198470557019428166493002478126861364202576741687979698012825532671505424048633714916203448133371826073070934537034537587399451138742248400634421604112381058396489083696343773983862433285277319149912598440039999407359944736859371416144803149450361507526491874016824776426145100556872515334507555812920896949197865383462925103937202172940314115124228461478909194848479293142849311761260609728675242342825368291333139967017200533724675310476902563245952571598219076874494800337588643190227550106323278887434820113798673577753035183450526867662015689359409132062322656648693401827749237842083721821241525492421207924301873379267428023260279018065728010760790710339916864234577148377527993848744553179907404197556793562907655709203845884394808730937112424436981019686715576265013367115821697174813526343056155362002871730612768814425154918310075836591171298488684512184587017178186583649038044164917783755113626611020470320550683361919087866201348661754525635071263321503238209760654398748120937385261907553034685231824229195635858299301337684208310813233907133402042147657949103955176592891409609296840443350257714845232252742257338455533219326057856897339254413745345502085846269113754197407898821297165788049789764190979489318937435117181031381724386681935800552450063338250546761216241804382024499412052603528685791925582503777003704455970820360401771494687194781970158183834324493845832127446611624313428442169542155937077001732753953456703374589782588430779154797247774082345229602977617643040288355857751145204895057208032181421501799846218797085482019074012655397285894067683609913287038665858730943766308190883559928902155615933960037446670445263373112292159040718068245245347855313076273190934872820498495133447174120386372686229849313171544625548458143098180651155614031145759652381076028024870972256499541099892275442819979418774953659423494402753212262391980944590306454079339073246215674137507527535053671458026389400527306795498295624526013834213166378288620515562285972392447864575922727410807996077185989492386474464276881091959063927821509709963598007564619158398261815830955244548304997471226167512617350749060494809811881242239714138004276943467200042514439379051277649985176898487271815593200469613839248250988650929690985466789051918903165797105772440362178925693675132369010082751572173879349343707455251715342419647684051598954295559475605065916324549234384121569396863148674834783747712762514506303539139146592495128054044293425022765950362049404385037560413452223908937330445079967960914566047024197640406891570843115854118453555883580709873332829924308669215014576645851467482023127803722659000882484425588434464788827178478218588651583636804648887462723796958929752106670882121670340766670913992251976232010044934300535477092244463164623026473933259816263700949177530443967992351207975382309540829858002673288322374503202585954492894149406863861197979326491247779827117892027482249109162134628710664370709985802275517575799891521953765959130033893753007647715169462760085359867395729751306225113722984152887094929180494166316009846223906230628009282048330522880536786775625020930327106026895216651976473737907101399332572347794427140459802580739082376647449141708457922208562476719535333954415060144264491421613050781196194398204676797737961270213556410085888756596105313899885783462521246947546096528197025116443866674192997484114068629749661004085332200560391741542631707206631210176475840643394055578786602963608445155557713247929732347796059768341681025317522453082425045671081356731732118222010642053830194772464918582524540112565391030546380792286719434322085949947733358009565255867420461189605291538916490534991329101022056360488447050118895029654101173712556136199738970598192246510714646236778786101342420492427811413623179960339866087733938203097767627728673273682777110639849202435752245828401060183137262645620931677129120270295458913390026532456868484918715944930921513620481106583106671945816367261948033144810819473200076224897835252638390947316830948413713208957084335732508445052082742581215752762493563760243822232400308457322344638866405188489672530138625958864484585006812336453562190036942271040878515019116663963172652410214261176303477607404951910610507326188937756034394972779881780766461699634501985431978833149773012587953696636240841952242855843413435407048999945590083349430263970902343570130945751680727721535930655690103114773027764949516209512679440676955998102375747479930898148444595461039919354147183506124063662172652798522111082116860824713676150355203185397958355604673805111686350666496766643950310842178585881599656331739027351032363771373621837596267357186255734025192583303836172954293673275168029826542974222534978173735106816409067641394535379057305591574528773445058104101789539744362410745031149935153228546360886542584096367150940575411535498288391627209155638258302214137156837230616197501462871844983537499875459551627244925746935735496043280458621834493815058270881743194595701700757931978127524337901142833411948428323378205425191795553237973057238128962042524507824709042654835288237409790097979869247271979892462873195387797062313179782040611456636959871579967422087604839781195992125805399600149286755083575446070175265902567196496554636168149280455757146746776026510411582762815857786137974061751178872913048416480785329413503051030719051154886735260060336884611564052369724496213606213743081329570811714373175043947244134170334081746703056816478991810119737323598801786951516480380796810537111719363135495885924054327763831410140058236328844833597645820072058689613292977072714113074470527485304373063879273549104124353049136012319524750596026988101341479842650260010704535738748121002980866516939501180233724622359761860095083124715599877894799599151747253658980737786376731956301593134447618262496704311589160488750647674296821453284245995631952108234174700267551568660393105811569871734515305034565566608914054670259321133445399116700436945506749763577109371089341129196767237622604194989916007219062406329747258027642696034745773063643698809178157742637268065912496256237950289579865819108131338757315557640677528848050045886335582015547489536450694382266777186287752288612016403004352179170871271398588086456436472116157366209260998322146496624663757894313294417894252724392160612834371755282186169908659457035419572098352392394705729475571830417733655952080709838650813825729234720615590909413953155605450409317139285384335392827927288365097261479818367401176552409630061374582789511621861514620725769772679364992362176715668873573752451776257734576723760510674001056431180368113977008222726086378332809194875043963797896239064790937223446836339837129886578554429898105462035137336283408441900642086546101429121322820145366343481742527097889154240053660956588696495648793756410913710416797344153053149484199205351248735200119635829117181761967049775204830379573870632322627820825924490658609829351799034066940964807679733394883413201530959701652560750817486226327586601620763988266220422557041183363896829076704074383448918821339654470656431870305844170819040458958163716015210346879221668850691105717737404475325349440937892427898694347933137056850077732919246889153720242502528651119541990240103658934974546833068787548301415351593314521398881192897605089293383563165637375438575601201903480367022824000426603153658935760224764724549846310676952286848996176747245210530976704916376253273062893943169872906945873293398010134041902851249335440358470618224420861071138521867620445759065892288778197082281040578641706421408475309468543046111624847096601436778173591576678475675059215922813379552777930801311273025423543786802569212495990270217893656612486703756392129155555977094107348248591446247840235747920741414242538246423544134368441004081660836150421285531684823609516166227009771905834125746137763971633046236067338982034522098507151208401377953303683051083715233391792812894433595551835842085402075510929947291898224071323316584124187627963987692801718673470088708735155610217544465015389741522746407759200246463704590432737094001824098734746478810459773702900795426266532448578974817262791836681968254425222937117506735691085102251739574432524149181200527419766343925302274338190061071038753592349929194127057455916380232711624322446618340390637129145631291646647027172937339014646210228112763947843071409113070648440266035462652099138723997728110968817667475730769783130699046714979294229574903019059438569916867047387628377355397250730251531325130595995074047283596474069866295238092957210140585077781079507559074658494405315289255106096676590402897790113332509503229268785002855653378374506253942855427789832746377694279093859567798064958300984236985544833514844796654731386463186552802716214235834838170070714462717099372130286977714078352674776861401611947143719206221567782937273582782247090515608194798842747555806483535044184186285535256321949696989262829268712346595898690393144814336688204491710189070681458483480173668695265834958432998811607888400998893962835954275685896385645817959368023281906009816972572855472344063787898177842455105770562477821396876483413644148941077357349042130370414600374068950578243433072394018081854906704166957965776435237598752107765717426527933877058058575788504464703683708162800799107314860157037641622362776832670406413954161130724792076768937736234859630553669915845979492509353132469015694576790000452296442110379125587933835538982111966775396321753655584304809429197997509594184568258268151373249149020260547522139707469335860812173615567546052188615121319933994618037984742314623634482185812365872412233367520714546277937423747054816746031369793732861338827740699537440456905306460067074985227403326838929305447638610050549492275424315072181331623645017686944950234784609701535267288994207872374296897890832116384512852872007722560853086742029019685835936881362267580799604683572097588218941887210194668639442309603466852786849133956232494006946065644395202148974165429225745074560641469373461143853312967236320549756551372954005611526160454003451656280065720915374381157471448932468419667176670419131589017714218884866665353803599461163652994046267787877923455875028920979379610580620043322281742927375977412347633261175749059728463688236541448901385411133840109926627477453059048669701035388708463641569666626015798566810087742948195572371213690773756848815141746482037618609810872662961576146476291236300363342711249612154633669718309403604363524503177988978133446595918311942339081517739295892787944571785638318887180188763902744255180243503483467043104419170798522799874358286642905903656189197761781698108839853676375010158984957193448802795379235653031457223927860848720887843672272164164260885712099353277430683412118549471297347075235057234391723296632524225950049364849303075498915455720023993442475556335094041695067743953431895722582064388026025487866358484330955824537602002864560555873254362098444124384844200952407029142220316600898402149877781179306412532145615692793119631976157365695552774818826267012995293737928374396176080375683544000269589733636495776496147745565582220924368048455952270990548989716578515944505573307761347258536824734676611752815014167534060974568853664384434171000479214119485619466507595831758512324029133213651026270535802303720589063943199719668924509329100508531398201850527902395539996206318514849639855234629094324443895537337968648652987241828874139531638020144021198868715755661899861105314930638767414913301563532637576271039467056520076131216280874858270684391156395215402103121164057645584618260250834253627899404568907057284667807948455636741965536893040297065636992701541500145808104340709436491628646419333619744495299991372534563237968483066808264924454731182483874826977345330648963959495338204721629952080302562083562628939225208052469148579733274641947229809708269130147474042937024420391551491244482961714574454166891756991244649628617625066191749732640321233828681584129825334086300053729883955980127617250458191198974894531402021016193933793181584926619216328671741459029719282207494245098756621232468637574096489172731954379487471726581711405378697173708030951289819437186475343750731187306538074617525946284110240727588100205600971582379852847885791308230671305746790918143427379570299591544357654932631205323773224240717527124422395776455894661434177203719141745644762087753171706301558691259437163090491253701520814756480675396872040243085863471155217899534182914477071569144986326608082267537044910497738134954872496955996120082223319957330080257434603911586594011794648330880276917926883233107508388062275076616591297280552966721432260728470459124409383741495374382161965667661883871614441367943365981850603273165955702384815808763986520180834545940352447033524529675312199135213952681619867698051392165765116284053353336049384230723559081511410188648766334473288933319302335909307111094322402605087721469769840155076620343168366704176313447020586458408339060208351100803240999825500812802393597675659176246775418407096802703183783237023790194631965810065708330234129184713298840958146942596365510412360506721421423077102397656473169800046487164769359004818972822064052536804785336753431955885671918808175546208971132115746002074347526832381914362359940941577189228046850746788546999207462048455269264203429230699004564317793692253888950867245107169742853977530076196241751237205495410513060540097573879893105945824550466268683683181489419942106063642799034466457441112368928916992734715135505443261848867457955735750388442845723724404373010121987315210503089122804315688149474770900384610577732321651956173462666126067044477928407082861942428585593170326240325319721055839461011009628569571262422045472564960812390990250512405621021113358621272986440543217185788870168853315232252659363080521270440037455936653353415352195953373708041256513761199189460167808132659862077526547052905332475848165046247775703321492806117119188779921511174391086389147756052742544464185340749174736961460627061076351407404730959392803515760565287793788576172902466173523739980639720830160813960307637774842353225384776251058636080454838057616762979803067205340229555843815903718222137046577222106247809052439329632181427961927082105290413032458657181112922797344390905084252747249921299176828766712365159884593114767631328694885724893047101030803650302345272359827297422834268874501118250755136897440550633151198257027980135619624667575467611294262369706961062842482965971725259655345741977431965594320319987669269276050369376240118677238303406784554277674790838818181784761122680072356037340146573072363751178116742181897383819444978801715951275025982433602747609835479087501916896249537036637076176511877214726012508794087418038812572259142058528363813632565815320747673213987832434139389716229569697715400826940922516504828452992842102889554615895647605884587591431809475363413665362190773079049367137439344214022446751944191192270330927059031204048566915650359620951604645781433329797307599380088831552163408587264872461185461967539406678443650152924839214076059751440874975401786114204737976020240585532433696871102726497194500903693035649468580614412891871036328608653692465481166749556507128663982419059400575224922880409608088625261877164791907906582366911938020733509817554314262452034449024559784617179825884114494562195120238829831438670771289844427263074207428794436971104594570085885745410719190673328983244234459573017457344073670269347271558417616061013192896554640195823129229886502164992846541101300802797500026044619624510882807741860311926978537380738014428667790425038335533084838446799625497353856305272730155931548274199777387636746536607795724651371770070191259305285798671875405647668723141980771808747046063798862535436840688062588120674888017006573407763424915963070375850422338725625036416544649195601666295152066362784227810051883568425995408496363558456600375628658659359122861899708084356962436373468456193857846843021065052693325462511607160817683236815698125420623629402148413879030489631070809716139634247823557758010876078554544257813159714467670610383023901039025152497853957946713103430343140443570306021893737752956763644025505645124285427296531765203258034016138700613037853334080627019713920464263326077660151882401377710325079518694516333701067513546424505907305032052227918025124663088427307831722457314772448861850406353273437002624929378978817706742869719084121200514556591478043457752454521279322956352971248501662318158033542174005718125222385096101737834721476733070997504821067660908703617385703192228563025530834818810045561854696218110204602925841068818830124633313039954399528294176350692323551448056024529820850335860966404210843185380295179437688099951802730249600052145695701408552209643038791612281410310463328518644448703679867650659493474093419321979988743381533525212093775342773971045286740371664206330073591841435044609928105681038704328625082796658586832945679167330523310585194788052264514531746454354238022089092563150531040468604479602261612880686403191102053966318407442050243077464569283713998200956403114096228889481234675394932274931811468250138388187555003027281139934457438257540386519776104685798443344104301773965063984571386616511192056977627177198935800355611442739175723555878194291373732085795737526645303646883055738566879217907811113192354963168244712508396554334878142404214768693181039522806348581429382576399666775444873117297095896605964703930196412241044305190851672140368670669377345520292515539421728918380704716178710703221029983885243497362380470369081967653593806935494625344788505756006558055316029988159872865934424215384521964604916680142011833159802559339962139313431105339307785460753572790944242420832658041864054229402333139785271566157292118572923279424437430585416708249397431215897761032808714775383467501197219644744787261998980236472319502541065676908475073328408293894965837766795965655740507822709915037187109308756614738992977588584185801162060878526935148627938990057270569074886856166281305629322673998859801233760084209177801726134236914044545051244799245110660951556340681601412730899364850523630721594077300332943273345383275276383612767394713698130416056570562070976328146880451147770234524431129275172583266136683414507431602267481557908210227124468390807862802053538962068262458644969985386595951331314412689159263995317678075841070964755429344546744976280563334371991370915285494318751587261566693166270400674167574564690368294788634899882041431653964298935330132583044771457741362933031768496703893971696932079940162915838645122542062960757940131397680690576280956250111891739059033499107504288640064411175434778765685618169945281213769179329448439557132379801689671199335880375616344029684505354797166632155568941790174564316255839086602969240174875187106601117901103530538404063024733511676332857614384581833015095225939331861666627079170965858064525470842057616139858336085420988708096314656837851567767650874325669917277012579308735078099236840551529547289572435032442456274734930219426491288715646067374219381744128213413570855234203094059792819944290579729558751876572559687294644344203194519579385810858722682079199367131308425730823616016444683512686207583199885829011621298169734947916756786841735949515850210640489635745932165213736420455057003327650196977044002654336577809824497017107804101190899462522691940478576340955971872808803357637419320539613105344243652083409151347850073216985294004784869507321456505549813978292022501391394684635316590477169196093773721589027294124680800612602464153238661490665395256677323057830451909584480387010682354220117085986195566433702293982245119843385620627485422409626964446635667910781651148297932255730623975280982387320823137330251254750759704622864863508451697401376885388270677132288318366507797746701438444539951523209628938642326949024205460083910771853820450293399571103172962656456716547940675731720817119483486963202085814778541696774271856515738180763334341601528864974597948257119913797938855940443155231350653491523066689200517088651201603910064656965372754461179420978749629800288387778562239567279262679158942103764228392653334071156299293233673334013755585083259486563100824166119562325940290707894879224126371795133800845517475569448715906770648500197366616080696355475755734609911207738344873897737502027284808486850586930404873021651275030281112895598685350375740997632775607665623587675836103765158424047701803739452597026021460150741557695733063502173527731625979584044415012452629415260961589931778687135911800771376713030595988047534302845170720977984379371897764771696241503736676192890328384047158605127135750914770493325844986687411627613157480750643303755470978208129707990791110288966419123014140541855272948692236262968440407354597064071623760467676468529384498854921898410496338048359020990713890347923531631101429158623824362408677878793561985714075082086154749746203711501724264545409094650177753123620806485785716733212607441597575839830027372767259857997832923055099592076547104899183147786439413667720624418772262480065245076350467922225940342012265494368889894793282195819435087505927325403874562363328275770099019705581631575991336368405849393465029844861553504259284692062082785470772152156004254927486110649473027339877135949091012630214515254849212322133749450890767214531351442679080353898063997232315859653608081770352758959587461290154639115792626096016482403472668337421741549716931982306284501887222106081470562064626680832313902291562226952751365476499747685272662200919932525068134799557628093621895318101494727381727636349544332038578850444856990018881121017393964724602673347023517478187586657419425905522475821669839213666782728025893760203133650071350927762171173674152421911052985095813282455417078579671380518598324945785349799712627528177892929570540221772227018806201970760003551271356584608713778697994210304291970481688139231458384096651132124726872232568898600983876595376511374908087934884686415510420115142903035634794026532637457343946465096442984479339375981087505424159197494428297634208859290308125626925319539975436205086689293082552101204928267576419872177121161833088987354658623504785014250444632439888934201143684481609280389898975313124489769617904880151011545114713530231229133097447508632306052366746084007630820846808574447346260541250572022589886071465155298184613764449963855870892642231890885006322340158478797907535266763011852837726648514823545549175239082524490914674251542032203248005208263080498382493984502332247113890968872768060454533908912075906371473985550176805081840538274860211483195549703256487416804750805754173420373454081518528667156484487766156551850962846258762598536628928460018168256659664326364667804862962583820750024281935385700394627490073945053485569703369283817446271503818589065013555969375464595705811534284236674979808711644468821620618713388022219763070758868854408019800300210071686371740417384129161698314426243579105810568172129077221553885632173555678986934655503886514190072944126408399044022987270781117728821381894262422563325018786728373039584194135720018027531350130370896370441268080410828428120290564117098759771616891888900589614160951486427676286052067115916792272147972247799055971450137822481432362046319071316151051838505604730158243797607241765911856226173952713512729250481631146540173471288482963285346248717096723894354355868197261461749077937583890255500045262384551936776003790144624778326209288870495846079656861777301493409270896563089973259587272919828605742664074097814467929554454615517398489015204015279782882457654480524675586762854744114774209885484138844813314058170479776518838971602262228448081740698952175573148578070599379882056611869565217421359477702808844124256515771615339086116375008911013958829822565655549256978360338558000352014427726851342953079382866957310539381315314460479803427402168823181378435751812082217242330669851608209247851791031068236723608157879492918160472636717706600172048582904008649799480835189871374522456652806564723102454461849254690946891003348303476525389416823159276416502883364104458741614947792989838108948539944310132375421530597704772594762867595301175389126233543925704669208324315954308704137618026745487620890932580502219144432890875724424263817767712638104189798059389751380431219471191394059910629658081697264709923673765359151496731908728461617393697444666640774673735222228729034097828832955485456989185237879771443699370465069685673636099588462557492198845432509120744154699721910918405746046050954595483760952164998187882701124720774579548010015774846326295657807401593470827160032892590287903272630673276370328245932007199571156858523846676616997331066784672926176241717694400241388700123247531721481738025653922364529274657745139574891218048211701570415474744891464056510361626626825690012142725454026318671463227981386877662692920270343080162423851361139087599458590541023393783754380420136948039530241897084399720717796285932988622284886247213785090027763881424474758776768612251195895184863372852531313817849600089895781238306201724581810280301471722573487193588441799920844584254502384086344150440578167391219960523338481823517652253001045436421971425748145450494559200113951892084702169056163372047633709446550856542362094581584204283717052539271490695093395523653454952983753795126249661926269103114660904042808502929947772610570963699941448151016233479606863251022662304657844314106491633809702978739114469024251876721916694146027558586729214997475142386444061131510860048593348102857182714998156289231946106540760099683149752686779475743674502036942706075939223036321385181643368724239665553618107909812099316118856506076827719031487423624002780680445269530208318115797781740720344587636101451905940327213028233499024496004359733103353951612916216924098757209521115355990155546004552287303530148117675647754836349279162529099828418784415703330709880171709091182320984485745777717741393811717902746960005301842478504073270016488649391937389864224172031100443517846702952975285366300557604253546152196092287639927092411763064868383731906751593735069491861262700296519683457813457589514982914843536905019316746185238543512791280466330372451204745464924246695293395127805465284184423178832107086671904906957759371987273137594605013879150947839963905860673305056916566362761477613812110133500346661318481759598036985806036162178043567241767227391601434338030093286744611878844685130808765536094747221053867315006954963973439450510719445664453162904852059768420999353252704404715364836555425306800149585743584122902472474111819265300823093322272773795893406939386068895506444097474535383957574158470711642530874875006592012868598403404342303538278847922737343877344653861380457324686201530673451119044265165438972035426857357480200402677668288200508568748457896236274881706897509280882165406163915265462425150224938285819221642202938887502130038618749484019584706727001177314787771719323548768259868622216946083699280559170463450277426879938338045609391556941318001438199133729964980257854348888608736319232533728397338525684762467609264345106662547870628046659928287358048660253184753131728020674515798228725058011578175561921540411429396734004117479642408093716966092229213756360514554083693447032975651596101951927465691080377402461601703848151894575991454770901708701671726847948125189689826233601755865860043974304417888269761276230664378307037526478126583354810223871759329191338200463217063289296595647435062360378307648189915501776661278692721957912376705725540835435307483267169587364080438048071707285593438180122940452730343879936552321727637107824214845157233041730801509617089460798519681646001848520211491824369271403279043636435600606110058832035803120482094213857624726919716567282517734378143354927624165172195921666988945951160729197438905728057311039494984701234960782707314566613015838580616640378608987172609329196215462294735617719980470223436746902758597649132895216594257211047413940355332699028213733298824322640336827698195785176228196617988459956710830747567776842740840044094157625223866348524016002578713555616132605395137304840133290608964081522944779430888960063233245850199187228481944972360072917258673041775392426120054011087448196707134516758831398382381068924240639630911143673087480291335307503013990169714972712290273385782679181504268345475250948432535207039254799271905056174229397046794000091072096180712607319883378764468958486143858629875531760143423718814833143285624680688766948333584335635120286202804530072712522974953352721266811485288103869265927355965408450647670593083364794682060730190884483561557994692060748171365299627731174696773220765817685660009683234946595968747477750446777006873135137574987593977666832152180407687736282391317144082241287920213533251166899376051039865227851407901173525850043445786546812558680605848021922426211619480446378142663861339804873350547197807740090543633863433215171115684443652595054849296319106387054045166800654836876990854873359502220412508665295237440380750612398525578084596868330001540854334300492029386447371066137310830065027956846219841112401207577894393009629380327970375689682958487797599514022532660934580593462439901941528935169435425447930264469206785593051472750296727811767556358241205153116481095231972440079749292424058297993290254243587695680050317222952235712119084663019685991722210823080606288980886497254804798129312244115199382278163518483572250121585500334542541021296422610474770371183078609027443921761839007868292062708118355482198085047877945093248511788875756704987989855992580716437952154285529981250255825836881787797151449660048413114035315197536271494397313760499998503436487617529434273488699658702215511511358311704304710429067139130510908168494849341759694279618406803409919789016809401162053123578131533572752567692835403712240512915127362140314447443795336113837027644431915991206950675495647541698717869431708949087113813820206462268209671503778508957597042221938896383776919852860792950240105837655163881679260862747070557400064022574649287489176083994217201192462603907276815508371583154407410538930095814468936457879142786147912628491165025012943466965266733850057576521469138360320195415302248159539068187414402195002415235041409599806585643076813268509211366498950455478736436407673190622714661961162552033807989318044297583032806210182336276276840693718443957625761040202221538535204257105752278889296208101467993465799305805928953985644750991879874942240983791338440913639829041377273572054193246317959057331199633854769911026907992658359453355803120692689048633269701330238382223882569693335003183754299051096437700716346733195325331652720398363732835473599670963263869900260458368874589265796123787619752808369712008802005466139553327966262094242178715977777772263436993795902498825780143741476115024355783197423545488728954801638216922723296893362421701811215267767252775297850069385873785885571971619121143749389291016284681572329056659916812304395021553199882828056431383116590630279747579489667068783660652675876974227575094416808892468570925985089612226183992630778435990474488877131288485016609199194755792683688602441736395893736020105580557370973314076321763217590354176851439785677184083469666818738296493218957142679227721709249373565202060613274768177334430270865556933555490696488651518758028102158459827653655245505024539839367251675460193303419888413907911524090844040301320991583291928401631599755382385937386135034279671126593224569553700407237800641363133865761849647882570267367785118899145324920377561905318314075836657003585741542928071968934585074027680033497726715236766259054714495489144354009667167505041520683254359188045221399302789037796807147153797705629492649640918660777180913829837968844954188017615992312998090724369792977199732646946625238548935032125191937281871263964957539995630943492578506685221520853510060825323052677395098427618023201440169947338899793370703291561024047618281342138571692464003519081168216537740946840051235542291232078808083464093731672279464007359956268616480159219230955852536194966286829444895421529362651873413472980670462088501955893982610976778214159368229858531939933857750673483315435704443021800993346141943301981542877280044443544934764264134039974703380562219495077437502317506035669048268766247507713800525793386530238256606103705906255906692250619546978205203959744039225576245447338257405088206254750375131504094693497543674018847243551936480981096072991882448012770612345932568128152711567250946593203329506580905199637735600719207881219631653848405289457185460594619577328439686179303561365297018480779078890679842083872445500846697250989689750860015264820366489621332685942095906332035022986705767158054185485459369186218109934306582456752980978455169773653184342615307367696952484803694585313751877049102700434796179317961109161209795952333495884337007279846037379506680580446635532208656198280465818881794213561012811267040863014760035494386271116267859968859805771593298483614973133444963692413963883079841516838461060321819062477627489842703697256429144774647079279782409601471459077004006362060693872712237918853773406046048888697327030925733627384669874497686413312118513665096883726154480679058212062933051730503497870283012736780501964210064454945217431553997947406913275242388436780386689634517645727640196783116743596145291405222041736678884572428628600440268521894794885792384615596453758497701277184940406391995446038884229372941052057511634268321375636800622306848508182962997603633992639581080468683402350919985771661440256855185993590929583526459277976633697733770220150416107278619368551323216366127784134848403509140507683088275618073945517362282358443466996570762567904037329695441104427831478447903548514388175342294138395065035443578273801183812772057537856382259073350411298716994858563531989936799653374933151659080374530698235840375977547286804300963595652306187808899316328341021826323405281195899594441327054674370918924497821262745827921238258999499261563520834308185105940209414624472885994010297633589053803080743810548613443672267014371237041767202909101658675664523403987805901318782062937195660764909428652890168929294920985409280036074487059678104122298632916969534297429492966093455214201897764995226220004114975928382619759643467592342347167963591998294613456695911132705307545736390628900091559690547555219934082962328533278808860941513608471043272543627771040574712920428678534462964485801575078038384104304587192261323038529678613614241151365230529293688235164055600758718635086902455092833268822739879021912640693905536376295086531983244806464055440891138096044292364341380992319434159798014950806268453602770856583560862858785353623749719546837886989723501015996059781627612388032293321574018113804635448402790469221490191628921050152743796428596604347130794482259352138529373022833116713865108971425123593605481355225240844465760753411037727647597914189886397433516458738321906093371636774655206368170527337452340904111949145155398083613617683777054200063021926895417275761175246016234495064707450488694352430693577380343668510612981098801820402623979394463999755953220321697277559496975989415408889988242442390226817190617707835252738595156571079906876590414415743675367597116702858181663597786163652749473557910200673649814657886713229627556563111116093347014244329913944676483183566134904211009260263103439450653509640147241691280997312808865840722958617475678910582533791573501368104993142370483017902716034062619236431398596819163321684831527647299998929178885460081042644386060813718730122187958075790561510361707233391685207159325732636699031038998476022915589526223780059698226974506137080117742233752243756382205800202291960648411448077344184353774196373763098449359726038732491752217393749609897938058984229001201732653667034669874889107094540745302215437422660339854896836874316244482782040449545740278430010509197687956183062350505287467947512927502182678089653460222081376269908323599583750513892950454852064430790147809905203763148104437265200874107066810455877587330300055572452418325872383217339361598647481174900107745283051480901902428145251040971814150026848111145887683116401892355440623934218074307678580332020114789257711850098244715256131359282703956263846191013302971202221182234538818030137396057879907251613431158967786596433973492732571852433757827293723309593631841389367760259449009104220602816827819860559788617501684304588869121656586558577138688697955176980361664383556497676465301309028637674121878157979639592966367911005439383524985751023264908556605274165230478608290562554744824689741446764608606486511581322520517545539294446006124350638290816355258387577782947727456812241754975450043224366729418092593088750234988285726862390922188938753380244634007276843518183759749952600081932466394673165344230777079021009334501497966451088987167184251164670364129742633529998907908916631165390741544042899935088054850368910066436802584972482796839583667839268926034641564122921429712870100561361521059281755265555391068518924696872563137351051528800156878717220231352043602746792625112823474604761919930962066275373966720579976739177160615495215563950061756266304220118016120185234947194149638532547141970298873635988576722181632707806482883645987841780398358226969368596453594538246828441708776254788104769000194318733541721691019742218707627618379601009511208442600759053973549375203358529847263750239669587806830881721223687450401425171603506090406932925692067068796742514722096219625320020014730329423581604590922146833637290986723602291171200420597430593756967516461231254605249193950717509941284403072652350822920145856473693123560388186747308728115736483481629191260274741294826042785870994887003619463027376313128178301605834612580553339368802484043190793584124732725329874846538634945467734178466198672432011519510349106432034622240680629568053524822549100293740909454226526111344385948630372388465979207138424829447805633194906747875274787935952155085784578785289213301855804757418056569639371437458591135990361153861709445472162958803631509171096433053931110421290933694927714501332678161041168737184927400485406041112337882861296570123642392041291749632578161184206722459874197755247035326065034533876226627233566243415072339314493891984565595935096653724099680394460675837767621706186721904525260436859272026210751935814316240350092063884884592054515694205295883284909774316070652332714827231218720861204676415729370332407692250359115811938037361503000475137590300630166422253201667535150335163721741555274062144060212949880565730412857931600412351904322461912832712586164623989794161169972554134545700301791936290450466260489724592592022340863842995627885363639408373322519829063074467534883322118543262013165791346876326952210078975938115496365574773444955329104494707240507921894640084055226194727128559091987772233566042658506993895874873316314560826265069588335551838340437611614845799111441806445994087346592531243551967868556265928281027068203851882361084447746737239666807445794238146607986786521744911687326000723483043587172011307331662207660326528731182245818386196581704727538619156836254067114739141781957268087669356513298477995235248570238439859957706076381250854014993334972067167507573155237246176007677784469002456723607402676956626022497385738868660816325333654403233347415820256740826317394100644508117717845893373145903767160197169547816735256615870283893183693525562688292510108783116092709192180577516985270206879473683862612064777931064043927403538302279735236484994787295380476611436479585662341822151995460766500564715561982052620029198353011826507869461793590290298525407942541691585392832272147967153275355762879557761778493691351785331008583997887086499321526700861592437982126415464263808528271624049315587498398544187069366150328734343309919838546213212033552047489489569226378524182982920333487041815946971493861503440633803159600843527793466355364152044075622413691152884046011822972482834688896782090851011012862188277781705262489840263902833546700837968215323113842670127869001106857377207569401751698598691723860687877307812419110415938855707046531746834675647726044191822868435376027271064783568934115031749317354321161057673707913065478531239835043407483611220692688870278176289096894240554852816855407699041213999880316248734290162086929370281010324415776078940983714757507139641564141699240585334269886700559231240650376585991039385753320603166741753586668231624890515036902822785097980080747396994713899295142990149023296003125396465614634861633508935515325560673348872225869040069827614745980057959914429961808155574734981883222457230554230618823704965945581231652468791132938501873483927797278626687149825135482082003096441341225235197085114766098569871631683184282593754182873249706105624601988836008264461369774810277336263937379138808456115307302392027569711148586205488457030896488501186671512251918646338473190912186982277981169996263843081987875622681647246938328486919273206039236844650748932137834618297780029026778122275748028774396687134526868825524617483448117534752327129323211323078943316764619620114989918754627117464698326645070664726369094853861298381986579377048137865167635970461773060429726000131003866693856958460449048251185683456943106305155312393802924380794544814446195533013474881596958303134769846977729547473853701353444314597981673907968351411710918281259957679393047293754312665629799649886553819540019436434982405479903955928358016216915461467175923036613408452792893838599746823226317687232712664540129273436663844503298694333121429752945727135895685005426073805301927616441800391757446315719969789289202340548885741851380999287243742076557507255209547292536510166293505952612531753478263702064087126520641881191846798289109987796104621272533345048228357044642875215862233285548268634750472342290557267021424169676505249754511726656701578239602331122128427484306713174701217754577068903145135709912477101253507715358422828283562027351762423996262745640099085862150159518108552420869261653373297889018893978229632193724693556461877050240134711510653300935801316379170201557472935258709069173384404708906789754631413060856499631533386696551427679932284117194923396705053978180834304673386449936159887061890562514799650030593067820746541894528766116688439815496726415417865064369777124310656677258993658349276427753738821383094860488675358457292759337505116709036432097211958946803285969442013004187505035127126167327471748959153640887748762243185075309580832128907069564018373217001787006136275425421622856753160334832409107615316862432050341220654650852967836454377466746065981229857263000394897883631201351101869243335280369572044401663891562021633306813603202292011030656448688653493307343576313563431438496964525151345754096445427344880928480693603176333406565143933102073762500016699068502798780339096238453635710817840792584412491517283408951570092156529882752019352151816409913252710649299772730195130549656963860908453743970523650142685246946370702723577191991761764391370084035368595981533929379038981889909294159991541253155988787607100072875201644288351904980024283868705234909222925244622863285524822942595188610150070937235162551286234224103733550808918487705334454256596591068544646179666276870311939428733464919570379595196879291944903765464703088542257626792150365112248190070934934784538542151457529927930867134235981573307457430910006676193225753898908687892211138793765575550567389469355198398352886652535104372787476518041961211173814749551619015865763017093160895840088253078795400436882213279191161503842109003593887390347845114578103179480868972755880102025893895511096182676353762401314958091537927609492081592588572291031796675707067222966251256965123282641931582918452033464549958851059296287930731214825516768344611135804654205549629410510639901417905302345973006298353356300895307880034246051569644918380709421290168490180203034733462511253567350023672062006712109110900172300485228097152637859533002604425856554129618637963027659638236299199938948447827811147728650171435250602692818109886068116977552837217980984435744537516953028744956373396091113887399426676962316330398545266100922154226225573104869716859803061497888862858156410514405214799874415977966547873017415300314727257506291955124334643512479536602122304733960622985869925984539922718146453963962721234970410997361787066027134419347021402066718090583276224712296510241782138827327480211815009871789496537354271098703518083150191090754817085781423193638208470227699931997266621769611055466467158569679905079770013031344806299186277935784592772732745063542686373345667087541855486723351129778839747187730445631291828344255593356637523767468444778802467231031512591670547666930119780986668233544288894562318165177085483907034719935301544970619519256288908982386709810319724304071128957615266082941030653400933714483925473128793141700816072338006172407128605770908460498242023742012660018000452797034753570217360663974782180239731189863102800801522185071531994559505832781178649627640223361385879305287414145597367520042899197377871644798661899393517269752617554758554368636916933562022173943302300911061136936243188596383305393743369432627761319867214296861315449877645235824706146206136556249711607502739857326398030077387311603064042719727811387933457033642346810987103853333864871618585882981876495899604885728543860866918953779224656960204874117009727056297047128865965373257334967605477562620066697855779392102816549992524842041664449062821661063027322524845544650731014556888783400929272261410386437176359137559907709080507195200744719787645477327129023871274594029592514494199334576503799456651648318868359201645142743225012414870957826887549229660929650753353738572045158258404391845960033855189869834672077616682059767137026956644056313756488389096067597808655348171206037682594456788882713956999831614442022606081918491563008070193722780504282204383118615626742191523792661786833031834656577567403403663010208528640115601178900160479219881278174264375601268571325418458569020253269658163879222125762280869423629564242435821494174996709162141625848758187431654714116189015225655254912678438747485092368509778886421182628316991982338947288096686436910798619553228295152948513948910449887461511877912886191416052671885323444850390484484546336207472351188664080134866591798682653626607706370899287501444550252801599326893031049348070807650349346918547471245624255554240909551158376565904088232474911495861345255526466360315255099349149500317730177692838252442463064814495363167918047305307549987158255225960061467219500638979398871105774595984118904051610964597248955816320118921166001953753657613850704965953411005526429760177934815334190319702045309959802604522009391880470287600804182219158965020923294919678551109256502980221045309923878094971409355886901517992421375115904877253184755724321266619295875875654178965734829664178285991615000304998195113400883975526149650248304690132678271608035265581795829083679697538493756815787461812375302497699598349220862411484232713523228503925325468476000488711039337536010081391456564800301279787422165954799939106390372734824831073892922667993253337586173284172377389013051387890788238012989136843355367101565994741734977679071501990650361543389986943016944260255616338033588046807430077565767738679098753533979758199890558670732032814528749505523595805470417842548653726141216658859978342578256684510510153321432365010342778313251289852335857368694427849197266794943850957039123681877459584723978784597720621794513932652095057072564528107279043181182428117146135011116328752885936552784256017136067749016764763034575964700454685799735798731801542828704045536177485679390648977254012813564277951211131456952119983961921173554433761130757273035881436752676175839366670609401370251958474042888679641862221585344597046919153955571121827885921184025973220109640057706959379302149871245953553883113288653587688953317297712939628466984019972854011082263030207437663281792568963525955924463154669005799794368401264554652908029318201984611543648782099161092870051401980818918653334879782623258980815692603596408536210240530145919106892933754319588456684830541004899714624083640758859101283006242328541601547892081959292790607443466200952570219445486503130378296818905297834120795735288556960392595377873538645959371454688214748882143890398756243707481959036440333993062305803352497474539340545680751923681402742452361652275382911206820470291794655682191583478080982477064406372990411485167626014591354227244910623575809304698267554872009026290064703119581185512887621698199465512268921015014131727833402198739620709438032506729975149417578814293975717629882842880435546816850308465388514216152760789374239994337575838175205470821045217298100195048915313149092852276183123182359667849710439006434460115689842802861302757113040157320903602213991774448763280834781793979996066229293418789554113014717947386289542764874452012639148062828126987755418673323688508427554143878524934844513698005678753861150567559150563690500825417067478014729521624890270364243549475011471491705510126243721256997718753301251664718640267783522469164867721171322339695763038782258906015981744230704277323814529562137926997677159883401316592322886432296426855288497422350113440236435632903619637691194109383458365445476184281902493048204147875120218379088620988691807041335521968862673968404399200103523798658670450986974043670989239041560412507597586966944379544493278241127605582069277458753703658471163539779073478702961574700417438721057247580827418818178483720329898443230970854312451718793578593001195900890731620411867168398852488052244231916971218730394737579421686534974313958764787734316359522677907732560943053382212980882078299551002145374388281161399092741988920220637458105481732488372571587393631073582433190456806526886598980976509044081960266966489364792871637072822569157542300887909708689567416678750555563153586432800929901760970151495025897776457691129236026926185817335756122094165288048727525362345062431978545678558645220390913029373018118090806820696532531007855154286665248737934852218699420540948747343769815394604862074409424588629281983880603465242354564819808966468693936906936549299518101055159580119237277519114619892936942239416487290019283567420710702915494180974265845048651813834404896266263420166652706415127649161931128421518118243376567779039991328085943770415432943532345628180794048291733138910509908285631101249668206075695059824474182355380470752442480013567163820486353177510558298693527808008165986584775978298881481654636732785952188185694722354470981167917504941163661397664130079104018772595369308281337348322142274415572722541505534758222198690687407262163276516996455668148765513352384293507484536484247999025115969955761029532632041853058606636628051709401734179081176382973179947066645990230903465714895505016473777367072106167595030554468723012007228775998164669440228971910882855061666089236584090112003135805968147131125802489370856200189147621823909219965425564751283055427139294013759949289309821336922701079387639311362779628702077436646716499163363961047326189308711273495457985368106015189357790709630965155451967183962339287519327658871128985776003127546035394819926364579823838409614945085078061813390219081844952873398244759810346047564433446086512969959297635444521684900982113950175097493812094007542247151525441338117680538097695374099933102745874283718291946951126927691505196594435360942562113740722190113191477186417556557201236574765649083044205457219220181510803831422215849797695630443917863013831891950439499014861028549503540229042990612928135313550869701150785250292334873701781504047753338836342465880923098924054535746391531141047633174017571462468598477692823963587724938984805307938974989493147392392277594608025431007311880941099614412029291574775370068166775694659815589827275781475565829239333063832520459704667686017918608755103002369950511897127842223755019295006723869256966484175716552655478170884531744502514723195300787211716760881048008592438437689016928928324557241393024764946730999299645789576163830493391004022487411426849017845500165452100460839051906266235498340627310185536669663593116036498572183899384404954492715079043073116040817346143259898653692999605341761659134506199137456046087038757035331242329778855212501649980364409754202618807665502699802661282093621857425584635281552328067028733243167081721428383105424061451126951815866933145355771478831119575014234387196363894085937767483493103827679194750272495706856533545904889713162079783106795056690019756846918526250234133847988076735261458324748576718025293803619226934543717581115553570857971429071845531068757980284026869339006559318098355434414737644115110710580302218886125479947896046856281070211239442752863373814987668049343176249901119320715813755291033644744488632474042309084820916339433264520861777474827123689510627424265809876634157096941464523979756402553078237384729302224002773267103358040138838337518130438900553211096719604352452698601849590350979080959215631702864709543787543548608299706759159065995895243674267075387999396824991549359505846770087880007378153776636577076118238982994014966973156870570954309238274097882443068242944911720371034792092746036394849084828367271172357759487876071207220366176883495410313232500614293205349297140133678146712580094162185590778387312456266489795025414141928215732746098212347101908713473838717113340888652753060344700052419335937798126374828951343549684544575256468484930117200307566143591809984546966987712761065651214384028728632035533728493843953741824921397288947705906790403791332315600178036803709427351929562842567162405855091444638803823638572024036265016851282564689717693700525960237690461255463767838646863856792855923720976574563240309335250904278076708722037782373857875094312359550413966689642620610780439469325729552492043180179042949295862097868110307765889916442150903501046361819671710207716489425011467196829304814431467787840821479805024973249722456544465350155166948446605934110909488220139461036059776723054617205423918421703483351401299287258060891998728232318551504387142818513287457848428938527767724283071642387188692177918457530030745617690237242591963877516198617850974951567646527636596971266831351051085938917967542540168543652727206705897098064984868636787849961650307534167067917634161497653587869032897980848686366533270763600575188629343761948009920887168305520063017003604039578843845989590289003365974274147670384432123719095465707255957234959106609422865574123841576269169524486866782500112670722867840174162394658360523103633876640546492202673445351849862915679493234193195643017807498279961266234674474225662230440887381580023217003476315482827213492253543508838571890434788543926610126008447899773061178489583360990319038007703454869141957517061770282727525539772926184562775086184474792629289582885187412189832956926484322200319758018527068651551279984778010899631698865467401892297443517150116782187642385616802385229375698617427851198003631629971311178195566316612868103943768486786743815810733726023466586130964265443982206355770762225046053966852468234599734217828892649737693190150849220016130447382947579337523168627882697748908017777007106007771918969729634006016084935365789717892926557133877542960181350068010806628704069423697312934159343724437642854896611840731760624673542719552922037936198854309461899868890298115625241282280108502799891292245274128069319227927742662612309465832030085008984525945466414051503048716832374396742266367916646175839383935037868848088461270453495991197767259480821203623214347240900351046528289489871454541249474061028594988263320077841035921577785400819081197808845722598750267691175475313234422126393878934063250131831584965103072578754161294729762212401935987545300445509465029065821262180697421926006079091469328098007489664379091297265815582570500067174573748796768316111511560533610840359914651561726389493591671625794014328724674415012052378396179032753018054254766683668348205484118032921715604105668017193764039229728686793872251973669490358285479860474596925549989299978588531331353947436283061844501242493501814474582514714419149050927666258304915725286201755825896472174700490287840746928858478260359806022916468892041329171548046690000821271260249099482323088706249044838553427855785627561664958683976209613162236946133942621210582648528356302325633635895621396567796560341724851859071854465311239075885926763410365704660889973911121292222559874592517267749244960998098846282430161155106470382484151424530924231482105324471068969409647649472300567468049043413574351707438738167004489412164088724625680698167851013214720205687711341296864642482397006228765539582323338162474592320220030755905380657518388045261548552093927334712497825584844698025477189440859119865906214304080891246613263327485374683118420340720026739357132975091959368791120410169104994478082588980315879789970373851696740400715109605613189524662754440482083762571587281808216075136830498554638702828502589736439317295397786712799775317192916259974299637885426359801897709858401674248151745600844796431016720352020699546336034924393257363019620165194614047201057916267174595719735954790947449293385580850471082459369079352768142072243862460778663201027945564600028198737838293742077677819120419501315673070556562164436211044230866257236107294809375957375144784542422659432454364016111911849813316855028638838168260421924432571900834178483335286371526520702617768160060533324625348774646413649998532066072791516830191463515688412160931885723796321952363195096320407753122964233138437759219773253639006608584878980761059233608151290728380354304422547386891173564034350367802273183628363067398782124423711155181495107512815969801401137132352315953489197651615914257186292557829058417952773423016712859247392538621971054298827597245520327317379372291669277728028524134776310432226253560038925461274916711702359055940841010851549660345983633353885356777746984765612830101650971203616804702236784914129461477900876393106949314538689834929284388677675945500402751260612428115479134019958122082011071943569864442720176239226371485754575055114962610633791408623040138518941890819599346665907343448190152326482595977978249065572183571769863875935782968011361980136454282571329002002126568294051350942726741467024575393372106329205124696590613445265403782928183871525252723695365642604899914198006195945996458635104625192250928303419202559447371240396329680657042815502970956230760672244636824023436181322099611082808880886307592529003383766079437866225495449788065386307593180593585321912704506627257124318687079575150677742501023032292060600070226731947814520957904064798559190361372184332914974068157773662491304578411836873464647992270629974204068433654914491561052576909404009431434183587846767127218464862960826182259780099901093908831193847451379292741101755763836780781483727769429761051834390256478535459358267190120831071381462469018719693144294938859172418137492495099438307278670876462354606756483278781798832666107736366953760041353902225558766594475575643960130843403232622759871548157905241155221426749156494025178122996786251552352933386478790912013227590181815455416705024876450853880764189260487583280616660174301742715617263847210740914753004821645023780764283880739012164573295936408747168172858082876566853668038059644768137820729135579149822083183383216052577245205047442335906061340598288735043101236779075443499131283400831116485859517410552743994813946450593379347292778181019363266229958968960002354592822090323710431794401902998987758981439823063489433122412009643957869054628237265630233406763276812312895973886857680937063037207021090969713703614420026767138427492773024169025690352337527692264385657412961398560251181406991509472339958238331286228259873974435029338933850748657651458190697230946486597488538390285273095170719824149770219873165270268746704625244978197442868178328608022163080315766031120606493739521801669896255265641998688276457418957693028870438924918866754484576859322449135827276408270330344447420005533714609877024052873818219421362988012148172952968181722857701074066771515640700724939785436121126577734859573041475150312727860877052902215631891646848566965463444048035729077842193636079260677961326729999200392876053711848437896194446328039081217179434360908489017277804160937015281247450985813823286734562799964931497431887093294832817174238426913052421325155985185761158824671079235745638507556457847631238927100509384494687993104121230323457738053188577936608554738869658788537333208783781950878408604695671459908420964015849207121674176659623458664522249178442612867932383960654920711985347961353027500576526761035829612299470199961830666105231582252177278175437072009316326242099673861678458776997585629898604517067432412942484555122449207909057681286239912300370921293469912808426176559839385663571671019670732503100924153825041920229040684466277117774644220182309989314523287145797476151206196934363480518978036016941178085406793626709524841705385319258770269538798113740918042306273551581495271643717524334216342211536190239664291874926059747481660401467243215171628417559308632866808674320042967447643889885004230700844577764177944987615713235128650110331716084428094083629800365301820670232782490657679405248149493376579515095610436875912373896590398255807438325647939433586118444553704053101900717520438119662121219107819767049528533633406502954577515731541490512179070003319064884728022709236720357712151237034770547821884915849710277626588480828344395597835394478980632623673344979836063020491930404485385479428438076735093070655334524704205022427286676953683945478009167356142745682070406368484539175797319854637045118792022919173102865774127394728166211766062398598847185290563066314235062152825613518874797527691569931180188391070034419147221823788102261284275667305722137916777318684155284440724333227760297438021542633159757404506745397875044567055341657397798446031214847363109546629250437121763780253318971560562919973997261675028193236257748677874449172268229092597717210674133442804932718433891130210301224144310984003558862687223333062982241432019145984974852780156657495997538994033978970586690236796374574403628820303968691908719763045479106174591017990726384889706151858119235043011070708658764982342536342501793561721036019209314644359334594838365670819017243355979556119433314601792645044932781497783860533444817890963429738788608036357317087854087139229336112599020399354837258765689458421215678390099273460259487869136685170019396226839032365695716583151386625281326535375179904995634465339867308941858059806119568513272171968935600684930267531486087373351551471340863744305960008349482104316841206327581646001963882918894318769357305378349849983201761778616199528432263716636740601536004188913622399912263717274945358278726514549462802662633776747116633599742490852555575563037423614316375280042301476134727247092587132500998620061658021261241176655151396204800089231813986195474962100738870126858680681454634543131737842923001867516508303471894064596167272027802077998374011559590955897812238395794436455646030583886961749649652180457673184949037678431993159675312917826122172016905633472581673772071921467305968366776089250251137160764129920954377687297846335593801167470587655814579210636011485943020880013270302878909123319514270475969436032853869632727658085759293868421603626737019933708682450726910846791119231124664398450707916533766529250931027659545087473686251402336187436709613756193434287236281266085535366149566760834416604269214972872243767362032740439502736908374121051412958658863600311004303088825472464073795148114064600659087932288498602361859634551114938758175078316446070355618819133789902957739209036285830982983461560556484697542287297494628772150865707038093927176070580150611703388376882200234858490556934574249815520415077972177801789758088479777077404288683848038637612277986023484152571677471628408381944248322877104501055480919628639377540264848082100373260803846580027490051635807847539418195961875924101512457488164973886367512934118878641217222476163035031493592533623136819313383154571767202170221182136645150761321818109460219536501325881602516164698403832229299160062572117517064579266920180490609150121046898230181118056071082558561471566259624926705111642676982450935495608338784085531458794971642366600553714236153972534431021188721628691057685330539813011855071216078239619304197284192866464988120976922579593603552537465763089827406979231367507963767165138452519778028950137832480134264593221397771502023341190894992238095551017697113711595421549761445152644684305407933250288281626643030008009826172859219840226358476486567378229512962664729370653649760784703021569702941696352140627351909698685481708711533853816360481833850957157673716878238533319422281913267056151837357947095733077972322656329556404148676069247886027318476035049377219925625476316744129918103770514293849722312313050752971312530457339746892691425524031162199978334059536928945735829117477040479854052270008436969753406194238517272521886274394736080492383305167788106970766472086453788913015267511019568623179168747798908521968320039355530948718230573312982950287415538949644834436441466708883963098548047791123163133608781510735214774157519095542551878339366995851496293047441027759361091727342605934451787045124957399887546783714756721289159937535835116336256520701496963889715165397539142083155687141845219322711403536279313262615733106239035575877950704061606215637024348606153752565140393671247043522743535435155628554002305666615398190675962512794817850005874504750305329579711412402343702730057542220750378814452845640728194842407273674181904070077606386258313367081888319433107044245726038155462288409289200981450227822403069425932304667400972179728934530470820679789329201928410996695792128380087341752970582062616741444495320323753374008947631461692738838071025611912368678276582920810999882593755757266563845242790509201148522381970179335889190756609553905403744313755985782669123699426869621141788291312678377263796966512422018591693495141814547988562520887676976699628549177493616866125336267710513304262338669608869138518833793483151008180984877024495459353259413545092323164759284225158691768612388032511134698343421923987277193766719804761307860918019788421303550489286777131896776411331026607826581239799095684518301336376844561548244390654763926904284344323181566483854240636089886693113482194234115074620170149373199812007476830761898385603914080900449458259652653500143766867879056632583971258369699487412533597405346095477285832982439875887151386976067620545692816523727834026030191911031735757483297988256985023247431249120985180739461748847428073209780189858154292326037089289295499481086793644035837774955381309280159073928175316700856770690898172491874895449716938848113338307410784567040792329562425526709328634571390029458971437991287557679191325849305447883000961000051906334912618933657966399952271773092520149551362791371046794897281393998710321880639492030106418467391822439654183835689656956308514801300519141716625200856644703248471058662902649572548191114930311193722628341830556141893548076819851648351063731885594100555246550119713916670156594782175929449431122991735686072697912700080584740553218730672364575313048663490761427511694814174788086477605771114169731694367458989325177248778705261222248595747985146203430290337798714331605983394106551484378314706712645122293390719714591108403910916335439210899983330346248664169261720539021679591832421947137977836751719876786401440127231608536274420820411245491172098766958127996730987643720707282889843601330540555972448744602789911207274617440093707554075175368449116342700019707492245588003432962275968036478559546634063539041673670815809830348117919824466054290488167112092532792687632092798383168062970127499833610585336098140428349930714165843542369468826720873059135147544523857175749753384589514643558433345542382234990874748738589372848990978993298086225109268379172245171399061419515100301099122923631902588683854596030921622627567814465483108301568257305613414251536124802002885610720707674043052113772967128060254035534050883816997970992565123598555686134567821640838994686794454205765281496750936526140738342661547631631807053800151841580273733792387316287407706999983676741246928373849122331530986723705209175924805728459111351357646679646913148865273392824609255438031993366482125100935027780968812107172486266397286868839760262860248780754179276446034745639687569306466040737144842339225130330782374797993718148028043898232683650821818976625533330557304341626295837449212947404391851011406944842658749154292733390301630752918619426212260261252673714721433314987747414632988872171834063070039743874934511890965061834777318961553828937742070712471895892776425420374240977542377903920927027857742790225160310189056252136933336090187982093405742838079802039476289343792130891179604605851055793821285496077792839368960576758191522744714933951433849786351435827726846109119019099137758513768955039644109595218258849887572400127886368243088949521789036056248699339777904370642729729938658693267453234920837835573100935396612275854929493860004406336413838423934053301327320374905708314673151942523079546738484326304142655727798265735110007772877213910129031770462413949924982535929406617867336847434769378870750958378841094941862833364171903622382947735803276800821871244435126767818632314154018646996827724351238074354643118529395134318724511666942682751483815935250953729418463335800274889802755196203276306120006645494176728199207457043258328860804023431715830197956207178835346247905591860952560752021624483027903466246742362936795113077819290479204989638014989175335771008227954052315298016184975506463555369812779257874429510125058771329525867743262257094918888061647214518694806349840283198557189491045181356776105191873777777007900464084338478813498775124170177775550744759504506521897067729585736784011914890725400842880290068481989083097411175658387435845959024954365475226648190787431008679444697269390958542960576061337296059822219863399896309001174378994490002313839043955710535949006633927825505530104315140548541270362910262600561140580002782680417828089777028442265488459762932322082977212288244433254846143744551679246374496671494897313450803826687639581549612982690925119993747029005485046475408407185190905958661947055090301896701641526859844835009219548620504581435500426251860768746339838653208468013878181905433121040417263959273509087396763959447087991878473147199107941943929482394737291581030866608832306969926125128710689698989796171161929301592018999658365492462354660308853176692500156545204842393235917067984709271659388038112434245559288510127067333135893513469746951435336554986155747792233812733353002905896932201480830343710304735178644910276382396403607843328677792822807717103948995908401773945508936635425646355890251066361831100593369289565801857812684548229277123079670915260187897531174664506234532404672721157565929493452319648073696993110903936496204424730651323177930319063068859563596100284154060447741560249457339438153743288532587967314058131357858598089425153797744880739328686856989372290922035130304884715544008263584069054643306466199472331162132227013201758005119684624489038474416521087476500031604921277521206044471112657682100837446640654236679558337926578565139679736398576262125459220196758020919989550355614804181998899350281800719220362886841110254586219670020178031385260836338570653317836722793546326692523479739493849209231601920723176333802298172286173909621638085188279590495269311612126591613633471140566366226161637554351103395331386814203409956864829151991106386120845862470569602183098472265256296473516049639270511589445554643121009465721015699414172677876209695342363569052748709892797750243581545605355937900133729897490489352061950251873274153977114629025258522896577146694006360004682775415931982512905401850311038757951187869381162616887655779317659495365777853568770453752405585592230408502623762510960517731077154517659595745587515676040357640672338157094141452480357401442564153448159043081577157985188630993459728022160069192470004204654323480853668876822654213111204247896557585302287386363223731094937642467645089240998290635818587437965825236511392748131233892710311895880660218632571341377346123417000096872262747914166812240720449983865569578060285926393704718927167827571538036392409589398960410969487612755480129544276397612359373542777178478598352079724437748747877336777158432711231737910249746767725469512394342131804176697291509872498638850939049811033640099415431938161421883389266905959873649140083278113871594571404871190412915611929701280728913607748488726095869302429208524837124920746129856901974019520674611326558038239618970443304220152182624999124656144050157783045288063429920409662526107702117185511515392509806816121946256564129038673265906138046172024488345179690375428365963722154814351533524218007830126607200726899375236215168555929379480028536527325496044043752254882779039029828960385171631508052158659182493913597554702924415209559244560780321453271403794905295922990678211256108721982394464249796407296425431949957065781493210786559121929029931161745359333921765473857043034291965303519682106356514594204917557094804062221741212186096558082651506355412732043455159392416062959703928239524471534568188700531760651523581123898416110304828674464616766331929968309392498657003832457699616413606346684860669596687788906533540425837643333156448475674438737350449565229620472164506520005405079847176794002651103281547874264849166945358626567679128222602741614019359137282264664598500479839050156234973810301140465510472144266340996717790406919072302504582982433619224444212173307160956466082516047898365315147499255043586975554008480144398042923921814454026065369433290545282969434257323163552815892444992956056240388431431548540503287559058759474057279745409189456975482028148846729220924479425768630636715966765149038027655358735814189554128998855696372894273002853735368111120362292545506113755770712951986042107745803510361445165746180472293491511684140192161884321708460373483599280903469855680435919861968992125487154469945624666030769249042233901310449207196753169958971541469906770843142270336684216256685996557681832877083432850460743511925919992818530763103734951981221128351982437498005154874535985557169037822807721493987414149122794793993517305524147511036232036806186951484510923383370660112094002442116620671147350783615999850671881777075436928018118295693477156172285961113657049655496315189556909833893448838697108853105402316263605588869974855905779304512132166506157068012444149328034674882123009267203980848088387474365038019744192832499109351719971922607415850144664271710494129449416048428973950085670161582871689423632114283989248918347831510555284709812463046419034449941201908124569981556675359294587018012866370785026585393915448067513424612997762888352276489017490481321597519346360620080764031668180565369777439087381611816974214850947631295790564881354457054830345985985587565037391617129029890289520513814333144312318104053344682040241275154358533816786927007444291450157145077014161354578570503753105654100418133518003750223404256347758795384272695780626924564477583793068246108035367632745824867127966933871832082300425605780993516706622826566477231831301055558758077279073922538247314631113701603050123908343191749925800734363774784158780239311162342870240284713587023373962946583150512221005072700205228626462094027760541884201076188288799388000318425010483241899555315125983602713900517406431810235016623922523074745357753644764785424005306399658508229303063961384707234987827995790672147969076227714841641204135264263646040711276378781042157112080224051888105957332498912751194126365286510348564958302741758105228929985547013704457195529940143012238688718343577843390272318060740809773856089986270970110750515539781362747262752867094685400904691366805569088673180320488371568141070865522123856706821753956476569073323179426242414714913445101498300860243455887224219672199106512354038169321057975564695240817703339317339553070597097377204392838874963012706127309160121848570848050635386928595908258255406372444607028821545525645408538830799619325018150602335050909495843043270932976284375054836655368912600011366842566655427786171948373768696569156622942985286707526126775472314447623463611977962185510576029640481962855585223687027122555742338439978533807536018009314007455849973541437333840003268494676448386900517587529119482941687730691765411831340894388894458952527689449212673936792989326682162843089075642494777931734060026428812227491988713756533335815412183458797931850549328375346115557161045539567667293096177626862857346736855674663716641998138210706370232627454732130926846444619509670690283786558545776656271430134672648457594323196583688230454927662910119325418758429883813891098491700647604737370771439917812967587312250689961510307889347435377067147691534821482122659968397997770113594266500078080111501928452923108601351705087814362752537112431733719029040128391742607607694972392806452967515306857508074038038632561192834999256257468096212641389740467654980713550151493989822477503423246466843985373764665325774523844728625118153573634492298676975340074096984701518519749468887069131558635786523636716697907636437667697972101385460930392397810183740772285755654709721468284266693819387765521645143230285494587969935432862560573508387255164325394250975958218650932573961128608545916844370953710939300765486429902077647031604134345256342576300371631647908889180770829449609854361662083651371837611389211752519057031089047636855331622994555706052234138045873783448148824585886868830406744496481781481441762325378546350973060879456414399695785791825887024960968773099603437572975454167407531834216328398406190494280622438268289005406603848884456161284402198064992565234292361480567645010492128327116001539212777859985258431743338330761004050981034987408041008853193211554541311832243489043159656410136454454235573642466748792608799209389982567374883222704634156366731289060917139947711800724528113419575705669407271436477041072108567534734663318845210785104135040315404676368001856977183885240900458474351783002670060029889474705177210305440528955418223804124248149712537722035879588627466491487428736290039338325937613928678492490830538304154412232881310187057987992626778667355418920383267400672201044269798938697135977674597814183668740201751464234895997961793228567686823041181006386260215443154712653450837292853484704748782708606773778303568655597695177643710806267355901318878248489500910113889282641127270954184623163971322278419377347517404159198329873164913077452737485519988816345559432005880801938037215791699199950319315406245473763739537127273048828900347341546993517909939599637240706005044133981394090146050117565783499140598400862341149314775339139191773280887334423223225202264806153029978533811752404641778114956294047684375719517599445227809814194688274927574697280395922480994538505171625651040827159080537570184413552254457537302708356592931749470653734771088121896573088294858295039416052547399153819559833406411002857712751209693476119292407042769087465632284932926523144696950772102057877091099847308771204830769290269261550440494079420885870464131413411907015855540517203871390481829030323085557858560394658009305010667651999133741507587335990072096036693886986193951658625843850002422686025906599584040920114798563884686858006087136866825588354614296720380044219129809979386474166045687398334950031329596646318136216837083630273046905791887769965262200601468755311389689182799553109221990072126723744226976747408150644236146931258098346530349558934013214248476606612529630908490634752002021310202347107796445773569402308683097944534447613081373556850684249028925364963262598985461814768986146716130264066517992497416882881244050576540909221389758202924350351309590435036399254052471771076262210232452026333188096958489796529670528077793316605966295118514452258755157225053363989296528216089367580123985382936047092382829948341644517502118773693322645040597615561932099314419448834308344144668006486283560620591520269075740436660707430084364144610247188696983204852608009723380292767385046677214944754664574680954412227660860273182641602849008446676771077140489320744474779052584425718324204983215285558481254696563558150182285046337002308580945915952051785107504707647712374994496481097523663871337958299843383584616422843873204827009312014422758154509529593778148662949758694230328148516659794537922207276548597284540415930815971507053088626003118869977080227269877264168219459492985985044134310935765328403112119228743129030712715211936159325892169384864857852917865033002381578190117038455839185681820226161595061902509150327489004937072253844717332781800532907224173124277664011742590887733573502476996719230389472334647366907849689363955352378254838859927627347052079210180238130687931232251828731043653945840431452798125948745938275573054536277767214971627885323425234938273040522930996978346277433381858002499376071603189509491593565486912024895714398410691736884102124700459086916804391149819705681248254132664417950159341194997942641687538467045311032126291351826719908585426616637412261203349229196939853283107802677742624303109626833457119784255785883680368830202939719649024313113464204001207911362527432139445003032946503795082062759067299184272560482678294383326594899117022892197207192735939228041713473843396566825508208499278665302844484042412057431084912145634479905191348819921397807463525004945117307751459003442325137496606911695327506836357875682593915735107967262419070343782483276088048795965637621454187303818273495642985472816181789294683095576206466313534070622111274061663184977788985142598270067935195694392378128106022076699814346262308637987189971266540655227747676510471526263125743653404448771511162251555543877320239254596042048761702334417010286420351958600631044934159222010988719120269749192588274407390432770360375490588985224122589797237952425071135175836246577772007507353318694534716835941714268384616920378893551658877191714418090566631228639117603271740279299467845086299904990798975142011617860946100867193022588137504767077177874950084755488735609964662167425397547308496733040951237871784963493982637221965935826359099340655897588963215802114212130030286619542153500384649137753278561446843066115162052457968114466816230975371829649706143172105158100674591507043115424908317543207002108695952715644936872821756849510090189054606922182118419240163478072797847946475361374745364431088286481879689224579325586159987536906091544828887260379588446560730621474443218776277941150398102411861090924900203763130579228380063764801816205127143202331778058369304438407208193179523892667490394113684716302643186068396153604577686918727956929613176723131882247948042952990238276451927851085320875556991830595790373972696263230656603918404152348402736022161325970979734066524934890468632158877727779814047058299581846063921919282377450820380212081668614060097216018204481822380925146154519424090299774301517880980174563170469366782108470297408636777376741092941681385826581624371223344414517339213449501486889481129800773669072218511588155689916262258344266108171224442376515243721848619852845037664530330790289903071491464790937234731196330248401063134330122542825137751281664208638483656779231592588336504648571120221698973876607270006508915361386480449835145127851731125001086760157657074018991973489296426982739837762834434579342034735591602555421968341473524466263615615525415741699359113043316631811432143957631364668426863758031963841959408274370183391102367843671892286499322067422461319525383538012009950220994878881742023060406550081760636980465991992664076428805812164410148865957309457073470349438611576488542458983865617019427532021470007283998976111848467475364860164419775163012625304902586297783545216499791365454598184322281960916913500456844680603362088521544114280454222836304692074393087427798343263462014390051248104207470732626409037886719210878389989631233483521272625301707977749221119999153393760385658606039448841437464207598744130542506766347856463903017421881144955372599360370448372987555054989538646341036525159953002447296453816259252277258968011896812933222009990493796159838950379269563306786637634794523827171751283618378827597774009601344385579662422213074250056925397076902863247742926510726697230769434879029620628704305650897206720961492623514067367432388893886399631066762113482457725208399833431194968335266296849419717430519977894978100413927122406058836706728286839225761937013510496528126106503159146005553337820304462736402097013674994043013111957108841645375509805317886350098760339521789849634858729530889525298703624292703908635853576633788468606774711891073415197444504626098156866370127570446050267705676795205424748916474004733297461757254541192080015485971542760654823094718393275851836553045793561928618421649862137108182047457955845150266421415886868704674874025444872385272945332581620064295228946024007523795231090351766591057388983839831578259503538939597758306626133958144917014719183651138849111263936398426970843729000004302436903272512686869791978233097772867747119350562393956661250974229942559973101457141682472585628431765823096001061979664339209264194287915446853585414993297420649218314507866457366696876069702283452162456351568893707196436800336758592587760736051723556926519145818404844678495343609481911244180533464413129833370082230670683331114689209855097618189765332377992987244814994928605120135367673302951714488333893300334546159677629318365942715578474913919305339114403869850111682820061360018405690319733749368317634563297041372242092847721759305773260827108066722576127671147619752724357373976776616097906983817444277604854050646123662551718716029974768190870366564715001876513315669651451626755040353080904984843475064122587484216012014868132609605980670507399011474946145350150299275607400051570728414318395737598926303493264129851163513297530532796627742831310401208479509516482320834013638724663172667980192681921879370366500709810058955294727368437326618239836183093180629265846909558008224293104479309570331799438696553745362875495447074578964323188523539242022620764180318312719906535734439027987330673707423386387922131091523745437526084952901002688172925963812300362871214120897381317358480751726706064706097735279171088519328671802863481629935675544258418778698019314346243187594995711467879212593513194218927723265814349851252146731415356344851316848320673380934185231322248592271699926731868546673483369015930260903240151773188906244300501988781436838177587077936725274226231976373701204650927521900599721387609628481464655707669284891162309174919419243277807959211950979886677416979664889199787533216687191784270114123162266471087372776206964285861251248279879838546556795085242993794843931156217893137670469842731993472308345351901589278651395311283331415855353148271324696001906143929026534690331322819620849968836026849846049713510564513284093206963890884892985544204090993039778931697132606794641944362269867056678359209815525642324736556944327957413246317413320831021905152839342551550567552658121303434393197945265038216316792704396006418480692860124563596552670626192065861062258801007334928540359542479575051215089111320115549045827501122698202873574585812490792062899965909391358562485226083295014023309954522700811462668159037116926941248635282137256690223941489671597146935203834377553096729461055934397087816728839166295514802053671468270304176614414863432339973587718312646816088250408857101313459768218352097041558949940389216788752984442068824832850678955764349598655537112995381953143036568413301264543899142141297292586417466272704857495590860282605901984880635514471484936786374869186435008736006611356808989603764905957490067091650761227202001072295723772173013958349733337474875738081617098730637476421340480380727414700498914903450520670874446343930491285367598905770401467677738830214633972038306200053815249008369114669593456393412854739235433763634245115811314795077792814891938183486729642508577414437366249962204440982490659050353999652926703173031878177397088682729273983928081658677091923536324272185059858534218548990532085191474878984594751138016856863773693014134378568540792097148585848837142762478784583576778574186851756644898320016481927653704315074971140330640979743570705974827444746561648762408317740103623175851549620964038541321781097238134075663204429032329810187015421720871989747813037996632601174556540172563750445053890187190520199073634235953513426955807688353089118939740631734598711212323451583899234082974029415394241853643732256058585015717868211458464230528869869135457676995742552374734795046257365435627244646146426859012677520466197927210047442940416174548724363652333598521991948279208475083001405356796179154953047230269582676157969372969927607343289373655476738868840437399255157944929384109238634267206594734452063835565407146898530982304886507213444377679902141552745167609792032363067967168781996474128900378802779032089866380352253984375687217330817049956357680925138366584984009955558976708995422878662194462271858059146431711261807976934280388171778570449328956792321760641451399585028853963072719207521298536247216631827652942121404243605453130685256522970954929667001407483990090604636349933489984037866619943422044815195924690105475117860913250463821949744896372089293637591063923592503801023001312587456801207772825699325258941292657851562349944543451057304705701289314092107284992493655271935000910759663683160373294364323450665321562061040648956718460186966812830276269541673397729557882260357733277868594956241983750173808007139737701945765990425782094841563950263789414559751054774584148267866510991894590540792968100889541999862137979105776819218070901892668159869673309689552468674960469234640645912071092479980302787449478703092432852333591575529791762026452544925071604653193720333209485676658954845738858635098652948954120583436549589093294449010713342137337655388816077090023994760362457600150808729468505806159155113406570559514624805023206914171301523710389162078769958065551013896639194315533032521046755482659002941308512253303357699916076252394683503658871427589030218960441211290614654919512348619291461624637095493743828259262397178409558923983328995086500491584061741203680687987743568172662064560356897000025766842191776220297951459293333109000642300037079337163792170209043130876321452111024285481788185776857298843477867842559951662236607532202904509710129466972184627890733194832188773250787382065607618082707258211816395675648491237918938637378776839809246470993613307339914146465021232749751413877125804569006260400253163674745917739711173497262041644099100368415980488782588932943834376559901502858269782722380153846375638771551848187387688680554462496968671820175657304059419333469176778055281455476016690965053237135506407930437046360701205767758789156371370920720546046584660915694043088294388979392502852790491973570959780221567634694296103255600331738568699398944276912229439474246484500816670998677801227348564486397605722041594086814883839700061016389388927323782513362495820030291643220598536558401231737920194689445726815569566038598651467089313691218189880973880752847982831280190644155630973645464973874180862253443824520759845338715616550305889377333103435157005117347402092682779593891554527491490021092453373655650432848086336027951192676085552202275686334276380020596826879462584068810432357584410549898808553632021396851401408647609147958922498358300078741364950194847375610690736339509743436047289732491585646445648604290526275709464008176996847126636872544060462108569685807009186731862245589816240124340558909354432867635776551145653371970342062867392023420302221140632988751694690754947917540263095954460660411243012987546958958646481848171949115329766518543784215490618705410682491964639255336904203915558610845493783185497173414042489301873686295638179147191418241818292089348337763642128588765273803212152259088075311948321377548649712506442383781457014605813403719425039137724962236121040941795134609408167419096107820192727737248725504471706331473494553572634118803417408954503825554779101901569636983133556285093647092705614642324000179602358198319676579242213955344315238827161062552774956036113629651179733576948208248966307932898029233449313555782454381987779645548703980436586176351458682898779450704537009945471811523402215432511207409770490319265904941573066516420140791296707321902921247103910114760164142289921142446048157532998818603095589389890336222523759471196713417865108499769727741113067103814895153206113939070323902372183028104539173054782262127008242599847989285274741841983908042752268232168773299364353822706410446321064523514025075905515698953812677815458999140408400254060237682464446950670765500237658650599368192879036078888614804074263756127726019796838064789685951935741567044612023335576805672060871279295469490592726013394285804234382232511921514827157707573987599158922757307796102490709047789274230063440356237229978630230708309080263589250850442671846252657330255365226214968676269252830250374864040395286899947409839781189830068328365421178613991387325187742351344758636376165704994518209018191922665853364030430391791986504487219089335109682484556412342803951583082145723606702248115047322581573474317134610871717693889398089787205566802362239885689690506480528974531927107691681098288898530771386316183125294053920086569515593597228268466251975463127671444746582970183346303490331965698196396612645882660177740375084600534156635698923680403146816662439904819463457274116831594676629624201342717145753124587413467434926712363026798329451532176083113609011868839570063880527385106989939514288177721018908522743138003344381487751566545203082204392899455010169929731814154715760157046621767371061522255975858744136802807799923007542586313276141283637653655713297946360699363129818107902283047385984728726060187493209487570809357923361645430639611554629005279532621229990196561026008000729831576167812434663298638099864177595247070784264066301896055641413701820559809160818002230762490219924476587347512154982805628673111795064152777377869696866194311775784048988350820494882871614781868196517799416553777449036542151732589397304990377428172834480208343164350631247849665826705497851458383270148466800237335568325964679732178278473132878678498222086100649365818178396035668633158910183724026722226945278997610743222162743906410833259487110497178561232631635015756657892900957573627633007382876235990693624049922074194141678504470746898102723596242631300961522343163414167260136950019752105432282028349506903221674830562339341059568265649729478274256905135455679415900522729941872992334402008067049718618869635319028657179582714983300488788184448258224062088863953838964945866705681326721173451021888989967531354026173809253581785463974117914108292301014392707342470403077752583931434484937887022595156413547645568201630651621755536184238818357761641238063646702268099324467362993334857614334808713213769528557058445116940912074168492201668196599199737633091573812169094385062221334414226039590456461030993059395111780587779862873473774006811571625385470798074668544479374574044518029147194363000818047849209746264719138072031762149362802458038912418747246441673830393969693141482512156849438133536987546980819913626037049040373730440596834712495112287019102921826596550641641935121054632029492693528310996503990385272282726793905922150806519061840795185996628611524164559003108351596926585467109341646162448357313383145190677050800291431428851415295685498524091178971040094237463001556361769003822485112958770608062225979635177296273857429731342491422741858759491145667127642791182161145760148624339830429715001694492736561107054344550901725408856266598152250712472916285230735151104737455257540670691929691311120873430445600278031335250572700667341434555016612805476271008672397473055581498032003678422900124348007784710521860876232846747328374861346680109381610142288339069219922127916957101405161867807868611087347438843001560990719407833436553484377263175419127212753942926937169553447776304554559003460795024219797096253856858508614097250629926766437677415756431607358965872607230604420850597531422520407273725841591778935961797002762870633202550258154120506555843764587276909999534053948513374454766768101993430753631033131819440852411404258290918508962477292566038304614405376161620048968457466995185221150905803398121828882365703873031626048373566814242662549278153885446872127824324083247469707788025331032088791127256019684525308528417014096590925113221599823117896410956190348104308288731809394782056110318239744365619818095919217284007454456119957501393004966773661769539150416971391688914465657033022335797179594184363484304898536910606729242268516419722171010876566944914618883903661147893336223804493909828669888579137610231614193681727109905906948342586070905453966329748008624673921905786679752819934058322233683207176118120275762835257683700472323036582543375464162478719557097050227415434292104307080824419192298772518448661150583254229402529660532675642570743685790436147784584942180711945791211999291711253696702624034906142825889834880126528057510685580320056875330310953470506715577530914682819174507800048390027455427056870393951346575191585636141009840629840688377275113315142023805870439973177314066652580415912327001610401012536075048585064609781107820769120491699471459171542109642876344245883038855078453671920448586095064495111270111668032052116821281983096856137281616955820942362192494823064103943694494132692164641015482271293447593849243303861313412828494931656716289231501376261480498182936456253074770399850478327045491447262537937888973764820319380304344064534332954655229462982838072247936408390998535953087056126277278241367291186203400073517805762719126427381012061560991746912086478213697594316271684006620579382601008317247210738719414887585281198332548195451409991489068925754510006524915646438987473358168725253302121038674813947612291952612202625098829950211356022264388733752703045474612047254408086248473318936862457614297828630968232816538842957211108411905789430514239505612233224356811282590821075967007228821454036965668136379973027037508426427846931205287470695550373574624860101243185207094644129643343727775659775734698718427245396607505087903896860091720623197271496690561668160995874059857985649274035791141626657388931903890414650180306946152423089936433970919266580759382852790725301846696581274924636349344376330798877283304262039894816378801201387344826447393020407380612673634249896305010643050390815618554496046063929868749925878954571085126600450332354589039504271038089379847252805076984695074071896680739371708285492167987326834938806297663469490449278445863163426244601131828333794149188520587229065999859397684737421561698816237172443544376347739876629342779824263473280911362830089970051619914882859105930328635583471067239822348090295508318568181775317683180190782527230820021318126269678909863144684257642486377082982145326812796731190119128092697645009734392760881989951597067798300610056498101372517227352430847411934574128520925723283561883903359684438745751081631944291794430503600286265751429591963189674177580384698766645743666303949730445613513411626099539304606437651774375938516144648146594623406107193361071867239703502819727549071363960095851602101979645412706658153697921597034081628673479120461207495489091355220180686157416609808628874966329493946665098390505535770536305178411607359671644614538497928508454694800912005874872424437728362896904884273314793658141058369832731791142416455558677777654899040917283989775828465321047388487076719506283392952766540539439118900461404170436221013201373085117334700774186761301966501385694013480951634346889020297817539536355338779125003063501221366892028040913286922511738735685973653018996675634284212683265499446593714394693959180487847061399419444146727035728576521586283616591209927321609821947249586360230315733588867141026846022598420034391892976401537737539717391260685750246055780646896378153329856152983919312259452891370311691543414289238067437721871005687797075128621695708322887777693095498135425286923140600255102788395790062540288547962891996705525902904835191048186442275294426715722129442769806833571031977482516065987986702295096453382352298741158999557748580537441956617365213249067325031956657812578690506810577149901204818610574087634313481951573651372303203474654891869755085724182666036629560691451959297455868847018027832907390964198452167728850697284304498465107220901501469465905005855957053746189043159788485108397582991242659301572988512279637132835577558806612040357747585080342283604207315069446848831082274627992697699586722003706965749625194229796743008447341314493105543173848899209689931829843418781441967385265126596107223381502460257795439067137838737791379171936782336102731522818180429462757456188136574371571465818175677961890636915070338760399711588826188342700343103744546276529540104387207997530129225761984656505344714272200731002070567894447863509797669566885219775594412897485138016845231983194990367144787167046284589808406868894522542642990465517292018525130806749704281967679588171314730493790983901649336028185148098641669477146728059956805973486418196353886634191471618229880926551221157561274785201389108753951084142084109187913480696933593587423978769964516814262147977362109463335567074491250845871425120503312231147296788139371153104030938454278979420516110281818767634206178592615825231278830404925657195376924136508656568258228743934051446015929508872557422136973647209157116851342511850180547283946938939298461894599601828239638002598411051802248053530968805682063274200962120954132851392266099078237782214260663530012706447536270147757168381870827321779607569038298466753959226669813535755111039825834039428341266364524790111302840521966919743257621132706832462313675746657903826346734448723640674909270372029195702111553474407022516600470853169837219390623172459223287176036933601888047766434040563383359378568101887771762388448803832983859518644048254114121998826150022916445133793038161827299309996935292458266871391696169605315729698392416769114787893199533447729377317642456547551879657552000240695230010555404733217792475917323649551828821320237056487495951775604389193966973131070735911959791226052855614094436743851671361572115346403007497066068408372802049636319422596067948116423792779841436108113320612878627359390409666278339000365044055130057603248801908642328882780036038067422417278367757220919050836991486244085596921261525319908120530038082682544242010129468799857519322947297624614504465746396140218167128723558383990820386629036121398949253095551271469309169633099097909802024645315161019845231668946969804809534968043116353599948980150015250709228182725090506200413527922882133718328947294264728900992016097408605292003005763736217426023056529861947328299159567134425848256574569804375772257845807378373607572027439411711194458825371075821234310968097034048949936161347271667783422888264312320532227178693512441916875778544782989384796870594826407470453435848842819766218270845957954293591190145362248031273490946333664308442731166752098521965522644534840721786151004555767975015769897649289321434876139945066672055608971583858731393055551897713463071045069014459587767790448464787278193546986180687882619302731884014486139659327253266309914592281994647652314472258202448162522558299987911855710112062867823279544781379546785481090099194235186028933547390883687569368452267949636840355019870811763427952512135092617872886438683216523192101692342368190020364652908776457203188136209429894374293563937394953860603731443819120078875839463342193873290952473021511690489216621230747316024194716055493229494313382649869957848416217603910771888995187423675846768740052037544406454700352696065944518977148154674559567169802946612220170648331568027775924410391135789018191729285374489241878443173751151007736681049319107219459927712146423896644732771178757721458847862810353491353035635852951151192356082324248539147432765440810833354043666387088977558512665138476006287108845345859539040361084084405860091562386011551899025308548629324254806497613754087611144209701724111414748387478251463304693629897058389372724503713118974339843158934221353412284126763526524783696135941462369002565871859918173707569068612785505518381917051869859952670953438633571978075254402459349272729220780973327301327947750889698057324505317245359848396873365021431605113318336098624284728713999672857172575405135544778745725196534488186132647372145154086811156619796128566762627703027222319324119283691807115776495488695197443505697823868574331726982362680038188504330415838137989556646215509185803682646066191651602172758268634059270475771785504939059868305090345524143254776919987915385831777605493530555915797406179210554802407996293673659798239428359208429829695730109906892491536068281923636536062795255027300580146572615056095152699319499123969345851302355129668848645999527627871566560542374777664169823432755568943218009425217330518873398998261700150077832279445145107949106122034399692668831068980893258525876687983135585170995400792373807831928075583969923282578199909696387202997942466927372872341005199478888060456407093172593555939308274302895192206094175968199391612408880256986769231111002352838372876784930960900645832495390326536207967480890175672309206896693165408377555721013796367806431594022664031639679064862726749141815062795220961608552235815270954586119591257771078963926271731897482764747343603943357871506344525480848155963538710850718578665671787117009647180038403489124335313067448506433746893186979482992896492948707065816119489804634118347036241397304271316288404378976733368681419727503011750899044313530030759812175653081590805438096610094572073842247087315408962316598962510622263860170340996915332779646287049204410625008129748365985045846291922697483890741976429005068951822630407290737850174353500457384859777015137920110351513181635109060119440111307989021591840266999791072776586643297617370700823459436028006496460821957335702702248115612796353687899706609934420312637560800706820887862170341087095612179857995309872589804152623911678834303075587757519784762360027578763050158780820483126036926443759474518733336190851827257962311778425925602089089270237275815629335129332263377193691720161365328467560919653308521532802489445475719186154135640738823143352661727505903246654631450698813149442114970627635664178575159132100014786650785085511735126296009681223473973909685548272149439350319111502359565838514483152554199681832490012921299351968473662993741106976041147882403130325529686017192030829509112006803104053869170478462769943822590309696789878771601947330630465233072021035146974718148335758650015266352521760265914735488575369814830881656726576215786359532179279557490665001373015474116548267819281166242417843218498078706108074946100056412151154842750480356652408120431122086666261853774629947942186004471018662952364753060720581761087612977187667938982854893690200202983567623578447588100012103926176266773547480263893587470694818469768287507299720465466259720924060488628211903659706332924916734037202412439894153956091447859909026820946479640585706885738764677283528630844834408613690026309670885700181881497279296602466490804845259232119616276203599901451396579430687068652967849258003046229801726041133882127009059243492102994407164385351624726823383099874940222716562294896603438689290190273579861322285443284800751557229275091869502605444554122385035043576463409176005262992645455544062438609896527125947990041943118913000622846371671027280308904996650759695776353909673651172177653848289878396668286284516046541127590004709846222699989569461482025897662815080105510790685271134849912394749046548818030104599048133268794946140326940406838679162087921760610660769342640000257261948988934325951154065845723068323772047537671058449213055824940481372680537701734537605049079453763030909491655425684559564903769700606333569378259714296697025819231240379113900115281760420855568317929335682077089279486466492791117650473501751605007940242421725920456420729248121976630779560823015427104093046256700175098484852901995708481796527607079638363071464058293023964348419403982137722740785635872068661714521070122194362473862040604311555395267739815030831036237173891270672148483323943432333122121857380478099082636876111840843448397932979819831213014258439767180165379219214431244580273733317335492253155483934618230818856830156807106351050358876977049501525288474297351095686966925837021162344050812997262026160691453521590606249444323289041095501681044699951863770076613632400675544406529567363139827458830860823020373921839146100886913586660845632969216022209361122548643297022036052621399780839467870030309612282346602078376807645526671106854935550304894560094022306412832891017438057108718383877912753054568263625013149320935316100108133009836341554206490356466410022513637643477038915601695486606365526479413675271258232194892544377941095567398831348636106098244800530611798901249859731511904496146739217337804183282359787944357985317256583525113886381688902962496363240710568620541752390158932446078127500192964136652664766578675348520614790494658192841809069700868959075309184576837957903132946486212865739426635291566772738215218439747176566567398548568019841673783865559594723837573884340904909866667254560834944863383562915586336830221992391960304196030638414451409744604622501720854318740247699020311448874447810649439887613621595872617072603004360718604178829199370606241961385473808746260739392940114271852138723183068933115517403438203262443789308300220975140146360291975908165393581666168077806000231680020375344831039152106930500363334477359715001608806717968382971730981421872741962382936686089519810849523284865935516359426484806936028413896834845675905869131555959349358779549024579336723425636760731306755552366861699608775044243676998056410110643757728277295396764138597811352968061017923709351843928242780517767759092256170447928414520644451757652741551869493983061306180452907930891507367156813981838514186062001810516199005797624386632806476142873527545978053506876477578520603858709270100735224416920143725368697282600700673838715987749280063367086427659648629771417511088981178483044642839987794965972006006766854800775018765985852001038169083224282146296857512233204578127059746088495033159246201346124634834205673601841466506914826855225837562443617281812212976116154458087804623036859628084040414796810556381069994268872730884483846911606368175845120304024540841760690436599156533285099278014955170482333810549127571978387017407645889931790935783611894441179452583092600830301390903230640171986321772463715555720695795962931007159737828495203705492828617968952790503708436818189994229244940475202745030797188801699642832996621940106353615192145604485639080599370942413176155396920166450629481864367654525782456159785275225255532798469335620460875778739732429706132194148788236910779859304036172107975763112982386047284874114070305403549167946689245880850916262938433546704413165856786006560085681639803990073658092621570536333324704782357161643152738912818746359365541764251648350513626869499158307880428481083887439712149265286668771614300791763911113369291771246229633426100242713122655435676325646178963306112431604025441288956156395022125640419974653638211393409538611182323129420446658360930829975599990596876694098611996452749061024084652419568606679655026302888482262856810572733654721116252916594080311104483689373862375366146591883903168547745117880181303481649940104035518548772964647840045010403343068067838270175439671299569808097198345890602593135653310875173240952908607144244939239364553506537792317911136370283989310648241886500964762433881479215091997005031253387893704145906031755849304246745515019316181363087102928022660072290132007367318072058233851136021706339015847294183658002677463781084388564765564918826197918807554209617769013355695686320734170773737173600089750949010223563209754906519124508154646813738843932559544472229445234333131941412714190595729847418098479200251744589651035733160885342033418044708908605143827199537415194817582974226695878566890417293966919687478414650616757093062880936589777540869393838239240482208201024170778674258866385072629711661190397011587037524098006489782107583970049525337047025397305694706366275769649481473160449716586322341623348187408643072503651065662681141598399944161157267996022745765554159408797411770679857841570042895735204923585824376076784711834442731724421854022748266869120198277921431409417401462717214735949346530262387241010127364858322003398685960518810220075901934335972647721581836363813337592948773164599740591728530898754488842879642256922130644447004684902304423009114262386619137547987112487562244572580633745302149795921653340765743845019818399803163029840526075711703811575641735085975109929878508209706156275229695208250517696660571212059369758067071727041559383402252113862973176643006581360569155226786108218226963350315489647048849832114586302900240413640484952969722435934289181075047790013930380013180116534515325147310918949398918393171969921191263116488247756612915531611929265001323684979103590876988351532774429242928046156973774009055328037083577485732785289317419898825559864897757886785518750489458480748997685253968356893042957298147329844191584493485424073084277342446621212219553055988365255410689910873263122320219638908213883344598827318920302109688202260562120233643639942315173907812276043854313615984172647611440612439410524796352950778958402152629091068367450306527704121440286459508457108140535897327521961486844686527838006347608886879971122631819777669636351552070993210808964455332695011463009595237763313321002965425437480535212089404466875542413980839425752768417754322958436326529803501356042202044610230807985179285622029074707787894722677012879321727634802787164725805455113175443058561013634769031060011144280265620723127113269121017752119717643882958842535589161506823007748282114014731943749592669424152213202374413865160309942215925141635822483010039546872425890578617315066823803781101833310066476672349424696578151752741749420155923090584527982521200982231000488690616395985955709042373598629271847540102774574059777607016218145920807064359265828113043208995734673338136446625963866213599234474883669475448775490381628637017611518203973234272052943616902499394635311771615914370460292120173993030948036066678740800722666444773352392263547814397295177955406553191862187367533818361516170609491150022883088097173705044402021585067633284238226393648761649537957359028380443245917679888483655795212459863888819626458122217165287905770273198808666480100428529559557184592276841028910309700035105640106738033207551811382613834143212807422153686170386109608284405587204273805789198564826544136942169573606806957950499309053031621012198325256131923327812879467548149810679690266587211045021639959734006761819779724288805477014343040436336546844474590922351404646175672994383845168634860859126985395879191141841480311528572216227305169439107113622411898234747111740601892928602062109990215555049992930899467145218169913556407674664237448192624241009707241488031612423838525208582678842452255130924866749977546060769114345533373914834439500245829214282349506707885174001926958547479430557868509516770951222464075808178272974937377609373535352026033563891163518491818557229269365906881926366989187821222228836169122078251931487823422531363045877423991202276696761768493500066706340847555323693628926823067799507359059160935900895613825065410455433887767638137300011769642347870971228678463846393464044682454710222255241008118655118245943991782559976967449393467660992722440428907392694808256692835344266492486282577289004785541128969720060200687386092507699922075173011152041842977289038998566780933147720473367228851443924198449450762338458206336977634688048245178947816927503194510620077940830433857075247010811898072096575830173340032545981393980826159149043064325265794835622500144949336291556052807868736752200158531381574714140955785559235727731763881318848326119318465181024132339934894703849902923624012616145307816356699786420748856513885147367089388556350709811891894410573301813762880062678636184667778618745129240368319867866709665763973818354526676692568344815946573886520702806236131775296137396831951148683527872015038696621775333822409176682476218150361883133651355165706947060964203177925812245317598418692620915677855038342411411025546454175439416380601008287376192515061923645729944942190483062873436966644632723828639351855554106870261334753739821120996794425010163666212035015156036070926100038452115162722143049720618588959188324735640205457450133562890135688744460251109491307842206992367840295318587607832957375380063606954747712717738619396204496493052018571158469427089942750599456270101604117431117166710740609043258751647863365741498722201812271098592881530371334354197745561588322217286679338884674667595521972197323774391812684094785928574895258512375894790493762523628083590930122372185750060133634151804938546237544213285844011933988318689422493045157826834084205291575411908585718827364093024366888334610863497259412456750219665827592942900026107821073169825348229771351778528485361019366616510509418717109191132226214240040442701126918086363102248786097242716619886587017701998759491440482090696713459096642015464242219065362377312515414498704920168403419349733724998594407472533419439520576695731588883842229968923285354473236740241080576103931224729950945996472368364983585771410785776669119649610548192179726012182793700046078305308686158590222518414657126012117557463706616074196044133234235825002534408636438832880637494524251130043614064377598761976908199491817861511446133893511514544709442207899245445801816680445853775516059744301843051999374769299479126000063236361299036154005571246058938033238438819237781090753027322623048597719405863411785132698778968867260963238969227146650523757715115306155622663290051050082874921233145439329881418890556161933298085739334688566506745984041343802456291633156523962393665761492841769506877376346709169879402318013227305771504793053714024152130027531215683925108580275183330333479498462789644912597897231349804290176956861784107494885707872603449939657965376620996367425503291328117642274593962615106758039007558540708097057077174474488038495895666982421011053660974236026678822649695366094434615781139469677786992131028469626422820981954525504914922324600095507293039269672833175058999681324498395464557757388598318655203088952587427670773197745785166576926271279974259330075899867254073687462368226692603784811796268654452413005210057820448410189328937049051637816360066682572449351546707178596012284839191950733800036405687377045743002399366723701641374892225682732723817586423048392560812557700665512167105812119164047159029847540925934138314175685162417769674527145937642241570655671732970731371292228178528914267084994316462197361787043209344959519967303493749694985857124496947169627931902989399675169476538953115573868662905106572396766425407770529395874390171319407336159584733126570944876446170350602398375306914623568916928665067292465751829904386497272497827893370338113107858820523225768578891139055199826534108506301620612917641281756696233373416868708820930334372605519464576765713408565754520294089194917277186642907348914614023021961355786753667832401730493457941267644976133420426395618199695507263453870369731149615781025321811964482163330477772191256196187552256995329601018467156185062966478839611079832015806881137372817099934109633559126552227191740636935806453613833487852828294581737766131717048380347403260525418761048983159793275700470957054663091159421363968341658527536961591360364092798284169518267574017387345923203560044839880094520195586596086423361682579368111404166706340188673786158870317188661562585226297688697317878103553025340991931831691429310922911747903138288211329063079808093167698363273139119207099776557450470519634779236152645476075457249773729220597311932969615680888920359920179766920154903239904735341205580740289755057805312496944523167805503645110423430314019042602946828903894966736183651872641749256544855707964811085312969054349636911823519795219199557847182921063614564485847997666407653910094500630952323624766066159710638440110357895492793209074193034093322709181078754288578229708925213240858196710606072608655649987412996086231809152201696116347185148620273787700396745446709835094613552199570312969663468896871053036995539939425502283720301703427568931296142584919341179877311163989843878212569791568214908570143891289880888581567521520406808887912542384007626813664056222406646146793072358511209105103669014457613774973439662574387428847812930645593960928576691926526847987292930503020118145858035109564506865900258505857754543253429768563540503663132772326826563328238769124101541514864525269252117518960792496446287515283978664926011721330538329184123615627585047156895712766579354442491413879811272371112752432881780798483539098946835482751287365939657729263589074229269148925006408380861426630784450852645261673624019989835498822683642258696672433640726707694406746878393718936307862573395373091960290463096493158563708329090113570901780667172523998532031486923676619826408076241007480954856024256714576168326959644623345577004852396189834723024784529567178125238225347139602756220859464004888460893019821152414894505078872660251504315035360219249652013542608864114037289244267081213748942129873043504260985070747201197616252289971052864362393701782561542180760476570744377956175703804461326523587178900774272093060788426723872340188141995638301861802104017507379902913100942357015009264677359762694902947536360114277496807091266346347565695730872622291400438085813662011692611050260705992410176698241482027024505048529366276369798482676483677078476175510209498864288074679315999418447189075697745312630217622467533060275465836219051401769803683789196011294576634847383040642257849017787178363274810525859272491005374919030538506740463183487998917286037342244928564210287941165535450002148277284375037432557543736207418545209805128820497555338921510415679485917413003550648913681977029694664453319167259231667446972023096356114389869695476699980731759622413467352770767982871808688400629543383634917341733678332830654739198274001664836581919573871391297683728104744705790329479832494147511992673342550545221485966565497179311174732203217256003143568300983370104548569069806432560941580182123402821329850201880253012628012702069011482873246124067519225560619493683442214514334167621524733141366557242430829945091936354948284660291915361369881006760583972898180561157454150368368541138585807554925855408512242490787965270538994113179868809820333632417151557755936438932557512725739226420572457135898860953272352694921979013935902073102239052098791048117309957736317440724446656964399219823415733179985137351274654277252870467009785392549314800317530293008090560468733838225357603536947547851516172359876094851779037167137349874846427629063705835763148060487859078670188554681483659066549461068766010523096168280184824519668948492930329906466750489364264784868630635591388422582375695955132544237832309035888692835535412419214796410402221652856425875009605910480201591814917729908381814022064536235451565771253006692273082732013343353677062719371142221250230070011813186805219463268018414200526642112074409643166825596393259621446802174759300398666760286876678459805666837279493489619177114473234822322733886286105662224516372244353017734447137836367761887437990012760658888487179126339289369642905609005766939095327442672965229321529226522960953760164866030959852433749843250743759246315469926708158231621264332071151040903200083245553312529594743867256503068581710022223760061806731467148466653674961212341016075192165586331770668069299318799797263533128224003252982552300377986520976092906060516081316500551119129229168553845245341878194611495328806898750579773631680685266497934127265279862554070954643216692265851739006843319102098627159923260268618950915956544083139341636527910313786972517924308992654203332140350721986800662205593395264961077625774960801432147763220048491649906415370609769855722591446245780520794311048272367083561635763710847680525952464964348115937302539357236869994086965830514222170549841060364725447092005607284881537205339756237488124038015257714829790313469260214599213019536135889077544903633507417290976978786006855581919019756575005092152498487892667064499933785500554097563510112726977736759171616498545970670447821434914361571119534460699768034339903721517311022845533559356547384337191602534843691685881501999674011897304793407399804817528897229685757760500868896131462438942511118644243800275074901423728059834107220014054852908323100030668854600803314598813179717100649699531913679989477732557226298234964502493702772084107818037483130424465371889488927280311012295336222272109632512621212878597025989289452017938605797566693153910591274044926833369976703189190528403173697516913514638291555114892857255141085803303789152904988634911858839690319807753037321434717719976329989935856808476081086446675728228325840361922601329395376378281997374169251946249941520595803006243999988693176027423539348537742060002285344123381591060818840414784034518334769625797319582720493085649576734446237708515052889426123533714326522147943897390210731141267771531224487805919602864072025661293296685565476104103639818486593723413797841901905562872058377699452487907029383510459312263971376175987077043671739202288242259137254174476741650953260684342337123971510956908283262704195530856129626191004762700323684145307451222026203776896103178710345703379656108347361695301520934470075133869971466656326149532997084420261203918125923467694259241938214825646871288265868838157460158813540389618397564279831699567651552514941598445314395734240973386796648031085248208629147837713823877743463742711008799930024868620836927802424292168232392990860652420654986738462625719467874146417886607462200608056152213108526675024607822655976743462697220078830882906911087742504202144671348221457710917415723180229978506845765100119145769508677591512258670258772216388616559514994955562358607831793467004066728905138267764068108897313597709271346291954640945527099121458459464675111459024996925444336585650601167009416348619952026608229102065302792129417235085104124464313380412765277800112160224082081131943335046899712348718919670850744391219396537513247904355853996007651157901685439545116146548902008613787523506737304390070923655428659935550085976614812078277328906259812818064415750025822061916644293923085790304789704906284887519614816403099787693222196353275225990030600295239771735484906864846508304383255093252072688826247309265784335413238964943746946827506153029683810441428381034132102189923863299494065093976222820428890232879902165853318203817228679465971904509369951799460431204258122914671094127757143986532644345061786585275466744582303050856118182493386570628327240853013531991095753532559688452126359247568097308915022748990407848142332743916187876909014146507430143542908590439199665758369620293512887427731631076114006859501591901424854980738555142289839525212338352435632016749290416295854419717964707526603732862446535565574564864046643562053870956423729947453444465898198784455965308648277374182850584326939902508068870553206512931061896119771767419813862787385236766960592034541207523763484242869048039613611174666635105155806720203680869652643370196857931663494804194960064769192700653731724539753701845462597450356291243485100962304191811260800188872649502354824552480442666729611505439426268857361738323206378810495484978282434824742992972652702574397718127141466422166197419983291598535934104708591811177769602610780940204181508024983871350057451105802432177305788908007644043903068301179441647344404828100645795232651939490764004812926789803251312712301038207316612193041877387760292956379784522729021094311249164143119356230766048349208877044031155103049723786167999010591692705727716022980283166966935028231612138452699811292257132381128234045066322297480849789193801904723210536764102423139239437538780568515813559328038936441544303207688053847744850842900299675374967551022314373303336593903014901735426461697207319530166543105380452687098204172970747237108094740233461006792763965471805964811254106417160693161485328327768996532350766440260277607433918181457022427784268656366001212580960350564690623751375858689930769485570322958374244569412043453767230906848610493777670086061977578431423431376362573111998363041568958381196050628525356147140836461850106365502880470894979070560354263725645637818229773697505771222184771240858678980901027637036231698179034132175232472954449825062270991638393153911370695764311594337444301203082787148577291028348625459528154624333619039643158477461873076519145952850997263321030557669024769527498234031526080921402172853595508683764189205709325276021603698756743068338746443725949832911035265672490537271606674747827799953292700478434122390251818927958044418762084747692436721323025462136950469298334589142596056462392773007288634843094283769750621876009402249468751432408403732008959550103375283616425067756246514562850980812358461521589977005276458905405380752081371291945134706366778684759343901062080069849895979184644565153957413085095005590363614312290420056251422509040669941501253822608848658790937473700124655619386040164048906585010241982675882053860450011255212919236912978958863216235564962938781140967690828311631507857641749955411391598140726793123389018006653785560551279520677919561063907901743487166496766616595154319868318381037066515479429242631441031977309364737023497479414477896986967877704065728069350397025451960499302235788314087967450065044623119956015472931555318949380714754048823196945478061652988767943839583547315897008917838847468152575655942713398988750784535130199608201743128081711753617342419716199460450370329349173526447797153765292804449073846599046263216604858005603436096587215242890920345920999206143054444468161114899673072207865626297268239359226333285535113095928738632711633332447315563132933001742101170399201604147743090237122144626802475780388573267987919347637614988591903190512166288977926112498844538476049139945312974171532349377085455317027481722582121967519139047556917241485223569029450695290183301479952816438736868298809175366366318927548189452024532051389351716975697296513964814016303671917267004288762787680053018246447192668391279745899286503031337982181622954408304104804255772450120884403793531348596861650650156573469480338469269727046415322257864454029466655956681611573111527270952839255118624211166038034982140111189482283771576585677395731799418695305622284734577618253122289999714855174310192162212750605284615220107059835847160802358213399653672769652700724699095043830580059620306508700666247989062601488924504406133104901831942245192927813162783580611468262632330603024705461553196454086558225050050957208170542206215766695435705151464416604116015621972906778268179283883006905275768013745214858403353715802912840711707604474143620022980858305376926236484322634563721912352265970873565532631457672466346378308289850107586663984955715108246596808200106618494324285187071749095664833539862925319284626768784068075790735649010778647850370551684048899149774857073538238082801750150900385060149511442748765301719216884145040441671077565380815392328550987262933753160446543055839967009794632416173580613728820144533573006778041272023828041395337434544764663533215376374752888438796285936271171948742883935549454876237600741817532081206622063911091570025687444432993740704234168206287456617911040631651981180048822666376457036367287749435124072736079433857061455479635904090658823630142351430483251717817293332143255923331745024811890566464284987424379818846727241639620387814949311851168981625738580190210928908101319574771156915839767259012588880862199187009024128661990702173698295332442096711615127055108040127495298175189932795604204954276307042347822949220684431394429295275137343949695359641261152338750004542415187549690894604005464038090511675962418417484780350316827222759904839624389557115392336111800684958212297342958306982130846939122699680099740249580820746179009894122238485843562260371205306942070951816088712412167794967661538678438677828121703370813742846329796623695523731654881400019801852817030576120648457627458032070782863994500800021939159873546494514367912178939923782986295237309995229044718116213798685679277923823643731659198756860150383074650129120474739674873017281237176387605352814146069250587843613938880809467935589964719846476968640575541166211165553425763856042626713382342778808048520515659281689388366738962713470123859118845783724908978553740268388042839188685888468697319007909517596768631960214170381306139460032525483468637576793499012899203254657468230116745314866843189647346018225120976535611832631805213985390343253702763014187059616492358590495487119889863284256605438183716282885316808177102747783224633481442086369533739602697164514068077157644811815390516494101140897627894190950240888997699189312326815645506591096889421280041725936842982617574390509508330267987564361209807739341619252848628475985863090251882873711933977886746171650764240356029535069324425728381613718794019612565956278452762353841049563256052868655461608093057665836627979888414517030331671209876642873946065546340052412746251892228598020594757785659260661189632789584955969222437775404296630180684385431733591878283822867712041041507497893967263821506918436653045755017950682747018021465259741229367704786742006789332218884161847863920330100473120856176051279168829863869504714445990384966533393555518063470162932132678739042581026556073200292913788801414641885441045649734033925184093337508744049024969420440506597836322132925949452192889771544223196153293933580582913332656404737318644461153368389106398785940132119531213474188156818041498121144168175739944964807892664637333988116024401220472268459025014819177711924558971938719651354352220285944303123052604764568451217902540060655051835623332939024937462230036767822852365901224190005622499285714832931010662295889548048741154892737551999477765671183967419396355760454485080340538525642158557810939033926629233628179427098448759382668755991862210783960902335611640293341407216846442872373444243580761189822276721191984531440808813873968182056327122311972972934464617982470050105247980812997272718599890705348965797133750841801035633627499316715080851187911252057770245354857613098305223505863259405154626076754336839244137276336038053461213777374867311572750060646633443436620612156438887797589111111168437073903324079393685547917417557921321355118157790190260957490052697956952991749623458331511905578178141477430842785252043575770972788573340374842184550900476539707911313824074423723437332903875272651361488139596627367882071466004389687348461015765217425417730369282406074663040695567958863917587802891742270889155121008494328979342552244145671379284536559631919008440034965551206852747419750214039749475230564731197002177879002567947348481512152546989908559067291743579809307312051414556282557586479680003111342566503892474013922448135828996701013258998011510211341807199973358722724153304534126844627672786854788879471213000400858330680351020327662990880467025396143318318130437170917910784599272379313638249728472868894456024640930208825477788277950028045990421794532420385911649205694560256864314983504969428240261008726500626830208302641186674457285406446609354246094746759470777430300806019202224017234374514168794223087313090373987754276223988534556665026707393076721408958272536154927811474655987184455181657326342192558716560004102854531582517474651167532712235392086998537181574356912403497799210539341527222943043940114417193992016072093593839311691265299757388694413739660361889710992277123688642449095038435581267369888171786397214536867244298500401006001265658085457930988346496640553932740575470476229884583319087398639230955329462547876061602326302492841954085582343574787990447354854076704616286096478349594434468902877548944132415466941174514370209566277707474775760306018788763084167638229493602062085269038866285904283144785810560976013436197565187874803489473065517751446575696917924104605522593278591929570563355015922378188007493722351322539213681013314076241553316231722121891723613815645098617604851381174279208203847470896028932488862762180469272232318879709098481580546979779163339981971800138644226045529574983312903886186992511422583591913153188203383384946931795771053379630498751155662299506999651711666268916954832966683574477783793288254759765251416830441887093761013528559991918130264604284535530238075378386661702314575284483752248582181060645670467585115292466304165997851329264456027728425147789705286033642356986289874395783700135266738772574492372319511636841376052036443371307930774950883953952514398134818325914393290541329345224450713475305694955908979384047385506147397109030348178903468243635569408991061723225926710392875904516552400629099275194631206698090124771327885358864693221247434278432350747524521515382613514155401179229050467309338716251813423877111838035077952142279393581183869664209215217964301079375964880218082901806998114937607438648473023603606819013025563647086075525144571871343392740625224523977711942013810202754036191420130000959899375278814547733036867632131791038440053616627401011762451260182311515860506856781866603225115404208685712521037568618690242016231186714689362172298527033049794604403503920561579714058967157315202534739437005445433684510220122508999082607638762497020868154911450488772267625577007861685248367907860161080979299843391182348710444584793880416141854961039289009804421080727596336642103364119820815894261598846184454336852558999593905016428057393836587723081772163221572682190335713940086743718413877345470613352096305122171738001616118799757217275518570743995164531884029381723710331040625561786052096136215111026227364350813327009131687141158523660872880451914478217268278285818523220199213313876919637540954112194882674818847598630490586849808127278598921303526523009246041307697896110140202183154678654628984982600465917131803380065216888422504782661740149555138108181751366679815511315972518173694992345665826161031807804759684488338562283260024740537006355461704962682485888425596146209227908700566733136873461178345606463200371101952944647577323663005091202668453412382441035094582677813836354371657214894449372050210353649150420346384292194851314221956742472416874420044067684876242874046775827074019125618937541721714904722762168969210096422855852987934811521486261950491149327758543294336204373239882706332797888292873832861285725936506555117666573939659699505514436898371974483075405661990901390681971834568374098347027910451187251366828136811513380506408436632283729115538860776724506189647598335639022846999058035413195820381460261734648916098229822105161376168307734189569426162716309464997355971510830245692617720923844659722242659933620645697229644389788720043956037068146610152647365659043300351396255397364868343469241238880019683431412484473427764835121909674308713874479533841057088985652205171446355164023714894169380370875776786386819190037704383894966613959153444637941916370087679229672291166737375568364755369296824180848528559801147588638932777732305675198834317264340911627831419969844518525571581484062112510352324623073681688237345718329132922027812360933817072861536530239288588792670631024368297510688286510512219085256187601149825615327520414465557210183788721536979372529199705576974252680491899840563243829747312512831803498228355866064378004746558348177871956197445423638690143898631058279427675978667858518992886245793534901892645005812299000470470493613886504405498781199915364019917366582934861007728531937368214997451151460604738173372715555773264151649551995976413129492018354452441675752588790188172452681324705640310667323743379071254772598463669123815437311874808837471614528608887088240632322268736769852953153069970819413670727086760025274591079546380156730828744795309697914789203946993473715031653816700049630277891543159205340653444482313918724876869098312726977201122989685117386792291583187761423312993063562506704010098156566866770377770573808651834020196424093882452803615998598710327425491153717209766115755226524978468370575259637860051342436744220057373378884922375849130103454090582180981778168018903060837115838957898889353588177655744542703702331536713395010107333979891393769743969222110164447294730774987980964247879603665129974440129374779054958699291427237844473631099909413115509745822021732634147355705873459789866608057119937568943223421432181463792459624353822968429423529579394140163369934217227180241942862948832625804776312699097395082274721661216102077511651052563627627460632066975365282967439393281625196375878833009380754855236901911573115861374765706017576443992063599588494397515663171611625060847670391179895472032040080666229236393599801143755771498370021790625309714919442765997286133493320096467163635421560463491900911655928790953458559641398869983697581116302252408375163821204288225314941681150482797657481352244545857604365881881926190293318039832024924599135939999706164481294724043269994803284708061224611787814452580241630323757630289506745426079387504071426331287280551312075142554839271902335592146854743117850718128768150367476731303612774308426465614649650692990982504768375760197339843157138061051084598495791573579305022963268866556644324813502487658848746991482052013252263770121490626258916762853527922016467760917689174002814730990946493138584487374159148264999929104562237325940563827114352842858714017152758965158212629198373109894879985913206610991378969762319258917541106124840415592789707976796693867944206695595921884591380137849234001238663666904683968387152678953670056602879817309008886336042564327136079335993646712117478396679846754234533711271606408396387798255268103004536529782914033945112005165196957581381473686687125372214677311800086552288859780069372203379068935087214063056174056436003541548503201563831478783912011167608772311477087901990915873755161313416130810375646149095492099840853564486520223783508861985608194742955138071160381968533652443098223647784198829757583623043374522973734600356462726542713762879872976361738573192540783659019233698136285660753847880945766757952796146196405018128534624017348404651227419672763812241629956107426439782643948739047519411821936494348844240313490236245435740440990767367476877194734231090701075658980707381953586639224552294884934348038172782058310475610958693959727072268093143922265527427569938733895235156625272633529679946324338677332453434036884575565443368631018780176283225481576007007550655751178883079254791428375580621899597603895150313125729256302813912896164824515556165763000485141195118062323878372960313676675795996580387985021737837131395251693560283604259063703299139791664582435996032927915899230589131749986956517606489225190650119410279254809638334319056515624387630124128033602760991608012993424635750673436577470292571470240974600729892980667447057128883228734081381984370408631163771738891873138536136067490208713707324911176233762862056035607487836524356488531545069681581575223770672879983404880065310213763093719902771263234294097609030304742419579204099468298508313629089838893637482901123527821302090300973157860938223248874140497962169275742782396860341770696634223648080083662412842166060659279593582116666809789523985430040416769871111355061672034402149415089525569382376604166656168059923973753099721706020558502815784487475908870589280358679313686248276055103811361527176214506740126300381907557623281176354888223406917441308120745844056140672944320756681620952504135316301169767709907841649601991541255470426561845883752745430613060089170814102821431960386186081305146592626361870900840898205434868852317854356189797732126644790687644907932397351167730865657023545678349697827664131495480406693819190870749210722588847711694815126039165753018746563949637536578935343518368074054535469317725927299714064239315916265548579892507870364089748626441812616808069458807413952724740747256560843963154716375430356578881809013743240917855396611005940177659836787433255408804888318674387212281003062602536739926677988095898888606832956278237560316063171052781408048602588307939613842232645956624987054050935859479621580213264943430470174408134893989472055457897132584562422915984101389614017341151149892052584172785253172222410794997121402278845317982663903942569683198016490338030289392682949068525602371764126527557362194975725342980479559374574479109551440091178452337203554234961257480124198345380516604408166104164911584262935145398074864715407405316610294057813112926582636116468474789110297547577015485017433741332772751167218118059355743999538289858828691436839877732948546607868731644504970984573066298675225995261092055587000082698347668015710803778483792508720145507499457105341519023702261830429802836784862814124067447988421928952662424921513457799692168454546972359976129232985580335645206299504791934159171539099306776103971267843556516896514634307183655496803889675003558054608628778135455036031613970057366852328736725938551253283689811404519500448676720045497905184807663614958613256711756560427004603083027377178570277496471254646876342725154410038220915197700856280570314792723798542836157086938935545006485951623039472784558290063528964775568955729093506896447327550808689933137906632821078539960392746336594581845333443091702487538502792660533832737866169081822413656999217292418959177395907092557109586904340386409331829211540921266041132841932800941430560535937404442267897632712258932756993309383513284821753461377907754752157401704262348786076164657780089147381034634395535040905009683702682478128114880822065552419367553069894060218357081323867037151336806736186638497543832655196109961858739416603135199565901479667880964526697850639087277604859069547174499102415375341908786080373819959259770368614891895593573279406547407645932889022972924072489049208218475131524620003492432289123395836664265501734652877519841107316016944725524153065279316170041651311583852152317349973621220457714464238371380976162810956338261093773070201814633213039646116002118322939748707809064384437346061551467207601360767854859350937009346991082513807766800697940412698652460953774561224856981824932411450200148751891693795945367316837097190258028686507402452954881299115793395455371371134574785392559006272155422421354185498120063370660603982026636995956145745931585370987608376116291768891610540824747156642324527231147854359753750796236078119159020058405579419188759183366590436234675711426082840727452824564807992917143372654059932105824375153013561062173627131202022008182877673342185852137971900164482600439266103969785076632054219744954901239363928154963672539988153337920520213653239407831402913465750337555638252457896261887987003440911048912839977588900331303020533343159748401553624365427544025768044724738396815219366790788054770691363061657884577143551354900204812755819706995683091507124494414845480963148739455884315802537118794828716669659773196535658337730514663701012405667198322313747145789744924386633739265999247516280736858676915877384836605617169629939008395191814489190786388180467962739822668224952720883038056619648703532501133624334432505938826517875454937103717746457104206516519785148232941998431721920407077224938584217402616358559588210504227812626620795559701874787863578621140069045137344641112838588169446009773983992719877016540357000583008922724308554736431040409972236605193911158751182937506153312065089099100288726593223956922121575711728059901480680766950737821566290006529479214071813050380242782624171040779777769349750236399561046927992746147800294830572604674707763898147781105935090404349322281271846372409126741424269187799882508516848281329238045142371969430309719402671044294851767793268157215772958470984709419324550792511451540149608103337513848266103306019572400643427746640770792384817684854209079123903089346703647127943792527342704223855183390012351654406654662327140386777587886617376860453059714571071406179498611759063885581485391620318148640192822064723044860000009631026962148068030995220422959711213108502820855436250687456682094758731509277487533256064242233864333157609319121119185673768963201288212031948712203098283451223542950071992423355410777606706887843572702434506600352134156090766373575435942237685319720035307991913736916604340917383068212788834633942060749994751042009914532518243203785278935416822510856480957271810479542420819141287662600225700931562004343056298717200797635737489651984928039198611714655285199108848505742897876315851924098028551736305912014435126161550568321725518761797615077845490674702461670059635321287472670345409999711640519032379029478112708458589571170492207567470137555284545022456858631815412199381948240799884554703216355518292318327388310191025427835833300952131065079887174401306142624505593838195411338755471496289872457599991133966146268056883527198853112676943325489059672923287363379681101410950330686126680036222640794585458377096572320330678858220150037917084272565047932409658016477662689770659638562486955373587207382039216781817615023382401181900690267459745395350039891246377771938794829420506377190683942444827308454816097006559185076658131843811633428368868566606175432078937514426794741979192782689073379062190379668778375063903364805814970045840744660397565977633793139502701954074053291251235936201346029230623329225856425410727182178835824837259065832891062195109614399773187236517839139946100093592231168861570814436398567590923640896315570425908446198418155159963375184109770711418351699668556400392750873701652118194596950618898413668490698664019740199134030900733519236403259815083165431512347287599179311382125555838438721557694438632321074092706692654742462360256481834452920968413537894853028494701697974076928461392435130912481536848345451140603328081460751761549141449082765416493340000070294349793828630196173361248338914532077524314174083400421587809139738974838649568625932555718629317964678645311452543886483134208305444038787393799558410736248381944432799961417558215175632698556150713606125141214385524044377022601562184405409576683399808165447915634897748236968912794276636698985951894407169779584494593612626172824702131920962845312493173088558625581741284952366746250003186901300289892796781818114343849098330449945687154865640963346541043828849815598066475447047393295642222307235864128638692552302577635303690331359375860823943815872116380322212777426491986346303264858157666624062991462443493514103882400049183416852055548559561148564825591736978514749384296557214723892420828135003695931224394866861372819982430689907811344963672000670388907252897760473130329830025956840184671787310763568059825074141750059848940983131148188480378853487976450344369988711000121922957739505510000587380909269351146100051596574771826728027641478056404850735474778778253861993264770950763660536577694462666990204718557597103165355601091203808285895595186189974422904735524497357734026086468165395741924898086046731716651397336932568965488068861767316302935989625853330573989946639216767948335064598124552534268547034180782504959489132702372827480595295126949896282497529706236778382831865880305001706018225151493446119587761366872927123423803443220369527753498615467556574259071584330093411303576334140760398787519205038023047768284227857265356218011296469998216280288725757802992859560282654008353376495419681893070865810056846974385599444190384957983204119962367321700993332367228028929205559399125098683135379671852276584476589724495111882252448204898559088948677156514545337280273311558452299857899699856317857251031745084993875314459155510776829023649938069673425762561858182466779366095006344108664299493060815365021258524408242026093587903575121710504818642512420062660148876594076270587987084284032922586168824495149375545510024921281649766307248523656140862195713428717608818494013218206529247769664107099388841200993030457827523289835884857087326961614772460585524342197323658153886534444699339432974822104337110088278800027666525100187013786774173818841479732666224353432089344312866109306841568113943348873375914205769695752036748667893508299255148103847272138134827040238791094867573720793242120052481799136707149040379736458927229085065971756873522243054756030889720359688203586661984700474445923891910504985596055780479006449571153709766322932626788165757791930871083090485767752184093845340660082834039830548657784931009303594129389159695904548496927827472079001256826987553208394341807764881961626664348455336078042412993048100093062266808984516442989242030299969979367938840325508284253790348828191283072691902356192080269897305342714219856433834508820445995054939732189219405022815473403703871662794185766678548768453125504514291974063163928696450208800289265111521796896262219592259359672370791009216325646546206619022485068992025730973422717300457091016171079862928715278743627184815529606666531728755578519975856302824126851521248047119752371318484732981250077791106803684067737850351030877121659587562832615283728733850238706372842176632504446797895008526865498638407585987409428361800808546224413409512664020106280080039054647255423649792262473810918234828552480079846310483837630165343792997046231077958326335673809338179574181494326639356752966486588188171694583523758294372554085792022213949974569695619893173322948952263310981481199523715913359881744321099425076650776652866864208591377401271621279350737913738052078278497954550826570512205187132125625517487716459971068184034641091101445670917638850036296424482362608058256546749520424557542250531115056915881234450098501936503202103971636904528873372455890190174543334355931553180265400565014354040743462176913362038699572574046509367870948222130774972595837589177367893768885540799074849790550604468499795645846093803277048186557800546125328424860281355374859388536689261898718447868832816307339576249700199989688706246988213512207671038462848131239611439757264045626067608858296761626974006327910209256015986826298175821987169057564367816321809231668105800956453002857552100876394467192229440933593701793848605060772450357102117584017366413518807423938018027324110346380867684399282179633087003564806490528203282014508793386630310786554905321729299725242352458026692850780276715747367549393947400707976674234775954480846773218526548760356502087160314593786569953128602474190312565908140995792776577997205872677867961769040966862302187948895299697988333788477707914807918429276170655704041311052831348402090986801958990103401602191813319052977849919667648634495040000317974144072514876923547166705989705236915489813983006725008190021774309027915927412847146790686532358855019287883561242064427042921895747241290084028843050178469195583787612977830411940587045626310189348120186567197615362094803716358721695512535467427168861914086432303596012549085449351864405287930500203509615000787006392487226482506166534602948569048195674337107770123630747870325235220963097164646888784778379698483907876931563030683164554283416575618828742220105558314871521396994153999117291989630350844771069954389482228706366071365918515893423013947212262594020997799927302208181203394026113029042466335685550960507588967010935088109985105235264323346964626146022453437551068364372895292160444434431563960391035973474887427936905363660370918526071151928977535870825241301588449742358573641045313541742151735854000183263880542543042264398518239873469214650381890130476068255914125331468584694980554360871430251643297960988622469289275524811813069677631462759266199736778751089041794193949513030647612538269242798763508664737390869630823233252569100730402376362491472081910654467511652924200639862441474200918303053780999094089223804230247560972078132210221733158372400824841512327446150766450423214745280726907960314226194256349781532330701625919384389956784478007091313556560217643763269020117513594165972128218413892510250375350745376562495567670565212431021659798212435155603987706591246339746849609075618067582705068906615497116788364027769620624512706702825988257166292722845236580874573143874719729241541367053802419728760346918453704947716852285953511739008993999328324088942087363204486338995149475978517618712322304808888933307632641649454084609784618047975362574699315477318164869221451754102525033430440478624491219049706462851977543420559083045848458991383143915094956264098107011102767072821174749456022037651311827252364988137588472595178494259073537995482956612494946534178073657783187063190228877949708669304639093758907035865789733484025003818378175455782464849982382927673811759690472184573612220813281263820515520434582224700321679917942639625162446487391539208922517672181183904299611819450446549641847206295431154412415004896556523327006358933033543702837491487380484561457830570888997621824697030662618629844388280655124816887418690398337202273487857699139105730441590478992254398416373463244018292395078899205054620267423034203104248130464030706679396274980405029631031443303703485263655728311292790816861553334370485983559547546758166668658881166183692947439987285780819209319406496490627833566613876269381086404673746154492541955496793148081835238689610314953103270871264341212411311541797695972296739446503402028269386281260457943779193832384168184873967270114956923366843307803838760314300301419113170592143569773178906660571410649074102141496557594971026689037613281043436676839414589514479796599849748278081248314241150019138493212930810430697457014662152692614905254649066526251996411877525956630545153130098524933237011967140810227617486362394204526556456182775702371508281313706344324471502605286466094345524993700792719050236913198029052432589384412759441640360401868610238477734662989385052978576521706415914292354686548126805069203534901142764555180079426965676076746692345961510669005255312635259986401653066517070328502680638521644110564911112531835525102896714207720101508859425837393292350986893801109575854305924638063560991907228437367968801027006230675314504365898417333035206461214691029621728969755425168764821557569729766323518902900232677577036625042475171581807416149693729920161904865969294217442354997167914277716547563913221758758796506837076220236061822696513520940793161176893815509326265690560928072192820242313256630427206009029841209711449663371530694124887725167247936445515789450732586880494170954563775459952061785729189422963986196767215029934484762108300722186901489875054252173094474799279279638710592102836650629303005022854370601053738642280741205673332108138286015978664543217053066394249412936498974938052895905521738487407284179857218806708576367540731353599250672844616663037771231210992409276792358229106292618190526122567726355768338708204518491696714583393756353644154834786101697411610173426815055822107553028488017056954200975695379555413530640212618937210038842858067332601014567715977764154756915023084578357420879706181957767151860851593332474482517049188090708211206932304818435858674930750228186560351500824989801628769403745525755341419280760964720997332401057154961755027156385421296817891375859725883239684544401980566152891958796761423680562810109409257028707909269599040467280011838528979705460659243136263411306925517711729733898075357968254754015433862289157726858055728405351799044946097022491406897583449408327837625765108430382155265447586389052748219039943412914524385349667312836857835413946776418166860325175557329592399064579056915805098832522092796948057955956219142878552720128609092855331237528754933550104136691128990352802974636117384419005825079223582247309802890024704884329754760732603404410513247555175650067717672106427298029491873792723856154901985458569021176092874303347212776495045896743065326786495987220588955121625825864140890889547818497885285118130145328107964693547553026529292727190401534241792387184799171259325100382916999689656823912674867990074227973188836280378901915610849904738427504344432880894101563982754268034903696767890652763814211734366116889982103045878936065554674462385369600704107067847005859405847984268348746177526106967013189506576210005646679081005286148955292336907204613944971254826577113336943499737433259590919430995661114238058270739758628965040898576248289097271723512663954235482067730704811990046256617431362387461372789371253643990961013174777935546176116470497696616030483315121835605578091197740102718269159142867551964129542862930960429937740351243084382325875059012704051654350703429518275853205194372081745491653211229801411627177180889450226559771602901756628499946378840596105643974065266862226198092687841338063391336657375901652754806513221516855975972658416735644779998043452463011179768388374211283061146070853206477957533319807017582804251015820861175504468765855277174269166315372366706368609754555578826261216379091266754744423322149798397634367670386034970480800940754318382666194509203638914525539522859352129326362909547542037322583046980139612821491667875991142123954065406978591419076833997635339168160015588547808559710925373913499195213199556223222855631688164675366375840481351234463624940924602354196910536777177569591748940232064230657055895633319667560252467060619649082349507741243822550529304047650493644286316537034183992540287729376856382764019158048554595977570012745654713166812004558866569939714851745678781017653235180217905400591349129651367834348366842028998476647134038223190855517108412020936988519697045985817335517901127847256115275645256672912613716874517248307951853691399157872821051359738776719861006512323179523549682207449164038201316871490920770317220180656096993056606112453115445115989348724167653175416246599992650475533557033760899146436056894567623596265175052399817690457816028068998767237330734291862788078141682651397409661095590344923866014559014695779980316557439827987023702012382472920144979419646915568331551846619126484394024446558640535961366829913238095799498254704431981103043975136213893990471724710530219373326724778005213978218660995297140774927294984833341842690512413922309800593405559131159518721008810419817709358635621284229155343594436541798297465923972223826504079593561713090267750117355311721529467040940576208657617146806928546866115948078226157269421093869813391341383214010041452301773512480985211581393880763292218709035357872932017916700102998466901749083606762755802977354202959173225895611433616420452144836498243184686440049680906632136044426181662642751859621224436822415933244615648900567751709954087331267271159862032310555933410451939613856735115711269734256493344599467663038707196857618915883462088680896924934188421812501078767991171160914113093664567723453234608472014649049219519836674674278651624255303160824722064199447860266676534984271506699054287107793643701785173608568875053009289464094404388145059283494064187424696975203239507876672157232932912241602502267555792900129430771086391625064185016955312523970885307590694229862051265612380481785168866492264813768756183979170068240448969004584785332572855963718250584738489430225841197424331075396954536494707990687237240943069876650394361813880517513914286795034001764148344450561239838614706719135563874802838833817781532821263183220650713062486135770557366784975779440111645703757996557559179870122702383497055565404247023279648407485661612750232496639311570389378642256886066463793091446493958082872636504461681824789296027690915260641079061616610750456523168654961598893946921471034833788040199544249621054672213420643617714962992896616251196132063438517104403611308372474392489834916062823766607500534867228905117013875951194949712625882482339188037586850587096006040751197838363879844414354296093951656782004605891150037701089881941286202500839450794219294175502514532119747913503950529638865525504959903559940230715161281574579311012373909606869483487216959159831650902796341204210321039894774153507916868382565942013930422748186995802472913547247693598685631116146150927661416409268601805100490049095260678092791578128631561771914797826766050916789176671448220208131512417719746885503126069469255629125586159845711274430425497470560115559153607075311276876426714246050315072120232466309888766718546543222749681043324634563992131683419450121520525414754398589251687928009577856029227812158288087063062805973940447355536048112284154728792105052086088544977204242934410072655306672432800778135371126979430557709369554073865795525819195033027087695814900623193309608047189612144569421750125501210020663045229788212557187819416239173796641415336535112911865014211220278778082329276686726851314416111234953147872792701866450783135576110246109881547981065170712470747480091795053800990011316719900171516960799093902455141189507220575992241021088009343562942112684655695265723118439155653283701229225538487407884737754966715576453298108229755256511535324920444000943564900661927762233944027376710012876851587811973338492325527472104970829395685328704953978947815243532057637887437570407083477526020827158866645333592482258895778462508625168356543531707418358622537700274384622680676709631533454488244706443860176371558806405243804545382104924454098820557019158221133484375664370988008174144468940623070582345540259430120422771493946897382111444650224555612577486439810619839041498844722823383911223989748200868996186920480812916989571869991483852719973713687413294322955151263459238751927078045161709604553483865272504856489074687740642985085411389807975037429042305815960176825690698173855598466800617220829946698082100502947587492219560579990766070130282516000017136177191257238557063086337060504550401231544398848454471421851232066701704440638228726694947713633194412399879394736325855258210085200562142682989551298607836381385167205942762882186340841806180372382099979298216019662470477269923634596439895855600859509276859077654215016413704777320772715262476562853246135851643075082149332035332413171755435106823390456135756424254891796645799550460752944330815353612000302027133663415212482257613771206674954330985841920395021999427860406493249948688623008558895415176089396583041616549058083942536583992453069478389822184603361708272897219014970734046585465963095639294514672330499318442994986832991053735259656803603505785625449681664423046674317020745637201314211428506934307856119869723748619714658248935935530740788329804039068043957736979811218652542049074919046160123438331655570214704392248322490350248750151229959664249228131548651351230228951768296280226715713741463515228866209343449248579348523182588662086065207378426116766039401324802483393283776126932094135891955422531054807951356639864035730430462777496247318352299315408535074146208262257994656825683395292696721612096765641158489785970532170376283711052741449993405128090610010566726013223361575509260535659513223948279707254037626149350991794944027956510253125398232475524277224488762082269015651782784670410129887500306415238778345880974720009860998606191866899619870124414377536256400576468970740516337001896579038611299897528615058506214644725634255609091917908673891091287194307037365025710229226274607488183067826384825929642625261786510133776174912260838856712834254671579604103618242833019306425105192550723490430984034790826151354074514557619887067837129314099519527905597091591355243863823656573083317256298518546654250530747557645068074575791108327860937968824783147541998705973853460764119413848438811312006857086057344421767542939181539584836771573335092157442089199467843197475934719381361154434292100459571933029044587170708229692366685662587785401169852494689520400499023823738897486921331130629206321801412020929722928146235632154227617825725083639520164703401241772619531941440771547702576740498432147868161330218921538395285314555259528530337411195386404214339805253951289075757551043771132776332312272175244977417431788075942455958401921969933578101807465109906400780441695404825568799636860750522997549680921271115249608311324836965531680079912134203868454174895745879407012919942570793639831576509019314207296748144366173600489905281266205142587650120093095005149057408651964778274797865361675115171411560196902986689169021687471762285486051984278696617530673675782840821201504171834821676002204644098542052405178201995929214356472082802710615856317776097538431003073539649338857121358980691736509551962125199412681181770782217624925529797700121390186629128833644650480191748730749952486841624228972876670418908088730546295187165710387052417511152494713948122368520029954985054011292532655779982401390108316626221944521669895500410510754406599683075915806094592618356288061530811308339087328403860655353941399908745923627123934216195665354035158388766436931174593614644742978030591911423390702036390873268956344774208156107395874402100310343162369964765805674841222426171469735500555638793691886691968387725917492599718438608221221038469462898324694320791600489899821496974048131473993305408695960300036788177149753125284034208464433678264617773768925968946978308309511894514650036505763720727851366581073359290090998915996774386637705876437565433595198304405430895107026778820865536390456736297321532301153374253080883249795437913099196224181356386757302706532086719847403178558939621435537285661794776604855805574775224906782855148413376537966837328262635501409922729203596745515762455560316406664276726304111514812347989514319731710180366704851223430081638687557960389028030783268667395531195373605161405976432286297251297320869009197850193866936143584134321439718041469491871003922335685469365758842355596081406128487188391568144920893413641790469897164645136713905750362992103976931114219635650949259574080930514049421290761743204802990951418358216607137602631630552613580665440000720900336509129527829979874791033564899353123057817756464665238186650911400607617910285455202106924506857596999910362902631060577007870133466190116052908855485541058345678563296068982447710743885503083423492963994976427921414910628614415484157868459834555753256904930702010863065442082148169472483662795611545473550939437955691327085376903054449690982704119299315305015169720337426571153726127080340610195841081591956081597144422378751173320619853820070589871541444145594305710559054613693822260502510604403216891680312250010418417551862771782286036075116595022884110420291935612080049203421230119994218541792709539953458985030749960836800996384558577546620035660131636546597308845616402425991021151292531200628955754688684266772511745613241638891207053659984053550035617246470213283013949409036332863147324922048094721442317701381378890727077614676188233862931235424555525951206465529201203643846852354710017590302256126902435053706893858801091815249397628392934015212938526918693838534102024801173651621997679459411603354662031521932671173445760052766270841251851009649314306558035012679270518638697189446929089943882314775026157924943591224041249616569672905753343253041467056812068667761586431445304296190344655496398327217531216980579069314037035261729326487142040134768545313457415892601065701945650022969054052368064743677863624749535313634129934307987268808918219295369684676223783330881716937231667053776652139690684915339766614654960830551648378765948646911259048438659983306497071470864471511159662376458603961729217047035030836201317531198556313218322248024142589492386140145253270448894848178817675510345390360547148941286646562987942550436637429808618411866549826396419382794562536558468965589119149868439771014181655820980075152811755945775860053973584361405937872263940902398980622692829500590276153548163924613491258988014073031667766376080152113458636069351590913533864101530863523234503969458694428201609361910814776517376702331610259934560363561987538493650759616879413043479999289091115445553124585161443154927899211959848874086934247476952469861070568012438385844765922928650678977934642523634673424049755015915904992569351581020624092819426824599475549430852105430974234752767607248018568541545082723308901135701356854424793991944166948382672676379279877235070251545147164516993315963763171018717929494153845614450356757598239310833341933872575365501287288661337320948699765099922001757814266425911595733221777811306545235506527762725979798864634593695468807646268488622439253690474667810080628747219604139301147671973185577211777255453639313017232350507826958085424000623492155486081013315085295012961787711565676714048968342545143014747833177227582856312798997168120574789112214833908245906813018625628441958971050581008962592682261946706293334711163869305852272567699117952792061550157483473054299634198843993566223299568980544068750522408835965412082317408593613157955997885093337796601067875041668363815499975011077424136680244250441551142177899107877167160319444373589907357794770339562394475862478130596477460209576071249493462133755018355828109091724386265814329605813739135841028873225361925734940589793476035745805483409395514994338495385731136807286083980385563227166663448035397724841315458315131322644467102605462990774364332596360891203510162903076788672387577402093493694535936905446585112643020421539860441656992715601464883568684105426194091413486823760358399008002212847085628051131373727332374871510340851231084039317078934648162530632318319052113303649801794110558282146679618821195423423869450495735962088960214290786236675277661973280882951341587088068265155621775465516783156522081723531030025582436868561997845865310664460139222186954304841761476511390397330390233123678352223024694063963806450814182771392385073832377999864109034282920376669922483499682894615742813016667920263775526140072088763532273660267386123905752348581253940200919785272790798850228572393917009869140290602424250707515610088401760918884620477326446728289220372904413147055022387587740756753629827774331768239727677221924068132671359353774747791683029610173549898082636994657573369402485654764673954047323100989726306943066545091451883173114928326602018031909207139732214284456679527517910315145474726317496597600049606435271783837971024570665764305041519681079709808777680132310255979995808965316179226685090551178789732220465902879549638784105323643047003370424478743571627472797795423027926997388875772254981294057952544162397091676357447224761895857624048002879133584376813868930806893188759882039325771351139837707831941390616975205007529909875297737145018560109881623567556313375558717625849517333747677199930590890685349135689856441534758809104926902135753768911753309120340170225832886321200387692225395098181097754891360489476960332749574075261798785408080162000474369906560687960274732773828101479172673083470347167800275994354330118407416683993687600712140214340817048142885439082920203841946522936277851951301420017246483061340069076163508550357320670421497788037506365244985188382263995542819480651044332551390402267389522013026028658487012841402689725795022292757532111213922854424006172365320424448577520478212861443289798531825124225732808935170119855329178349311372686892633243573132397027321605448824569484664095212089267761137984538125263675794926926763474487726305757378117932180771315993939949460828182637703518106903087574275120244130211838102288852803670424833404197808181752991482599328580409560891181980322916154738600294566945097291250274936390906847776665617546219912654961225166263706504210476393989222978616341981062626406663952352831635110058812780021054974270444107298158619570312891058862154410636243689399368050497231919738002068204096542660890565936982928753186268399729700803189478609680502067364129240008058483139432348332280506324848640032470149684075798479205251074642738091426959911512629732044495401472948893157841183202524178655440341543327237611092679660511476980547538102083909666583586451547101088531535155088822952557577521996715127172002027889838461426650425187101448902751419181257197672157858790249423771476744709419286127340099133805255739540841589135055846556022564833582849131264608322056086451609798863124551192989984317417993238152437095431921463725457917433360533498038364157995623946314407299324443919849761474701020238760460470816539598378094238514627222506148921029248720384918492711053870263921306855056811250177798657953815027480133692591563307834366689488754089703538928525599394450238063870202051977824489814712821139568047383689714928678699950301524175030435048229106021919148832870359735530990533179607203741884112539073897211558736550205872294676174152471601751093201214659974762221246075850633581314085735287898988515304362517306399787495128404133776006197048098437713951243585179342205598120655186898603925839903428648294898252460688103097536746908967575427025716915979527115034577829322510740479681552500763602076944084237769973620982454790780972825970184805310928022962645363377310194085633053297574486066028748047649886301559272655386007440754559403070549367268416690270705556447906550928685679680682240658744326464636331593648568494102063400200095381947909945604801411566309708434876833949154986976433455819193483390870754909080486467999474587784722948556391938227220812313876432608578694931849880016632101563118156499456861444443934039529887060808119301928119566729278585539875977693806736335178024096892117074798732430619338025589477087000032760185733372403904365153043149973255146458560706674821675476092140607761976319636976329492676893315068365382239513936149746646331748494779656894095531659655730452388911250719295045802160620862726937636987194225264174610101937059291658710888577618410272633438533263250472496718509926017879436664115807332318239952033946940191967110061903855873994946003806147129515415291985182186742726994666441363148494064737110356178603710453734655281311628900438007064643874315842493860190236507714538046984878923643053934993115955633638881132765459155343933198597905484650254844170906883293581426242989288501148663112480366671798012407782163218177413844127053757238265116555234855063508859760049183486157554724272631038180509267595268980641882141603968960025221265477694785198001315198843569794961239751569961851060049343311711696704319013165075319703280301801156189447016221436495066896210216845897780496792217129922233247406507461242514018979907290989216758064740335344614781376635597612009663436969826661672704877367094298195091849903848536858211602536651396139692149433257421262067836912926567336883408280507533812003996571422273303365437598224721472074648875934619875590154138273266974816464441500948014315198765754581264175102186836631040471301394150227098858570350958448517588304023995690234123812596411922242823228939178207071166341138542627649845759378295765414709856655934501626051142738969039611354566860843893555936309564302430435608215007328728412354449454192859950641116679568668124754500900987607569041652399704795350411121555686358764678243095511849352134067444039827711434590722434930429288885646194021517846876722362425576912639006445004088930169964752445229590250374807632368322299942169577835312818305757573590428406137828887724660799653928958483987069466790502559943760943968315577338070222657891206348841743478608454290101761909850316716192049126438585367752710871721974746339186280154630102826893273157485166000280120848118422583785346471404305847995422830618095183563617559913584344669692006147511534630508271693756037869028325139261097980422931574148402451448678945620346884459017273241792460564757631847555567075175245435600569564236961477363040056209576711430326608989601857473247948747096520882610748788402964880110661689829572597450032731168696078650041205606835908027984398282839417533484871570689661732869785373329858915907846629606436488717327766933711513873233836866080403359032915019454449368658781317302812276624126277193867096049697683372796067975608989003968193531529853585505325156067812274087417335610587268656531158342484376148035360464775351775418687127228323754489012048830598028068595958563395925235008307131058876599605449719850238244764497723022518617823207393715029243862298264345349941282384616726962306195763288745023071891404084892432270717696311229045952346024365058260366051740522737378895728314916460795119883144906017355269638837114583361780840546811504725634455418448360795474819869860625041122662801622628842193222811885923148611295820583639447061241585031362834386852022878781013799951760077101059351682922903932668570706864253451227537200690677226408054718180861808703041871402715114716403473731112611004880058751858652683305075804898158040604139263301349386686583204146014676136455420784323496856837625174146484479048070462762652543432486059333165364366232238519493340720491474636155934528180612539647946076876644368949213502668709609741084935241964970443476951621413730038496639628429969681515282346447755276657221014318476525314693317193344118382052239495725729469298830163261239600782052181264154541350547221607136101472197498480374601948265322230663574816204146530366261294168915058021925102200882935068894334985241727088531331453628957103822588756920639468351645434779601601193114469673880844112396461863841372158994699412445414653466234289626879235041809521363754074500113898980000375915727186599148489620792657255492352636208502940541852109877567740608655960086633076082894870827004155542591098039924239394304124256098467995806011612464828435225101830816370055215913078030155923321453235571405925444242139435237486679421940937483519678244610751568638628414478060328679949787562974825037874276354000685981849781616911169825662461838903598022333834301684021772020030202870618160195299404283775706087422818524830493367330902890241389638509750569564674956964726073992281415460169666413676433897267848782740203127142702389151335283461674913827087062684472767197977034336148853518063621438661372813435590630326728706297136345138559550613246190585401578369251979862409170098736988573325315675732466425055617390523862202251014694499089160876606450352365307031808571020972457889295859604878104955585760455710546321368785719180714294354738190106938373779822582068506190887516538308711992547401013730017297909257492781350231059694794121392946138054455138857295167223776236547939113319855389422953420525169748054307135642940216218424145738757101008412047299144850161625044305936061185402246886210353261207096614401294944692126279897049009669712452169686098044089306240432281238115407283028538622239609425802694690460408113716854643372608951469824135370090023274991761515235625507228059437846739453790164861018529149295756762225838435103329107772870091670336890243582720248376040890559299384995200466910270162659420607853976643908649483891859925239079242222288650560792831656278227304420884683110096489976732328861921537553925339380481354691459844558989647299719041543063170490441671959944299628761590362925000033787771650943545165646044428024594316941608722083588005521511274183589830961053557800314375901798318359175528491404911633101177926865156941850348352244155153030509454671021947535110517817811027824157752679561576180673013327818046852556514441562576005520037644894131479615157380116977503895946416070951079929396662701878545342870122235274914920376208563316447271159914588066645190023463006713784452274485164920283443198054830503802242165906171665450746308121465506198547627911651353057695273682700025562995071056775653179497936504241186157492068513116182940003585268197027445428940429534140313456298496635002198897181987035626790003290114035852576490695185631492176555873459753896508632157602605085020600920663811664468568382022355012623510611464460012096677034732860401315215830608345903595709194387935450905444402770650716509825959394923027571567679477048095784283036547695891484669773230612670295021543823585392012181038058677734888476517210401218652084709557687399372347970807268287512511228666287892852805687316446102041331912966141965113368108259259146934719780057862674144347268633357725032759063250226512818362006472894782405296609431224268485544071205316789029951351961722450963788794573814114328639491712592596304620071720599991802849446302111956143613435822100690918625637184098623329386634068538079062153424165192214484072212205868819813923642214329336097701179888944344121169445518727862938308264282708369604606063917873186889843637411290451370781139095388743927995596322946125681141180625150962878618839339079999455571609364750477178042560458456317771977074846663776047927465134632255731125294041439960880956197795116944183359067702727467137348938972291881975661407734192440699375970875913684193432925078584230777221396470423455719971578150199971201537684891772189712226617912769525344439175766856459220533471185238831525556121964462515818786533852176747068640019011028942713910663768497096820991120074020477727911748890569397637463336659898402038216702309185056779423103489889084936624606559017027859412033831103225313649246889356530361967895103101480442906708281224922766175102377573275083283246024603250601544431505929890498447183743738592473133835460877845986842512585769166773114782070484395954748980163065797908513871530726061075644505367454077547290423590821046473304035764411360802458044992203660554007979449260124987771581334586703391152785025416624234431153737011191410805836330892728326477625848183482465136726309556983102193920492230435550632250882737796384206575253017704971290405003817428637959300148415659413817042713056926088642730046533212436459841451744720462933059515330919943752998961075028295502550760079074220090193272912778131156264412773177380041408077628958665601404857438507558489634433328082961312900159008511963664403134415628736699111335623843040533888237290774119912081373695160622689476181017325405386951093004001744442295192104614427218190032720958605518598323272235134334314413443920173383230103525675700640994768356969474213674247337540228544461604455445551841401829503333688451599816047559441304070000473515038799731294899251079308762628014215785177464022950099869109685291166349636912714222791178498326226485040393176308898094717081401034891840016464774427812646055959717301846958909570692720001780798928234950123085391853618622972113712529663529316034592510249310418821139769334146812143261590440558093091631971283373996199324614012040373026021151642842963150700127186363346029393631377911592736159064514246787168649521492017897389542532855500924221915326658346235941913901931371049963426088356336177551100751713370163736408962294499910807952309112169592255076624883339820607174624783013080422194988410831767666999714500482744008392230844062927415464122401869595013710323447901987975569755546957966907122406291204495678115231904492972903218874557218301901805219644725188906104029166346800413726421790706367668429648992723774556287760475886745050915120457624882222036584165307151876310051265381192515106742920965649169831365334603641863172989320179479674642759749095203099409980223193346045210596143482824574111599629308902232820894099518073571592626532035201570669693252403249272203510519503228825750461330982841584645314344257314975145430061086599596881120780386812893292194873539882184788710318476322012050779211616363345242349113607083398662831024904777676242036677244856123061437229804864368859550860165128917211815448559632859387729707418320128671372003782236522075054647834931480921192648296610229499591432900409494816063673313185835331414877019159282162883075307305358340069219590211676032210506885262895210016569061143948826909995658348127153827797050333360200120132589352395692613878567701877647044428275723424531844856400548247672612559807962608705894581491202453813802759435626686334098269302557692413430209777797309819999002205735761430174415441547001168407934342689673761712929557509647593925827616955630874860769273819084423894617237133844047603822652203217580302663082850641714482410324359791326982483408007931778014253724596280927230203015589339582813623101284104904888376268227667039965752399050497606230537748191728694236514858785506743469677506424643468725145934872472359549713866151677357041883446321792459294798671055945424711525801070814817449883084485309607473587251837961384114365150342217115694768652295955624851956746799291914069465925768571109933682507183143362270284041530612084000389266366782508422289249352059959408532577716230387974230572991595308022523138131893047699235003881028469486861182797589900796268500478384305551797903902870658043111620222493498863606756668937052904113851115256407833420405655348736672778466837318954333740694251640121029925324438039269193487226639547996089992404707031511945430126462942422016928257766765155117798671537537139078984399754919689155134377753693508682463806246821330922824931589429877241651073712724640976764502571493904486967543893468626464089856680885567788188907957066590083520117417130344486360160371698691433598240998390664524579939365834987183343132870290309550615851363064004109757111691525349350234422531240437916565160959460902058695665334142412770688433169371477452977487561386348001956085829438902275355283433224859834848554606746827073362187469840514237450829678992424003250488453288097016715765150026531628597067533396319059087251012727985420079518866340919207103609946686695171531858596307458498375175764331381882587901220755580887022425290696269768611168851387748792312750850043363071062342987181846684287281874514116672832087185906102182306063580019653411803539082404235609543472542777110660555943677670475402455656126468468649960517578368563935175679386734590648481223159502693563565676176499331887528768605836681141518185240363905174258672332613448196481215818563603385493397742810386021378742336824343819879420542161901612652729970734418116358797638841326427327344721780221685685740012033953061559065369229406974455783579420029350011904518415163444084986217345751969507551674896872596847122495429443190898373202694181891687630809658294461726905167049803597794965546431946218638297474403048311005415925500907782416919683542667691661327944719829476197178965192765935496724484423279518985799562965437473458825731277109346922770290177119422756866797962869592543653712903036768174929786310420605676145403034331544288827809105179305286566508804118614777946115789758296306805965974225520575551239252983508003685735836922626670082571266355870587857710663323704575230614088380627982890893747000540496965238247972886171765764449871822314276617180167978132776800399821009730882894277441277263905431040895188629784700473776019067693052128265479153053592373007307451054316710227360442340680565601957347558323819853594609595314481612343595068868217367574783743458268075514058099618672307010539358876087535250439885180742364418022339727719207849746377203167563771924500126421074609099390595059652300763952617021219966751868797727947015380435132418779100216979879887978215556507451501559213950867522850008287279032804922580461392722727067641936488840736857777057269698548437916598095086814331758464188668312550448370101020006211826195421474909123089743323667543330391702164791531702712721079194795973926601137919947086948601330072398788397505549976090017220152078873322714529534222453146105377429582489763747111424234036189290893670221201538991617788954528108904248527517064596770200971773985027316291920469251325711109728259591204697705407201981717182055155015326829638823610856844078588039546789177089747783924818371703515563131306258441441800977225198311785386048070537671524487810120554100164289648112535233710513660346902466863724158240215294174784607830905119142485233497391670122865166792637439921154127715773836910048725533851908052467162468465272932316339622531874384564331015432092610878929886753889407678754692993476188333908776818290891665129184104880861505837207678856150192656412495890166875578151728344262666828654377367869106648633542154274381487550808106111063761095096905025952495611682122040384793448590024702159028423882056397268049831463317812479963768740193511164419359779491188177110102144605458285063089120057871947829502943280428197864912642893749059759140583105788151017095405009606261265278674682834218813743332138536302771076474296297045683618014824892933641522338943389776690647492056550181190221814432031949189883042030679094142857240633775074595656216222774727607608343063896574805540734586474405639412899483995579830934460216471821304967995273691492136497970918837791696876273377295547397341162733343678879760662651307122113188653132968726611054411853520151166965087437594818365483662208582087685375830229938787058550823030935771546505837242659847038234395767139403222540741734102782936567331909781631083453174763865168706599252072007885403745654542418127387345049980036133088809659714656510575814090942572191173448907175390227525079812545807878499571166922503079025958201773929359345455030893353541179178377953268750388362693141362858196876465991957422407681586001986344504237174091479042042525253086404518805268821290309377622695476409579143684009345181517773490585991064981670270035963933164422966750812362131450781497635173697462743691297216692539825844007538984562467066351855312215501419340642473298945817780959138189130396184118123668686119943689850593645394738153437780948984388786292996677062285732091617026856793944719486448639009630010514543077205486943808105453439214142674768882241410189603714151306500598346538001832295920693365305695140989842217333608106288314186453670397311603997175403839407623804317519544455836842522352323409095076784108477809393052956952898787909430861705619292411153549146795294536402591342214506361294953599243892219069752058785352376681963148268681544561197412433016461104895533159244477995758218036716988197998549209271127722640919963235479005905836632770337257499437627461904167980846377904328546785153750171370184721605233029607998651016686085536787292119141342482740301617781000814269210302607357214941807942952327652408076746895468145990077360609696156038157771995575885808474952370240321436593675146592175068570101232575902837956298646911117243848513510931499315430841881737202224240140071181768787032556390281955367258816524385793464040000887482015313022346417963588149737099022008505237229849712997662147679928503834387898112658314717650945809167798562206633274392016798019712373576491980351541563491293383605386347916411355101595731646300824509037945607985945725300986821621071312135971687656426993132047244283277330858031865906956727599524233896168987124300197429406304515382728939073956267783545850275701557495584717644670397967197352424298056018781287192938318807652921083513698418414936009626043307426162347324588865019605778941922591779915779121421267271764893263816298107009491694892186898116721932738915078689140851561127166736594044688255385830760669677824158484431657847718168516133327711375564287860974403532352675318263065918015430883472318044744695167770161625707277118098068066071361350254974743563540824032163574194507326867401202335810980428827227144621376543659172989340235256745506967092898791586001170722832787029447893071429047477794930460283109925588318027884285395497586897029600461649669518953494783576542790438212836341035056822776090218346174275147216819077828148951086960950537722398439467782415464177807812096385903588877331974436982352224954074804693343180568127911106966276457371479187817046708026055462277293314503285390437067281625373822877743106531492626448198350674342821421691408774247735544984749991184569054508109182412126916243949221725030625838471637567529426290948752986926445351446875251052545444469728592934496008681638107602740373964279704910308785329313117389576328450252544525700876940103061908327226876024337916023247899260778099696721414099899011152890163893962243694003872522738506296694603965600355091784755759679792175217730582173634207531362565885487054764030924097768489520765835735504646974261250491781478873610418568341011943330203693424095203897889893901756693746891858863439632333142324211584709771045040752372372025074874102918883265533266203904516549167156729011775232252997377047383167698744576097622928010193555097491384155989718939910221535342928345176948219557812937964207849978447242441120974426733536087232806547876252247232352043574951380229550385763582441320533531459965986909805454070085585859309411729603036540847023338919267051349453064031472072296084443630453112700929173180154417544801539463288898126560379962196067148389865782320878860434708010844969682189540514204785264850681457214561498650746976401195366505799842587425004812458990365430913017145955206940703644085668189831957703242063049038928002858820681562917539744649085401109953569574552307001663574819882955002771359138303986886427949882091649547824475132354726602387002270992314835284136173863613127280308035610056187633945548066832087899093679174725185358014450294743791132670625624676399578578293146871942503788956441353700326190300716044708373379102943948285547419280139493696425648093991231693091966475683550440560955134119113848007470371968444703932361173469824228555460944236518472340179723026483331402886639716064831134121306855724624094820583876436488837187848150723969696126934472441564003521949348261733678830559999338836625438974194025010226105600188585709422499780827053682414219955347738309060370910185951674276651694055966172374238765559593965284542729247160394702834243081262683858444072140694560449399534468212831336922153587332393387994625096117183083408251951638044760168574278744075947387874090313901257517113922965839055112079097332589284021059761587146838209636589732423997631348689259664263818517312912250089518317512321901540889492912033583689696176762554702179226091893478930205690162512531078515371406686575074149193452288215369369756188764232168575225090467999136049496928132039353638809610411015676431945690118886873450936548945954953548796915314982110150995187843021144925784480393651956912049117221394809094875520512931907169061967511239284117132094434355586814709479866344159646459176215467324829990067826617718292715296573149314079467788364763791194202579102701617723199158479556488151216372828126406576448430367049046729341762860884069367884175080267195902170011694810913659670919744578205354682785431986907419640991107800744760777158329305430614773301322679959764747230376488212999819474186054348845575238731633682144528820135005046415393371848462895905019885095000905234096746031655814325008008980066634867163041027161503238241549656019427598703666495481638990659879163137405994732352104343812722546742368599056810977651051177586170891277934029118331962632104306696900584466716451090610160325191913335249578052851628515816333501581956859147333682854710360630876470317655362060517066584699911362836299968451532143583986272653568300493311253878197575467841167107094569462241091016424567071653370527825405292117402345811038699116112340382098207520406900828512539177389000795192267129430800156776844071373811702893980435729806988199367775922707655764039012038636783956150572938683092806449777106305237159743363742046857904990653734708432335620912958525751338632557572096650899642266449210359998702289705548377628377628271809808017922702476365706957074933761402197045236206959116063144002298953075445892173704546608966260540485644574974051144780966608561844616433280680614595882085240710038598699711467954700204692212015213851918591871331196306007311581422952186588988348743408967327526474151717264385342078114507247947559920562145874345355657131902108413014923477082587451902691809678898958406658845878432873531940673782663709400848039945279905018827869489812511108267148629408551888943946064015291692681900392512856958345440240354485814211615741715038106557511390675929630011887597249296259757393953910194895634630496456103517839630470206725087476376941070708277910079897312048800793698579806057186328104291319810784043171673580467172801257672675993102176905998306724540159215542989610241367493692961422854709297294469945856561976620298232378626755953433540470142763950033501320202698981017076160173311571961394060198803299488031685974666450270404607186522853433762818182685146746570745570596837706081892660693281572777187968276060075981591724104002929701396064071197110937515419684420372043551623612171427932343835881423049436106141004242449934405554937071889483314543697043304160362274761425472868968554087800771984022047090149021190498532881814620762772477554889094623562837708720942885240511144636654179246531668746342836226122355005418645785033609265543241455519158248784886621976320887789195984926928846555495299781291462221943711989456357524939401466772277906669310714511458925586739745314886357671025869778672180499957113441972933760497791724508005620030671033126341896492756161109229239461766189664557127711494530634274289448140828177671737847464217698310940686875301562245946738436959855795763160887289815878714264530344943207636618803670472317194509641835190517301370223833716976609595772970433511915351293238816245672382611006676424662348790869791896818052594787763135282003958974081730243078573023918893763922301105822339593346380477537311938429431939195718410304305665171941924941648337197041935704927024921431083617037895778738101301051364907154178440261133603012547901341636701378869474517975367706270638648201609792480499124642958631150655955441459197489450719766497230946537986754345894346975965685092702925982291917430966408789150405710840497856503298498848715844459684461233704093257468390932213841987612984429043995512566229664524957602816927944347537334326044908651332645251281842743738827977604251579847582732374251992043759766479575602032472978423093087734080191256212822508744680984146764029969824478975385972912294783090156966758444077631494838732283909116667519756087602580431611282013374831448817187077491502253697313127560967922822286603530859413651778794221168040709190344620338535338955983200454056149703678169409981272087464786141769954362869513083212095462723497347233599960565578250002223962410717026499562344749827999341487460409730844745908281586439391868193324696931814864308990848016718152771462545990769026770223721642053880002362255756767447762804408358694070498693857796797264058170798066987615050718131865998254887708240062383328578245574947625267555359216037944132330351293048992315969731873733367385077500569756209037801286619563106386990315357066829424698575622819683432547644690291072583379184741177468983693673389289829614668219946216604066822370272946211207100174350157269317300207578839884319986046008189589110346179132693169407421025901162113160383655479228756732866916320519724933965653073346733789059828848827797493073975603798020710504405098928070005396595565700141357743220601794116770190516221199712039820235324934046338689426943128397105873095978635309817205081893422566026940295428137444667974401978198417031443412607160947024955499935389996562702468510798258498887677678851338987313265190533613848244778268594879014162361266097849669376331679010234140269472203426364655925002811323828751929541307469586456894232940384367576841912388281511271672641361954488492974721419920689993756873270287563257566475051206998592800135015346893259169827351555850730313212298276776338282722183514010496999273400368090463590449200243439694049506757770717960822377182831549204124639651401576363823504441982429618083999058165780969669145526706905051215293361851092742878927694775056288452750755394819501141460515261278833253780644873256057940755064265913536120946305832154706224250010974317948510841364339334187371937006332841117273001260912285728107025712224343824375004532716855401957545226016794965467488677112271328676362010196378666014880243239797460314003815855453653680574859692216108020681361003343659908317601704697790739827448024639770755280085936291947188429903334187145528732787152560856982030026073638219893402988500227039170015547186513460365734591881086105410076919932504864688985434843928335012231756197147399010360269846746753919661330335699948921977590729232396095420793647679969309984413202442631470732407828471875526583566801204909026927688981165753137626760717459835743383516096628364953973068145682898334774254667869310104449196305418405279010720877533781673064845124581535227242066101642766668632392662397776653772866479719102482577940305911365497954711424430111045244379535955118653639800872166184617867391982008952214683469704637278145143846492539039037935602801998988307342748127258545144601836479964517491903292001545613590016645019537273001636607807726324954329590953821541947358717964290473157863250701320637158780535192316428856943791921072477492714038273588817846576444768233465419828297704934470211275142746105094409150452850525333957768126416824948593102642034743824298061588634565273498258031836885378390627226317950787211954345936036489445526090434269533529298460163169399843623567945570675023554571967411607972022771751340235766988364946959645594491423787780518219078337300978007415036410346680766176056214326458486754848015475361547285444769501005374492999138410459144334647918453656326475365246139213365200069561837774963136726276888022698138440535292541068503083563985945768718061196300913253496431367725586665898981907123568722337291096648261255286721577329708297288657653097947175606744253353755607350025836451081443435189454227900286103381028242824896091154757659974357577046125051773211071446996655643901411205132882003050343059910832380418770515338695796786155561009706294765145812528662125273751676159284031153709751918858438342134782550621160908204089220523051760746945717635056581178628426313450443832222592002174628538737673108392728075493958067072066344665108556721852018648315524140479068280152785779712189470216049251368647681839065962750775379829087894400090820063933157256446743349660855713333921789812916980069983732582867187489536934993715873199727287756193952469274387606972180087685194214337208456482232822796793890368012224098869543300944086016953666567270192366596106849106087184604185152760081921279313554896209381944024571165609106097038970222824450091835240568480278310208436434428458229781209609839754643525192691914684041705573550143995448830798740693020698788992037452258666283468964433893282902119998018655762588792975578283308797471389301101034095906597375061881721509018714737691334003297334818823841114697294889711812015017162347488757309286569684822238679721060048172915363782922515699818951336962979791936580417556303680853631513832082387327768733912780800159390959930774757502650729400139526268937218986423618747528933126691352552674871950112255206423247069507575814319980011160232195520654329761396036864211328932082595460499951271728565732893747999119286007902840795714401551639825652668712830572901213657392709169449989204987372656080365096244106603041850572006198943711688320202615231749545418214533935433127877482435948889122689235101014917490052755082291547935377405767735385218954780764545104626183040180843793007904803451924711471236452508258717056145454918995197709001039377823962504132924504854925822366326859495546042711486994545196540546709347201378564862371902685471209243907242337479874498669279345757015396578941600641645484185855053486295787651801923426519108716247324651478737247786205526035432083503690454913643837821144639773544652170459780597616032850235366435349073189902967457354908263277648131623496559870260227694345294056472901629912670242545084205152162245701311013031016225806493351907201426446287755246519314486281955007744817949850103679288079090501182413692047604429600894089342803239818839855829638992333658548136322972477976464943084979919157645330743337869094120488220304058440329324932359427159681833752847614183037314856462842438656454338696735899712571439234106663352195465934114406470433499912665960756499480687737209753135668632534551268796442675823554691211679842924756993005388504926725801096101441876133056941762201117223345357093495642647196571730866689535899651615159040372487511909255608344838834061240756183746776446436805403820350465010255758973925700177149420942452781071108311790006767926523220525548263588280287600384402809198460555292948956856194090914606073934319231060344815671244045325259245394466591209542545942305048507805428365992276141134126948121447953638315220124221889874028117272684515925445686867237291250085883748158568613659584201053969567113479117763831486952785104760828347097578338444507561293131132795118404453117460650501746747739112237737830857303358116617745143838609250112296383591834692219102545035156227267146610473606778455272322371967029240503310525181537762556020488967889494782631504915184650907723654753054105840441775903228670203344158373250619369884626580866985648757965159589325585250242460954198589126776238855183963765637976550412403839492565376742870925091264575793814678379120510611205595626451278578829255504396165731150579057418501814363093098616394999646172855654188884903009255050681555480334393891550028442927753570265329886178561914379148664472549053484610678254475205205017321012027486264295621722676026369751908319832069331852102263359342290007448468368266825012868597338062128112544103434530593261539209386408241545779182139937760110821192111022213002391513831995380047069587896750663455692950290284186385013182576843924293600075345711363257817328210459453892268642773715522052921738390658235267254838360555907782107765415760896179204196298199020254773991714868490308536827000602300750985799940479100975445048686236222159485650700627843504409012634161985641907400956060613904690036478920974464633279770208064319611525988314465192068814485942302340305815475056483994027905372713461376006327571301796676165167219580253586449713724533125324179353474044216661943686980900350519653535105571692787097452435720912948817043397442131966317508243557846522489310692863995730537890509989113956457724418403099336994156657337759831725584978619597179750734919607590315088020424633975668726294146494586411816787063837154199887448522117934127968306512962281625013050369427810526803186820240561026476477881536219900749393812317305606611813310533448983240193698989654751553598256069552930816295692684943727728077366256523215353666083457977748451526882784580528358430746184614044413751851591221674776827565775409477654886787947523058264554799295967222444075740403215195492625090299742150739538245393691501036382852178317619965813936874897987179959332608662170667970274955653091154133560248508970468662311665960715833642253279668682639107351721217052595833677357480438327201957663662171086917517557827049048428668310218111143389338546585124191666107321703253593688924250607311017639239429999951613469849007155505774736787930670758221813988882611895465226752180661428694212484486599163940496621754541017933456710117745840709420711541905101103981632931820138951988239335253456415964707901344761416810648509572644917929628068420877709451977398278475809798953603289116784998075283816242597397692980924566038691825372118336520812169019824232147872761956685053145115938276949298375091644849434366603970284648394336723607960921125960497775528402300314540443720526650777555185974500737088420567031867646541166622543158022215505182372769753760221639025894509187614822855197762052557598763952789677396324199912918166177937200580180989114539044812269463795401771869596677004893190666364010908005926065113417322118355691978239238149371550235496402146759259946631360837249408403236622931258885309560986210271536610811967574088490785896280661997202035098114837594529758923791460123702093469057055173174028419531153892324287445748454077442507509348804260238171838691915292348238882815963577077435983971684811957105246383190550256265178202399401288497684848315128154497256805388938055287274546850828831557201330162596258722291713168394400822609559893778970321163066377857140421758526020532769780193801488869237412767180019739546917763184645211481311680676470934378572356201415842357944065996796839893970260195460783271835165006100211153865603879721121374237394324639422766333576486911623552682554729110286881186214212941473461643095140890258249396258928537654430987903186403999306426232679371825904546890891443743591273639869378653871607871397603131719454486747190840197720705955749551504358079358127546244167213006848457065589272664236937915998347250596383982630727147419007839727274659763622449913384460736998052401380820918986693317850609516865485214071268266588585387159213302031653326775147373794424052254862753603434231311037503741278530612351693326695200419409602830059490904091486444608908847765469870532338821812142658241032279770998862675110835852067529368228886068657260689654597452593222923543621186968030087852969121438081891731209810449818968941191587279236657622236898478480716586657829759308269417037569745465459172152281914316849905630744422346606972407107023319704151637733989949995821292172403957440930838087431877472552723918395112002759182258695078693435550089957817788834288553413084629628871705858566517510102881680960680242883660042744692017027316397788276437254326732936109872098540870384575842985032174448519893385201907460209492197968278248509742463237326276107175836944628495162748471713879096048127220509312386029791126800825067258155076273097300390236305372975593762625594048450189722636819801710172206236312539538222170614173353414155919705238464239054649478245437131608077364361658127239237765867044283100631502272602981528753758137794483490440023686423423080160250464161951512148887534260424682604696866907023699336399619663157108668462042518556952476475896381494634544548952875112253222172505782781892946233063460593154671976422271616004579834168461564516285064778939606695947040039702690586006971021841731550574511463634124972126396705527037507506041202501883450425686145639704934104888229291294161380571968021043170719381220616682095438958451771339543447754112166004581039953246051962626306285836647445757189010104970047063206181458789478865220204444930634777109947094545041660988207932103827081785960950592407873894540139869731746293318599065524870641471732955117249989279014176884884690008574489846570705660871550304373724469726468352025650441458854140179788989950413506072767122113452572079112814611672122713915525601061116487025261896150750189423667981527003300363429853272901543801256276217667477977100175824403923945147422500585751630997675090888515444946145723770064820617276927346422852656899881349267043504294581515366202527028655523910831957131636847778746377943732139822636499790347086786220722236920028873651711759993550417756692344045420014938547172193838850511479463463037307111206041156488402741868926485445091554804376442644045321731593676533269827920259280370468470976810747439589434604038694493766742731546396807062688900521240845734314991949183216969992536726218425095896387584622932585255392231731640279832799937920548859630906686940603938169753941676383118149757182789832344098591798532983617678450610647490212632488381908828096839456224820896444762039370088488552364951343447350287195935961027273653120983267880688449586536486888986504775438247449595693719078740466132339816780741452959236918727636078960602743464235146020359744207951046704909749134852261706586534078581471310319252530531356065650335693398186385059129797201806865832953242715546212408299809939447092668363748273684304477573742163503484203596211950549481430879512034119122703423362386882986212714548115855486669209458675920554554519918071935116121843550759987925267428500094116994824777470355650995131332426540437767935281659715161664994428133806212199869325027248498190989635962927819188775362657196446172693309435165771027417477295709133186785454963054485293383466474514613092287003064767134645681924944834156381100935644012862616755443956584159015584623007588650652479506511626892220949430676990079035866247363519869953132402367946182898257305777126993392456007647271979817913951447257690506489263655913454939196208632194037113096111916423780810860430781898117108646238265475576265105199498506827619545588506444386888252316774816363686306315428028905830811099563670100347464931536690742841703222371943392610329737429692215530485479946775365413579982032259469150151582639221031035470726705439285081490113233573053324909276911271233142639896040037125738940712933072945374473716573721906043137200977292487677228491941658316155696997119247974022468734398919605303478354586584968858142977136206945043931892881215065222643874707089304825800027418280789428675454161326874189948166440393535608335097066660225294834878511466256294287847205546223310817219885713331989833425345276593542506536216112532764157271998380778869049205888157264390572189279595790932127780121353732863422551945591932509718635088351762633044752666434478388309936647204072871895048916190999758494707131283836743417205215987315936266811342200973736510358773467809702733378015841125996686485167169702507681575787423357848345617871855287310429672370963403878525921696632395285287068226913114266417233817460199391678178446740886988291104265564600244456400846901672397118765390871814032943993192724632373389418880027278823665639133917364133020375636286244861596573418980690882895055140326203830739518355303778026318337026120647958587167786459516063315876966949947356041031749695108588330299628068363389349400670382241501596123444081634072721676291371837961966600281184866736020559401137434270747150136602785800850676835418502360485853732176719818677119849212801435395655106969199662068472250297181917596732723752287768556233160128870883442025018374187689653818687947574787313415309185528066025290197182917232645370911649028992204851145691585529832818164229261357566451061163413558045710442310563076309029595873877511094489001170684944988598022995412986422496489016538473632757393403787898191405762163127436711812035015993340417071573606653618271293211313956921804408581349720351322150938423567779556028210257926480110937271137497152756426513722810052257240193118986109046273724626695489684432894696186020061955920246387545817958809973024171954838662771465608357637910176752364433075679391450499620040658800422193520481092193354107296637499037058899311997937393671697740875311489028649723966394027183203123504189880973709308569929070734374011648578961421362062928717432101585902763441210690018307229127615326562899842672265522900813162581893978848760652239844750612048090414663042457046365968200111162994221228971802423226235995033394112377080856119772446540891436841719551196488996201965646160769075252081639041670557550769387011816106094427709970433140728141413305891438967674623707707748368799236920707918685545267816320665898980790834960573499319716337717854367110956175677743492495256254939070116931303536043432293789756535644428601621711920344311079064036696773927741628780672528547162454568138749552701507921138036718164234156808683601149907105913420667118063662606357494248241793567782638546947565837181083258865423700326719746157808615906049277687404106487130657629611506061393664282946724972717346845754715700410829140740799534070026274882039514999794935993519791730291285639927957615105989590186891924378565783309842633275276875158270549523228374982037071792201906525804914180641761622817079602822843667743058428361267145051540390969612075470595295382171158614215559069055389368789879529766652699220184908867490790550949182436667545798376199152257243625353265168413219283720122052439891600369812639545004761705510635464112977896025327680122831996380431695089609916960752128999627601762180755752230151024173269182465650186773268521349331613307540493046497916066447739497861974080501668135492357231790963120860503475209040452409704187442769945237562358003639689584463107411334944026933642565600825564603406385114594609377325772875672083387240403403355710528087602498411086010494151231193221048054670509275837949744466607058968943069914603830307878177202602105940971475171364185188518664428790623761445332006831761515841465997228875159976023389312157638988553349504627316604644398845884666296476236336053879429934389640724189011072681802553841103247254337387134752487790560607357212126324668415393110302176386271222125376020404161964186530440427959749472288337392805590394675851312546084490122874277953448608251706342125756628997813145816382013862645061898230677943016102791817565301985279242326060010275464843408332646813266892006977951081853434561951881085568269185628415835966254550500755189625137609538233121893807206876187524526330793159644460876114985896964896186474020968245065358432888128282848340230544709808510367866677222206722192585755652347603316128469141575644994829189460066390366900192726046969497783755715204500857877181082644710545427233664009198887962344315087754009698686743033963010217117498925639429651709834587695345167997235232922543882853028716802335930337224967997335404751634954530243890938313587410228281235059952525085033054176786859458812416425195520396263896353426902645777116145125051199564851898976137736134300631439464658303784132585001193351575234393046902346617520890817624583532939259979222629528171914020585743833002763500373323061652573542260472062743066897424853301165595496910482769989131254300611375233959741613832752022934426430256957921007942020511087535912889182394880573738474168254213924265757225229819893518173312834000653819178063594631831940770386629000958315441195646535988446209638858318204791625961873186647737533725041208171081513171074550161841618544451436190457447174930339509101629681499980516356015256311854946763912425188671519364370928712605363243771860502819879754921405220804162428486928735250675174638326104740555503975915483838047613392198817215676824361350849819271021622163123878203360759916865441303415140554915112056331348484000580985474044376065788947635344850112745139580338121765726497807632491481038705372184614388407874827021998228210351105673120113507678780744229044054297192923517978436047572395513463861506728484336165795835351657850101225536706865304230363225720974226806440486111899809975154857997858265772427105985640925699665549400793460105113393859549032818476508203375311872486300472438005294270499036910847236242225323428288110297260905939242846101454918020447372316992404607573839958023592707373880128203107798985051704851932059095088882022700701281763321910547046330625692881474964850398361458647696838465863091825164945380799154427809829254542335938361667742165020569558935596574509224252063103748486805219081034258509982017059563290705439097290054118899351345839042684278516097535815315727003082510110163403355733586509560223029245446193153959999696995252284456449379831935490885384707695896587427616303321520293918265204925404533626943971429626416168654039543564016773130310384092535570887781972751504689694636865944771834282769972850971862707583671234916583613097289982361965101918408209725471494764111697853294249912537881655539790861736688826577735959721934541077739087479796037493223320562727433049217559044752038070136477999652056158821059845121905727061920114475141400731921459399388912323801132984862037541405267958750437195307370604311952641182162824288992762122880042684138313169380590375245580351572177012744848390747574844659264982126292975017892688938337641384328724117092625854687296873565779482011822843584859612187905968458598136124533586795399096434498115027985640159553457396662232488993139714886806653036136362051401356155178592573489059148116759985085721775298691292906374230725410858003070041462157601525218842208268601648712140908131083365248972057275460398903702295313320823925615480723808409666421289498851018211308176415463564455493074722536875269707596810040193949163234577864443234381206468582697906316747381147809174932563932556006822037673980481395587619315454711493571209951291337527873147362928827134202837562730462196902155077014402543359728810877754158696897941427982577720129892946962001398329105374640860535648840752691995855629958234896211720791496227881684163014343500448736505652553355213038224809913455947570361044079812689865334442136055185139708368420499734579157121378012961715659263160000410819060287871655782208478431009405294624337921606301392741530595644213785060224222794656829999824533821747361028783624253348150555936151763829496999546255548449959267861123578026896652175128099704379214891553439145173197609903721304009821589675135737688172451682909966738054837414363608146233370141770489090574759891447907435257710284266211655784367669791766055372556317740585738505999616362428955880213326994989794471103361825048544618588627215122689229885022328424054555244039978412011018352203146002481255237770752519873657481200042796433063845206943746336836954107883240836665503284864517434823152805895342410582563244116221872668179319781347535064698715921743843099100747172763432743343070085267490083070175773126189904925217578626096853994246165312861498382621241507813503668767386671227614949439123817004275923866464399157119570895092127375801329856401553754219885035348283143888036605793331258468747160914041515895210048978488027397901111065818321093411822726841624463223076426414716608773421523316583334605502687823670771253954096032923571342380263296257941930971521783928901757113818162258068796820453083208533902897031475489804990879848798032855042561781903503116206250367030912422485987815829639221488253093854536488580120993879409588917034637488730511057025377252812605031717432134389482918178894177538503295867471700798099976719370070180263218769596277966511924757604772821617306429425677814033375042611353294781233495221176148077414908753424797086574600457239109170168458013022678727503900356221945842108247469954672897176306081630441831307801020292484569950892457901621929749521202583688725647103295183765969571024776662525941477376025575534677026232987123185202591173405399914964718129238245657117258484308793461005444956101137511809480630750161564032891043136964636167865064983926053247424713825208529426089825898566270656421858181063881990846982064563658892931261297555863500375133282081681290931991985249378745703516861901530713305119934239306132725886912866554734641816246055725366619122728827145022382212871227991843668300968031691148490484392927789053575315934825126391838004967800572798059704731236042833362318278289671064412580205016345633238527913909954812042798994269851542131703868706922827578119358957828712613253286307866778817595173353969764275026324009559079160346592577504074678277870480937957644699451767837897658341569134672266620004815104673878679028236491528306865818899148034757737755508494402972242766241740007631009116524965116594273642973452925579324152254227087078107501111241272072415411385816980116230520843432869219871092298104233082502206072138427784725387226023451942371358341112472282466397395739002589844869664283464658754919250905331104434077918433681831869855679011408901429497030435404107223966904131787387588930884584527529013956137534914877876201811530952629216617862046810288864177979403126324091501391578955412638769005974094203148667299997501168783828134484089239638740207139915091109773210734748828678379470159130315585443945968876933883501307220563187678306395283741302115707150370702709672565226496946264037926283548210111496690254686060939260716853884819181819050402653277531800560957461864352172493426165921906728580863706057564170135136068047857541466892103812220409478542719381139282824619945061913044570891970504949771671324225908176576875572873179582288807110181223433054736280409788866375752412769105073524208645671002095194322028468878086443008873925921586270007596377523514293832245628764508170782470871612200772027752555837887315920004400555435827085208277778198520917726646568651990778461881300590546719640204771705096712572638720955777246647668392468118875059296154872613468599620190471326594114966055075403442749226377369468135141975338940908133184546300828161415577912530384518818267053438445773603428081386670426744052038998702894808359490037044147719870720692202364988258234832426095026849645980517099060071134019683020116201367979638464210872050271532498979958901806908868429154975341591173015078005706308385702820848186196260614790702037448784893621575079595527786796316262599605633924215477245970314465306447508266230523236924052008135941445889574876508341975028225729439993355079170200717191580577290642984609353661442063837062986647881672722349845552281335996472945306068566797857215588291500007566303256145146541990039948414087932504244765830468449629789046283747937092495543106131388237032972707942348578907014913775400740999937027534211783635387581037412194944869862221575461096375652113221482481140992375815477905067413051595400516439141238208986676999604282656331315735499259503031363068459774739402302477377000791132464994512261880755279343517677374771212031514492320767764071389280746867870813975985941990927443057730228281902378389722836274793512100111817483068974750521978832331197445617055308737134070189624050562741210184520219221656673489089515420044593351672594937211124673038024359735121020371814276308001102878733276296012149054734745041219779219783676413552354499595425294599598149778619481774105487752552757703983688847489940649454686970186595424347099639360105212076675343451349646298572921070939669374229284983848965943365763882341887050355203103232759500849060298323073799184093399277296884048746176419536911362118720071124824511793372182714277606961066318261010444899156332269629380062909448920679840155207321876319427750893213770042222489308151512283851357220771215068616638838393008725820594454662731949887425875404735198673299365765127802394203812654534786364298520330778679143422951075473211186825478610744331905749387378596635220990989137893192592715758933532123110038070059437622855008032465731455937289688150478917722967529204225451619029340376942616334196474640270144918439859260882692617408097511026717452231723187362744883287837973856396072941796287372990639329784050077599100804061218963238928761627787422010581514077704944101849409001676609373642474905709070726901998180781399154494602946077337568158621660713506090887983525389510476421526827810805744171650146657501299437003995778869724406026614101359817609878793521190312824933815155894564349995613284695535793480412816450158042075213103403466693099030914270148670228255238517876552762908813552822163506555044294191522190975009502085375680220571626541118392220195941528550396119335264679714372011108842426059980356004535760507277200584668325038526961983747832312533925862352242621223717749658981007928651334568910015311708997064285222750901785888009893321991238602492104116214200622416157076570700232060650791166484020244274083207246899141569842890158165866214464314733684715407030972645388291173628050233832442855541657081836101493877337557308394620045235579661525116644005885281615733695100598053537678121387455942873753315605919196684942195247813338774332399717826047230205722135045166943638184787108746952635115464140952135867148497758455668717615365992555449840260015162971961050371205469654020517998627038011321070479431767552631395196250265198934645254976619301559041634766307842484716619223516580075542106160550228370953687030863150462936989733262740867150184915642388786656952790264447580617962095462393933245898844006652684480556356735539355429915098041152772391517722793594581837345789036386859957924998200316204495897581742016793532372735287662000670135539644881489659395390688479323486503699521669722456250338937717834258289327579445263553868633612438207967987432077753361274825825762358918536213469322857821408348989029940157487933774871446479054983370366527401615329229878559770216904569487529012471587482241945971801835658853227547639824263774764825533281099120290610118698125445170709219364190419110520736589806239807467721936795817726991391460951241014473939433307126085200458208898356445588114394560345650701703336019899132850302461578986283119912291942433681294280399462563060516488316800897277009160902271265576576601925952132992938490906031840811800446926162353707726469581067308581065274253652450252134433439755367851731632497664571864138174421279597491057634048786754023771338098264208319431013952845827355699662974911198990510510224776963868921638861464601936667210981564906166774370716679479065854664662144507907558865783675979259482851747126854384830740316812545705380844777327916294191156604842260352404463905668443178773231295463805505076881298002686772862236880439275602016193436616025783688428292523604753011326487126875296016548038138002533482044504816507459877015688843368186943058749944052166915183596804179944094745279401740106929780081062944185099178633219482462740176893743247668163881563559143278189758623154934230262366449639609223270689014242440054511483153569271267339207561536545683494641128391824273850106376123944819126501630793878931619382284556434417865612726386920576428727149778105344163567295382547472610078364775890292789684268353601417529580652409926636541037705825014028839721749661221978375985672779489712594041866882144270907874561548514985593041319149623829542086061518099447840695462635899376146185086845901768518835422189658201461395625920121939674897681544961066152707218152724938689280160865579354708928601462204166712100087251046376477100146317471833109224342425440221135295871393746760734392520597534552422439307397682524642032729219480571399277132569282766090744192355514367734015611721114695366207222351831556425888688037417540974912712245664769810104142027294660657652585072805738667302625912751619405956659242341965350676420403394724650549543123717898490865945766468307314304389003431024411274819846135940900852652760168786490315727963089309198755057160147189867170957180703656348075147235986098267369292640284426977384114646556830593025538951070878351560343048683222990421185910697634639556816113094199413747418639719192683265116237944974266146755737126445951768218944636805391908796199097868837084721598544072788832645802289153866258353851634154476017072808422853468601676224186622891149671684789552880395428833319062956700885944933482840921130488198179800899860489536630682415133154046780146145838141257332051094269123728901626832492050001262912686444912439528784052585704532786090776092962000503333199573082401996620674139199291598153690205787692395440441454156795688921678460285323438606972350734190674847822497059009917792816529106121623745180071098023871927725944364687291566184864468966481349155141765997331300837330873424250487984698810166107764577576592672655154063439484481225971850209775480999459458834739638454124510903626243589699417858625314481561188073716682091034031319098608442339396396928316974075343717464457093536308238561340700715794796510038993297905847129963042603210584900311524850801276381035994737447003332609149123871566167725106215673992374904773651660203014624366444655925919420993729971914942811797297775113538094592003892312892394543168486885988223160667950641165516272341674613563221883623574490886230357935934776850045087708009819155481068861926424634379821335016236552772339589542589740723830049588488119141566904207828848883783248050113140708431874421810285328558199773356023414641751385786696041085116753236763633304995410908804175245397183853983136102636879938050167903661810734733041820126475301046398863167296226294763264056582327581131196660422635951646303963522690382394658027027680759308237700117955740581965064098015919688619355119902895194208660924630403514021151558358937435985135641163284086067268181734978876445978127790546901017053399856059691095062559282630338131416880035173623291055607594049242702879262128040667111933192776480211365200703843935374628733143019507646657858686352459615080873892617435105466468189373717733012151332771022152165862726343685943140511925811268926276785820613778678722882662354662325040232119960360573192180534156871668838165528920584277062874020289338832030588208451715651595149587765892096699484106912740020398623780017822839144593863659667585138513691088336511012238985317342344247780622760235235598834968550718307177792543055641337937216542515633093866343050770421902634026048696948675212373715384761709451891366923548051288526344843570528930795473797784924529437132479328677560965527870340423311133600308532764943360002809693520120749036285158577066602076210877254675922260314481526469038863499577319952280096992961979099096005886882348591411185606249004241275642750111793108691506020506459427222379837678036099317858843439945458907877514135864602313488317878828597183732033568018432910516182589534992062743976692319804790977630189385472863988315049602553887081435302695641379142110098495161113662103560502461412853316753078131128304510152701458940776938384285517382080089528563398852489117769536832686283154438324772803955383751623277452895854798245744282107191278700745466071802403734733201820400067110329640520605789888067954403251475411278110299783403478405308122061006535014222538106573496246352739325868678011941700381818712116475085569626583723901281112681669559559077865396690669503108717558668430929622822481071839864750638935725306660961687572767838532683023964478982694402725947775703588416882755749054261650715985246596869073204475701825332803796431109652049549369212518504338203074597661459381355275761448420024015715986962169326225414343379336947161193070310377786649611763225999563052168607823727372503951848027422272688772419476169721274528084391900891045361721739985423495608229594447150817168009298304103371907251265604357199110002880386021980432779691706394618988690675860487590084527591808329431447358032392771534538317932199412878535398046219147870794080601878418309377193541670966912690380061767800500073798397952451735731923344396937963606529355126369146853350720414557649667272916416099732408996954794157197413796718545791415437431678365959562964221787225736150022559792814141909985350892454681706481716008170366728069126883867259746101307382340428450170056101368328520940186527889731063553082595126080812113440293394306882809107380405050928713608007338028811218575523033852668264905200171015036397709559370112410732092937966519721047381673705037308109806580373318710866405178049001991427426289730873090329974209427603268428596295886871411520195995928913045119560220383185179408255019473756123441009599398096396827487004021628594916418145330876579397658693061409999231659180483374812935335921937576637712695538226909670136418573799876908653318314017601169541773432799201091771960984102073266896117811526748237107365483738540209553449293003741404455403507150249852265487586797680571274848161405327696709622701239539516846282401058423554088868298719675083788796636110517026495576390347574646522682102433040970452508441296567186485814377075976017118034454310558611244293943422551353589986378134713266478886904124946662472336991613365669058771425070796720044343981268452227752439182134627120406819920117402441231126970129026648197761015608029574925030046126683670888059518072898048345280534553995460242873885985223565990386284205065250876378512950539258852137509321163638364034797002913546920963016425862544434988769825013251744839949312892385538305393742150275131759208096753562969626871142401476213755291617206261159568015132322155597422824803879380699871847239902049916520660803210804902773890010891774359338239416597849407550909434946115868773731134466172251000089772492136727136628217722890459440832786729537462531114822328847994914274984468486754511099489454184626349191825013974009735654658872538719855890753097472973022403987365156083142155243259470561350494510414457950273191057541670802623869653944344766451343127083574266964299796786956938650506239890184359805601264991968023672600751528345616040267559647929257724518525643518044020254689882492800120728543413435895351961451001588183501491712575313849344268657103288775554163939342034431432147387735061619459604791980049005489662112605016666069990953632805169729356722917932315908557528900101682481399425262069817341623767716649154463067153769000651018026413858866987752082447073572605370109761126084227593356056367067402482135307508413944526293683494485618646073468661098830514597872150593550904752419064578670388481813301582619560622840571624773981198836159887403190470704226243394716957794663081922455315921573598529638140059723080547802182076007209062265368627750018043517651818158419580795448278914433206803646873286249129790636631992128527130899678712336921866489896631125902821297618426721034732040249185029119791527588380584609954576446343869753743514135357790462727896901679320674110251949448307870885406920701032941352026512775441777205916758974850109994284107375630115785294370532817000122580562167983452896194452656236522751042218206300521698030098003146888785702983933705890500749845715035142691646048103222858435083709165874172262932929128958118429429480871412690872580846620008669100586332850647829123846453501297808231855625514574328248947983326571617896093793015382595297752383813686995409562536144306578416140233581026144489728599882784641735123385794160044231785180302876592737894516587557461121412372629723437190232200112276573845988391417987558080743291784795109553141661165428599325416788060489291769849270708500391132284242240797489995024832989660108980279276036390420203128776202757209881933321259493785917110330390171236704879537677981970989693614932054000556286203530317233734474035761361760924932054632585958553731092004150020268013380765567511337926107042621656570291155241112805461508445196179141353934559084202095499309421091276406629644153008454793859298056393853419513843234248091074996356514968512462888062434706876689135763431054923254854078804213922755744108604231067532152610300337203127866327702888988979893853643476768679596754389382236414977550954748755125167930406874894767081809841638455654879565126359184267212237317921448793304162228589554300898502479409951674768906354862599386219062170903039749038400812321767024663013292098884100421263064371009491648910906968319688197652913376416006347261849423183246815810934837126887400684077297038750919180764845723471649279363183402707613047679873517081744475245412394257397390582989008718277675219496898136411284263965270221176024139665730311242083866359191879471031339431755305001233430963718605968620916425470188998846116370159925124356365477640655914086175705917243360291389338094903285862964944983320438710261110957831745711372042217792241180144732308958509102572010979553896835297253823379877241687815430481686118317350488202815774204450807625366947384310525870617123858849348485922685548955270575767761866523329668409397429271045398381722692608086801444558783440909644233381431026814855850257088444469825063938680305931046486330025415833302572790552446623228334526590903571883640396910076438119046440010475630800030859343312047268137865205442528730309925018175768267158962203426631500015803949151894430842557053826321050779983053615206526645102488806027078800906927170482053665218011392181179572205484323409524851179243451300195944740708619637382437017930732312176113296805647342720510487210710197491874990353779436573842648338130361199015607458358336126441351263540749401520998594403784785049270148864267018365919353423702821900864187227497430470816546559672637345124890216189257137412155193724744674246300360194949670672272322987381538013846373083067832693305379852439875125350527189244120459372972957830357074160810900090669161953882862751968821959813987500014350699153710233753358665832151581144111309206539032264260288954838009865611156559744395134242673970788488599670611596853960006001263235830408343698803169817378164711247972529560191101449039552641174824964651265630589627234991340316883759325483084527046592354592768900709154763583531123173623598346135875758824611863246584680127578333464986376319381731355438598405675795868348396258084946856973848947181252164598048359908075803363045408036306412150526818959061981456166621972109804108115322989865617954612447072465636821727695337967182813572451906807287372881321813908539295907360291597546335995274436238218856173745062381243919819592367353679149584870800800585105226652724846552640014149296292803481774357178863253489178293072518742901592571174163778065870605607261779137504808615354422540649286958282836209182104307140154088516491595329954591760269915880647195458178855451212134437397444169500219057467066749788658284200577415584474196549161017478251047096884085695698309743648819447497759218342112697933196447196101793772898503908534663740159027492134177351660841615784619374831153511015579595903642081081241868439630464327012617077720164242462624664226866852028001191462068489487426527387381254471890137059259393253025616192216695766085158385070986326143956328332566441975185112068187629957379476918418819388481110556309547527579752723779875681206883049058322710899168213871761206518005145838407201919345664431627071353834771793036700292991018208008248188453374425017371032173630348124756237731527450797437513428973435860002231526898359144486261733723490970442068711234804117369620722659039016276118243008572061169256117918763288628606803375334265581446670683700488010562301680083682380364983267344683040995598941364398077860167906339772319764659346919779969374536710533665193627729004069657045385069040465818721508308078601488189241565696051280937819642949008058772968429546116300586541591608546959020075688754987056538953813184570066351277329952030952977051612939617385617637416567150619185573504808291548615415107881539667680423771554662289266009104746311232316083689943325297263881817616081823044488410785783672261925135104354156435101084237339198413493710478975260220553311405896658895288149249350780486672248137389508461485255911204911960941356698766459660387638516379757063252719626102723261137640435296726434950302210767042784428915204534784174878491136338971071905881956892052317712853031679884165244033961558370565249132203880490990616459205418373183160964059545339560148411544439858254910190155688003580010563409003067719657497822139247695559119178678344602739588915459062187582021860806343783268323637489199361761935898190389232683754520718955220576055956465395885954868354424565205144344930993798743210570935534136267230813182167189172221565750885100058996623647748875614540657689244635478837935902880575664776693720653521104707413483073309036303085122247657929809983912500252659855554315212374298034027502166809197537642327820408886271338692361426781439050877644710021629264794667451548709796248460232495636257248992388797224172077186555017250788009637408888065731936753851880338762685796883694259033157115676860470419655083607212308277367458647115628116397019140610473399803818694981430735033733575231300596217499566803177476430031492718841696405152049342170124531759272983290577361734154990120854604961986924099428343843234689788406470338382839409369955416375007869581746156227797992609522378290629646668069834297164337951142670368257933895094447800887227193946477378465144713163667261237435132812244835227257327150006899212652942871218216559631697916066031178202323569930408653450891060457861277465747563054230106168162977723500905406234410067576918070700476378264981113364727862976274769829244591735416533870287246533284260431767371468633213728487894005839113822967093104993903241331623251536117766522223932807315386856052131838311902620222426817011037410405006765677858367589795819010297159081855122613306972624193414526771335408073276301619611730479426625393356768030959911757143411156597300002863734812162638798195154800338916242266906891534287894201269379502880965523009519330677579090153612807762561161321053915618826738956489887224447527310605115213307137164104872842176428027772456856280308283542175936049361974923511745606912279034783189148122530296553797363387927326948530051295833137071035908367857162035393448366721759517854555104293240396931080559421292551223865667396123698932425779371769851430340591177771905503760080015147173488782867998034057927048630511519260836615940030710698205419007775362119134545982979020533143128550274545284090034712395539100736577926229226305812575943367129398836637634124612401188451660411690330704439795144274808869666343359476510853729756621524295473271193739370362703400582666629650509453343864715475489060564402440699009913033124275848746180213672231784801498410554656248023688185205386798063409370234643195901493972256262266119497698132562716158654835909294290268192600000365928361762586758557887773544095881476356951384764095791212152132305641985768301916109135787182733079347244110629832944726568977348015673263784358897927130073486367593818331815919150348392058649319411519538135522776517988782587666236883160809148193089760793687242407504448538725193576731382166223097504579298385666981812565963523102818307239254843599385523447273771505278568131042186430952124333593816008108748710812273793798331432592882493632441315839823872383809498527811615126748229397927281562011994022822828874968215947271217396413458905046256719864242883299632794143522075458105962050626874851816399487209440276207770232554200530328651761481221291704595220258127700215201917337228151695089463225097429417381844305351595155692892916744722141874765590217129049566313732584199904385922090699294216207345696965370492843929163777925969899392386054042419354584017062503476252412723056736791146794897421856449866073819372959355475028452603269771002144034754809648028526652821921628850221097959836101356146167694137342205072203681576806434588528832904475040460025817484691202028875945745881839865047957338489822305276361858696975789166764659467653694799889009521657689435346031939549266508397202861739235340685390399078520874310295709099934844940662137123000498940801235867559279250533178724895353072396942533952669507426827061127177324114737014812963580687040371483576061222064265915157910706187738776696085234824301879767834185496811841206420399853783328665764756575229272666233682610978318895516885824483676389726804990304007331716370290532244328372834478617408004965592536239579817112456815842045737189132779304433277322191813371409919976080778079070684608269634295952868547426342728158835101885141723441565637377987051300209794986812730437922892600789113264352770374127430868519845989186745260363390699030886621999776973395959859570837720969669950154717685417869456312703414696170266223237986433712119807023424805138430420929269548727517264491982163769015506382621060643497208908912420981624387700116401105071826320584730271510303779811366044342066755412920995430970379793945024622762317746713634794776458818450610140515784285839458091963553120163070835083096764148827104341735065301968506868880399233269192485386857059102732444633779272377810380557968577109921605150250604136541895920394225074538814405144139635569727145934899071421296242799382068784569094826438636869862560135286450858275551666004863300319143345162190070391994823547511643408983786418804432653856306696041155131105038289699168103480742119270979618526648780291592709496324139499738615385151354388428901617577762049451382869570851089441056969150508489073636596649965016303994363065805085807403669084116437631307946442964819969195592807337651697845251879948334407104924493000285098432347521448685936074575810136694375660833806882318324011262348008775065379194969353165636363758977717811096415273265870421836884373380744600472171982910600357284433740488021375928784837089978537889886885842156587324684189784933843163222542417142300833234302234631482730148116083188845088324169419325159884876913970340374277372225240800562022060584069267919502134885260250021601890990558458609968915523416537796250339774514729239078708412688075765383597450307009488708287221969333558240594426706170480597089836398843386503952643129436023656638927748044330857708549526625145100856177410066280676034579747218511940563824903780658363823956663987214272819176313578481541317596514822279526365236121121262124150102556052343336073797413341624372802624872119840678792906752538145807880540489986366797267175630851599753554904367284232351794091895711421444587827275728590034266959303587512532257973618703000957858271652172102602360202844148183204715640900414699856673952237827978082074649208223736012654193014268320402395898045884768886917193171863909167487196951674955738482233459290818917221945272521631761461174759764545110792944014177394128460278791470551349718093321139881677470860584174882263072983332891692360137318243244707671534896269919340721829653357068984676815505528414425677183805128933383653549699176979118248903497232517487790477651081968842248791004657950806069137852666831971661594923145795949905489254156746682731408575648521008577221190690721817818477466596523446828234891156551729481566844214053074587179358679639736619932075369193594258837716787286411920982316549822702042119228733564932549003184524091907665420242020448408758468494517460564943452374600876341153276278540593902525731003830020898749878234269859619644242303434800721107485165247684101167996822367156859620581989632263385617699087067835359252462132195458143648733284810271488647885449608081576097116123561259667757632431668421572433702745271946751511932675689058844200370837742780122847053218149787219296273200198678654326751985831232008191872944274687133364758812109131061551094018731207656101571324585267242245602011301547142426308529076482745875649040858442515627314921174248212521875003416875198517541326182883608242169045554188431926995862272396978633333117569914364774355876660847737917598462622075766739784543801219358246128613894128297819926373697821956272298514047226876558275570965479353050561559069800733669313860823353647133419655879882344358309622049506289558607403278072574344462408914929865725710866637407436149409136366258874772181295233883419521196890691327618649705168330966959256042753157935700306582476399849200526731382222959663287929166854289376922727374145648520856358611232411459393868226919595400145958278868980865485529660021739355903026946070103354240010689765460406834590746882008107482145140027698771847683742696904539138096130651771234246993479407958205753937520790622523399874605258388343005195589477187255239989835061240816274894998762488248718595193850177613333603314882373264128270714956123505292468270955185663049702729149410940595381050591181918414674892190334346268452572027561137862938434909641349853758861195261148031035495013868194190543912664061302676223949072270410240191805603204454784193345835414827003454942234801869596733824331639171159758743637404458126615314420426519209220796498843594903634203575338037582163541462199425114717552714519828964290481110342295179171777155496843379504727373406927470346442614071906320283767805212261508569064629277130918031688906723511557773874629612995175552449780603171134205919781221725543154195289233431092890206218976951539376023163455153149218775730603192202658805698093249916435222845097463923144845153160766355332700543712174013575411299124479097467871640674273413205125082697164013600607165868101456532872057034786956865473038907773991739027086752970297835743618146028804999241830396595640114994088126273211318211026991860289207207588279364782912029164635591584718782059305454921605518386176216509356649757020233113251552857528244699134497916075425184239796715588772931839590796162214090663583131042079143796422958757685885112298338917297560648026574298193107665062555117740739166940776749017953082456065724418333953677450769107936059001658935315517939183986268037274814405470372031016112740367271284047859213788453496955377321770464887853466277782429137478288265990136639528230710385895301549050386242798296361054270257505595288003164548179013436275500179901200793394524232727936408270193289792585117112582291337527290828437411958392694089316744873209471550580013087541155024050267038102313216633211967939783654479908234949889158008961649578194873740434815640632230965089331019992216890737706218815576092148265185336146834754926443172058285689603378411248167475333706598879514601977340676436733105278957320915257967196686898607142709636638778896648856778691906246270911388599977201365816427319916557106314743668304173698718601440899335133817177046420494761675259989817998517134113341703203809325875859280443577874631497128137967769051018388137179462226600447930031450641242322969459374204223307677520718073124898202609767478888220366132376742586905713310481547408004679562707248300576170292887953325121532339892381855336298810611276840706666786618650890419697204597118045457088689405405990586915300547618894058853025494952577021058670775061203358949813364141240930450596653130796422691964843441592732759878806077794609043346180774154851718626334733948822619145585882938518377125273684669392239169047016202409175243513806586338042733202295882032685806022470670825129787463169127495286952971617035957970359911381599435380769781245132683589719014154026729831676269544313851729126213923830474062477737032455676885183383243967236248227009302830745731629199179295694179600749611240099763465924046059206758381873276288676982251670656276906995157675494792819591835143084052201823566027991486457829062684591367474303236569996541621891724183967151477401584983897406004559129274978632683540639107060393035793277335523631530752167875679341494487863079626466768549576555223814422998310818544386231622490784280584041115950118646902654548634920899232416071992692967619961545164970724077974866714199483784737976900749713781185660984745064484130857006182175860084956881899685031144771610966235997115467303909961865272893729770133628581797708813495679545195359866732087662340430831476293044792919374441341070623263612975386220029106335155402397190767524909454417014618968461033742980345501178309419439304282173247303712601042943715248538799976802590399551625621654672323647633501279054463726041269346429671494879332242642693924566942701193865490602593362827499561025742417720345665609099748498747684124785198707353218479247530583296145412749201040111546551101648440344811200228617025157815997406127544219901646074690451915993840643757019773509979616325123435068044401823196174416180274676662272750113691506827823101241339016931679408848274487117933846948763715740263602270389637990571153092993386462302667925377147729510491212783346102924937558784038949966185936403465784190932839489823292111910112364598651473838164114079744457091319469200230018953117153429648182559857702228340535862278793409460704185406400849051843395242501434115883089293377751382517876279338950887562448976435715404873218165249422748295896882512124148883093175009732830586499382226806633061252694580648563238099266532450432037221956953741614959203530607660211433692430763595030685191237168395848924899896572276351188854582303150221419362986943826847643471019414353524974612220276940196054157032580620346773954138358214908265006288773706226370923574599589324364390804410216739127149729635946919037010085091533255105200635075528026287732741376611638870500530326978769954607466494717123759151595997520283940779653289923152636796598248905551635538847652855740760120892585857266964776478075013490509911818409123947993681932455507141310346278428893355282255755219233225245550071258238485931897991146145339284792124619663862938113307729453866839538702583445940799477225035127750713474758173397235416875076259433853968041257974151139814744067340727250340966018317718071577999428228256823347799438168219065042120426531525240289621986289806700921638096612308815800496960883926266884178914163227697151812131811540194843456551761329940137080770538272721952540713489208553409795560929239933021447965280186768713924272191026790601802914409820965839814875466215910066589964226722471640079312709641756619748965626686296601290108821334607158564474268578279668908143282982769713591125614911510947644322940370503077323212966085346264620071369870509293715517665407262934862914470997354753301574606076405881818402728007874961024667758189709493897179754432382651556668208149507076454644128043516416063023854068441381364929621974829115714918897249874925286245980003710505915550126740797490586411772302826357756860832164759896966307764648467305064790097704191638620762739091670003947101694851409379598716176432104044723578714290522605232266534707875822772269029198316746766358632241137331051158543474265075848318115160449096352848347713194720182740568073180399125671729725172393539748296508535134759384485835354925770437359916278968156816599598872478992717200423564723266092956063347283966889291784464507904561872921840209315505621139689855108957204666786982437288246476807764606356523484413743861138804878747402412927985368513866920560794287941551975828603374264845609133624398452499835880895412833731218714963213669068880210453910687516850300975245036976854526734616263221603475377606712655952950658216754456582874494000467671590819078288159868967957771473839742839489394620076161365138002490322025997724564449651804546354353308385576985553017566190935742828652989279235265162195746317694332575391252465332169074239639622885484482327371170869546753565467607773643830126657402906486371739559265018743745257993724119496239668271483015159793214994103162032212028218741661447509819725285212666339081229629298523489363119458735719796902195092569971675815589354042412294224710498366231012697925796255607023503451425366477940589136180070919495444731818060224244779716010139290574675566682842623869749638477376157479527590302349179962916003100017065307136666727445169680056448038536555108237556268417436619987677866163829680513329545326129654780934312763257632662396397652469333492619774050069092323906645854914527858914571151453733298030045241450745474056280488093625887158326645529763449718598472157989032936469983115942982696625195578632504378323540462841644594895102368665510157862267986224129327036039515604394470401646135381387495204028026252332844658177308439708317853576853130401502822691219630626823555901406153692255252141029843248148123531365644820336710935882502053583409181374325326113132252060699952389991277597839561836860974190625805965605688008071286618298067951325134179269137364310062728136130414199214966872306530072330346843065401412490164092902944592447628484966798222195333008316328342036069261403466565250448516849011768053183525910798378194514761898782069969484610477485714681145587270347732912017502856089423757986185649440241930916556455179445340117397903744937809181454457163170578535231830755890676297013465739219596597492666784805856574847315988858964451784356646784328036605549372813172842513510172572298792762150110284001933802366508094045780988887097396310817792387322582032004031775474005902256101692449810852936290130671740788661756058607821432680918661236276532477447208464296719201482348263738586023109856826778067641756036720352496024535984209636401936763972134263059841063901479998110379410591227925824267968532435095895558210710715207821074771947059448362005902139497840131215286617457692456970265952849502122127998566151461806065134793770060506048761907231659624472290253459595197314233762442148531420916618994593529368277726666518342766128991671374662715695629765970527305521882152211780404584080143826874889246395623780226575370328542544199521055759078536370085571918609161679476033868753883411500328343037592651353281550864525215232721853033824454388045931604519815577603412862233141151071340814993613835033272535827706054988812960622938088645808824143564921433309484225108402500755641046892043876759226169744588400055555463235991368164574162126898115263300027510255855965779506029505742419485792644718362990213813736509071979254605342169448562874454681239312078377261179074200367975083188937843814557313628423537893465418897018341822802451848687494962641181474249843965963240544224884741929637525416750751002434927316761443810685425788656447907281177158063340455754352477707744271364426786537457527925164168455756823752718945154805179204189014786701747869372505008620370480272605305424475998415890656611795040735275835199614036559246407150526502826217042669591437446817143303713910843003646925944080885757330528905563735551474467630406329956504747806675105710008497378185895643483227710223297802157107933791455968742465604040985765818386139002146196456692734449634190910917819258383661190630048579352300772934588948579899709439202853292441247318844073573882689714320772963023123089133671537919200675629289045993490265950599780998299091280010869386302926477827194432958300797603412258310212112461391652073296293146196693487437510186355734828186996380140137983972315600521629958546589796063304167643445274606314158058659760970755040033994924507754973601598861394309905361877425456108979012090220204009082590825715785088852573680003843850697907299459510539975872882995457403396253660804808472665674710949841238768868538767282688185390671163695204055730432898813949698281428822135195981071151086098439575547436411082390968500788803969960630062251778518566977309622575043148711836568632738173039355730348021325051698341562847161958885338099630632750333361011624586025860974496105173241184548837357760394619058910058366315848418163479619480562816107480864085621605255596276022464769388113347703467032851201252592915163152550740376045163055391067435303389866588422468192708963887746818080966082140698705352282439731122442111869455763770875473168234029025248474861249223113063417424217864509380452016079900046592059424614127779680802688268044610422045841913587375839246089509247076311744499999064176204093695490310303021537859991098592170873501745750987723942056780786945891291673669661205410274930404707116147607882446354615004141439550148741697637556243937143810371685290401862022305843253948396876082675241454278638217977744864641009835886522273693546406349766983551852791633445401428130728860871360170676138841509558483607988670539053381746837760175441903120177722271919161718761093020462998907827260352692667136551326866299677407379841553607000198313564558637718654232612769255183913302463405592205351074223467168813932506948182421747233934782816943937572370307498943312706830027307498365804016600975192496876121548827777670268635351537596926768904640180924858526013363635502621632029946114392904307947659693192598945433977710840958594940055652456272860612676740519537940476672766200059559451330371841334758090934412093267077496872852488444551063768209026254150192744257804615021530966903620117135353418491334822438686943567086262362509629180556507737102520531298048581044892026481905029059645379484284531380747526712767606207197984023501086455922110665794847962814787852671863099424725697982022941738057939756356319839137335590152887171817888808207974050868837778422460686077896670571792140545842340406481793303226868172243935939171379009367182277273557019086075003795303640014957451750211589401896094208515882321306203410850317184774111049191479420758772314794263056832974171827024351855357432295936497366646470631546185187523585950590189765124746547830810805347895844427705689028035304092133481537035211677823918903716475230083413428520249142221488850548524094203948194349220879813101723790767237885842175665505557385560937842095736893772498187410712195557850271969651171519291401959971806892459926798581319324331691385249047195187706557491721962592080115758168561662142751445063175118908660734761162234367098506242750051841799419636198198070743469257754274208754744366695899442824886654828263100495556811245441522983801793951195620357109835713829106858537619311240239229571290447761361676734096665444430281645042769539276669718687524805986774884657682223682629694009778940499601948751974237209416101497686284513717384742050278224687269604130357686649863158237735675962383574857622663224249521920833303611431878102317512555786562136998514236107091884612750889635168609434093170913153416530860269401588688094046755206943012440773045782111568697567080816122729109638541378878484672100590371423208477276915271561739402457463804601418328895810014869421627884866173079334306333626224332275890852797389414783784952885348377734737544557584179319059071958148028889892481883735699270750512475084179397796100427404260919675431135837705292228039527847379278256652605111827394531717511796386873066198810098724410336060057707740222905587390530806767428214757279971806754510016206133286606331680853196052327173465101298180251247804533026968635959184088545925647366442401342666603774063620017625219903156755179995087989918272981833953804269124643616283689652570091982010226375293701633247119122062186213463877886165074747967219558099069072179617555910418694966840092033003811060307402847953017900214855981107862296573249098199920779167583629613091836633165590410870287944886085505349858399208397751146859862165794947822266156862842638654664673944274662169949708666201579595758730495236286879671113317511788663346008526721504078127258343663149196068460744044113084659223590233429204560938263178919481753411774661317778785384161249813552573349339352412767194993272646335565503737657980163811519374848226347648345766183907245634499559024622568823560283196264882190200837214957658093884676468702147881101893720472586279222346182476603060567690470544397380190741662802820608591941484737946068955269833318108033630636350547407927358707396307449579288059573325106573401733640303592134810208101632402574524140826844745814845113933171013059735523455678765499142832291361441924221966020439365675946390535215379859035694623059559224745733812256416062459284388992550659770021706749971991328412757148084488528364666684094715204712396024198117212633018521841374187361477124702704186063889144886714110260531550129047602111151847644149695791341535566372742797479950796095785889643789145468085447057675470096231666376404426869573856429942920653214401727002074928764442138812546310051439797673442575106497448012974886679617099508914923845333907408274464881143794765083089958269893127525463434449070922424270524448725951030516775990101696665607197058137051733407103193702434574711181130184908781462656003813300875453056075827841093747107187794096293675114307303455062574205058219490268010330702879301685428127783791627738733947527357805391353187328623618204418351426923994840269860293988552986145826494118336224038281037209040721897145507444359520652449793371453770576496318759039467258702783555370040233493003431696255061206279905097017716162015669222064176193566599936452584606207961689806238172197300608182019429172210603164885728605636868661569347212285782336479631228522852553183159046229044063381766252506753499061026828166234877455203234236366571087317986112086921563999177406779294601427432413704838888538729575992949641539010803658589234838543991343122226363898492645473308978720541300513966580581945285366227891077967098797674590844632099188975853786643864234847141368930841954999878294830711037951891457677342167965894087113854214044695806827515991503379854543858976982934475568371268263029760622595445749882580430257154798032954327748329224922649054578050802479756263365153577495506553203800641168750136659243701919411128096638894300429174955945910062360793562052952460277966601456167278198274402092321789031962845196546387000306663279939181109673802397825743318626335055866700992401356323351731296038232312628853834223608091757633817498659678176942979453772076267713709359457369935387497826114626214216413612302602852372070026431640285307040931929484917359480424843028403022262699826169802451543950981712194944744371778873072177247243240023350553966214894465210319933360110309481172638025951522270686232689393793739647186102409654399207756883050077250221159932244147483259195631455726069724239255187989121335899112905865724135933242269482059134529122722993057508317215049847308259885251835479806588750537279793413197352610444927279530314869631542887513121991353316028833153203660832557300486176409008435050254337633536253150477555881611898487067339817401465236774671339254659793872064992530480460364383137688528600640404426296317185250706681953256179212933829968702797994460153112109934396996900007390649787128475424758243150900528119804949022382660352118585581972355451290581077919040353816361269885591030586217475567170423261768144759842351777754344207865024547638304013992879409622116045751649944072619312198091191260429483554357978054249488669511327694805395833192993068791598010042069529798694844513520669261052661582673424741897978669297231120759590257470565300385571128551448997719130723890334704571803335720238113652511553840762638093182616912628215774705952816611479195731028610024265326631435081764430540176901513206406398641759725565651183444730041557930469638431063708422761748217452062697115263498780152769850159823708512564264417851036035583660133754812199066843485403315463936832804106921978295499819513025035319482061266435394399078202028189070888394977904535295817962092153192949656758999770254138013873742418176997719082561816266186961222142331065596322614051964179860156325638207047644849944974742002578322360436333694842236411761625564120497649265984751893302546371932561866139549749944528699749400194456697353359378835427187691864360486839582981651642500904175696573050664493359020161393819533043905240718801613417715828402031283856373461071977877200673826076828328536274896706318051284542046713749630311484305105673066585068183523726417278481028685384654671782520063185850103327502999326991630091953451328136681870576897332499210648753849782006940362584493642258252853553216412684941972056109046884836879771563795764227082220704647093765427727734850685990145476489776990759480236617405603567074518612279916584991601507576420126089461741631077795071042965171369903575344289884892541544677744135962002302196286744225681103224186941926945940667670930578678758792304149671587140060539425215587969324772483972177783894604210881404311877001402558923409886634580243598764537313461102020663217317164099062899463907874873700008360241041716770604160286061889217534161995015852184328398453240032365658884593085433922842125235772415751773021502768299610395363611971051484012475125895915593950459255617916211517992405339498647021349731417622534535250686946685553019306079996367868233751100186909475924000406602217615726645055639224061159552069658480605610719592727961973854784584307057271460332464326384104578486327645219406072771983123832289651277530842288122369195094002784751015750896108498717173647710836534159490444879364435843579858435420897437933321972807379939786395042163514858833730157932658988096853398771148726562568751711873587940236116575494544030780760221022823550825330097560847517507173312125635263571823956515789396675647849404945104874575496409082008425778049741302435566064129396915478782877217609711372072465881701348029584844973691222828565055558848160090747818814874342922756060099955343803890254338916385987723470320827305668071876501579713703119397636633782471517208465255666174096517532971041270586190935026442909722923187638511233054420369724828751546159392804901825961208524417598929302043710965730807962267508722332927217406594047459440177089203832423915122897534006273320166927419086595445352578376333798200253412111822401998648172850072960144302802328708760114699722950353273952499367442435579161106932232215322476391904348712837121818779535130277165365773565190256564302432836831921457782813086698683590704520191066393682463946158545595089627207338452976912554099766251418274601571654719651782702335680601577465785518490124776762645564815086757298783973583762556104980534663815441890842926682939677176326728129372132874654818589862468467444088149830371482404521998297613902716895515308397637876643549472337640130644609809285389771081525209186054337451562128263812269274712074834014017716257680370915076336739387821981231845043307539414502660867886829884680728343199222806863242677466798209231273501509571776937131592798623663157556738654101295101949831085661825510739490151142132893211415772253350708945243415702437359865287929158968282522819719014075774910073283707501191437329031861260300022687281620997720011265366752104760454982594120949238373934925046054308842978012001884046399281876928886563751421117407795722249835435644624033235872588445901046636368007473470801940484361784030180687150948147216005734243423374140797803203548257245366950454850665083092619019955295834353780943462354094084281954006876505343836666725419060037993825559439540125648135317310352010456056157751489610585560933935523186310309638636182279483644045469487509588171634009755629219338846415682771439629055829420262687694480004621382783543739510237942803027376098977138115799060775883685489717428642515592455435245303879825988199452278972505968482025433387041873262292119545805903210653120158123161426063917636235222466056396387266257634656955042468872743779090210730166929136395254385934495209921602805394941084128620479168817890086605062017399477198147754666449376940103618923585685680435183520219877269849346732873783032149367446183366655457544082206146609617440624466459169313147306156569175739078261255493793299706984082500141675713906839344767526576103622092005788082888913098286516456852364259612744083519453307697848721699451813214080987462990462897709524292493651337400675331417231644826859454175329837177462691213594256940736737732728855982349784200713869753920907585546476850606042439604451474540852700196377625788095528658966311711827510190064857561079289883000791483796551484015691448077832062105035764047363358705225614739572929444948189111999539433079523086383844635356732785276834227317551646843252827370570786868141315204352288576162444944279305922194426744835382563883000593723276664120432195020539229884835201536817361813134211995369202220782146771727046711579757777201273456942980785534737020312122065157013641729935683641379373614639906371895740675859573149551230977919106608922959000021246648833155683592326601014459773189160612445973874919957215666546838396615635929877910681062190102377798098232372170067420341941023750105835914963895552693018331521957444065645039719297637586096978552221254084880533632911362077451506959478992011278322881478677083370837893544455061370599501823277249595529047442451669262706431381188581992394780753690380248064465970811862696135321944165490846818314313309665752606279134888961511969721347047198898422616537781033627277046290278877815069393678746461654318862564222366676446345029074874919173505713345754174233839638504007976756072517193030273065622885549753616646759302490205551676853576521464987895367029010343537966820387089392831756906348924447698628079086646228770862131422883357956802655109309144374457378644819159826184180721926614615183524355752386230786293313970149409690674283627485386209276591204070506780665443318971866477316758983830229206662987079291704350011248587388288950040245593475715425021694039829002771069009132493231465305933642897259188583262204278390207589348082872248631339614939904596692943702521732190311613299258267501981379145894824837420149667858798326508444880710514660716211568367039377686700171139550012586098229054868438129292501558294668816253193824598877146703943260655181789533263465851634264674803040139159970651879276331068199767085200168175917518308362833125318187435194084938586573481781169502775032567054549412828948247360256951615528982868682557848965021060118279657928523688931447771476369314791311340155472380881423203966998775775893035896423980912916123682713869730210812342520772055252230741090013301209402877339852550656529984792099669623186594952190619867019053415515753637097855161316544611670305887880674624683179987294780025486047458806092491362795859593828121908409315349447285622574838371046853421382662030140313322520377949710320018273713371455190799788945848033422461537106745807137847450252787114218393628797552954132761424757860519325941050834215390101071181607007965688663025727870165546292758881693278743863825634550505848547083317526835118561167465131404865834844989492754751023059485708704590718555295735811638805071176817837784681892409488657280326792593427637239897180935376706100717523497308739366528873868962768555626314764668539986400243312437613488044592494789588602000384243679053273592894562467249344242113477603188012885983423164577871824036878475835805008403613280953042446317129973038703169063062304265819121854244348034422056206469073290647164578296481074587305311077887458782678843978312923572533720396861002111423007633503132300476711403516661311587869648648978920309856273753153557123329423823496374009478214218749533429434150107514941441927503415288683063438515553194053783023382616840489425728973747720412440579086836784504267005345800008948789758099865521880127394835384134218727844902826919846449765029153916528104477110863246780822005689978528834242255951652193004237457871805130270913944759091206221782199654151755127106233190735055086143940227018740197244528426647808710878121860091508208363704105927102867851327383776912637439627868236965052391572857514711644673162752709901806076353933071612287753437677724582912870693075912009771154097005398650548062413433056231814756854136091348901493121550440668374270983261763079081772849031171888544675253511700119197620269609810628810586591208677089111074706941685395762346700704453031569246244265421854454630073534838945157815107882322609562938013912985342396705005239182544707005851572868395196512958633225603389373531612208857572636477116196882787138316238750572327850999622779382459471849586758057234650970249594432950518734314854195462332595646327737176529590612115589589907591093201808729309529179186065611228086915647585101376115544380465236271712894234310006020257848164330016233040502718124659443785296465713327835858457801774571117830170011591973729073450584163244135414125655934188352532077310122445344041904233346373993167512394334191603697330937204358743373789424869615031851357133535932837249074376076288477264881201296875308331848596953404717646719820322779239853377752240181128628760518109474497116016752973494105783515763146907067290694418504701217137539466144898468310443304610151358257831930243380320283888122343317453924429538290799237214256900825302206642847598123318347528090506111376470549780246731323643115636510365323009347322516249326760363082896564890248639179514013616833498782846047956331195933141974619777097911315567445344651015382684362653766371700839294251263341859118118104964965385587743967110201029919762785180891580968690304772312229269604633112504517833244175402208477178681457098629195079602228401974195998826295531070754805097467906064649741624127632957894428764370591587081838266482781706688747620221184204288281602166379024768682121038781875515970998164118162710955629681884420257795644915657836148094912170621438602977444690907112759448804336430418064298052727297661783100111959702856190055158448764116372572920054686157981912660163924382753616300007809536914657109395313736596859494586516914494375126882231880299845134001312455489909399802678500715322576775025594622142089717625337973844800994628546490650509209006275079858032571916646377597483880139884082033750069484070571761146682102893626572151168801154772380328712203633553164120858907413205906664926278938758315984104860040114527932230576307751203192712218507059966951543118194237027984464431131589027406183637285415342764163317132669057220048174922187059050168410677322753652064644533950691648042149228961298744533038785974495996430814803563750777490613358537065671791253015287989171144396688131014443286548054683396200824879323578178844453730731812166236992232680480901560042488442535048488721742527109525514813039510247765403331321151540512274517916735616224542448186928773385558552792131413748558437078777398483458061863433089968900028588396116359685253326204546072163060258855870644381062628116239955989765048147937564572463595466667553884859629464448629041502588055186747944377570266711301949712169832661717127493963985279678923198688239194998096679000915394207858585493248899806223154623084369877385925824362534938572753175196787963190576838978934053915542358314870539515320757500987308276296583226908139592199805936971898964443591806743799117390202331676838896597060041574542768019726608419108490337372398680953981143777943558348134145399530625651134250931420417746654904386545675428313254824519288837738967444868225013172578415943884981493450131699852983422470848331395859334242222998892254994845687791562644975702455160471847619428914325919525658157153481779794666742303109106088713172191644299124096170196597575898322051624428593240148525220527517290514858475270211410771113862912755605815671785174481491256222759603305978234056276031839788602153555588684208445638872837976689876930642195686147044171015672060443573281202134247143628334832949482459302609002006191445496809169853161191539480937500263457909708150597434073135056016313943188180343911031890687394429116035728233704458211501584889008647762070617229192276502360332164393156443825612694134126898870448635069947391775313943600334222820223392042658157204386129893836124935975300385696461493583009667861616369363767156951545235247713513744794335072830740400466730376708332374675733723263856948306449548000102950216869885047732863975794968595418269808692738080424961074713474777471158428562212061663806139497071798494626935762831480936936674769037866564937680496422084098916876087466224111100582107630399773815721589306881791823955082604212685502747288248324359177371449036537749907978955788840458254342208897562893026419395477693801101941917414010657901488976085114939132404382446149010597987113660544283204825380669232242283614906370637674484584412603451489880075513805367374424563543397612239422951061318995227516021010974339482812071146508297447494683605182498969137373711585907783521581462706387145264016701466446397163548092339645975064489799373050538990193603945973572139964975133520350762238367986148824885718456873847160471225606997084850428689246357876041037223259416630008678475650138914890728441057493925334013653947259094591983836469931600837694470553348516387221848854965251631935468155122216997104779690530061065434804108603538948793137837156889353547644432511855385101598922571163653133002230284668853787310720977817903782241454937665066641874171249348101553001499124176565726492560641254515492754367443795890826013200359758287590052038616676381758366060172982479169797079657436503596634383597561135309917721292521620919611152479444079834404197265150446692332227182252312486140729172983849350944544219520166501282409940807739437936258183055980727352703356940413717400533988816790878249807548739261872899995674432812153735003871293874664565912794694097060985980237154565657527208867883592907383963147122899422341510622192022343775461457330478001443790068590411618592354659186962701870774844644745378641763688434808843073781968160558873468251004680108780714489333869703355534934071685659782819837286250043890939391625717315702472707238507372003433399133358619925648738096827320629162830796679670359110656226719909823688748510128067725845408403093515709554744494295545860898842547141868801411082876544001896902297454798339528502055549375318875820415508980965852838886043601950291530765483149819050203585646684054434064906773518109597706022451903049240744710960081768512918175804563541466717018971539785045622831524307520853088128981869497146095761848788546957332120824378144674426625146328985101913398598863543931306172852976482710816835462286775085479599903832627515479064758924295447256799251718779295487030616051432861996612045615940146372844764452252396389089925698711536680577011189861192846472223023501113112793096133421011428138832684894392122779364053498230692084702980354896319702667468648870992680644081242561467271263788858666064950276115966465333943617039467497243540809629475212247321512226268721648169112929535125010655865211326992943669027911103162987089216151927869333310417432638047813153623367181602521174557508676612390834488808164632833919978727892566331946209621120327613036555099085619590781025543628978795195501048750939999762889679125667135555331469812202497953200475439971183859458262003993706321907319163226264734931924553011459680307434044757191608686325751028303520409151103587572166721184821513495986501318757442259610480475270925918084200737931212863740047344594639923480950310824990474598918720696367100071116908005505276374889136533240484561907347391343386604931156961942186839179461853193433099935435422782893368662454223793755815602891770731030403344536057554627403110885542800832196713965377299752264133718809394611241072947510640128134280370848653245848648118461972251149077504846558660717292050464432211596922716129080773145919047548741709065855885727827235209295880143204290768101574883065479661924181481786599085070873518441600630807054430115572829581847423225551416071024367344063875830632481618068597571869565947124546510145410310352317652798368704262290893605703686732701658464859369552563668392465628437523490362471108565515230933534203710170893380346033599312848503370761525366353666179845124924052142881912964328406416818137005322249066400436956586413563333425303295855163425086088819067468630794038871684526583571432691920488912196877989469030079390426688610858708282916713294128828937875981048512587459608678387480739133924674777573996170006484992072110615890004385048220897176529305142843344800739623608238583028239860534081526055952117308248275111261667193224210159808538559635373023727507790605931153544362179747507494254397537323210733912959163076584156392710353723502633267732885937783628237971067917665113310328624944017634103632336929265501198142087207440098300495149359452193290214794393353487682342212745489711402562036208494922520879668270640926748084935787211614572652263776854518029255996955816271359317189382125745515537774446144399143752490038126352763501835164625907457595866594501349908640133768851484090963629693433923098446924346477622620627245396040299830247061612143791615240653712496999749300684355504050167897615599486909918663867357371502534015309371295016303892976168263665297916558829573969630518578946239972902855454229881764550576984449471133490700210587363078323846299722772772985815208275802985426788790610721990486990667728218163042046478132219497221676237782838989271245909793194432454047759393900379332286058832647370454253723925696570602155006018228588331735562466710764537725153352040139408107657017803307438470373869881716002879583293684876124962568877596457983890767603977476662915158179868057983064415888129042089481191692407830070432524572821174353643563276093613597383222172073263418086059723294357103702627620660939470100404766762322133502862698399478402977563231480339452380194276046677127832473817080400265526058975185984959966208749441872450208009846323793390860037473271369459209393419224428051773469605149475858833084547301615048906436329400407087998180014161513370088970332968580878293139638078243253906054144743010771668219077725617803941914347127902664515062612481642817458155183256358805795074665790908237262245125810498183213356655664016867765804797826348022725202156974924451207687532220681125349193199142651546002899565873285120604644320823601181043730385843384652648066634648142724492352587618998621812015461421964193619321509766848592401250203976849118338529157072655499158112059336016371043979738504681291525069379625439199759357667453166832094676101457381055909268876125224864576236512012925458548128069020862220877748852436508191880282428106317292530739705309308487842219229265611035086433910366458051963388117934321119202227715336337309940929727124377400633902935346378059389085131714478809898977079283472719093734310984552972281692275934846914910604078400785027188381567514918664024007539614984619857362908708088592678354909609608803953799685667256247991862659123329852897917052227915178157001110376628346744648298165690156938842512761068836332449599680850265410850803291407986591826798812510146904656708926253425955727418378591581184378502595407377402351399142582362325896389442668306648608346248828073274532646642608178409148714696083155329558129746778929608582739175692131592677793064554427806070557781727668343915872569476839806702432571293566341265567560848843142813459424798821818294603612625271997556978490021573404986519033619992955329366286236662654779962444964148694649276883714735189070373619003545442548428132577563457838029845334531330790687108888596935874367706632824636151594175841050117248262149080319846562522720622389924639471843146430660599510397042002677052219221721405681736820897287374877592271824304026405017167222279565084631071703265687282287411199101469727374338285519776213347277478242753045038980910661570777937392268701718322467442617852268887216016581942625707129974423165492298213972062138403478943306684476669205041472219619239732844567895732801195072299054359079137694028644228052904477895537195459425061497420336739284687578466892747066983515990246078740456217554726922315685950845986206595645784357834924836070072129524642675414297863981363418823433518754099121064983314542108073106007305295781000479012905361559796422416763544424507326222768658171893613588649205373298324944601640313968378467669543741734771326443935389497766708939209900608734397263502236317237673572528411481642616594798807568129098707991222511440113245541779919178051745323736061889501073327476876537695155378069401010784118728587067300680171995563697450243770178625065214966376183150943318279822573232440056872918325088810930488143536730986790248924220396349088212603780611043029985335105329364838682823418885063533226712463081190767774574780641823812181029244737697418340095412925540722371284394540719816928580012548264544503345250352177167855180935420248085384725673649995084367293081037238064077057568333320156032463301809682796727102053025514558539288899345938501474965432415402908622529538016371016198414309646452950791016317048977879399888128754049302685448969545654348800304364512998611260223597883984624156949944815202580487926742773150033764565725954562573429364515552362936649603612918201448434458599791914787445012059576026070229236460306129215415395224707784758050492865374488197810467673668752315053882676983664262943104368285020671856980361679934130438893068687280824261395069964643386892875226421988905946725233718828886603811175070279956661301058357593978641421255785985228116220189252275337329552747534946793217766398347511386229746977517194139231733632379115932329810455728730269662014070796744491558211551736115169886148242699309551792955871002591188064731483943966076730817946293619375793079297866996004224781594192210460556144655432887333817140689473653861637077138598520127507374751279840566947372964884224331484778579850291248148885916511261929055245298285257109417702618713099759253538100867683968780943700318381272798555394860034308883174169852218802452711351917233381025069779603307631032610999326652736626612861924871359995105561700804887186381966170667220344980952966630868064016938336921962738490464749647535060825763294706008133728046472182064300553806696422336151334174778904795094057767907948805821715405026300669290537717133002376980322721358129011343083315548279304072842511354098940327814674467626413438396119141389284270358192034053644371213376804657150624470650022172717116388757660646557049608843839281797722110503715528972451487161490368410083479574267732381728105346639282221616861800794002956371926243508855584978034512771163840495439984939102817944413466725411055227587019350701000452372904635426346826625154595072489914019742403660120492796375027249827525828529674986578845984528691601911611218967724296720550325249232761806874340817598018963698557115045956130488920190254171546997470878040525437657859827009248105850360122676023406871224284675552246704755926598245929679093560086962265019443169478280046094732936555781493011684034761323972485668691758825219889384524623229907148906988870659768116542049189621449061608108847833931240917772456869636261364351733602782481730896042691837653348674576567705531638069515432123065626309759416958110645861954595478219591646826337736031539223333519663340810789502260656178614508722501125141987715018316993254408607430037689224163322466660759995114215449171130925047211821891469132049218543437890037276075670427420297883087382873651843919971403107429712431733981183301072038114005186523083964783760468569214684876814523173264216769851892765624593170614869416438681448849055927837952293961734643141671930257109396258896012845028457992004041121510148120429876501829752615759925016147938908465540333188997897643985407207011090090337503536211698267669147276812898557034296361190586263667034127940522476844884537295552385912447018598689494612224512194636821198665898827497998670743113521785072555599346318220930210803842400924030733481560785220102712989901339803006576399621176080022829355304970324521500208307422218395330550840258294921074103477294953181297571349524353311591373140978309742810476378346562214139894590290594682065307507129804631257900632221430085813331462542727469238492018071341194306112924332441809458473311660840029935550446580682119405641458670876170158581968568014705410857861550799717965412970966993491542018071509883430681751055455563893544232977551334901393945103424782198731355640103723906680011165182422085495466352686522439707356466202310695984573777378973504673283881567190148908674985637429766795529535648949000750627358592800093631089126927178275707924815473649098750683721203010237725472272211376647359948667060504782047529953885439438592515544230852114345672735887416205989320323112549495924876661326897336066502822089294687417089330779042410585630492637600253913262974251867396670271154819318313070013050413581329296974816118411495112595703971275447549194523409499883689968956702689787395684891923190262820884344230947415276396543018863513572810674991941075134128692027437196978810930219596722606022711187633770629542252149390563337817010141496963751019157883281054224194892268300101455879047239133998146329661379079208801362262343882426567862128421946280316848598839505711144624025709990524450775720374270263014948646013958990568400293304799810185182202381608447601948134482990001902223037105722643974468902015167918419802004364497215824266362304587041865173486098666927456638825824014741198525023528368876385706122614037356834538238706697750033353460054057981781829264262178343997498704446741488984397766622052222132622889529639503998146930014205343745552498568915151049587314863800951716264608329421766714837970843323627160872476987949436429471447613064186014707042747297731255274853649103648135098784933566613416779680721623490802198945743632442462441378029865006909826089631459310155554747793603785329856200433933091350171576602864984192793542010784367819705830858012618564909183992632428329226942684950147836747986006158551948533624947781338300987557119715341900985015683169333857467858031448189500423423333402431900412840732237792277126592135309852244282856024458578463574199580541254648261780311860450493697345338170585821463905469748049447471101329190272457079193558583942850126154289973702670260114719915837730270825578292584673820528452258420677200748182417222137859699881260881964762844140218049564150422997093301996768303424807654142614398032232961523493197461065758147078374268746302389418235682828162937260893326161701348655443885829783063596833234521422032710609816987325636028137741270376824341011066540676472207547422464895448208408146509916975210489424787328700138340755205926248166833704055247561637303467670719659318863041227811227566164414518439081014700105231687727064359185282110767054831975484288469927427364623415528719176962909748284808828526821027449166892053584828525367816352072555116130970372887309696013024592688561109820412870525829106828024517997083532008647237928734700173274851257889169399196176917455868363513862451507980072002502421073360418570863645528808013589300580584083033076873405896230204145214536899306788908271935667350964669652136431935882749124024904386132025982834501759498222883254523186373307040791973555306904684357057270816101582280983049386560708477723192628252133411378291071560007120419746404813409008568054559211616701027524819501348707700032327090469593914350642118727054310808980027916168710144066296519973111942594031030185481056719538481920780527957138453146302816606653358812412583417349085702347849271416257111909981527873406078055391398219710835427849189522012592287032548023852461980126951380317573331911916126143704815008637697880699952942866230095180512509482922493167882473508579320523862826195667205088046796838111410648392312578593037151121683893263931965043316432261304867263604309451009476196684566383036203864846506958972970869254336536911780438210145728526013892590002247617644372935051812068247059675174810285737219264437497642531154322709497836418351623294426080105158607401979618712392945349929186466137452334250704164330506249390895118098606208427428836979167524662996696101231960270049849191292278014530655029104987166019547989490928418874719546105494025580724138890345923971449927910334225083393246664464884622135568281494831523326370537973955708848132057128429656974526323962489959379584693697658361362778732600736075947679277199538164738528791865135648675353762229451794611730560924801944659989302775318770907673967227678643806215706075911355601606493711733329975626479493131879874703527551306437209855412331629466846723803912589951397333687603964818448770298983584523367300605368176447495346938506189334003428872146365135946770631486299240863451336971989225606810548741025714169899121989769445208328579312556755089454859508185508637566304828379971981743519253521946661503313878968261010034910275647824595869255749650675852892587502593426572793178860806275457283843585335733092031299891311613077124737940497246743970556860629140917381883712854524785801608391049032400304455441837725729274563501950074347113483356160868221724009688392076929858881412333626964324337401246330749837013008309116308009410002118605946401862549587385237883951187169231759260886301269163431190255340157324604150894359542619679744761974766966300028794128053734177379467376819372661370785823170491637527094626885132675824655950002237417470249518607924757569676496866607579382724742443124426970075556823876220560278639381871713384991603015189691507171917360653057196313066823065451082813588921026559610972672845687028355688962495824653686740050078241164256805583962673977438074004111626699867940512212490314601982707014253494437306984242929301083011914764609671269436426022453464213931315360758045156779127654353635605582906700664538099832222179137540710877152745748686596514293657655267717214662557005308165103917203525952016450770904503335445345208851427412175489473606361483582054620079230724932493567072523283631001244829981877705019233590492908383466542144876920453881508387309110088631476417812231968352026349339265545346885131436672584157880871600862584847565680632070674510102744876994657552689130244669355921813717354746457348001279067843153007654097125608942010424609851758107681192531714531284303609649945008950567774426351821631753082681251640368956228541079529208047718692364406686622867506247801484686946331090944487199017147060419296461337263990328875175227741096234872640732189539141514757630225044251919020087457472083565594201832694149118996663485459987589884781711093688080306663134190837689860626947994261232409954979634015913080454131409321691425789807149599788935883873056661676857463882875263497889638254160026193132036436845032098027708609460995047832083920101269539509429510439200758361386318201382646799884806291689777671898492661470507279774958189569802248878079180930237516266586461026249472170577770555767563152881899615701866593850549900654281835469759234380061590341774331986452878872601376009751550606716868292025660539715595577689805925300811652153042319455366600016337709390550118557988324926489952070873455993189376102525754349842709685243096610728354975145336139438013844997162469470678464873574394775154320234886088831726077086333268112047365893308984533741016066620951474372681985707463245671023494569688722130861027220468097842694981142501170659609519029522626507031339468881946566792748661082103189333835425995806375550122975953584603251987462770991417594404702809043597743238378031353774387800104856185380879722568782310454492036950306923251402756390443880648616250988953306929794286604622677670890649698205763577979056850146799322594292816473153182882691372839095776253415380282448757423384977349357846905070170898445917897777926738877049457326705072214943695572596262550076714754990333290282687592811777680422816293763761505906550994509481290430066590731812674881781697215089963682836459090074244477883679878927676129789382367407587587735411562771773199619619810182488394042546363760619420489661404914433245316228300975890603064927399609725382395389451259270158778577955224981714286120491630154022401968952395329792276916137750125733581760104152982019390411135329565609425841131868793358883728005273744329468042790965680327693480217136193048848245935223484162950300279752571780418803429549798264745829489072802781268859485055450449394410304745702471813459636104731869667420237724644316648774927739982682450924263047960257181068106272358708291347045392478615113672494097497562580049921269672208120009769436436895805849049169539662227777057217286612675626472944282625052462730912852401822246712303735482197594540507987811447207401069388293189942696708368317361131560357070306292825716472763327277690881909385277448229424999991755768553273604260684667960792719102833100553885929403218054735591109871898828496722575240018171354368292955117944364457301621600077272399127967047818601599751514717063035033018027451795067801500541316018585431798886369738161135432373023393262464736153133807308289850414284628104250473721611026617088283856658505629740840170364491950388670707202687419232560335435606237685123830041723616209017205824125237023015736199415058750108205682395426241049649821867106181030584352860971890086480775670388689705642673875772540215657736355987330303324932259030765213464098775276469215996983794182214728022868364704781912760250298663119899219864220347492715896439703058802429775877314784138266209908115199070269126776096105286422181353703014542960484244234781591618455775906593919470720875054533308689196233631133396969587463624294355977964239180507102822086768041980045058852453530369552012572161339330459474113065348649909426623657867434872760693854786625179980913807755512011290801787728771577023798751611342090380374729362765766831826959779797733780581891781665597974897011071949558832616024156788634064127746392450706152863356533042923001320504464225512220343000600463272765391735882075461500473145657770572052928292937249327549493837552874939663451242386800897273384544189978355891885604779695757429999253743640897332890997724806712465479765175924951554914969593181042970955182410760958032791552238539495011033268658145675945214823513170174290913406553264635023958602193812818710125738327844342721595857960672880105231390354089207552238174514795509723609860152675989621679899328734327668597902513022103699773270719222671286148410737754333209973421918438989131088320946428237398291889460173857988829088080558476359813384218618061234352991451849121656800242290015874039473289265823219380298486285704420002821570206167514224400220624649933247360543800694689892165105288033270534170850155553971954954651270582695242152532131125944194339179582097496671154241783192724194248978649492495266656885314173697472504792892155120282630614780842409801912882043928791456417078839087029016881297939241093234736179576292947274702142901195294595714850019141084277293998376892834555603246463776711728477556480679589921246095827998480262172507691184214915555413485295788367339368685623486443829929584808188221154458319331960845404358278663927359033266100792293920822804801724262586884975363611942792882144454069428813624370472476451412855112727996530286139305462716044626887063357930427319226567458262005830289237343575797013563991080888189069016018710375593533141646186572584388757214332421326776585353690383387903395820332445240306879622961265887445195578088116623456581454621974407224516771102652412808607616763905409668164578259679257237205750245902773682716269937996324802106578565207362789386741494117823090901887511754006146011203776986290053720883108443913361350689829622306281646708095315427290037211257351243890819058014277688105774441084812956392582785641430354315073345405904168821235644289999625099697646977838239903423107894197667254131882318594165234553368790884774055609970786204046356627086734691374735783546480809642550357304656532898640546656942717191737130659218555140038489192493442475431491260953582980374633496426836456930701385888481205168784281672384495349359734790971208956842800293316970595887983480619440617346859975098818934925894961463375374299580998098238014951791952313946819179832845136460344327766163071956039905653880265494763895345494888993920057576257005900669355432225596193980714399792385360968660886207853925208998157093401033019353937497743116173550585805585955645486805233961207360783508294350227497004203332953312567297128557138577627098522335078369998428042449150876613001148022760769222037519685574585524444383778058860947966240941999459529605184382126435943862744874208264543597738548982816090560331660347084039550517056749025153897880243120398117530673633471767527835538186086564549148687539430606671384940439504117314132008013783959918378599802027519456581562791447564790927221448367377945360173163311628661801727729833311244508114410065686839548778825210845942048335495553036403227321965864610790544414265314506500665469421063058717261958085003038378950694327465557142666755547721901693057962332019463551111446001790752077962183940038248528378250182741551073845896299118379780515023590426096005871379810441472535953011033531986106176954470746453506090896005589730655611166962618789186676699508735663046245320375926465990534206916894621915855719564303815185335098594480239386798532902192383271649771654635404811572309304614696739416869319009618333604042871440979885556251511328799702005283255523644180051960529732789249510846217578512784706235406023317490387474007207136092938884344379055345188618812872823117081052585614518709947539329616163700548768751864033060989647897222897774800377624362582206956576030558338925588892749826188753387262662540871433633086620469372195810309400066411290737891776246199797273252086583624997554349303905346010205871714645146070795859891568457776566538435230142238058909516866047440153719609183758706565763980967821476311500122534559510937714917072329542695630353795884530849662299874726366601467199270686405414260401635537925524982627841819407046917666357632261607267558545693828616593374845258127176732789402376696732847567061567216247233964159561765550792479583075526628583222269859250376146311932734386988239930789317593055941961885988002354648193969697175050006368864061093968771448229120068659674159248639206671949384997394691733718747573218815685789670241998940986622590379937511011133255859944537366076257981236099143235251282746033332277549062501998836723794926864815696769066029005193015920578043344115962683509928275629890707778151226060466249844403612751167512593878393978106292718269171417135844282767337720377318385470023369105415469328716204479710712414333470046845747942617420308873085895073135596379894316784796117248139219594900754070896280703964511905509980907120316580256398157426050912910189138353700701604807480097241379201137505406247521794361058089938736080557421210540899906252164293434465778497791765207970101998845061952714672491082934303619872457716072006261116373993069558410501696184054022970163707941025439443700345938724832669513493649751512613292676285307811908360800850147132070905167940583791635254126986687124436277145780794321025573818862251498412416961730898577392624436138895364265944456573251175269043912304057436041063046598313508468624208668104418599612064266235096263711249190349880549393864833161436814507119596216024028245992882589178333545905024589040386904032435754997418073828533370176733224860532168661076059484534152978068025276822049136804486015249662685798846787124443137735737336566403586128551050019603611208183913911323968748874417553066298706539195679521912091621313261653071817523138326726029738875455318407951654710581702184600449454295398943404956947074589628019153115176885490812673819799385863733890081438411049996136594939494088676981848309033343284174486395964449179908171894996981202220998534625705500098582260803240860271523752134572402567596119130253199915541020033500184565095964901289997850536394559077963430492232124061997175085101066711384019855517983365475948820775218942014245349778147138084791391793354379735136679769847470180981925500247150647027192947860217394146976426764343377386272800860385094873540462286138579879823222615179509589327672548970741054911009685322732539345234465401964770526327593590326897136038736870786739010488570856695049025960190847622268395142372794830473876708069018703875551296222362835972297139701070208074976533231699455416386826858900488706164725829495770658012015673509128869197360755360939978545409989940300434122011913170014035040964628826652739592325388885763519334189035616185784090924771634838785831577550755637388801846998155644262105788293379475441909370225251710860035450257398123356564027269944014691653286263146704540837636468605798077219901672992396295441492315753789141410157996961048893538377260663127935973002564303555194329145344251371160182065067424712749190792149735964225253332596108200714185839631870010065612187294466274928396988890362721577083073903895380786935717347235995918688944961913632128023342790531683701341403569566360597655673958128190169761769201694292175808253784969207073318251312748208308508353905213466785345363187878410140773977510520156269434696401020588847030624007731074147083747678772261645720823007218459783944366883204103430198249040555615233550242306311298181148935817179094246214846765718735194211798583392146168493445990426594986338306508675169715562111654478162652364723442711508792651755834355386056844377985718823515753789949311882073501442607658720620248757607012808348041872612459101482995424363593743150333091171074772727811583057973651896259831553755940043458719124617499098785197328338824551263751541666540504377295413513132776196791473643063196815387719482377973623367301395570876890032349942361862655643911568060500324839151657887905126591351745320504261619724814149520194936845016001118151853192433908993945266736469932700392030761588965728861111992940766748617755434929814617650460533454951704883785183340777254137022157107999567885197815319939826154191521614028087993179639512518520523756287130361049105301040177066374133817066445193949981880626195371682930652559128013283637292520293681786729958493665842697970050294251914237570688810561543893215196543379985031582917868597623627651654409390785335505315552350779737490604457107746826158257817588447814409058401771457218571093240491442492717569748223583991851596964572629733861063768298767214244943519072151522529747350441583720219802368889957674917519086569318449812552873017692948227459469965822677435525209035223274609275017733644806320677465073906638382157993161925209593290864621816779427150983166800242235818829014131366797419500282331847225946317673444810911726494287900182290597880150997247951141197862009170112870387270830181349936586369094298233649186476998876846981380854625152008362966720419108868960994668038249727515577334402350174061842856364681409549193486355300359026431067651066849682643520936241434646623631311910006324712229429419013594552189675130045183995275962710060915379912264742550739349572211632212774003222680271188150180640057566315614049676401303044401018234589051272045432636068415846500233083194597538822586171589861261764586002146316661450364975969012464366385638563316321623711484106512365215762705151792307081014947647285209947078331060361215550763883630216906577638732209314494577292133513511994612419089320855419577145270186789371090944934258216161562574995035631932541632897659100581315034743479333152421763682297378315450257902495549821867705443622351389443817947541518362617148250277515763638410356532466919826552523155755668128416045774397846769712391774785048550505775623472300334202881358668007530832600385939940467493180074126189009245175261143266558353144124509092467927690708032993320639344070522651653819537338057597219094441768103642834708546605611049236472448978604209119253701066088904089891543988251536884867151565951574231165331505858400481241857511707457565168380660410463014616191844969442697581178648734340743395659360840763537972419445993448279048613813192009463941636706371787530254235912461451525379270579533787650874153978287221377922059576324938619321314241770572079413779120857235209427551587900832341051620383428924114441886385007847827977327439272204757314365648263377340133889900223006089812340320659855304196564024226030647985199800832359907839883939762820317930645872857082942818593445111009492225708427962148034561081213934121903049786734264637922304515563910941798742646387091782774893194086475835181834667878415171869864718485970695883698201794031910402844792489846127841941282030594356624218553172021639389804143053280032423137667316375922494199007139833278046894789446193692395104244046154007021303354409687281094798685887696566835347073199934588541064399427729022296607786776538303276065665559340020313827214510608847125872211418869335816049957362963867149922809679631135345721911019356891822724710121026483768158819500879270521288861519047611027299597770034782446760932612279511799379965308042163329691724425056274842658163450191189101162699282650256036403045760878510776536661793018554382828144548968467146291047659188728863776033214939186093924218150807272184670564153932880377214144856789935071608733783866889829220725246908259087116107275096672444108394887881293946365585580508885730322231872116383271593503208815047341354737079190288142660008486066765442569782655242607874555078533372985142537499168682240357306434724246625921497693100909063804492697348510025668138804264534957729303061373891287080941973696159563654588699348304674128584920713702238025116574141986686927762376476147743962965892519704818380588135096390202614189594357471632169096675430818900480566748164934135009427838144990252521631182670812361886057861487187421134012090083678990295746902620675962486888061079053410615517601943915920107078264001891074319888274273968937616235817916003739723105722672120706729216570824252101557908426586504885702348885107687219718480318015968042531331121908944152202279859044924489154091950427501410758470721310345801187133998078052961162470805522502818468305120882565975527082486062899848038463703933523270547580256042923621264769884904811435169249831884879393369097861343019246725396844352273111595167352344259875557431162329752689628456697731777686835873333531641465907450249965450191126125253615561696024215433075094730875180204826612138556563520945086088351355195922234017271189182723472056342725082992832714811214139253725513844584587396842855597372355727863347901113362727263633710430334504031845770688536735478893126168775370941945776426440025353826024334945043834168737584790185947266016813861811341696516423609842781606034831504155314186476797025557220490263965556017643653891393251181593939950421419145074260493718296870993092048667270631631476152994401736049057384661748758973256810389649276809204759032779702121990144818572783778669151796701943333930725364246952225893761481434611187260101676651793981929089622092668836210620838459240229615964685460246351705821797205365122879272927929274722990434918451454126764355225878372806897896096907121697405849546549116165914252281597496927273885378736725642136955893163808820058425558078608967251596746278155842857656686956198741967514538378902446646033527660784005674508053436496185885218514340674596769851967442085733782479413319908787716914283024549577503196253421646256009239904422416499282667532412754654003003714599306259865422814159523059810515456490859082347241906440439766715746425650554319138116275960327806142453792820470843541264452966493766173738483967865071031490309073013129109123823810204088186862066790007018478045583919323718665215418510146701796624834750622536334473001748581029331433396462004816463906172230974876989387140356810110734805318947663253315277462756479091360025206610909194514831911302353911122487856950493668091831147929914638626094786694110100831702836890873964415349441335959526435581022616101529346776499732188314754947415572417837756737697491215168803943137823407816037101186876302980792031955210531793168824988379472172763808547713615410051035276379276335522210556608918572662152346829538205873689747309048678167622560891690724390276187451877511293913949516076575008165858251709701116854543627908334654981977443593478651223979649038791164907473882967795525216045941316059060216032669130479606757868053686246238652294563614172602361475760116130684886981692110277651138717333665220283153862347143895139355975864470213230358907451094165790902303904925676544905875173875009271997398883456579257257148582160057985318580243623662237168163409834376847018487718628676588358751600433068242102847212077857841106717171162686382695971654677679945839766350817420013525024503062585461515525038194923223868869164288171287375516404146273275228316478054885941479555903326819953303351085452883321441292100596592321493566052732657936853215520046818709847498585520769942957834606564672406706308696107387854152922831113195337749863870194458680680833864124912884034537628746747221663941686331105962603617296453357306652811962695433683460728796681118273742070535027832639352868504877241603073267682275929136672617327144899659307446569127548638120776630428700149298173242490336943968987771590805084308414779842867544256044054613793194722891420790756020594796327436569097722080264986707566413527618079091460436898111640158812368773467843772587443116637230003244222098410485970275394007347086217399582594366922260726945438470904470109252057499675726435886440317519537808111171461015730588789679393382880431984210637854951341894718510158715456559253144084129357029296487937320902587302455859019542019032309595917634711277726633635894092201074229505051532584135148983394418590125557875287043617219828021949235891992209672787231859679751484835727031684593707437875608688969443720755682379747865625133366199404966271600605189361916035652999029276790996255818147583302424363999027085392473702404307531225117274873488578468317884648187228107992713056798182332596259597272815009086764671071400940790700473200967500931579661811095861626356756525483452046351622733041978314692660467818786224275783277584689873009277431988263199677137723129738631325421629826334166681716809160392170134625356451870638001161329270878529118547907377101987900786295798831439797068260657042281018557000438857018130191665646551842436447127755338964300651833875430003175330945582895906559090644568496246931582763770265937488054799282527430760396674058932023179224514061219605646173436252544708995930299802149444435047496920673781606372028781291599131919702039930681694427628611434063206258820168857519126745554630451898245642341274477281490116230078568528394310052423194594010457267521479567445966976807305140023589572748152075333837017076988646554474807264756334346217849419732322078455053291488543732267017628155501690042382735428791681963773755137842492585499503845201204646279911809496239683363831238416713531640396430938575644080014689559495356124841757405154493920427864073475741566473534686152863646231777311474842192554606072168752808034472710342169541111517026721151354026634077377006800655361362575490596913357221005644886052143136469245362513811594684036705580413840696211171381460457705493129096959952668562274447494598212318480759598397639458163963007505190339169497516516598785411635570236963830743065301383267445148053869919174371463599936555712866012192373437618901478470732135428208138162664519506880950452276270456049473490468934769229292452704123379103585691687303779789840369557867910102647029687828244338383962291687123613852911550853857554356513024479765266166008528391375528651997288306190097327925850307064530091277435838270759638009413388428046418638813017672014962834391809254953729197618941023833007838297686169237925679836197299928727944402884015164186206398224510128946625548873274554167084681625652318996414795818676338993760130554306647223187418664907400237000036387545282081749483040598805375352376720552586308888384905888637393134915220828729397313082424405761080129267079822060697785623277434908720040730925566419799864888673086086824558670382600026704707275764099465256596306725398395390234951967217687313983272002419777995349006499117762377509197890541848738215257859993678197888512319227911642722460253078281359776236925962231122367489158402664253931556217862951941633344642798731073907527993245703607944936436871588067521248459425424194513647810792608310831130131509092552598657971988148511266452967754782842252027805836658642443437726370800292071861048213510209565591273608845553375106681710106336082061484283506433386199375958643684602795378598051371235119833423118625981132939089136726592070227816179426607216221196696549255410429313462795359410805464524662997219427795769335582975568391321628947187494081844411109208561643550778314501795327503431252756451331769359315225589349832204298972349293101498311948684547516460645620000993970450633782918790404743834383604855681422268850877315151570737103654242036010591876426147512158787116878959925326794562740143639282216369651156852627662196597173502313012450984162247560175972426257539437226978708362286730849154214096764939311082376639299712515526669437044490512393896934181852806534954838054506499255797055149438761939905079743318678069633814731977016451121553403444789655972149283625170158107882638739197063362547607364569832356115555182680925714464956503173802193594553993925774021167789018632474444989279328327381775166837479855565579669555981615573517911547417584151055692124211292071004738817902986073124551600653054829397634669305091370847284152965595201960369967665005217779059108576894880264710429819888516515479489475263402711934295396174448557517659340541589506388968895885912485104412600142524913103701120630897807947902565414671099665626538084671001372422098436245506606336086619693776904639054855467298199651266602586387277604795443739793763097189169052713825198751213158529375532067464331053339982386749488294070020900443207520363475095862473287647985054040720419408972025446890122278711158504954065951683301381640235784442220929059383341468672868980522270573423720066023742918352484213154969261138293353425736817065677876965624946269924980661149691613263435103687323799534597512020565785886899740945947269573703516550760692412713608146779878136888719050928416983532958402549927008469830418262752067846588727234330655534839403249152759698682791735874396182947721820465926502037323362816169882451439373733623654712320189106680919417241808283076092390929257183072455375801043675472348983434666728679057193023268305235474283508560714795712013876834810615514210904143710976362543806954490369595567446245509904810598768886240810351954184406326019636737028581823161498972590188865262722372161945436992605194630790124855139893535774188831150054436857285815486691415173736047822571558797057955086826894502110783789136676579549107640185030410493739284681672225843537219845677582677599624954758442455406381532655065744084650838165195798114832505540629966812530119142159942092062785651421305471683171697121863790415748067366269135803287907589509255451543822624603521861611007620749653223177380320804627843197563865151752929828594899259559506469163484820399979313900492117811753658942779494001822586838341696569264429790124725420073558754708704028285198552428113004781656578671319353843104268909805865943071356110673599279125476153366725333509340840897605117190962882389782951849952759500538276955120324293370043772750301607037628797860920426284752373635624184789169215882528841635882170453782453295419473724918733525370061251649977528914515234298047577955961205468397140094887465421534445270962698310951672245639872544972248318043885196585228457417181035991837990828416021866651453127417848541840850509438206873491533795975638515064839700433033498537510924723083049048649205902163622970010622509732730818859602548824859836006456741998455015316009024257185248847359286895969612180943382344445012572199774071490001332091602213135051818853853806856273882531624436873319447019288234782850954911429415517587849039455176501461519103228928286164343693257936393865189070515112518622649860759918361400624141876978171078563158662386870387753876062105890169021018082405816938997285809091149806684888275605970896976488359637408176462995596410492977219869980369724982569485126619340726826888685258053956833502085203022317200026801037056864007048317280474031889910782541398861728366287284561792303673794362767787431465373397922369268455916028652780046119040020457781965255223738868962486202142327026701806229979915456006704934294578178871128328063448297041398207876096146593485959956538620978039347412400771704972473566554006261079333827197671392401547666116030367195816293848939942283347402079736508737837089674653137963958908875770077354680269211027295843472826359397111304601049448439498386967898072128363414989638515928578482957379587007499594926703296439381559011936827764695047210341035107209881437145306434135189911923170078082314567341734574985214365083283005943419591150183750176009527176975486958212242992954877944803950145739402675477767042187693832416901566427057887781384082956197779943160178906123524525738961993914946087321583797818199634606420287183115842978377882408898587147476960682663276529691683645701684692185453581941201488432904203762617883751535357019139348993283548516024821238639865284165144425723294877558211738763640182632960030684570822028187604977412006275630815544329805340016521121792978456693812451594429414587995344180057531465822950323858174204626366987715310547057360652645348665270271125815597320049807659093222289611126092475540668566599525170786484475930938007439841953916446464163030260320840215865495936952265481907985681465025814867595320929221241102670267529106685963672928737243521267075377745515076108005036534700846834827953739527332359749475413350384784430097700074222535350815101432667727685296413002181926173490759069424182656333274692285277644946896991379180409534923521517833632793010926080104461123913214464511203882910494425025264629187434422407563831875939922457932243239408123568385331244807272367550751566890903928280392635238034686767368794927250122439097995474296089569048565630306558956995593702856382651007254315423848751222704285514942381150404692249999614497040689262916648039972024851978094107074020623329704642299959214397928624803829207079999026283330591963175116788341498731155943467279016402836722435543150860165094395679658701540335739848570960402124566468076823629443639800179866074164354674903855759904247561834806163526226463654293997942503435877226872037937244718709269924899266084192655259465422393443908426651840205502500704040187843550194173983673064942541340909588719214907997277265019686456453952068165294188440044804590270662014077907773542645547345620442877291167532325702655852710417287088301945217301746750529956983134815499762044485576277899667992601953533475177310476870231524005552796642235078088403108044457521663533894208233993116634327691744724193417878423983074468400222991402939674757212169525393947806916135289710683429064190279053755953248561784001431155978214316320691556802701779170490913188708059674530205326186442275032522833300185479862997185500988883523237666833063773477874427066001133247518093103779528514641755786020932581602211906676129410892897649358679815489035606287346220242550496152262382512666230118572372882526388059159640130276361280661823886597767410453968639514283149519689364016829049060136407732874979114873280760483945869486658978353834545397552564420728000891648238212332407977441925991428100902889574437799511713504043664200416743774818363872003239542303887025384119635410335880974907357142722999560514697395023465233491607970968084250343171298984564306576155914554691949262253519992961395117377843560252510534115970284540823250285902504443126256522228361989268818110150160156593253208228450584529815422864538105414429025615372118584777799710734067514932984595673191186039565454780933756115752555645483969357510284184229325304192907681681168199627309042422300013378416806353959559627226023110291520836113033007165607827061895628894446723528878447600361847132813990170973948356310581392805127387819259861530498819910529214164061011413247185827911251520939226927107775606295347168720161487812659247817779101986096696339655978700241474466637314274221443486775722235422151921233642179301262801373885851426098733166117298838781192655819164595664057692954733747644393109522806586368153091700662185789623742721388141541135707985239936818655420566851170346904206362150060297036249544316269848774643125964099342291511225947358211789684726668627189348823307837623257823562086243758261168534590656725135315246662388573813535284204715971348393327894173585864376700576284563895917968943931580518304012510836296772398345266680191360915447400913754368532600257714461263441170593506251948264308557646804083218731788540580402830039443352629400890369704780792191986309040012704882528729713055079034561967325634502755290536978820506547738526773713588937873736584811075300487144878076220981117748596080902122012271459657886075671997870937399906557018425133643330864744922750357420840836897016053852798272027282190645675106143817492611182148624658014296482047288625697892737816943251811771253098736020935179545168818354413425979988506426380043463623107779370243779201992402627849679499298363108901680003633205544067310212542500137006422960392081289091559926250660866982703370276017633046842955411237516949658321702766725105833765990519425158985471045015274575813846640482746559053972316037183088019907389636694916652050051230152103400879591962302685180270707764500765560342720772699879535653761172935886332097634031957398201436643520069362419464982641144608203293085382354878820292006030463280539725466336726183448384136263332605713347245392291350365312133460037213099653950809398364112469803366365600221728567065132374545894476297556701423686856975943486382733900336665640066641240390332796914854637039802399644465689441607734347414094199065028633837892480113353761771736455288329330016608907639705338420418072379534975322303050475902385336139783519091772907267454358181833197161413598977231267822552879616212142481443507123387809152999839065517273896611678433505697356976746613049171862331603742310283615079803580233240463976094176043602549932301527933136532227507467240965804832520268335245440085618039156708075480819541416245079931381226093625126406654270694847476143378429339094342897680051010916966461173501821143241385239985660036155719431766814637559282303289948472470069821850822795132129772929278563682073942538528751486922402634587944154129810679661309266080799541326910321566749884355771065821639805793289327325069710710800797092889030469157508714985179280332186831819237555451324680988862469212910760783676986228776503351980359796790817989514508687029245585232504544679466482112993007779451784335864912435202226949698000452584296564695546549570301036141752987576183618227905126241836305975322517690035110860327473995233666665263792101807700345704435197225013875737770198829164594411725530266886055108159152770445095706289937780036601496182029577414047720837781553725569209188095258759507100764639278329682276897366469384089126240888227249329910626881085001262467503573668378945635230014922303498317885587402710100475301358251974709959989666541222998016384294764917765918671858433127485858719232964968715087851824604979694810181173255656291529748793498741084817473925013268156815450100017824121555543448296785807294221121063120984239176246103541735767084218380421276160299445339497652833923938510762916803984911511259384014165925683761485568617183722410727895938864178992960302039432810025507093271598338502624466292015568595351873379282585890381121700725134140108530146484938578275717096005923599077255739055437171245891511030333612129250806166507343734131118352339315456848384628887134921902756121294412069898891767022803700143108587657147348324392885940177455493318283850912197227043162953514100175568961267944358133261001043183324368410943770624713394191056812842163413891118683011863403041395291772176848293354023755171242555906994209841878483513282449871041160699645348133635096237273381929800042306016400169664079482828058316309610062650109570963819790454048910181156364100882701935299605072013266063482075948764033217778569588642518661866988418410725120076669900711550762355834469893331826372006065947457805622960412355304193871135611038851588885670948884430461401133161787739971160005081760461336121058459982539367891964900799261839828279420753361785620325618962472421284948857883657922725713967678571438349860704725405679697879992578653191384372370500103694609784667520737965547262391729122693629095697087808606118358640377868553223384006917501227243233482662605341421664623523823100588469311964705413201402511030217855396273147073414519931815240269005078928496440988724647361987215965792599401742800777204636519204996284146849595750642345007145503673366795412883924714255514909299051777930610906056313958641247068693084130710461802466090345442865365244997501869540888428896118962258450197482098861269728483644840318947196011218539759283405327468049726891296750271171782324025032855585667062759291358184068883463390620581186077694892395746267622488217659400136154299611487059272958164921921370350138030898209777393326372372539379271725428541724437698324768810732031197322663373946422172840131083922098449363233309585463139528445155756169760755206657076547321273477540559562961169271279736116881577443609327573253562580799487672455921125262763889686002909577501834726588587691345210455638661848378079633085112296334851430858568383993669872041770762769405895340694200805532263327021601262362111023570777144317743275472660782463892436882267088072597322961911706458117669310953924681754186806555997180881407852069152082090536217809619559582128644536477431478889056016779579750779538489804615599233706998049750713259954654892273503850463054746723506409176584698818197628556610600893000605267898070995378354959161203576570163376364857160824813340587840651805060426794735483487494656363860595749614327162112458339443717590358130290084274137786921625732996365403602128456243171850556097600593773202564337206816712214722033834322530811768728048491160229917618960198106523669379247816238007956901980660918869599698854528615599546938990405208241297942481337967792687094064239039748815854626983684797993609733796074936628009142705559527215864615834803276936724118296410343561788384553502820440909928928170286075944902186345535888390650463394303633297045520877356140458895965079898078725265926562975588458152164047819034672210016557603891657654134653752872476632201913267708899232120064362666324936238020366038876112663295035092009746235120513387356398228040654262714426581231280959045340048234512296534418607129762763398049675568418220042000672330419051746203952109222618612122820901579069695267011934917902418209694929343907958506783547247941438044352748951654168966379879871133900264558282375611822149853992226598198453281860028392455407284243903806364426159587481460810078406762583700812869978444274864005775098578018142910413305568603670409772475514281545733258885713083249892041165358635021296189824233130031490911686875320626979556930030467637490845076435235017564449231205675376392818978707296253777639222200157246013388100829324247619474765601144186865533643223973481795581130920786221347020194997049372505271475800047287246549562809693645418733736300109177146792630328122009597944800622855913346114614879678753162532448648541416254137898550440961330124724063481593940186631904764210004420554424478141935821381818049869800168301348896880648828764614282229317117533478405485284691383922926840279703322037613765301832762840200515160412308479131853750710694372582174495717220446939588786016911619948736712638059155967924643397735373478545851007468056947369254091953064839513523820499284828356698804997871067860191312031055246116518108484399481654268401001859353822674194884355202893944513013139825399291042932765261797947467669537013505053857814821960016485928457943769610837292866849380551452957882773509005829349035817344750521726455720116234952235735149931432126216986160556295613842750248790635721978121020196730994214581445573111572695318440260160155568043940004299714888384988606511389461348911625378771487505326919971941959731245487395819353093232617735158432526981506043726708681753734117142725358032732576525798856203729267540154666393021195036306624047735494265637382994590237342325120075009129500162025790909622038092182409374545598720984237778349563191370841071046365627326277448763254787178564436717601202587581289428219213485377276313697153587384186234759851898745143617620640890083811761963737751736257790907669868066373560605040777693574659152426967422272689727299533929529530469876902749068293362608503305471385888999007504485087850107329509279696721848460929868733933153918925182035255765071125360791647386864754567382832974522014077616582497992729253455431022753610122860177159100998342184469927076859471534642401660954872701772742433263674371673664468986069310006225733157201648817956155840545705614425115690991688456448609525359085484832952798304866916569238269110030706836047707562068940525936477127153738597452680047166828606066635251452390025739633202395174537123062991703106799814377709037178840531491223349375615814532093141060102680605751656039213625330346317258859045372823141157255165870714509785250482766756591650614331332642957166807632013820716774901957364066334192125570552164344151900269395379727631039070096197561144711199066312548932542811524502227661239497505275677760311972879625950130129004300428829737673583033231495390123095228624146989833619908390657788504007264394328334178136936878752679023917111408805243788918751978972342492193695292239688335244555641192182734997552777781352971644382356562563231161600982101191011376074794289002097243540147462343327302511444485918060151511025820973817832013705468175294140105130599805079849493760470023224347030511116533672471486670145382840846227351827761671142088051637228959374450159854658794904317314686645452204221005698662411021708033934963783369057525805721483608019438696046303321321538065498140971979213521930767511172674092259300498539703757546190494669145274733593711671175840918608080986308576218467734153294471772714311808295044365626380584101575796713949967565667589989429479675603126468837839038729663692145546553406517103105943470377335950694374586778226516983227283856592280882361174537911582456142958232657964448737890285516968785802139609759656911274005183325832031743093368322180729605137084206004743788441346855663397512541583699661615035568736046532315331942604629697470205124040117806040046003722304670956388866777610446458117861994558209520806469659117630312373493306306208756713533651743533287722815841796602858553494857482923643470277871348424245121252952577121085466894383183117196191861409229592720098067974102259970993721434455564115687679617216004846465238884109368006717469193709602714476380928507832953049673368247258671165659077362497847370605882661413778202230186442037276001682717021431077111703716103369270185609149852108062624246077768270018391262490651088849418888690500178708535498645012054868736085692977521476569747417266900922436582548689182324128632123668499067233434776070736797052846177695183522926183798631619759806003646215339791214847232971846640777530324242914652379090883419099455361815599991081711851610755942837533677659543521725183717501325848639841519581245761473722923468118277076178698095104634570084422480143323438572951474657943652929491500190788278876316801967536841474340405276484713160220032506020851853913638820185447998728662868457299993807227544967849992950641631460070168963448238568021833891591624281761382477042180245800824457817904951842863821659425913518142683011976460673149472315673862589006104806576547801463815530289601350716199207131066708984146441216257185056676497221738712805532982866487621584663924723623222917084908305014095808456715146794803203611466850882836335947536357154832065854776572789360206072032139217193168699678865615951763503983204394828113546488163847082375363035129833474556018867385757645750714629770304600529859154142415277094502651823539503066617873572220488073496226937116457033284221010894679102970526829004253007533705059118337528911464919137559240500029879143693184229789135391450319046379494962376994850004070178221742042771422109979987011915760320933081299745663369423034220198077193268090912676610108084757093775580913098115190482166111258497139806562487700816656678566293443100364071737255985914282575108557508481583196311286792734439170734275733804780403948666962211477665250163638539431340800984482683910601977406517115499714484917889016955047171231914664700071880687873075548521021018981445532467934496613102932342766953698937654193237406954133333695724397514637583482219051990469527319093978430497971285591561455991967537709166505039923449811334336215644627281170939054976167641541765595005468320657718913908289097861433679555878286222750767265062426925790430118071725529010936744530754288085325813966291943795074380620961813045771058547983715643556774932685448281011522980591335509226284702528508437235435161028983503821522279928802458765341733846385815544162292459958098023139513674774007487957240465299586328996504789001040773813663039882020085752235827334038929952198204750145694720453439401458175372432499228341040565458434957227564857294737834545267462588703821441052078045037763851191385072409684568839032865023053277067500988074143366044323322171447573420657929103316532946477496907259908906367944132637061404209667810488866727336750761280798962789642487017695760687373801667365476203943546777247566726706351228319442952463933226691085740757588157663512646985195779754854877767787394230351098772565343949428466767486274410524777963150673794175031445109510209498239903271981837550290741363187638518509088524930086977429306989017920307611447465580202176676156173305387130639848329467173690667486777127084234307706343213736341357348175331980030496105178719561205082937500749324882046941480785602624404975834236198778763554723815046992017630405020355546304023820989177800485335758956727337456655808558227381097893630283017712520399638816355179096874377194200594198764967011014923249181508974203468827495876285700888965471493332683747742371213679937242553415463945599021842796893228410381926863953433654481219529201065941564719062885303332502338695288171635070646350927532421689848901792949964539091005828520394630878103409591848590657624746326094692421747523662504810451620205278646731693595908922053568562577832679836212805950065575153082388653907155562964855933899520992065874850972198300186493534860575214884959899428152104548608796331402582736704660208845899093123586721624885517809236627024652160320540476613842389544987318749716875253334856314127877597069403820407152574093397397267130009841593348230571238462720736048493149675585434158205538182263363032843627749505264645346597839942071851374418289813639946700391275039773468413129004180062898835988415228116025904766521443917424604401993970889017498991676244857277585790164300340183530982247727368852460011270643468506484703614176611046718322304281242839890758262306634901138638729567546245567753856471171586259324456016253202790256757507801777329276533449570100467633442173917412763582479407210120921228994780526578729949529565755649821620726830939714504761671235564506346859742674237126624594686744135481567394185145862879903194483457618326193387637409816455664422248995999038218820433874698449338005944153235268837166611356467733871654504309632473184429024167531121875994750494564277724456299648719509862832082313296143161695601613795197766732096220368629287467711334215134350204764930151652759391561329109583142959206337715651970483426066010520374320426374610907571205740768967368670487769962555806100095260867620820171857188518005752539631875450568453066681958213692416337038986045346318154381156084466029775088045957851839743402208122539662794298154138331010099506609154729845369533138571497908031114573113081992768567371045826846212320545656279394863199010037173843120912134603282968720973232360671631620537244769146883057898028239390427113449510683976680395541307588222889066949566497971355389386856896959560992143821727470945753920286939730499567291752764845171507241241382702149224188442288875022448141265725993121111230457145123881039398434791598299905835116722451313688466381535905496952773376539359230733143274324318736873943648806070952032531117871590375961991662267792936713118125690134419982644704602947354267197731200973259002459307403830788499614182439216136748659769185053767750234577294546549440997741863829511868090635841425489778243747482626498845931489691291142646100575992623214733344495942389243171904300819135729380849162535112530227522683616521796963459550108068489454382410273695460806380649947036807644109261086053627706324776295625221536120820802605123706441437580613198742788870388261740310976023716734986655364206659586960954850823595457427150308465861488268929142545353685320305597263042385352126294091161066775203653678760456377526176276939515670434513800316459658827316457807278255921889458781106383198734784853758621495658126188467209279186718766256703803496840960746809022868614114408764989034197272366350437275983595023593770895385798651299047931229115949538359966873770398083877512753850031506421664691508711066128374009068861695634655499529806163982804704161662974650967253146722460433543129663122233278493001070963129667338601781461210210158784533354824634132477055253370337576358138543062153914499183718844783249533131501819582477017913887745297232555829905583749898079660041013579702293322683768422600188527692700634406383855393967334926914370578760872766452175132935045624945646680103758765900405940342286690730943201887175923044629087483462189772076966591127152836809286509251048677968140682133651280220456836273954677563838851683645833584923070244030837991058832020884563179440692160250002865068274858490974743906024662397518974468890094610239292732630725013012271144205567284946257660234793047428341244029531690481626785876505698453342540402949849528463244646844431369523094434446943688262532147890942376168764813790028717062953065365424519780957625848249826176812393801569125599797188199731688102320304060785815920408412770696367782029108464234795248153640277237126651610319809037609131449343252956860894334477130912548582366186932234627305271785650955724140993794370862840970227678953454390113743171180850592082902464217353338792549397179837388518793701785651448801274718663980700328460124067416678253243691107741539867201432360642894023297215195792001623949228065577066733788521150169794409837586443693005025734638355393261002071077910589692776739649202140479837641139854958400897885274875719331519996703416412794395777875530903232583627468477793549178001716717162067730371249308218969568166587816422095369279989259600227119495478130103554646419281156369052449818298682715240303462580472486189682823563121619651189396353979903317139074612971213775900508343257256558419258924852567646637365427274659714046881773126270869908717647140334343362362027949762753224368240606146023615447186501197450988181293084365555726473467218676207219067064754454392113456059081339176764339263442684493623363041102447109893198160550985077537932577274355355045415931593957006721160665474466474810734374866991300652801947911837603986193532544181457183356166474750793261969009542726952648172505089086756990293698352715626418024351706010955882975880042056023029211804096254427006154368192206584631394296179898283426292515196464987333355512111086932723449528239412153355868078337281176959272898672110976215969124417527644412324460153354661526900200068465807858996971693270133097923612442160638277586388370242906690794829368824845824868918860966945259916174800793616962001787114124500347008587949645570665055864959104849613050622863421318369618961555487786481089390242800098071145163486145226399635675467421279501524372372285848560323024991615699853990598988024481146702648556391564828030199972601134855827033987821052194047048601853603442374423705911279116762639218199511801643289415884460310911862771085652891878314141347674679585522319983923759614332450219551825819078051238337327472299444768334057544292304645730793854642234477710060007331940748002348093911302582692842742439463797581479416013778511899206987418636016589312589533104421121141399119249310484076103597215860308585274642936453575970965777574619494559342689540408777245053481970660123844581964651054405801390714388479539966436568451579750545172052303699152050992929784718099737912315684692794060456362800988025603604591460839775657500891489207422790461721887460261394463133178884998303072622717877531793924346206123440870819498346440239256797449288692064224851121388356842835714453650914808145148122920794985228597140680081617876974109418738011431832331773986196061071483511450836528043952515292249988904070125829357503419805021149410724092774958646294952189801708881316403878862067738467309318696077143959819177061215937895338216563307426362275685568882560686415542818207289969164167752355751887125570029984073521927487669121714520851498487730875830463316529204875458521350430026871607605334311097891912169767405491440922168511938361102156541622631906741740472642885888993957693385884796918684015987811795262284251253016790361296513060183482096712923475044054162124200228737251201251005450806072915700218889109813856466205665403575939265588193977853642353058270728988582030865843601407447857723988971153720027154058615520019053331846065753896621344646856370412396678401054531589644748997111040130950152637209047158021483642751210692460858126039930620116809215781299090492083476696931339968350826700747456559949441454855435440689352459232578574764721311799343322415973152936350303636723616892387738520714989344489679018081830128718626916275531467586062332814726948838971505507264970875628554166476004839213616344076049488965274585329538542675659914424571266828344016778407463839846890431375919156446562636659517876944938486057963585829048402017019700982270093360240149042584816097564442452508951344612289638856201873988673809604413432583772327779779366807118378312621119900443329865339937581953027449377375444839983719905499220801957513019339957446373797566854315370945175051801059474403731749000612539497874396903860023091453976387306433555535706875156757017191095425437338459100471124391767923674707801089286863269485885634154208238175846291278943259436137798064706438951903034092798627937612861017128185503692720582081562796344943413052360466986324602506355419356110537902541499036166723715359511941231647031527315590855979417307188554975810931802561115163254594944885093349750514618858637609913011561515531198564341784065334665592683563605549139054237479182969047967480543497151781119611361509501387073956744946765123874087418680224794711272973678396665797109004203202110341531506903907265968463523274916757263285003044119135301293847417487797815953342836720689661223852061504179544249556146956076289767325225658616857707951954901419255186761348752676446821510865574119592831211754537903772849774503605700943708645110254278219176665650583068059571610845267473275434136223713043809063296685093839965574142799327101828610010337329914084518382226298062914766756463784616566715927360797250636276447294509909944032073782360434343446205116019618162852709664340149735987915861829125138263872880975407390730818783732536932418244362062459954147196444474917108229795669262300326479099837612866752665279273862925193399800506600565713759280384688175498402883537296243364046360019583761272618547538469366112231851235880875470279735171768127155768644558897121515104221660178520680611157893648862686354024445879471763553645090603218072518655683217233767542581924371713586271649262428002481382773471376659430115524423867047000169224713433242251632779672671453929867574860691881202053593067470953737212544831335853990261449600469706051981456181977694509019089475749719355281197732122433188901384745562092637104824360770037997361283069386319600051010806794031717896226669342631814245134848416101582074783660071752169173974014165052542935537039494733111341423556459695158306507405584424425046183627192199318439809860318064569106550197612406268661602266592547299913469345399041455405090846588430729020896793381082435456509348726623628898609470610612092292112316761726880920945222493356999054079588589558688888182980963713799412603146934527833138668317174273182806048272874624214191860751363110032403338674630780904307051457033763926545749482967111550620546811468451420814655850522617161848068747282638755920232638952341491223446016683883390033725655153493818850274914476996108989346529110259646298042665617691409038044270109184478120126933186850398379077128979049139230905627061156448285651613630406919482309896166750213666504361973865473080556577193942161246534325457047067169120192895339882633545172180928586040326156251682970092343413346077093960650154270571562691183080212852850359559082295520129743714214912152564989979884794813147834051180189565675076306738357559084056881218441302487883024321165036201315664332463689419883811034780915598234786605994361727525559663199892340059406366347728488377558707984632188730242219290598692980177296889909321848244338751975112890222803231402188951904773052568154090747307616177290238704388860247858560183875628137921339271850125663129056094169106442583295008408330802029758183467499200278699203666357250583941727038013498192595922387757515846314032880683892678872281635745384421233880086805684521619163854009543936612546984925807577360899659367431171183110757260167009826948909419615717631834023586859931476934117582811833422962769211106174191745224655977941962490986129011851666066208578433571069132842551321877170434008552540927993883243654392561926204496534589470713111930962041701515016242872906536115622502145898166085655451498707391564132783210615670328948090994284948803397537191233333327796268909880609924441441969192705697636046680695145084988823082480774003820431968153529327570341485726124911633745642291280987301556217820957299252003304036837882987685859735872441661576969431362134204446221965767615175800589766456451670878718939558837516561869255264225443190858947771924055552058460237723235096874593690530645154507877056447253372483743579853809117295191093838894586196452468089104487787632778718743521918111076392417274826543260732649836303951698813909452540546016625747531717198469690888415369329960280161367672356303823155519771107707434838905284761685133650199773072793683311287824734375260810366969864065875866941245867829811548693509052758703125830181761853466446787660764173328416590391230250682820992735714236433966501322541231643920354252989665695343805309188501716234947336774482357918853313781692069819741319193384066923909857138253759466010318183821572301547447883744559676910427213016501993779442357526042727367613958608390559506377446020515497676838104461092937035524857535599539796389207554689756383594606667782150862291948763405184381597516333960363698000432573358977407553286100396431876805158917282547395564409888301388233186172554830136396690645504887867430360056566871196769408750689722894187359913570918279183641202338231624063902872763751500360728115775823340219541584627952051022532073738457346073178694099436755935720812825569253919931916779121635292289554475170519812550412521240535897363944593258332648603612309204244410414712983177052158174837521088635137996392562175776944939913657421710143848406935368404607789889821563347190741485973944628224686532306617252692583116701984444857069091319248400515577100092690067604082896847993774953046739125499223316491272923668209257858219062613722593607990140266433197518487581972994701471715223335405863065120612446418153077056408153837373491999619857228975495177954071056095779831787402921833206763825423458923834769266811220439504174942428157463596413665419315351911432834368176862856652072689612761710706930286823715898796605704370499077584226351327321825671882960288451162151308976611428571731894055339615148288939647656738571342636716733888564341109742399334570166553408181527571175257770477747500848229301746118626444384385163021018073213071020127651559613830557991264140965274754588044370264730506050703868409102159177523388455008311065289510366651961991982058025730776771432966331432604457315934463700347502273959677488026314847004690048546282817677617218545316944535445469590912515611718322748245492387497324022569168140326135858678828777942056775237783199258535348511106614793242453428351930624744901955365399331088428607005213810571031608563120568548778926850884028442639742036064930061640263039560072276690190006867809843809839459776135194282064511704592145761183849921244971370352615090223661967987248437038390203601876821731781548195376743063517332898203444792459782724616900815432045815184582400968790711952737887940299819721292817013743457507924846302268818101270428826557213259897876362760848166196970174892807167289077836941828487272435263350709652235941698167376808881871179825219427261871558389969014524540366873164474856764929059966465356117937486419685145333054809195919391601315971469089453651883027635147441121340747677742973106764120770187478177391165327820686613480591736937097817117986097192994085020780333382378835776383203143555184232800333612460321565490312522164179322782871325303625023346311933743620553751797887172203340040270511812996843820033211123541108948540057344792616371441879449359344708602443271237294160625184629137638834189262791035233444068665857185112574611319426987986415128278064798478652063548672848956236818814975802112997320872153480708705449393906409121788610091055909728876758317731245142641186404304396968958622105951805311990380994733951196487109434709881115357826749057208311120358695958798609424170308171431110367328835681023249579195482469886069189418002039095650739760301255751972257455731590820603380927026585706115076702950968871447708499491914460777912832989984807248026534593493452755568202453413371210203260019159714261776810415440470740905106204916391397028184205053347321563546675589473303746350700050116618930081734274247342703705217192375789494496122117618379433705590709481526600280336558300890781352182157019593434855972378840927152671212581377047881037843077370642253233127217696092014269145542226629286257191575356630077976645575555772522486117554230561101259597982796045920417103233673251490870996733900978074799217608883527464771944976889401087318820082708792822157096576018542828668028635152679181445769999802812586453296387798182244950800902912073846071224136219739280239215565647802326570166813173323581458127827326456110668690330517660373903115558021826653892321879065072698604354426732540240919684414312499080309830905212633539353417450933796092907220601606584886309985917315498986053925768265306799186048651495639117279762701846806886970278703547707919214356838766986090080225899342884455311364527548666884632878645301168800431190390559451468618109799334387562868984667097577663628663093278292057426949437334989201220304903612272726737732466367890876331569353245851388716459936221236847101652438603265896273722980788756968096920966221901707706476007431946079447216536946619264834469061400361833295437978815734616010596708912907730793717943985498795327385784947249962297445158402428439573798362562855323753633210214200200358730689361390085600926240158740988066216691338100593049353820854753058689004314725535949448031748563688097598398305917016842350644513920234198299671067094065752856653721755607040496906103289092609719124785086267485903904785073879940607421104064604064451491125106817048251520350636663180892423150106764846280668345161643606967206731612285166764640452428754597294070730669336970571859756272314913218062358851304743624332299949153115118651697589535578597647497665532315760277667769302779618824738025423941549905930607629743824287305068139457997087359240473095779707484762238171729230739692315442900978804668216738713552677954187974540335138237796807559596216117795476938646847255433746147790458933873842235839658241442424112055103629695586793416000472485883047114044003998431378301641133467459299640676965100269113732013985107834588342612033657238100571976537101013520617986046363287770628865075035597841191576276796109801351936321438129185892049927888391259958330196090935167700649594432658177083474521724311965403895997686578255298963407238784286399037270756293837676866182695504859725746824893852672155507090906278702693331665024016631006462924275232983318399910096532899751084768252152352805345941715923469328480468096702590385169598732900572646036756373518824981429773762223947388060431118251197166644242157230904669431737232826802571296352584097534646997720837206925659951753717327472312953109325407124955613124701405045893106817768788186159284423243718195740755147949063283329382763435512461344449570534966314984081456579822042421692095737393143480042208112431706155846947242121702290706608265173867971396205571828566730095698644779498649380814405249824208744892810551989776761058777797743490372915579679470563414533494967229327109233757708547213266085251499509670536416992160335929846839627190067577323598073723307808814204847078341492985067355095100529022740072435787873238723947623158717944656579650590980842510645872273256591677562328909617965397311984989239137332784685786566937261651868969206164597653779226261151673590842811001486468087017920248369576618736020030255843806413505320646445644656095555338431247516994339936608384302290553510336337972840472433806966347090718542088232316474766600221215789060254642690447078435997564200410439983147878336996971766099121407460553523223427948839501240590459722254254622142413900237687939180737024199198022174453713375465609648944985364507952596214640038716158270103441789808142527578991778578784239359458045796878342170675023551648678933377222170498608208469902483465527967603040108495577813270067938808235762354470721652322390320587303453147840323390818559027260600257170640371541877309955250066022450496804973765256983390510583972340407092803462383090506383276646902837111930728861843326623837124938947420158855087563913678285166539700412201044856343875591046670587200461307175065381383687039548275724547700024293006794499673951208908583070435288432821222985134844112582455395280140751161878709046151990830977324149237050023479826664584020551325209608519421451533705455254654082358691182850855709355878317308600244596213472097977586804394133094409379235856420345992847628988542350404825265469804708989528937727286468431604551854915791920707869050868707834863371630394466357023960384927167828328058877709909274074959017811467961063457474001920726506294219137421054096617640045656579789399697791541546268994679845885882938797421587757827342061588434688845486509202591578116858075437356629821708013615621704602179855942057824918564704165804405370705650818732490990146948670898820446735312213477996392912980146576718228910411267464758234368154656753243339168237991068095923458699406193327815126219047609706835775529915090398961225905404996183844681762780812400679621687506938865774747162687148656989227447022200833850200356678437959444344908208243807193826567968126989384323631925873242507348909400504712996291460472779577434002884352652029694213660031832756378269924194601009461209685667457245772336440482522176119293315829879586649242763578548609673066222837692235409932882678001710884110972027247184209228794153023250720545154247557312286767030796366404356904042750164474685011285697368407340734116345150402357839273601195544224513780642320327813197612004895894230350046174644298351845930121118898917013853278430039044490781053495179610108133814610386363117185568103652060876814723090337249161834966896174513621455823833375872734744677698210366434814747031333134470576050785940938613926233137202899578180743459667700918543119391501458671768291722309038698710825441959494222590013509014922193184629648346272697387820415726279384035112555943592404611361825621466632182662564633580325767869103485162570291896566249736723101503260300685558901826460168315309119957008618182303962264920910538753204606186968590638338486694248283069621398947243762083449408478200776611909560208432748480400179693362324881164243113096990099433953889743788508629608053003849621931534883718964065953818966671952888178212865560778858731031063859651705804731440173115868345236711570221716258672141449636363823398368196824073919627949584212968607591690140806101713890467170825304670680368209474437661119410030412651975983694745696439645138192136094781234237301980443512881469326319048319184656659019498770759741859355100132537757837066833427609161569448459168609792900038090833235638477422505125388874047388973069588432275401624146495181382708401601419683390223055982590101904892703680476636546435461955024803774864959981937409445257892018648353681049231998551025162239293244154573517892572243673908578183898997674238593769268288090687110188802951990552810914460758506320317820612863731899385801398116235064338387793914197878254197329766812963902964430585420413279245483945840236790937869090924708126003212174837672328735165577266960166828375038665177280551710477635298923712546699486308482793956123685788262713001815841567064465716055170164345441256034089336501693546506106683942570037965284643049603781389468893375713083985394805929260253439717770546657918108778899614292562519382763625747776699211973281234719308977293757361969048041541100986090162760547886404140235208826218399845042748654479688521473467148279754983979383216030632697663193574426304326805011185493372565505205233027647285504245830988636779970637404228264208600816419801553232661856896467479977803479541263632782850198155691933863512339275074490360500633139528609045827975035219548637675351320859054503339909549282375206899026838564379892840423858141450765784578201948502604934121268465074603530350063517990722733607206073895430010311143213961049703511525879693767761977132309723348578229292518513391432313961072267620327347724248454934715899883253888348579858008208068734341886999487453134475034617221384417330435082948273811989375690352629579421243658697589087409996118623674680226412701939478895812444243108167072804132362494250682793358994063168310955078253797890955650325130833052391193266663933559466300628233888929648080255281806716156780967450453592772417934382726265739218578794865697541596578797635880761923596448255088562423427666081371380137784195319011074849136527367115240689414277101837978488271820142286625502264217246652493375711027718187483986428376942301095151043624629911472401046700413704450976643216387471270171230632046485120264579469603713186630187949886340571295646987555476064669641707919201450543061659787057657448949342897506316411084539184638302600628123648300131741438218811497142816464361532790964891949965451436109774454480799057134411821391870745226314205587783080152425146181244398829073466512774137960562115309196581613106260565415950864146123273091144708101478184640159796596515192289907788896831851783016895685090124360584474544816359457237547374684562116936327703344605078652265897800993921750736684187981015352242614709854330291732367546850223088947272218307938583501642442881220503966013343736209937618998665629382298816998824037316830459649916851779009994454765970606772275464582979280763908057474817502113586070637752960896664428186045537231147874828855363223127771885918518156254204986265073564579733321567657194969771378477163903868080537178512152575506626883101500524456385556947604504735008851564242585711332460117179850574307052566340613668612692215905414854939927821883877648448930983799221158124672010374005337750015624220796421796584999881048821684613258650552115905829382194677425640567044096743910724178375659220461298941528093506386377870751689684236786364425461144716649383497598679791933651492415002275719747322963453428714173297190847097236743172880785677310919833777894324671205033534279136651612063359750414636216248227707897157874367429073534456320172348471520808667479449377177890917717881345287097070160734380526604903788865814190633734551006506275593774520776833035666629781285959317280639654374018611673773211104764662320478798336791375803644137074217322437798022488154229884992830686939397196081020814393770018350527294301074120690594303871152904792056285278643826421631381603340607012786332560564823834854108336457732414206432064553064287586620546345647997112878751540550058768223359928556850788871997928776696184131769915444012117651462727837159960025436388917745588615638641332181924290090849422620220489072324995599456589078981059902901910406476370739890097284705241008353994489635156905404999577405092317311167895288144890634477468594307909124998517014618427773273676880247484652595194849635831726023717845770607123547038724005922213076734941065222138845506387579463527566354949646017624309946282898303578131090054206277609412247978279876891546901986541588850648192528384061089201902660719297599007234679967345842618311004670872183686941575186785873201112977179722863677413601157951129872454112532592702766891106512617821754729149156733007352587414624544649440531402235280753257220737832392627190105509356976397811598566174958477350607312810408581991557186638266447067232552890398293100180195548862129492719743590599932831484704505414420824324335877064738202619692330722443636999497565767140941828638904470866134883875731193450645329439521587903814618560718784297503526163486255697534638266099480239278516710777745237783826819938663724042365996349814610764524263474874215813808333761622614377353070428229835614518320515064364822727882444624004974798242446434217183823275282020788457332372947507892651435935810697283345362143395073059861600280796570422077191084114138688939254809672566782337176907921867992028005748448075787348678553847033227946044381406550850811842328930812443706521494105988750735592105074234652741704632615235070304769525987243463133269811104560907055417928234396901443752551853250144312383998680703886359479116550116963934748626803970723828383829871798231970676209358446648783742248593018774204853677223777359728798825884966709695270530542654186541353225719148124832431588189707451043114979615180585239896098458041052764013503897652590946378608246928362224190282692817607467566995232063388066849218539302056475788297389952363629155295036976046170082106223501383265613042560273203580531261736361834094880896080305419797346785521455838237053993288701382662188751489924308333483722665358034411840182738639406941304300031858811583266822414620363585721815458233338038360749910397436199762773200885081423946863665249899852455878818057350008030569597765127913255466339926509836849511846842958107949215657923050127134203323700359991277893719277149550223876837883875572674769303218029959595902329176230050264164229005228916136518469958202105777092666072927838215817768591158232198217588172610487567896969648793495168448056915289709830981011085733629895162325175817294168673532283743161523531293507018836345665702435624269949840478585961633575324077875602289363235513876980946815699742439565819046162673210938099992876999356306334964419226947910902776349334971387102228028828884855421064509114999826248663287313430515175248539361413238289429991281182264989372260540668462240963501399383025465023066456206930966011873143071576837232067528664353587092349356942276867011174636324692581765073080235229218896185672375466951140866522131907349946657411491379520264359086457853617234205147511270433082313762884631039421252816017498175956712062482656676620761481359670371224412052936111040418661767794286359447448503841931298822414698972112492669497915973335478629264957406132998573385766746968222334422866998436769838181447229708072249801258913895560983381925639055084492053102845392445835033626643707110964026400427832472210257310840643763009313051808863769806524392184661651311601306110344399344716557344187734176673014271014770252861468092269117074828481085975479752433319069625496729489117843246569433382548577448637341422381407446748795989311778070199755768759624712996281143616234527374429135580657418573239139545273810460428940980905096377928199830474977667344082396977952573535585470635522972656523947483551021109784170989505694300173486090682129516723622850899217632472617126311136302224367309244856113166222999653500053479768923713707039877403873301553920657907855638423989806189806547584211195804856237102932039483284385629839335650512487451849497043458377269973318895921565572462953038531224352876635939023432937814114787377459153952023810485822154192932558739286808753524794590439778664964162051015409755919883474674988404916850935688066036007744954791457803924291968564534314129782709485420066969022621283239626166444470588544794420146400930042398677565243329193596699110449693038485600733279062619457192902602358573564082775141845818309573152989872347570150657190110681590916540068955814685855553171372537700914882844131055087061417509183768615688046460631036591875055125825015555745524880638490327553511260709222240014632052327658910415873940066364418886397419734491422743726017989744188217940128929989128708285884825436592495426350922012478644697391716685021746884862439105628882536318139205590552171324931081926870134206724344544218514600398245696396592367809097049174149368553685879484667544255779472579985799684865770701572914817019612027279611241975743439743093579236800982844989180106702369857100001388200418600535336388673165347034582728507577372899616628660078834197863965081895031186523399781192550021849634199110394647809889436057687061526798031684912398395093487050227731539330540900917305572958546375079258754830615842149563926352951421612928484125411446307790903051708204507113451059707871870695831500986485780355719437611847258195419881693050944873863832408679525980648623418590880933124638362385177636279651895174653109299316864528894038344107425239342845843716094781135041415267826844200521844200917315256332745909555139576134580767478910396962686534794971877236143210946221629145647373587522030323642999908698231785417538444819462064349369975433568840309976306583340298950285846331812127623723617489200139475093668755171964539825561260223100819496990025832665246623675975570920458623621557388388844064513199217951617104063959315509729760213439829966711259931881691756436128267398939898931135188336888182900010556207645189528115717630913640326641516825038266238527694375099401315699455071058394579604669392608622069407179924694773175111436305939581280471242205423257714531796853254632070596947754589463988851440161126651280342359802672638067135272206972267945810998387823334040980165410371331224440594088443188800546335635473221985827175219505818711695579665882936301645516526573919023106498196611691103012838113251215963466226857951433697105492594800154433188189780298807519183070373133767635275283803405252059517861553262970538335904910605355439704202848714901878924916008166769993539697911863003014496397008967158521856822991597071596718830967078017413755941757239584649984871643123861407271036085114922426669741890710899223709572968094212824299055965608066936167901218430636263129674440993592073422975168866963735500429553843613938091863638505092839339791544104839516391153802724693714667625892864601964774541836298777278601739672608630124222545216717544267283457540336679214739664269533223041232929946087132494843909522288511478098679036027734323486091321917846369133369296003596248619369132717709737481216839251122280215698521288459107245789235596020604903085820433234372458338569352264755276043545404877455593151360124503291509561755264720750838531231058794371319513350760195155742085107196176641027713837906350602324282097634268671747282677576005082432275848398249210655555075650620828573554045546171273840130855438377337070658118270508675274586286497306994066312779752651309784397410828851307186246923109094267680445431069839820867485540952896078040387024108354100763271436982357436946280664118759905616846342192602084880507847652995842678671886635216198233427060369853130804471280286377263411667216076130963058609057237241479141741842267340529999975045846913831122204245521642965025707740924916300656298825927076812371130369138551370167756450023892677822882677526795033596541747496759650778294603505345125849221544016390807419451767782930983870657531124242128367947272927837020021624699797974224033853186937155251068524465400288583918098347361043840943070882689571576271540059863602203633622974867800810877498062561562680559470945510162802201194777961470745924188379855147672560130781672647397849707651046975833080101779242499944312840038021184343747043975976747019706455976382619755047322874480905825713055760875502730199221695628029793954787051709672159370141267671306119551013989308921161146621714289044148208585565837875580635863201826421501428827308703944203863178229874880632572290867915674460518448446696932260817615261834371026391285332888178900002107709252910492776448553961370650128389147497277362041701219834502185498661772757752185708652587348500865228409968999273187454053590888448099032217701319196140461954535371935912337341770823304763765513263995269069083787541348564611590555347644555295445611203831187447502822709564390534571005162499127025750906183256606970154901744289273719248975503015413250589585527837474269694782411658219308695695256855235301539304341264748721515249575224541212254726731105492261537329896261653020395236599562765647447625966937861536914184302582123664417596773261048039318425299961511006687962018071209297783425974501693715957376173043876262828473078758684325441595769605588517662159571553227177611737857772449737832177239960555004763800187836255963412463918063937368871603600306707689105074039949727454082603200754158587964070314982568158936464415629887827301444215455534381986137184322987592012281072135416602700959723656006913145706414766734554887449547827098830781902556513998200389326785317730247349816729940598260782007144371663022120225787146060673549520104497742998774135629555426717137452125895835826087654704173227338236892493424862776522412999260472105916532777323763441074589537045570234232868106435936783609601650188478873806275014362753494107825811189768285469243542653620840161253409212781464479107882333921956351850013756526339662089277687482866097057086480239985327682378232876652193303309158716311249783421867576339719685642064144189041996425563277956526395644090789401373745167364995281661363456639025376262536863376918849470260335182599522417406018724028775726196743360600287196785418792632384847187858936514511068805425940634577707899718800493724377855790877086432055721711510435854277332026609124518010910640090422023582179274678287516871365539669546265116693451746123966721783135754160773692808678436960041779506276290360816616075201061858064280288414954592548716496584337230976391679714853834269450913995528413356429634450345013839478488679335664216635071977757869373513710275565602594015574298058593256949661884050810422701450137307061560054991320634237689184093394366279331398806108150991581604922480039939492028179441605294685643223497793588567871832834085607595382001858853280290894964489750999324771749443784863319998519259103381477003146877033144583343723243708716132130271135889885775039607649470616236973729869211062772739179774086964186644314435060810746945511091674150919411115643767272668280549977418539010584487423036819006398266762542726977667739624439980209096698384017301375635744674412437859313070875800081914876458432704074778452373612759569648809226255354422211134595542970942220103725558915988948785436055009839568969758796272104383856669776524567452211493119521973828565529415141741936797858605279341569259966956428660023047370509133874912307456016408919215018596076308554832779999900572640394641444928029775117929511162966619340916158378816336168030190394325216804639507644585212691711788759808183400436095439981391777238485874358816008379111029105729899030379640095035974671057521570082886415945486906204786218017387171739816529105895449284280820642642995745610709842570606137179409406551525782769336137149557856111435507983361883949799541612570751852120843389967453959132294510189456024565372983737093706709431677417156393119826069714456888782765596279016063195916499652887052772257040602959786369335915256021001398065818965735868136680554512008021437315862051608460926954326338054039087089349091498972396312984733347552205958384101598671923695141851267635992359518963108752718622128689649190950262897095680659652809226120021995563508080093548329559945272205907230546162459902734564228063696162323881495672196782569467535143427740371249051734180877950881433735846243132453798825796280141438042250615869382023626931824627814588681083969391035777075090195250247908198422012809731206497832930827913772890968613878842329748248356405320830624442848123064579766269689047142762282576403853548461727770095449678455629553038673636767528888763487492089304429095811387711492109144071677952389513668125206429234666635420552188748608054882550112204535653962421721861549623274109551721793290507722473152785207634903429872921473969076778257263820661098273676480126669804841894030297274232870985218484071200829127384990267317562095104496070995767631542593980694173444025598206999020640982850842604406715178610419424373221546239585219874934176941081567117513682303755657654972838190381075626256545459332217797507175796969761851950741877487717590047984345750197130330559037424240619887020150147830075463882681263625436294920010145970916101796861089067522016355194216735963472892379838710875098202710293016862184770411979143895588801169806230423851210369647243492724467098789568046770128914466479693438755321654838083823885172098632215283690661591142254624194515926051471022070322626300744347000041334902615056051541478481245800498177210872321625080593822237915568001488588314659457483891128870345833101919922724172467909416281715700956678380021452033342465111083228024008355837319894415999951313954596353434090310539309255404332329541021390602479360135843633477661250625783105394729399101180135361075429628623050085251082581046190995295410776934825670934376954948806846444647022245722551347821011107910420220186232241557014125483073786560662031409035255646496671513167389360848684286200872695607706172031438946830822783729877144945226415367441241603563860869131154994188904347803094030063142726709362449783420620684971144158796585229107641386805116678217108438251926379885797923184273497689288822790214998231348971243994489408689177138901408670987384540615929361571947220129480649787627194627100757655987336733598976734115657923507300567777265367884730599943881993352520970972336307043494514136092365643701842533862086509693481804541687608594690703115779445849964336602081226531470158466165168273257400834793421611191168047942414107418463700475447378862245940958007500816946698701982892280290837004620312972658291444523380541603141064230559355438291879250300719640228942398306755034519029089184676252566500866609194247167914508629938492239685068283350152336451023980148381319855315670426132243545730553331496648082098749141892270096003036446122639484595973530345157073206413210234856722428130235086362171076753385099646278791433964717590281113112403673331742236179600285097657101057382740167266917117613172524184144805112182881334064294323155736946512793062124116053007386935256836838276312469247826413082883350535094670533014996494025221869559609327089069588667525206254288584656400946735000052457323658216254109997233209405655094564472537055977092408515374962319776880297124798644565265337905025882500168677218366422406032003033284885675185039901323101988997115936763586139483413852728769122863592183136191119604602264812597526224256976433666310865506855267675661660786312602366345569711370438624730026512853797725010895643514653962736973927266184910001900600099188107016522763674558097553241374297558977086820687683489385951120167741891300861777862115172664426084807783988486792228779240089875307094279412760635730451051483041590208936731573026685335509975436520205782097565694703647258800935620962087961377795418897758833777335947659006974742227710730906482223867077178468475585640326906570442476676650453409656235589898322938465217707282213174013388783903531797840309099857246414768334143516759440435865675265451681440222411754633882092114509268930811524938846912648335604671209979370375555693344263644998361484871014276338828246544800792321298998362580824480280586046436589104129774059760859665952180702020921336275990734926696733331371585284345414843495109043485464459827191853460796461023012485291841123736109701952618954710089382166269702275237485728763421054432569278908269911057921938854515823698184865726847221090833820212135003972659371436139646932044263771156074574933826215137782673872316588570234536706594709968643729528488116328907865506780357170021821608201095915421421091724039781769903299747771607662543806310223305500781008673671659519874100520919316960895781756754429667249515202380447648278331148398426124718869318674244075604599343920261680251818245158236592353308629776129052415111488241019645860715792168649559370877423589798083091577089021367482340739451845707520755054564070064480592325621602338076653935693093312599923856055503839241134189225219954800227766332760279520908202084453655638955077899313265126355941612004819972003871910447810715821743410003578418078981329741772383592087911914546487634849600084252298257883570659981312002820503284500337492096884491029775668794759369568540432108010802390109863809668605864976692923680253091038208348258082056014545302894535092487737179432310996368137572986571474584273733061521266803843048655325471239286584593393452684547628712571602083004446106194511351722280383057377335719318091209908244589071593336674427214538283375529035974511645053334325651154459874564347851945956851317106383685697589798616057265386735799284595003858666504039594669986061380652607321763052351638461584190601569496339331010847861541464929049852970426118085115428626478422673580380476264178853068147465294198498809783101378936758777497431992671565881069558055257976636236187228624827384413644909834216554414135721986952067692047198155246940734011547196411856690126968956836181292745118994392442350234171251822530435757052347289817992652743722007197384301797537119217532941003334929537466824855411321001853790372169056033761779295844950436076875671690829299653091730512694411124605055649349508621315246215730230570151996451671161166235969609834912794089646650961409558825587904723466682263925662194804589201314250241906330046575048773780380738241224971287259318905896776785139278695885472291118403436345548866571414031206877175856612960684416663108828576576947793105892703343894333202196073958200425302682353087292731679142447645778838546978839754263865050048067020368413039999693173134104775100345955845709396517421175194864409221537672836178246080221517023621648199692273925727494495858135542260684237636647202696263548862510293898471780559933335372094457383547177328154769876264139967198659229286334231837121653828190335519484466949019971520706035598640354265640401780323077942473393379242615049302351458981037296469333412205229916823956347618654843590824092967307334718174009049437596314015049021547225174555010749999379961872969303801436203803652114149590078800013392320824944484295646691657167866802945468790141979326614379514145428531860901024234392581192030472002892573512124042047081307260690657256734535197811013663659406885592102950941584756470164410270982061099835160263081575430859421293681045137487158798062277712719596952896815608518837353091821289502959043755517657373202571850571184107104912074810930156943228740808468425903517665517687087201940408530067300086613858939676104185756671604799826311600375551313050062183552178102961660282349791702573354904713229852830295725765639475573574778393428804195938560621903322892984260011668532152048139333062306127797069447368829855295491999697776833752566606912435102251143881024499788702328625043709108505102431633891303381602582987378149691517572769648240044939555717499485357084286817179539826080636589777383337670435422515009362186660768102698259280275870983526693927306569278044930158177020204958669807753167104127820763602492064577313950764320384740040252931063227795707840617284580951904382682707622991934918749341626599411825746350930068457024578152201877916944553998060109030287786551832112755930235643609325383982669333251652683095056327273698271131623775546714113029876020263905533520168095156337014316526017923782552528051459795372329519599143245111903002487519859693022374135950307739972186410484569953410265354553881752051916397987757455088188035613904791446005117099100709892126108122007811504883742151821281530467320344648246872867345901474959554177168364014766148524383020331505708279736526263301966930676179215850144340932378363230621070833296035433457164674414868332012809708420484402237933174105119100010260655941658171379344087963504601741575473644257750182339842521505455756454105986843491141001491094438790475486648822308621880748599866957846888437414858671093095865147543543403511626220908337043244900192564411980269639109084917279404549743280951427809643027930062210404167397316446054527602406214827517089600116410356709501890017573757687799536584495252294275378839681204200985103028047069276213810149450236908139747538816053816939493208423948818549608207301388632408822638174443515815024221834272263449656688472512111489359086757879410351554273444644390287718213107188303583481574330781620676131395117685681637414549640612754208587393532905709084402288035844490117938997446862722259858466019070232467491365031181138270623933460346429660083687282950032775317743738192567473699460489211845806958019409449545226314031285106445197630590247802543948328733598294929187934631816633696121643343217439686798683173124401389400200519718245389430897101418056021274457907295414543577306728710193509588746052202230235547702880387655691767955542180865458326769794593587922410705736966709808198760061685271007734117378940754037371979260204205296294385793705401868341619214694668260033088833365063486495728600784673848032074786710438069987776947572545242488538971194072947440305395867088109435379811618611219949428250587496942346511968777999007989947984584073831655682964183017355916312454107375549172365604279951710293357039972055897338499726185138570370579932385056879724488137279253149775993293975849387357393170555114626963113679370729137865147170326018125759735842461424839740557027652407506792940486857023230277158954019370082684767989724183969873592613432969596863931925410187772113835513197753292637674236631184519172048268095663703909456300654860453602879675927427538165695007246950123586868713054382827524480665409988425621751494905962972134200627047663292177712321385349385985316176291117338589091236058612120019073274364815983881599357509340288590321433475617264340582607663222463876043089630250470725563922885089597888155568875685766303531838503201310846508660622806131949526231553999794903219034538350089342152588863427389609859387061415994433409609284169471278358246202235479467039561806248414688803666971854931395708366328596338425860785119336279588390195508985374941185211765739824704249188297429564061653187439822694681127103217157639105880292022255507588016970550972391837378923564055917684802805212983979860526867146636392516758235118004018239978499813231976428411108338957177708653616162623161261589272329642133793197688314451521098118275814903346684399383691957716655075169154714910255618530070577389947223034488089748104621075599103241857758927965698513760666430123694620420039219829103364473539342759593015537788364610529232503992244804168767236129335675171191531835525454694886333794674660334534434489904178182885938599948616169501153268431894399415945560023580659656611497441705522400202688584029163278915245607805321542682778828387426426061711015814999290858832454311671805774631337002491868669805361799962849596154674277893125387292593558365025029673638436322464559160554148010595667307262158112071323610863009670786952502615920935219758214800647143037084860969150114005771976174923008292584161568082971781811802783535365680052308656358245828298991320114678069553281826717230539375515467743313356330608591306656222748839625856854886966885853667982632447877602885901508989125111989258523150695746064189551597509821066938215669539901055485068429171079259712469437179399918959287888023640278473863206928717762130971640386643660533328577424565933252173319160225662994820261618355116397641298522246136896133964015038561268343907459070756475516191877511841515494868137498624788056842088190556834602548747593269180977083694919048784115925691838990481227576298312907977892725088596991616482920692774767995383837561986396630824720877853752508344464387441159361717830566182433653617277594404266633633673988553407217365363239811392171422929102022688128021379534866036691609641083366080807506235223100382316113634604494136085765751171841963651473909508409448608919147258253021643710774829951178234757091252189344267970055851771962309164554870891562156425301324505222057562991741083483197134109027194567240688525772968252381411558804252946739475824645233327104702530588791509598354740118662234135489481894443162175399760376167916920056189219930643633192235665051478288471361675516292730019291969116612049570695384519510086315926703631758372976030296207187654396143259653043043549233544020132850062055767180424839309898179955509078857088911027988645168492114610367240452716284406988642788516638070287121211036478621062579332841879126354498229341725070356046014624546794368992105182673168487385171581568921007821232463238020673487815005452023267556153935111607461541911000202906055823387492254514443789289831985179311438771536345038707379531651203939771275299247230021767875871550344725953131897915525579319227876115940541713563564049099413704921379153511992791854701956809724181301096063591654228396567248685145303028680949547134978866414606543563357307866237023299596675841672524294687213561146457734960276731509398086197339865674988632449708716452550307619244484329561738740746624014709332787591577232611406268925863961506299318018893906614690801567021436413398569905637828659247798440935158968648824855076092772700526191272951048238532067646305144940616472481624254831704242512074720530748423603095182307690049406650199767386760838560729047923303860863454340502517980106342838237346695408600280279270379714655143052398009920187349240856555133745199741772812033439580282606587499079648260322715821474440712094151788221005872565617890120592434222507307821951703704536305878308550322617539848291548613569362565867869077850959022138931070813911321481012444606306879326453509770147595650541375662455968494488297426715607790017123225867874301293141957096303778195474464133520740900285367321921760704905086317711112372179000079111997076858657884443533465798242317926448799242428959131647366761777423363078354931968426128258735565003050978390826397772512637107569484353262378101338845532399294636581348192121725500491695360014979262478739183126973987349124766121963779027697231664413269812943084397066390826214701127856359434359621279647325679538216323568631504836812815859378007163325560233573386936214876963929921166207981963313628398817888715468996739710713859694653065790215775855335991256335404372090602232543315208042734869879810137830772179093923339628178773565096724464704004771265119912419763505532138991938432313648123702754268075563446015394609701289602890600366084684280479085622118180431308979353788332676663150227340766035674820769861772570407032983352405160825476009112898304844628562853207692318794159763304803043963844027594839140032389847857564656612535480360082184722809289236149047175357070727578778112740200453465507010548476121009523943319039454141941174980501560488380202651498429422177957576562944501916485570532559836594025398145339568900426967569702272283512148472870779416295490757730894672909039229118607879098968080201116735693675340661271613305804499024168933458338343378154279386936942683792632800545746772567516831690485831110529274497951955338669336709848152443473204133837039606569087584286765873831982597031532037989540988038840757835989861645236314183962692925561455298777562799103811664542463341868299589903321700924537193427876230831116248931086862869243373697178214388703001527394155112242102659464860482751486554403701842169223630440588858302633180175778265261017076354950719509873552347574428235790479277480451070067223338286518012061022513260048962596489861209203113826038156111355433767897917752878186564467764688381182894364910144891902558465377466849323865162932502983537796528376211075088621868983966752674435285010899983818357168711262456881999995524471184424465503126691520424444407641809377232496262582845519167529666867608564526163903313699277572324158691581290801311865544740489112352479539199690175461638762672004494701489371023902857831341468311005233913026831241214603136179689959999275137837225382748857042128888923628297531990771654608249367995043988892138481633537216236901127787013324031559324515866625185454109324004008437799169580729041505142074802975113209561965835802150783264660888885765445973615973427510634684166381796349186302601714419775875471748226513202361943805441933337623093183387543826646418113279011137439925595409711286345561645693205802464036273340119909313191295930430387061924204153402428266285422885983475129452954935721918184325507734572378514266258257701694155710045121275510403335307944706056346243978728503766670938660505075564791833217353382961522458856800823948428769638166724882265674861652785448332749779650800888262332464533053572875668409109409382626145157768912873147681192316823010571495053410197159728312735622710272189747582374134143833803195289379571139103053888885559741964780998521222549051878686761839648947544422025596288731318917091724351513313781195289451830763709574149018631630217185519275406827976903427686704222099409257746654438881753307124614452147307219058922752860370316701416158337502682703645772547322462590743678199830783424488743256195123182791884608681149499961326921611782642017644363683002855848286714596170115310796269565126980710686306572502916361588096544636534241340703764341096499763114390158705198315004650700352512013275308045453399090175056136092220598304612030937160624210547256297622212460177516860397377637136454332073111152125219591387269936207528704461671399615009158456721797279107777016693163905736865168930257546075304639237183047936670508706262639778182829995771061839976238165264123216923787279040489094296996414635631505144662725433505806370774907388516975807645456826726881263533306475612981747914459427461761829114448835906628525576346962919180326657181363939433295429843880754822371066579413602562247286343548513024951228431198799453890722061799422631059874771591973659862540491158818932493943471551033353648493355383733714618207374351859293569079377952395103403055134656742157488447970230970936211373166988307124723756326455415816101110004330806264410093244275881069779899845641877212136369984847006029168314481702300198848182091116355352026575949811513995460831674477514545461465257869359957002670552654750884843916556927501220725484029058961150572410595974357099655123791471521907651108835531744199370154217484538499373531020271082210573967374551271935165228006586266917861366896983976068854367116303245999145062801871384646814216684306208570138812765391624303838190109762423568343486888865679461705794399537756751147014884197959802591495120531859462853558497348295222076110908893838576288842683769393105811652260248651494282489615207579744461586001077735558417590141039719925831466161148277344321915269499316524994622726448729813624753998359613026106811387288357892731752595280025304288469072494870058801425156658711316007142772237099178177179843996923477472882438127103966104175158619774405826070480094604704474219461492267059731257485547512046537534027212488443530348461908936479869935960984837583792438018044939349265840903179110707916602224825389988839084497159839254998134748943906869246237970912701782873195073448790133068765383872118018030916402295997848191057802677950204145625261068734233877757914794772413202745477758224006517161699982021116833443407410001909490242444136063664560886209776522376489438382624108620858340488847958365488061247721716495506970660260106964681009892907332028082165626291960989051355318989690066594865030207299358807555852115048800260128039232938229024751808421485332679236402615033213175200855655472801661552491971560355754859018837327915981362692321612073858671281036116930905147845498180477070867799159430206182838137161786653904441204226423894294638552865122671117801056467527949008246738713297285309602771325863502677056392528335295174954300328419199011534958202348261143044154873168356909899385073222570942874700225936162714753414280432745377959544587398507114072484668767620711972074207414024641659681047128377985726529189661434367638550265688278448835102599818308418589565595629149720586911361355536442110756735898771910234370505769358073946339475906886767381481670037372819675639925421337159983979318277127333902409047717855093438203882278885313410942203811656330186908669296047576182236057967132906967192554506716486910012444805697595747361742385289382684399073616207748807067406955690110008953851132197380883435873393649672137678630779696545148713478746205616985314254924378674035134891686901948342783805302934721497289774207490408639313118410287724863000958258080789807759913151839423629400437458901017931149952258343581785537926065098307687974171809629748730203422073032517716818299638683342526151907376796210121320935406656600484822936993825798582906742459119382774936164379521832171159975800596106777509457804873656491669319409798182952939525043168241448079518769002409710722891589662863399683336279228858490168587806738004883907538737373895378283526360774689198886803474777685933260840967988420783578788686645349179459047856634429205377159604430600333448234648959858461437612004433101453310300420584363407950036435705425146014740626147429072146373711140333266745131609361566821829405442948803818126690073706587952183021976031414576580241264055579565768918224434757117709754118384184895288151356986884576734994906774271992787119475740690707023576905486653779128564484032281098762999894007388570767669896461734199492873199014951118400469789449555452120150907072390032939233823404320614359205013770452384686908594261226812041774695785251134457303435330158003936588939537067089711455327481510974509548108371705139959110540165670682843381521162328928128876302181302137139330793202675155240603274760774598076447665235140540074547888935886199625274249682776135417186537687248330735583770917782517027456895633305912049565840874133409480210171445549008000268957288179081132343273335118735087757466938318181285498282447568737340747839883059834378527055719652207155782185337025267973888907844961794968642796724592788314746427301726762124951138859197571862252463994255477852351304713882337558283644048874458825903150118602623609946331920243349501119872421212805305745536388024353297730085856124721237266086078606291431502770683575265419072526623504406155161686038118947540151523875466542907363219100299698741353622742929733946643901054787802338887275091107929715876364525453597271035636335766967784080622098678167653898036284294986931355293029329372787571966025016328981170856433145982075368223297510565391317292115517400705234287801828660502571589015091962185071997935609244210176247922840167179050465820110947616726378027974286755823096425144862767239167888391301284653616710165024283351171927780611120473126217447169228939616432362371565887284648473020765750001335692919634779043249556293801344313594755281631252507053193222652609204679398597622251833414688424372479180190646051812988486259188557891431070080514873270869041667094035144740953245524411764893888001277481343365667416317130421920917906553532393115648896545406537027085267520229593157876273389283577412436145603094961716975610315320984566173267375982339181047345176702926297476060720515197439000410730847344688905016020826928692635691003763464460415134216489131560654556263514263745147203350759581337353741527016259918187301751029264797512665435779584055425802492083433279790800720458378201087213013174576582032035414849715606774083212185651166129151107067526879330477710959155911382175672621421021877482014690778531210700780219192529191397791424973699723944612592308124116684567062167026970986572068765178431155052690635662536072213056547657718371878256952628137574237471394613631047154801685991212057752440777627122100036330848239011640174061166369963352490740531459970386734769805655794219453866324505865815831516585020406311408758342300880560999238616724557628969832684692539607492462353346056908211967278712141321205804036385033389065361862783838706501605956483702402117845356255609981701743327217348161471070597088360497407999951387271280901125085114912832045081673392319318983017150941645085144462833093435894632294781763364843325536867943424304304567656137570110679842383568894018418098495125028375859776580826550104252487909960388737759178461564467270620319203198331062343837300784938695924615598637372779612753096340087131899159347919547631694857150983944174534456471395511626860769051689079338356975569890984932542162060049921078684855527278320444041590389253833432225808073229838686244936731955106683520126510252857598041149068569670145458261148039086833294896335275057686778493865000424688052221525729687297883410156112617011259148212522835875153618348418493080189610988574038976947802007886354146180639805582064800471649746890598056277483513447071826815306139170010321842566234444709298320763845445763232732151042674812753708247495731033813482284307502250497630881754197190684812211569496672927650459474866226104457176427557018276893871491456408577517880921207516589079122084176492074810210256565901279496400330109308304616143768149846120946278755649655495659702194906175773150282758754035241430708472745437637306505669332516545255927056450780075255974391907713321317828276571692338627029940956941600654043286813926796455897405941080338443563768490266385115516434361802491612648543046646818346762838659688052376159510935007185691338843159767151012826038116040763535945886685332736248326110197458965151602982918120766587193116552042139718937299075149564993133936666917403365956874827106656819525623193742557916593934390136484704603120110792235754788268777843281093887225059785567789827460990013095546375904054614193869300147870996706568077645567594270193246530616217537719278364573614162799695053277837936319918966720706514543410430647499953967557598797373825507673830446804073188719657736780125448306053888902687771074853260542395281594189921744744717648164102908525903164314143512974323953902347806169964704271785459230101668529198069542685610260898063761654001135161483886703604735332134001226533330445393115215254009547226138888146527763710689505907057064697703314392436044898793677879903874333840211687759018767124067418021439416780859261645949469749825703291266775440504841124299126412570863141638921082032839525420728849736096630560046461257451753890067347608991527515544027555677999324782218217331040737204579309710966892110895496282171245306811530431451766071399390586847633958119632448494108310745573388231503344707350266642345917600193224820651217182144368407635025916023901570722077972042462152598664462892878233893687537808525131398255104340120782123113179893590667715041272262873093170844696305256258804184669429711899213474533878864505379614698969318574753378364984469286071592260387732030703331847893986490776085567750895600226135656489314480592674920857337672998010169551745623120386240023417407170795749055686158100024363184596819015818609239618390584438967397387579948253735537651875629571304829387732127274373653621961530458826086727083364336168883489860679602244499924998870802387698807469713734911267991884023795564664616494063890532545579892823714394901376724220227775024474621384966505322717807677072073412649363628054528948155344400003687573821555291765716426693072111651463274493598869779744693933575979724868210606891609871416673958410922790421958344431874153438233393596886161694381005354638489686178289905492731164597751112151936251043864903878863358388200560580377892408536764550041899327291231173912742740977750005450388760936005374974944363981189246111757790664553495217739843969986187680475209407202080023139310236072030511591919288962228069848764489303797894911188739994306182544311237743324862859298968656982751774581640903241704014717717471764780273810424102431084577437726442143568864820537417467336147674417277360906365381598972988854027324772415696459144835631361681917206109362691583943525515842825601276984205372559216519864270448872388846065481600909834194457526546218494429469495782607289240611582111967960780033884147631560930891630622055771078283336968354871677540134264845960458970103173252013480549512448824664751499738697841495146984752044539181161453965201408875541759515581863729174236753563652240321441213290136411928856132639089270974148650177186934392496247562123630636298677624137836283312025257106087456516710211301674413571685423337538506843231423630121116232698035329657443519150822961793052082793788256333007570966796372007318953559703948114459864103536958144223911121012140073803806020983415717610092945243479162393897792186246110287480123599345741939755255978546615491136756851991581871183408759093123845089692417444387102624992789620293570618224875372645407138979481519298825024196835479969100379090254209246362604557222625328631826282650298877551361559093779063801922219141343443194399982982642503258177113388320553336111940854657923065163365377874823464436309945207131387979167463673282385918723972229088035649522452240355668771556226395068322355529439146860849318310074415300871659159208662891500865286974279705663954077744096878224727619036624544670376381143399322948542157870691395371920565784478567257489834706923392401873917434024217736383692275042564863540310450217315125342872424538117400841278515900887488552472770688651235074750954198680643603358150517936236728119543927173276918463492212651461829992882479955568450251734477885935124232460819942321765019130767927514379675421849589959696325894601212456117193414669362635020639234287596956198290008400202156763746497752880502060989540161780467805832400628614795945767731504892214452001059596402752037271923395583733608984654478356743353683165732583490752324060865895796688740334492672088584437376510530929980402508977337862782956178827085829441794611891702024300096690410730889091313201026616287160158592225041675127567422326567999044386318739767809822293364435625828810319622548140126589159521529422844854993660698925204961673565984991443409391118194993704558264644153150579945493928732529551295664728091821806174440955931613912714980080462616564833206287282335764559297383756467461673797510816058580098990251272593113415728813035565337238395269952810434589554591138500024217505917791514403363821288088097774209263385942163858403822017200484860139148497382858579498118718469598536341098290374237685711219987696394117497301577718856894262236888835877331787800508968548667427140067472070379419095265248129454708189603306103239654337828290715243438163835538027417672695694632613407697795256208189413406654946279041030359131491477515683372847122852819854130793469103988578763060763018457706358295065856087644294193806484675701195828092038906881888366604102954267489132134961117525183601624414598385465242002286349693383506475461122307502747736142759671277090662929521439971108498373345710614851893245899150034629935728879086831612683022219296729701271013629888746083251036483649358362347699406678925091447032094024788748742152883153720011642783917830939011520574295114719583910651166654245117347946362112914141451170740640745877636908521334202365276622421908301095757326526623745281686640529344738570016985463876158143708213834446694057461814508182468105773787205756538882157059138267961235870526303517001999006941025059172355294364314970137437310938939070294819498833623236311854823113720536221624409830407562502149595498323816129265112416184186122531928990206108561422161588933575913043235028135547896872403217234806568622691288484421310207460185272538102337929558736732234887272088927693573646356103375401286009278081286919937876338309154382669858604546654141094198917792388053120713922535963516507641166688365473366038902241332038315950626127989587414868473431644488659885218881317083635517427389457247906161058049291302596113946762063290475495475593252928665640315036478092525263022179682881198763100071204885269853554765833624659397026602650091868296900556646068315266547276243669646680842926228835636596512378038220682595442740169370949572516159889589791636775722545353477879869852223819593468565617037934468630376675966445643442928136480341314595119334616013765766806316949537612541323272827537912808251277737745112776084492406535027916271284903154032150293407249994962488530867200301257203933584149764653502298630321989268182349419038051514330025620471703738875355799566100586520448398197839183118685521293033628888151663164702080941156317908869599468970336896935585911686705354274047200651595386333213026875301123066435079855708746609243621778341640348801997203633091102375407465094512045053751183274681244339587067168339889749557198288067088745159684205350810255264859650351412283548680218884200097200157362978371868256271813643904121728827170832579330708330683986353909939197629035281962742404130538015506399056269625245660767679594192755506657510131647695653964472286264323039553088324563887120453814214571295021408830978518156023281470766175056025867181074839974154683851170811538077325043687880579332988727447266287517954935064413034251449655775082358671896678349679593347655984215954897936428378708302260857594471900933965240686319537544875010893197543921862623974286753985330997829858713688003984763862621636359994543400667275438588658649915841187549558339484483043011827292110342251930842799207552921982435428240103948316194968390361712400092294576760408230757759419795760873247939346798106179494855640060818990735218494130709995764975836321711204952062318070821550996243416824199944336541765554337298878029315865077632466143322973401491707848721131035116699915486982564783421233395729833611175691467191176241382767721941876102589930865118811485141619946928634437871744105619487348795701757679306414042178885520024240450359579959857921489272763937432700803333929614645680433972852107493512762831326761291290660743908172435984272231157352405124482873470008502621046072607796801930534619430807174215462916275129960734691577991823320456444475935825730376677880829999035343968610739215532823970939855883623477648618716597395838783394470539860302520218305140807554198985132358983384621766716074707576895443783226121946470432892655370073079053342648583966151980100808418065450767647168359830898214565603347795093299481772823748226175130027442532859916192293630154061109239617012771394984336510446060605950864708763014135910708030622037254200350550365516822738484577952463392951714008444108783831938755851451084296567167325663638073035642469277120184469153771637211140645083357553098848542593589707856197717659922269196962925425089954247312829999126232213068499087610507194759063827605101952112481883463167287761748248502774737615264023520773123456980059907007305315939276914806314134766443782600203141907978706054774745839831245445303009339241658763509793398320823894558343423123436061635303706237809793287833219973672543725684382268942238135857016214065324450974141465368862027258410725552513307602232364597835272545235207336405338279792066133983108304592162985584305019711564138651502944694723782252966601091416121482101344251249795763690736182950591222870157582618035175267976549490518306117138923527768580923316702801494712251528756445875989484326700621331893011611495912913613105875324446879316823063012687300329168184948127174450689301634211912285452073505594608351709614094846803146192456307647258546117713637986680730207035732046906336880743455636604115556518010147863092318901992032115028377379221542230889414415889188838990593837047981692561099499664672588395117775629802337999673794656599932115484209956813858114889935869757861521922612411268892846038950939788161127907276545875398609919939663808166603764721456593938213461799016691156567730775995197754851351007100694469700054818284961380546504066406467244352271285334520581164888732941771078735552152121378368292563274014502682213229313491034438488079500213617348288520896517950636307562574222700579394039542085668920847165077462865142823987076114326268775062694979656556130276930610551974664530440514559120219900017018175609341116077446986047696015117245375338171313202128625009737085589719710457210754603072020846149380792633854575676356891700720454660176198889904266982019245486829703515060813350464339963161955942342310671315634561595648776228878003214271115110070286257865114966319945165937762264229057763475474578109762853725545492258876307241932342918820960933865373422579664317607981750899198317508460930118400624354624581942785347273212689192611019771136355773008597900608366941658248381012081008895570187401083729838944598633588386532884084567953864638412446582095717828498109700310109870320454181736110578732391907348700993256027478504646842143740775422065011378210605981211473840139202620144012344921111478810803333094784823626400470711909205150454044097663244882838492255412529411529320637783513005475476797626990564264265955305717528167842355454233216437067842815946461230451412241630310738093073373400065917116621576746380115560710376745297398403131748432034114952175554889814313599892301528901178751653765746044558857681084267266580588144555363974707712060928846785519612728601713896815711512766848276053846298833721807018405263568486207285083082166091586387011560456308375650850426757212780654798900351032450568849007464553862574740947876081097916328337904645266707590071356625662329630418845287721765194301599645318140688812895352535333906801754910351915983159546545892594070717307247411303233089345083347058453906916586892136584259649270808398136850302112104199909428602128002803801011778302749310164874842890966586244163574884189950647383817371062087819020104348856976276093215070302835329728289230129195521084188880292031801780929378483757928200038476629604716076781190319386229314236524221816010712681890638926911949467707049093203384355325241667333185773390143947536336248298280625022610727274966939594712749669499509209969646456543513521963724775475085379805140842437543753731180617383154221118217418232618854141656024261293174166390396406806520644731522313912156870204505062281964882183707776927531748227881255673704487407323452300533317633384496689467073944867438017994175828307385065225802006824886710878559576860743676653426954891310653745224094075082728739390529439556098806767455116212508515918316279300759236999385735099979731566088034116910424308257674409535336807669874122528787648343685029384428002620832461478816905526923354252087507904244680191913349216146807435149093854508504936551915583198819364534501618913015709491092807545501911985355374925588131661966341263859890951083942372005562490440493539404391017202951664416130053802335802557277628966512079715325785037401102378918122429960935722443067527683815851180666838393065829210252300564585747824133482745474120691516486054105302742500118309428078145224689298119656132911201168849441450996034150898833866242095040014945927667533215038160734731843238540274654129844043631214089151660753666534562997298379527535603510338209584161551314396916583231588663932346649198611660724324309181084867045067213560459791600375176743825583949831012060293844975809964805363520976482511984946707865561873375775548996175045384974333369121152736621040936716042123994911219995377367376286035231457209898185026382781854061951239379457547651515040563318367897943810582469847279370493220886009132630617210272842469819261103941372644880281532057472797535106957627462237993560142865749149520087495358089545561191477732090308197923648725365877969230985238315766757906593593616048740853784826171353798748112332714614385609733252453129712049725524725755552681479008773978115047706232045588867859871013797454893022235282955057490814449898323055823790231286385172099329049436231293361686858422245840354200538322501313252653529995937217263711894604941913416692677733482432085947968293737117710148435672336879754124445253798257140070298533480288102766744687861385812699340008706871887292514198856538558874636350725665607388639184644893067505147291748740634242045156392307281565940606244388722365778666098658870778934600172006314350014248925076845637659140940045020138556793118804951447969414338901383634853305679097046912628718588672037435142258684122501477506616230449454603944997220953145892987267122362440414430709121959893708329104545913453709959363659016258230556018569503713745145780836814246811842125144106274762177174455638760137315720789928692922158710539737060518993092651954401002027083135452125528449331525092560661899499499145226920521379355823215193744449743327848289468374401800871017460426211466597497791800860176043819030753836559288162759759227614201735829424731789894368593313597269302709715442025708549811516718820894995321099829072772279566449490337822700427974541096862224185200771927194416479474302826767433829914628563943087158207894035453572084039591660648809886172641106163760186321020370891749363641790224342034326407305869364350195787628986308845255091740131943815625034571708998112273593187924700792507056287173683947727985374813731619828562560234162743648570983257019022387994336042800207553536226474762872239901167377803044172923155449672956381575532450549273765152908930027735283579844292911461031468882146654510424063140021007220305501266227208357913466593868967060139864411029521680356544093412478446206304248508247729869162509731020294012953810193491066386830703417897393039744280076888380928992922361331411075353344103801180830950538258274715324926206242266650914710829627981368229352538080147901743955963188333606869088618155866500716046130641276397783527548316924875466953695781909568397500110587390665661115315381438624687416296489525634673439372295940866161289100222933059223489868478811646073181178596648547358875332191308066883093106331007671220133478118424012729153457029053937832075671420217931937122098850283986490736535975203393703563665918098004364591546243363454498750318353108571496665912581899356744817437398573856017396990841938526418639815170499384686287761241098878441437727837539020525902623420652244132763073792021076218983933839168756569919306029644200882816799249789216159722422258952956994645681698210672363747262473693830958307511427338997717490951866557523214354910728076137945274969772633180510158533128708428637846108158431107378830613413824012805382985382095404864373066855901829753571313834998900850815003335820205741418223868293161972929734779543006830529848100745787877772836962265047250376330653399067611301051226722809086989315074685285738035062387344605998004256412115401907285738525817066356347921394267530972823200686667116537869907085711672342770801424060293122670644569449731136702785723258048916803499577020325191550068828511377882646676570524872607169691467348809980034146865737402201482915600992122633177632643417355019698723655799040866477598723290408490471258288870712783272433364856374210976158257030974534070054612181403168013839285846428998841737864551963329680095058129270942407068393273875685737909575038629483568917866441814197317204576691169493807321303408035357493010966968929416737438809691516172765532545490295386656573596750904921860777706165179121889700697522288680827293900521041304811422142099366213139222859692416893932799055105916019699134368653816029739992564281005024995257287374115635171777716385265596814670639478042216341664772939367586453074471839254681136493239601480943921294533358497619542487789001728403965972769814803301069516940357481997472652605087773770912522178519840032920562043786320066640281557503233273789374455279921383181493602292807765396697323689017355224514817222994599953114783709600870970891812457852536335523274867374494668662569211436909139001938976655558389249839288415334943566276815142200856663000424882346690115960333249907571854681653183093360248495232042028231145909828702254617411589305829053332589262506665279718871312992656824283694821483036739206930837049656578640041412268588789173815073927422398028792148292464796317026167317177635546295093578733774736269371015644631316725870572926775127860032095149709729586498068487232591167292331637867741033741575448606236436811799615987003933507925148553162897769144717877837840447848433473683703731158074570748127671869759048195802882488765707581727234086066996022605497214124606302776833780658198662351209145689486111841000734212785972879251130929041120234605174603308042424515952826444443541820713299182771945654757362812263643143207742193795334075045515599903990420448655229696027778794904472775123932530137426155406025688037315793463110779316628524932509119212220202711409077751685184668086002698582602021129364105286486924194153880188253924990778389790852794932259910121524852170346100674711835267603958824564477342742527755331707134966910874378114208313853038437180741747075965707043832555523087909132283010092749564319678932214873673854898928520000219113463392336646335088696045717492899179085284689861607139895844365283878412133034787449237741076495625502140377711552537743074180259342617371807016308295564383324344413172124707035515439408197999874176900403227491001696597507018572973942172372360576080369386638755052255367489896879246354169925980607020201956209319801435028757736379020338431345660413545619746104215613018803152567833155968164591224259965161054846305413426337617779002513563730598882744974278515987616838352761168756005865153362363141875265591517284404030562262947298178863660470031362094943613018610527076820285610062958590379691886980524209028769212656300187224956379959633154243034577967060137287020914807431535325825691257957610503490586355602338922679290962123686778369457779369060868263505797644268819523032068631376654883842263501298476592251005519893919403597803318227841443446645075991750651529782269228911272321262482723014790403971442024521416423716827155412917282824359536184511820603556922316920898610786295485881396197760672256810338943543034509758903391263284584020792097401271200824239974665238099722004169911012347821822456826582925743226842943981497918903229622842712969548610849893470488570352117820299017330135052123011789097502801212243778187247891601507856854749623685047875212839609013702030906289964752498067633209565183501432881996349871062799155908739442354089153262590079404038333748073660204379797912319731466065201319960559973569699930281406088587493318103694197019919421746910940052497980638293920896895668515219195636641713808169078821009964897869964230178696269965653220719676746631089628963073035933007502629064054253107214670078370117535190645158756385669639497440825145446017376611087492161669715674250684957257931171583322720416534673757833846596553584730457478941300840585478215684857224476017470978128282780861146453702663006361098668709142556980213942135771161522933969395848421759742676981497424488346613749905357408684846961450367871339608274870726121515968114004717890295494121708408203228901203437319180966391798135446995596812372117135690698179256059510690259704052900948586900686004742620495260656389953542252138503716100524080300536086062583780831307150445029080495725500081382232680562539327011433325662919966886808664900724929281934765800615903500654889551846675463110945687270776098403202650171815033407900717829881378896643109699185201596555329552766765267605824064860581351221895556438956518090978751849508313207007069338859947193017180335345311296608626813540796240294257857302975969473001263727800602156288932033063964672515342808091625489269334253768063582415656251952360189979440799564586573558271356019551938578531709191321257774053146869550959508116330290018210925655347730548110089050111485456612934605305854248277319358784689914760088330376763073422919844534814427045177464521084706761967130853408441035923229488018054811933023054719833321433319836888376694163331449144869706516675549439526745309497370518725764648261139361311823427995595556901820422444788173183648965780646045601831428097895635000287706104996856371022847213247781224593238989442854466879706833954802156374020124886632785637332786007698027905134257398322251691941685962034266745735235175295832421090626798634942161998240423737694985599250418668636127520737209086103756110327964468110410876591060576884143887236281492029726386391784422152688280987102604527351698098029996599173879115442763810856794476170699157024456628805374414476525751286993027494579531216172916101038479339786612137547451725714413953319154601814632899295665640221030232407431411030901496321568706830978483063643741388064345783414254182744018369279875391073555172116491457758332629044878044904400394491962440718913858219945936268958160767940937213732392806278485638895048507611727124564847660304761064707233138744561484395751609163862529430587162840247130922427821963388478582420754378427703939044760900641758929346765309219793675380672704523703822052074991876062078456888184756668596251140648946265396790794657665658892243594935101150465986700414211474218029894827345759544542037867244511293218618427901130325892526898209607311053403671098092850094556936778805720916628826911756187706834979151668947152616657500903990817790350337072633178794627979571681446433477078591812411312510911375391737608252436642571420746064388660855244991785115160499449639059388140638099664053402752236040486757948282751503913939211943572437140086520223985462415943611663938888241405416232682231097072562834429713602992037874077314184032632157097716823981941653328341869708646169671585938683594361133463740210872198227207647828693493584628870300965063035184703549686708261371273653374382324986487121855082969983756124906636454046031628139790634152985340862730876333083540536182648861352782776914666029252716879234774544968490624299890989992955415049523122364666437977328036657036990907373524278079308321735332769230172651180791760008256072881189040225344516392982977939727066290256788584881502595062174978268040839918232582358094983267387106499290801213482754650418518915395796110728291699344786572292927430646184857190257327485668440397555088904313315764330648670650221493390552664834142254818188408409533892510653679951006199974444926215530798781800668388631342351827345927885899646612022625751116432130444872324457807839070242330874615134305917509666713699002201415458051969529645060131966482404111563901958545076224044715945199029020410177147059252474721631504696814413398054172240053569238574511418429484795692875253726558681843615324085341967122623456064498418100458493503909463999290699030208336785626538604003365946932398098994214424419847489565987356703266077429022079495138140489349684153237284703391795928383282699933132245029614136474176348070713703188030523207781250375071743731680261984208691324545655042982273036066107469362600898544612652025038931599830039848761176931499219788084303087496210304376753822385258656759131741271147700666261692955449794612447727775965796753167428331594463929692660234888061722972822862558767727419776673180504247691188758867770899871711076220377783255114679374339742485673320613259139073216565327345118453814526996223139547236043012544691673254893671091199373651436836501277428590856453493801623350400674675002943425713125688804275262212453798092209086333866839977016694762362723759997870160387993587895063649578186510449352073376358134479994657996805123362500294033454927192908239119242689912015412636755482724290785434141563803096034480983755835649476980861250550407940449717912225040571253290698533717017200509862413238599058429115606346990713474124919961180303555540928214162179227068485984874671265815734452182505355615489844939084057766864188812684473623295780323617781966677731883566356701962861716537222617244370417119030684517139451908315447031828763910457504725128619600842762300687814135092270475894782928793521090900644716197376974211804336493312336159212129234936867730342804747790716991718334202169939278301020670878535630216437638055808399606793305417687887503117284201278683832709537265464220598610220227546491091285070211716468107439587340458053785149907609224687774456010938876604882818554119109254539728967316653379914237797227119967339180291208642015164401417807636441572331664218194554201660215255195496236011212658000232458726221097179757996016168570896062365817518355092749186343715199850613240176893967260757689178105117657087446202624621315263610506508152016756614637218447358033744977467823592556846414916681860337405985813903721009960787913588321109150320758292095005017280039012662354753561917838442052245145708876896682371148431187073287523792109133651168478647704745662590585169705728243591823161083311431104881607492821375704318750355610505701384430401614820366994922352162547666210929382370325546764817975998071456971296017692775880856695794880648944901527644379277173802604956895400122237142096642603980465495368492534922995973423580569858835750359649566176586144790990836077029591952111616623541369753055079761453701343116031808830207486722912314381543882744624032074076259648048771778082444106524906417871830074862632327008131497572794381865091556040343637382889933700140439322403112878585393017370143335353453871214440219767989955887234257385074100297765960313085575102285431217815093515477833332172292434760677680977938988489485673295828339214945378320285077529090207913012003009037805500227597955499407165419851020290973256906956573046153809397432587369204738135466747420299244152561984915130590478274745832654959145782987935341479946539051958466569405551594558873144732953289323429046780658250602292360557135710884607016162991647449886770355594554917721894997982118932956784750964541570226241637685873055699096304773159886692189849622037983720920079672876294168191598735242092084235744245358765459839004310678764179006221560081341594585439253200374909730524988141940769515867054039877755022229302601020129830333794768391718581204276128182072812360667906470199175780836107897857859022989341412252981425352003294441288466703074742304040946261124357149743229110034335440557215627247075498639421490600603143481098412293894089008904027181082814781565327673476131555035434178005313713680904690992251146382736689180035047948833881337167812369165782054765215782146624468169791291740596826352578768828722374877644942056085527201462045214775160621600295470336100575271560355788194784103511705341729381958750541503252404140968390111408293200084208886269210172727408637440031901470039560271953714621604640589810338191548153042848244856533559996339638556787141861451861399390630481720739892863370858903006105153203267103975482135567270352061091528580288996789538840641440961586923420415482425055205610060946567357897158280506209354396577082919218725228818771746170618243992239364932769824138659336888080064538857890885184949540785443219032496981411047919122398352768442592742798795120378323107491830702321700473043265894557370603099278660678468675078265624153071322565977236279143390414750040212679636566214328978829934828584230351010478429971014110155299215946008837279089955357240215185284224309049909423637512398542926975172063730830862858845816632398657597617978008094236103532105482303626969431490250538755093178611709692486848405984311140088562304378488918033959498395308246450358283534420361918697883887057040010918202299375433737874611440493325457723713714397507544350245377166803637675177403922605626212907389186713806177861228886459498794678078049441293488655264980585491792115352507559312299323481327212648721853559894119405673944605912417160328986520761668522369554534565138052114153497775116378244596216437476941516615064575201458321210396314600975197370026822484782135025969751429165055149270784846988368760988889700000349692929792534484406654135108943991846362296859019626899287027922507144662319755811997230269370078527345622666976602427987016884822981791996764424310978620654355536051019018906336832107487215569914071738618363827940946870728228664778150441484911416582860021281753790297306922118882323997681714810399664056734857175607728491457950929455135817080330202852285606129145018943497781316809697051145514211053548488786611117117728235873141799477282500868188465701089965829070334196515182397055554373032912601309523699357565822927852127062171155374839177124058796954327924251710448224241383260412135299701490282400865459125296563989120150747339397396911569539789686300215650540339374937730288357096616754861552566799048129936413183810345546289147880292368210559386986580323166877373319119232910323100659339810977920827921625092517166019557442541083021423615533690411051734622875977835048153627696059270619908382817167938922837257851530718338176536755057342405157716440513459290021104135929395968852141850164604893076063911799261929292395524473556076825834175446933615688574556482660367782183707869723678322237530482064588882113104045592485450808359078805762876833107760951670680354046324894921525518378068465570612668996980182721117195777648220812548986439547772770720082172486782584706720658566753855667386708011205688313911067012505412932415221921511363094288486335670539761100710190555849135041312708938668083050621833744693680537637065876554866319692161045340367991358310188788428370698598239178292201381809800869722990998141317209884698076507325620425471376011847416243772814367557563532329965101580766655779531885008169164579660075285195835441002141074885873592778995476103984016727124017399023171965484341689989540790297127487565741496017270423544165200540326146543539071493488763557294049038768294475855061390323511590582332012368688775386759897750025343963500098003737969858736302061846527294782170099236409767091629089910226564790161224957684729286693494669050663529465845164584830446065056285604629604038551553262640616389895785463556973516801790164562773768909041581583547746259532230066926192332371138589927704405216253964598746764372299231349143379907164343624477735359679748552772295519459632671089783988158712190286084173919056338594071470434185562361582649005451505096663628016425689385743098997473738455566919846544236167485149731583516969242682149206306098374437615491725125232233019990328782893862366400635669655948080874728261366834235679318495740937421707921693807324830087432813040582838725312251232926008637882613538536001522507647467313120530687350144723406610308484099192003814941651710163274919295021479626239571089326192623191488436828813885293144102023132356096661777289015813818617814981441196181197919946130285165035689915098815179007302277355960133317293280623133047981274858839693913694026384695120918694344561991406582771032232855224301588517831892420113649336253537847080884240547161359408876708278415041151615818603824026823508478999844125158128810353370474202215345573161101147575720258424998529473687363878627216710041033195445620805393908318775195187850478332288094594177000010142201388454676926380184979156286764549300717502144549132942587650451862351315601514945101980002725346907264962732836370210113601542211831958677776391738231183609168974416694561512828936352131470662991176427157467118371819541363363996733246018339278373189531662546436598441001350528382398740116242638045280996150019221878853043558277815740174761747021479013189847170903162352944218987373274672849228814575901819818838502971470628790902187171657735112071406709860336564106507092937344408790965819059891216632843568176355294141616917375490064425135864251253191029374472527344405755621357810685266382005648351900386225795501691735442414668546821414529934386348642021613859745883041551530131678006087785292741693308634973243393233861680540639192827444694833608257625292683367239108114644414067341101664887358955044199287442608329190177329283518677719525926776125137095597122149780167952026027721555708852428515809475108453600183353223364532543576157717516988151017683075234791856041310977081587831652783959226686256348654249259653090781000012726405548349127037535125128575223745384112673165481831100781082254198271681409755147665399227914560978011166893579922231420703917152548372488180351478448678288924704987629675870686646360356123781142982067275441033180342018503448005886712749733970558948347852473716326344349206241907645554556227325826626617489901149909624765362044475190138710831417804293572835463533509338419334932579339497131622833545360313833071997638631931559631132626291830403633887425279488954711877154640915698640608556746986958644000333852299314008199773500058183309187493517479832049898602415692321468952011910461485903553182024808889627603733745636803678360630743353462182771688811750143476522481303059641378899943045181023139298943021477993345621404668158092610218949724785272153719521078374569099412138985923350750493589543751052129837216509462559424853424803903411645716092758951084258162266522157155376360476576566341695731191847172710707484767094372913101067751532873528052033946652088989426948777788598863780840912103002572325127052477363478376140256070670234291831607551803675511078744887687888186742667261037114039575512314177311420657518066381197372440019839211824035604542790468376521616922350708115919705267940200538760441225130078582828250353255771955500072689789303771050053807201238168376349238685759946568378149690100097872858158019242510333079881330860022019829604438307156124564417912596667414068600048253044166042830455708839036638577723608453469846708473746373727169978450502771925421724768107207312410423711180642807641866426666857599772075736201929259663160788367510815467271855439394783238516652817361016116705821855550938015875817447608672238712616117781556720691238346165057425525010834450486134638487399782202930884138464725552408015815193719256795261175898027834946224601402357904859933678011846153421285297777484380619682375566161904829946051241972210733627105914350450405840634026308642171540453574978538123461616187091712094717498000019172465485458512769010391420605949052375175603555840461660728313869057327244730720933165408217290532426500696465564018679491742395842857338589349814129631854606325742365616899603937824870056811995148534486184043771142405828911104794778332141135578802417849830296866861166098200819566733019141761653573592804292890469661355707822485458435072660488529015730593099157982262267109271981660791820488342112436017002417762517876520627298181387964602701871934659873068713566861526436334558740648332769017486604794708940566992809895214327234380658341362730034499785835719525821281278663817545655744613134023730258804232069122054527939131967174079277589216696666112983355331527717027873533914878918208240645948960488005196123687418917805024242385777837374279543479161137043561061362925982124557124194094066526659994749110526465212004388857924563139983416263388992437313064556863743179635321181356848925594905322097038739758415847549070312793963953139822955558128043165348901170024081210445721741555638403665208462080605203663122927109137612516459456526050236380502877725648973587397493201947765836872760583099328963620976628378991395160585178668189861042086684078069889069481747510311912918642833601479909089500359487315153257072824874076254617188009017592772839750005896148889443907403896217141574931765386685296073224668143269542835726370756901655972962135137772310606658925059150768224772061899181523827170336238804944162150664035043070160855472537152794863224777355592723523159642634901802091145888499962587361787291860928190526546575322626074866394999746898354344590672715576796848050535903116566742771815726401233894614226350515802425680442423564229189034197268707587453377380755385779593497658424391720573663416493571430518521674071393926972698917962944616418014850680851663993011289489784305826201821526919619381570291899960213435918178993147005787171651857982007796014949456996468919392058611208895879108940354672937233959192514201868345708261972722986955326058156317699049757325917657163194778244357328240872725000055170271355737995540664585595497207223482745451378752124821883433359658460887054998542673896724608350747804494655962242277719039385820287822202138858529824221857418817097833929396713485002373797865844309547384821598886338682703748044975772191672003409865255720496930262665019111606407321892690777580767818237091876811356688836927263142299818024898460151137052741325155666119650894469821884603175051298230335759825590186260500976581025875447677766687053704531265851891559328845528682900525949618318376573457660497503337592935431263870000450191758788180082201461226227791972822367611140842654706306676058091068051263516255703288899282226751143227486356933907340291727367103689844101612264942544617961897981559329592811438251563393912767415460767811114482849322939408007648361992929041924578328891289474849040502545639317297229134655072029573686932216849872847081928900107928908884621818710589865433219365843337014673323172666690222238910903733112300133398034836316601762329201199619713655547583786888978686713932761783820647275923029790811602701879412577263894987838464686446324810505621218808788711870236400488286604518260097428999510842400915275416815891113915880563158153583028574667710636298448917877126075238979004630958139664796645601159025102953745377101628370983100802559697058236253633599801643843897415867929987102436039579745162597593816411549761799704214040856427678472215578471369056317553107954378452027619433306870951533023619825265714164327679998406244413503811987388899407645807269424872570416205946618776981330252237087398527732325166306985729378122316543189495252074836971775992340809416997208461455153363364219949790603930917770563900357312748365909029122590341974052816038477222006851514917081551186863641578959525269863319897008335599950527317962174148845757822124392432847901565533431009956561545274150023679348804458740741329700757791656359817848964135356639783744139859857459883641810818778788694886271378632252667211192771447767856523284904843008816540847256295669061446859371445373779007338550959741851368525022922277362272135586698284507088124851136889233767879603544453375554242688947390523005720763455631751957854425470024470877757283181722555937526478604265926613224655999811359821015160319505631220257840155656382353451883534651537870796880967145679264216508094496983728566216840218756576606143004538302738432836850611007695090267980328484719445099639393260552187769745587745227263026471298753707133235629814252700714070367268107688237031614449838171400676384008553669000319293155361034632229034781488038304474088362533816689075231641178338744034880453100861720712589317135635327722790276440941972986444758860251163189937677482314895687861239310411778932496311262844187553955730263612310481182233949572316851881976424249003732057568938197939986869044684468104905118055047764046448550388477104624526569948880291773000356511039871757798070612285730635421937555342849171884365391127917854418122675595336706133970607024512070933195198565747715316396745150529343568873458653123251794357946339644587151240978272928156953078065734179243226973820134066921585065661167001901339716396239309531012952518913594439409764736356001421259405844274339749100108107909422457504758313319373337015012960420421669749173221710281968808253115245464133557001191285753438962294865174050038537320490117290923301253534629414048320079236054228892113058251508583314196336634340469557060257722521811035777646228735009421186355491330134071319372518258072006248285059888052168920229580798062940350822563822886326300230955688935253555175653277071974575602116513078783493154646501409145348230264196766176770760856553472971878239088290348670246071591293419339564007338694641547025908174206475535882435476894328427224495678696278111113149058543491431452189018886455195712216422032553212271127686373308094131864908537856043900422324143664328873639867131598636582617112423318364207291479408098085511586587558164498671676155669026150429424430198292986373191053089142624227383484147360144694368889448559582991920706715274671351087992840741127996934910536384869809919128574141104286818476451077896832753624195748871956147262847637144737776995992217049374372523392152409976674763568874677472582174850040996483766839333745699551408233052054133979643634953481388057458361759006417397723277851173445589615637912578668734621594515793004209134293934675914906837561455435181777940950175464063324262270062491860741184481853940717733741482744627101909535421227805504521994137613364171430098909598165968912617732759762217306033767168337007248866523064858690961055033017957491268734415647742108805318103787197432307143995365803831923745943044823341486250316226062899693284438722987226947873136082252752018078761113308248050879259741288075253153789025623966804559569715216700099289067536919005759147296979195687711096571142478226329267527739298369395521621516268699858187702158337898854046460351508615407625344696558492238968969399953660829447163882055537163153051747360236441038880453872774060850994846650440406511231294837064108567315798823649460642282536537403113110016828714642399784745379859330939694448227481387627507967170869805114579847637844627149531182704961658323283822193331467407754490514684650557612336068176489333674266163560214250109356495361565285932723050110546849528480520529412011091734188449360033892490651170711848208878853900680887198083878988170799302990122206684305370324796204244302855259379833111232221588145280818666438260577158137012377570825978849972947807902742119858561496398770442049024868330936808384983331584897270471977619167084435103145439319316228960684599368220174017919180337186416628551377849404963890914850378897801027335963784239421077359720951891036692574336845898798644879629089176073595336917196505598259760607934119830488674983615296745804616303840587298277928315265740623659012542869909769905709720678647220043501468383482516739222004425328910258942503097407602035634235243717611364415548215191488457025666513257958862565941887016912564152625401019619825857927457178174890200395142369589498094202995677839760772505393732357960185222264426695053951298347171986574375120197507768774802650119219244011844152473188985403130263720092229403589133789469550230061202462826565367293159728376627484260883345889994005139326372225928879455773661099131527471443417031090117330133174596764544779040254418055511503329416685522861733751193880133610245331982702516726061728609807402286718379809000489393719824908381679677863710185573139022431432652907915751882366361340937375524633289172694246421266175804715536510080648695932357032756740291940326627116589636000408694543766455044331192347900025400841545364929937646818700637553196024916503174392104271771852578155794892427506464595734471848920311904171730096635458221375327318187643598146816450534232868001066548273544697243528157191621737458522912365222392396818793558084824378681788843444096143464266978015278641395770626296999216339590119546083186832135471526571767241515037666464764735190104948506982443914919791519710622700237287256943324233593499522970748431800331517342586101018176778798036317897744502931212438174088011155507498487568569616251877504243413489594768112178507636952947772957697878752981442945735693748873704494464026515389599098248031219704488439739708004117679245607422283934226332941032608897257321694367421075208236511395103575021689645998356164778222532497696311479070343353803619561041598915293215393686857880946568125771645207905119964807183396617847546309245443331297775404768987184696496562233420907559453445995307453920108860680059740712961465174890947369025983958479397148799752332152308088834765311640366104724289442351560769480552245694240871734858869686445937256193906386744983004401630690344488998766907535297478105785969332740872577800783893993267006996819775509450481831361620444280226765025758049811471813524241945728332169490412144966874337299885091007971404578062174407193285325364748095447071986513568707421398709244031610185209597470190468507602056245215288244793653741147370288572988040476842988860619672205185912067706309033909563576892659158894393624345824282861515445893150060853064846159914298448930613475686365690557281409197666190317913695034580031590506928851886172351962067640182897297542369625670147096383956518840467068735154233754607213835028866583337175346736480953576895668883334039250453392415278254554044614215906344193579133287352290543273008348908129289614225620947741301425376997061994594533363742882316543383563087490944954911199793015566725230729363044801066973205146480894873988191572309466840271443992240893637653818433003993087115578084328289231675126377265433278948637920548913723142707554550640997076087672707858207412141699646971405684210323298367058786114608860118594743361830917597668113063037763938485932880471187394957414584459933020599090408290939584474000915391194718569399751277319981372642507721211349230541673121777864393692883925738844297804585237366811954870343742130861918630739707079268398732678575199933144104380705677682648438755007095417436960348635578259936439987913803184765476394138813811448153749548090009340062381474489687439987785424350113886325904311147688753142693196168191675580633760483586349579002171704050524936676797132173918386270497784152505026981931072333788819964787447808634343394849477041004694911275171533697513630222933420131115131199605060727224333509514448046573808580112183199313589883668468092538875912073984004671211126088581306575115469383167956440848777125918592146643424634701754351635509829655155419044862450640173398573346081226276061672899004256939445849396030296718364513051846429474931379103540738757794592580314635574839572191611023831370488652043538595624950020391389053102230451062641096441118885390118890177601514389928297400448538071843529747851779897144590494829997519553610161728610357546418296886434856482315575757224966769675272088543394315269745315475134027771242551664505069668862505561105042894169607560283953706287577058851454448179762610069925418641768439901696776226623962465884674928936080417528175290137934909128997409729593863500694369807588569780529911525344173317096998385347218683928499682775333313411999061923130957882285761051444032720633128926096445502166312521671292952878258776390378324941465094423804516261889016090323768281280686287540565790883780506013930905630271305157054294240414222400041064961280726005934429625944838024454380878771502919325442643279712979790264438182401961104861563639802312521612393729649509266124035530426810901657151626623689006416066105125524886199683515470970342432823746446239731910579020150577320059063817132481916379938757958060133319973671547075130767482833583026738898310944849477964308942659139822296692309604818408895178477724428412707650652194100712899258972966688311915611475460572263666733903596823610538902219887755920726864930237826008666273964143009992954665560200655846905971235054410356114471061259537805958789418020571143488752772105662045940829552724294554773737626385081313289664297734272068791377133762903955978651713632034783293624921129992756581664890035506264351757813102374021424938836325898805557057309534399687383290675365006185024002070565734741886946212018488001886042137372927486201111886531394809792000112702193247891614724981130826887032117099762713650031113942727624747220465861793528917685039759111731647481013139423634674646514226806263411048345781194092246823419724987150773946757335940232554134356520090901422140618351974368281235811714071162630996869788462558799297893780099411950291177021906765779279425086913882474470081643796616396116982596688911791180969574257410024273132695726102160759737875182540121027979403932940759589127537693269768951491048071718606618443989553854949931477674350609406095011505603195844956478779259737573924824419940926970408249974559699798408111055316216517452359992247707178428027500817219916479659996581323868875625354478215992398904399587848641774129299464225774821480322769099734857423233791467807434190048603223829009887883308681612278903757041867428273298703563111459488251563816592809927299980207294438798055736217225896461516357232683900074685903724788023595882716519478469514308881377148742987789604658061208628825871769499277603962569307159567023657123129825555405906423283472370067191217145959490077831479173460114054480282940396959053706356191653111962455110561985923746254520418597316895164755331317326228015381216286203500968428008643494251355622450479288995464874425958448849505220277277404128525272022021900465740794922771881887352523744110056764622686230680903560526381282516951662830908123880186803196242180758594647771716329182079390612821748890686591305987602171970075816271166504107659011229317287628860845498060423656123535098364600334382052797904523965149587658788938733175401574019702789137729945514581608712673557708788542226061965782279919721165536974819321030800219132428181772423809135980781727437015638287015371611355502210060368180439624377983438233293983557502144532846693261504430370350388560179937857809857425937010246191892075797839246826811633412186237892383846758539385694886230524073307029468865013089809526375507977879565509748884867451584163195448734417217616746831143005145672871301429478180305313564348448375350577646437741565514311447341626820373571056789294735928076116817040062661618331162780366458269757344723314974453087965332475144360605602971767817572103172641150525404999486291391736650279828606722323412432417592707319799617383628671827214977073571658881711937910926069763229969548934980432424510315662986236971212184264692214668168365662112722088205989812904579419681387143886018592559680441098275853305099680922865402607648960791014758826059127347254174562799259016175401751419988265011403698247772616291753622112673541786141553583721757196796608006738187875750365302976118906327708161617179158731160505219953968765515862088825373656514058540486662779588669057625697201006341474351691280013211124269128726213391652530790247576969642167483953666784921767824045972247084538963242609441074036970255115764804788066417141093512964935657144017571454748956916610444032127711870112001427042923701365364640369155826137390635686362084267220154326926753569451524724589294794191637178855903208316970832919888486878621412400746203523054069677933581299400912849852299673658307970262466544577321490508954111994584228609348433636507665880693032859389683284048338402772241586020565791887608300549797341888218091102679718360868324862790321760306482387983551363509368382824534026247589098426551439735052231681169932439242690439948970824742489643562050614177701356330624759703417919130372016987368731734453491432049982290649542023587648653149941621812019700326675749262429658838396796271491442804265575001791426627444938406615811471933493617048924035544501766157372078348002244157284298307434651761799707185881745049015220338903563988225284920146190893881362560931690524131309415599582088169181216891677706096364112008119958873607015459686978969844247243056790559626795846453765685326104158941645135871383259161637074946081718219558340958091353074584470902160420668731469995012389067569234646425962669410224537760841641944102151870351897496417318975640638172055715369563919861295786815496345144877737976210105048156102653814026301227673058515178865719439345659735536996349857554605006053459133021564885638737520233111287053400508059685407502734608257380911756537827463018594263877413861750270117402554276631549637061949353102456941942705406656323566947368010728746350660807681213990616545097156346638057849183744084962990572369415427441459065522154074372696441839497258528535327769818467334802888121250003770474152767702253719878911381132808578816952784953985934043694074738689631776626962535694844947966085906485434397967078188451568535052989211308838949102506224198607100458462863870677850065595366285114781896472501575166715741929121295964971884244695515335047302373086870023339498332810176784058409380288639389312210475268261712108072115874152003495355210296274311338239949026429470463381198301825578547660331889984298119863688049060657001207925003103681545987388229289911644555221348480472484226929476800172942925956795475170940684819464743750331254966640966698044959972890707669785003004737188388118668918284430817604861132157667561228181735220367246801050692558868379307913183009718607962628425788734892521912899743937979392412526596045457998289123573519185372218516828817488206840765833933191268736500753150401545818815739097948657013511097615866371889055457378580108708474458020458564205058242792582494169539585330949504402793172588318849509419853975750042945218418763581398026515833171102826474879067380733093541942159414619678603535864341534187267882748429244958851637070566652326736891291293478652309832566716757081580552470037737093358592036154807464234387071416158193134482906909915884247202572329806417712857066992991352560184092756229257343013641092930545433479477790679570461090305587380535539823032108180446950279613219886642491005014160383325661510727958709402450563900673726663570444722742908898987702302402097967028616157189336817852297669929432465368330346166793896317377063704454913174574621328129977713298184862747775265009002897039995835826492665056540114779676053797703244705031309217885829640283457620963951530979779326682913661344604995798726809050912428197096477846507185994407333944178269908857621747039808446358626770084881984356826801686057865112498335567454562734235386274198596973820251946675223388853643791959343543920242308805280365981426853404178007346464716218873591448301768469644159104414752774739740359642757913354151950260481960248221455200485503960792844017266145375926877710059947067469605734595152372578117267627218756185543064639346224901217405697015045119515379890247079663011383386183476638153034476144817989622659990109114163657813133918720825871376308012274443149822963528630773758825363743676801502537306579748797474971598410682531908845797235545967527045916303162436479991592770396650120999155847179522974879326422439989231303238471072591607398272869790048084766276746395433036373441688238394899483478685070004758323870547347378087756552702461888045460564611492999186680057228529188321992489625326841524751424307960529308020341343040555505619076308948607186128913477627117419441595872441752093588939628056541964907679259688610537090395730934557991041288601310916408638641581255055605665103584308973130020796455182660429711159380148886806144138178214871094884933529036521914101156739984350657492622706642112289663669369815973447715695410985411982895796358736091934042106731835347704237038919788503239523511171462873912340772488057893023307980686085372264411814302990231561565883436704287481636806227874054393922171932911644395590521020801438044848922233142757356942676943100440290425709736385544706244615214088702189068321308860521551247178909743480566633494372939203569905443607308537767501507076756032516724258647462311475641654283255118777913755624246849982650985962395430582846430171416024262272101377653851966605086845783123440409124757582000825537501868137264289874421723120889644710548653968416004718273141311143259029211078425429778530846064107696547841995158813901367634514249246120102041936994781896423302876702554323266115622548328058935569132605787553717531231538441427945256810314536282495594181312560027286538194007720485055121064916468707677660410542971489058038686919434964852824781901140290764648087217418262066835636833758879381226594439106924123355611871416714949929457076629267534573333608921727958853537458688107752325925773270511653853876137807758878600162876146311178833969077836736744495705758586324972817154832839313045013253843572220600868206692492096734296394915126418926605242319874727738606633529392384934907398470038009322964365806886739634701623513668368014573291061858631940044284585015477832675549030467993545392271158985163802604759903110448713467263485859522497657328460609508839818197016123267326381619729182118967241998736990639115394292140573425460924920132939984276107907785402104629767440335570069857282467587306462536499604612823923276937028421188990431527619662858612057129513093199913052624790185563490091955915134007901241137558615816047104190950752314361018722392397895898906188860761200450216500137872805808757817310684230546703764242689144421428672121724323080270255675892066778086685858022242555917861966270643062849274036456772998146769633244864077799150857979237544705480159123384350394532172582842298165370005018852331924777925096673429722346737692110854119588296729600327689964644063750689407679868569911929903057739444986358124016711007405972450937761241594535445743903553684763878253332851918116347923045895030768747931341968437422242119637846536598177018767262343061827710848474476183795904651499897099146293076107020756202028739367723353980236233275433437505728687109644370708917008097696479718575235964970834186387833328059321830329812136526650178380075960343058600116526866934220239583422664472040225927397063929402069384088575022108897961315240791071722993210024202848324749678900362483676051730636672885654098901529862569536142497558947649151132736398877574158056372711642754117687865020335779230840909021798370408506888873121769084273021934418751592952404315655983606826944757737409597737588348494825374459204484475264567451309365644168564272371267093523038206993532977671681397791149608064413709874234883975854694690891150844388138642283426280245354488348947019819145065456952759009130276705138979554756200252605099725632867765349282565701752602836127364117204382963885230559649525100686177514807488829008538043213225783255901414974894937407884094127725386368790747297364885318877064590041557631063571024670255783086506153558436828756490321507208708469707774285046333533806408991036716992671640527384577419490639738846657289886395480761464925891534441203528091738171394289965622698910743993685393583611726780582094446208104665524449449299494279810475054737127338387578367114190794816023671450556816382097587773251365145890738090388159927550559044635431408360943981679422824006904427589998523742650610031533903810190887055475371880169137509754268413676867003470330775176559060878319850905967919835990758721056223935552192330712524472983728546273567350909706085905412574096277589496979683750612077115961001877425585782845340635480184452583169430633763060993503781992266779805204172673762427870694901931675981247809404277588817063521121404790427738209107893636208109518055935208750459273094301864302743291326825557432945271523164548999129256385340227012016415683457114859850521735915162826708118304970884558106510901576016778631968762779993418918614920758680723909494703974549722387691619087936656114081696810344120597033123760489532576344185907662329116439148881292678621477024461789227133613396457703245606423341428794384521719899078649449659248182488975800336762301660401309137461683110896917645301816022759553829031443220740494730909797335230962273047290108672310128171227095397073332943094122687114796392805898483276800852980050396173178880212628407411789486109483027171676953741694255863368844854641536693354982318136286183846437147042393361472033000746663184401719568358119749725398731452870033822426375231725195886581938729146426751369462436945943107424659268453853569317649732023681380579363385793434450229491722660420492174573220922019989768955552012408699539228794957457497613802875433965406337521206683182445242114550401257234604692075147979543033838794299773357108662557405833056458274400831263248033921983837879926615293256033962727368824483200426355823395901926663743860620819442736632112232439377498933564182727060016220869135132155762398116274163383087548748317929538273042196105278587401853831229062265978256764662021574464880241120958760079086909877640798049695907019231231542178664574844187841571496438293682494862341273755733257464898569896364639582827851176887275019513371855458718394176170208635460040837512767579195052680236647301537543471532256067242952285891429284733931368535821622955674372040466209338454237168275691273392994298227445278994538348330105366564205254907033952002072672330554708502275277983517811784777039856688745057373223064050650623761592692818137101225117091265479230872767911259550309349384186683747478742985946763191546479252625940912895548279140312655303177452655248943031286151708333560714562582889172601176175718417456754825674224276142322365416323136935597063323839502636291190265659347021507552611699731142422676605270270147662142505423112756210891627293237165754529355933697941848865013117502940399372434105331700853152611955227493778138792126595666671389606568789567486837130505998264321197401219292767039092497920952492812486921962423717926306743328637449255446165500198476658235223146948287198013181804097557729934525308983457341466494043663465023973909145838991497790132974235646665900927018172555817383528443903054319640098607483232480516272012192575567727611243082454607458169051607304447948784070007281405181016414464510571619757562029604798302487422681120607652502501709437409423753740988280479481312135997021720163879104864268885079692918462295039247103702995700473895282798472570323885911266273690812839259541747672953315650592490071113171718122752549383848848463457615710853268761382677473975549991403084272017325929547101299976785902236754869897416378546238224894292185465652093084422103852931456033071653271578829261365459021850745588807661761674110965083944566226462872862415844303680070921178429334041891190004271640551945430039111157548506611156791246239916450819628151119604105845310549799370487920347834354848421208911344581552650490320453820422282092245482683380506575568581543928803603856282144285910123760280538431873831077747701793298691755432865408457136140620835293148122358959929635558028236772216253779515517206465785380664615483999787147043675541453278853644377367320391488478522756952939453912888508037586158525501585546129618621011809182141265193718571727910266623096697717566330913659415441456504313743409126748394243823819087665946246285249657938311854354658409443746897505399393137822180576453817069303028659401406794294802158756913765581455024165861639641825629550152571237432391836758410504008973047945304064651313388685318465854218446149211241246595934195576980782531089224500621348048589236399522239533542914748024220278972000328256900992706976558205918699643413019338087150529522471893407678389669651787796285579847003031284839244503358496330104677486503811844740972101144092742350985197754936802564234999581414891142357302039162210317209935063689203548431985081506498384249278752160860310542226500090390496681830800767530512655554396397596746511830099325359799152404782526104375387153724274618076735217523781325363027526710964403114584223407388375348025871946532352536276295684507566311777215583781076192573531695111151295126448096752627492364353162473452492775150136804120022385081965274755959740786984703745058603715996585776250499564983816372371539484562655253737212534346664811624520479427710930475922727704574831575009527286185768151860023199034435481576337934389755890932475883366364334341871048594261111377432760608595718571257769028365265173680091233995599296718646757677415514663552425003537019209741166473575386979854517337125593975518195217033225339986935606497530536703619642445834114217611828597484873541856558045029182850649269012995211354282003735843350622535980201425799250915482439897522324771921824791209915419045491200313660204844862716979025263962394966436319119369200462947969363574007320603952681046993677138902783627007127070377831744292170613202017625153973172169111804176291079750432238666898828980885944665154592903199310068053540936960504556070565520912361265523801190836066317130219501198166941362258870298843200779132651408674948128502087657028198964780658620540828279887748850472661628204461694382155540097430593948615092405526890886329123270180787763736556129386592089539193807885609529623933591997607891399693190883177603428341092729791086385395126083879164902244169428860260774383373021424675422559058186317938870380958443731903116852261107281844136402010433990544399567517453940162044227932681115076551616566669614363406908119745638133368748106211257707411843212436968172903484772059388981152636713333651461211299877257515809423541612566755044614450324489818771327490699314041706682302809545805232329769511521399471145894923110337264215984313569321187133291194082356725075659640304788099798930845351152687281182236958415514635439070792494800991241481959064943755212013031653957575162407433283301647664776684207429695990782187041578283465565277731269125552987619503916657621911579414243740298762125428915769309057195210509701383693034516227992380191189677150910058099031773764763003481184939913842783423924798768067275225722444962517508277651965745240055348070712981488730196118623723136241658193135178523006259383730619012751549231966728743141628109435428613293563897455593648812753991501685785476842054392753811227416775095994835541257992102894160671244648932305306682000577887018498145334808887753570656580035914062114894129876557680814670627942522021696618808401600485207295242882833043716030254427559750685242273962154147659873761240734747629911247337453218948514950641015035460755463903343975390171250368066289626857850659493054947388764413118120472181108025587526696641918037136996840207619405331025196395657282410617635554760355221524287753537242083815045486869316137594767934346655346438322468769645779462958637431744531018487268264150497805358715198363101040386458203198268343362153302746293338815726572139033950001436659180247636405453194812602879278788628074928237811380415254656409727075957127934988348839391196136708884638073764472772189876323028495857915661634824392353145469556964402450666065445870370352579361719802815920377682354926227591492210084677067879953580269551329311072798742259688770016190612799237502295361204628316718593671361396929520099860108396772888800178673705693699503235938062417510158950267269440593665714383772338993788704414850488339230335757426775205017618344431788418562716706814351931204408103271159775387711548907662015619774112060397783914567450907191293126260936719960513226712062568070629777116809027219582853274438469161886685289865609109487702612959110333407212079429945184734379553419662200800998602148886835628429261417587790015299903015824272802193346708637807259868180357692788827384617350122846375356168078593289237394471340660881791935606075333889959912296706305967183626288926027482547085317035628901927366511443732462793819162524456790617401335350478509292298584118765111162810400966631072430925539547722084487270299555138775874211818975162491687836225333559128232576328844160997486245390214363380373212552350076565139247960113010642703329018800329142690839180810092212061912521978189928995216027136734440988450556886871866133030190985437074782954106470873839649208016533260501521874674679883331784636000298715314426537376367306059138619680416478007261042241351401526611486288794409450330804569924202217183062087138075609446863674910464589662757017674112532834558631662964424515865781449265324420426038523975402136844232422531877129863416107354008921502301386373363716186493842652340453912968100631635616049579593475004433706456545813410551997347011885941939312231744745458335467490552578650647751230854460118825587678696259545320970979883899531479149098182518213560155921803464288574065014911489981993342200113418697600538248921639295558487110792205540183444036806875016040036558805656814157792128265353175027391243644574034791887049593484903652620029971698400734742667081657156358610330868163541945668021809709972063009529132189901161438883970195222427509197276139132889799496506060633604793765275219163412019968602509886249397902182093003266928232271999182716758963904847528386194366309970025598921336725212929284588650795587796415334836435758776182925562884838351278937041951939827525421592411374973251955350901397770774828590476541447952335630160868698745966689974885065226209850204024078008494695455638319736963332720684569298018608504212260231416578788736974876879150448885888643018445863586553357642490182968099930037273774397594354312465572256052395726561367570063648357734433169240705528324266744406722762945610628748852862982886741303353303062254861151815495624793844218541025421968777192573174798004133406869436920302541530854625361381790620313569820469887476137627580694930111770346099842272430994886634033057622386039337833816108547511343432703213178577857869305620928361176724751681680371620023381171403364146045790273331429395883994445119403447380985471266475438553796674584810161743749881117695871179588790222122098723532860176960428999600236849268336117974736024692960973066932119753974155212634666167694425919772025596734266618444706190118674086904344573214378390874060897239450417001323557001390926000381712078509768038779413677603993302245291770181878445273902307330882656496948353569955592130317034609148489888766673764067515590204294914129718611444884263205911301674826656842244302546411705540242506573275502872228413508021712125543902845534626581134742627757804719894567723356882539333111774332944865077827086998496122083128726413459318106987216780026290822846709697335116551259638734343190138370238428869627906400721339123465388012991443137533682925682275729707453641210561958814236649456359922128078739250756071190673322128895683517402449688393706061444083150042575330793395588195219675314053383727918048673047209435438101582093093889795185858013729370267119623972609647060726371320941688667255665151945655580790055009813165937856485724442233598542402041771544884129851331075340839040568180520853585134053981278819281998625077897321530669239566491752909949542316501989400376887619171286391500084312451576367225466702266665602860385797423469223597486973477280690115193837829842213707754540695703492862805742728040526367854318116117662900210185738415038532517738692759521199662073076892614204065139359396369788939018856337752594082310643476841075653136101180185044529174608439774894254994298809714675210493453662415569580564699982930088502089154944040110540641625825211512429257334224033147037065055196280960837597916340471827989240436716577101480330120299370940424804613171761834962792066079250039575487430099584603998137400054070537961492645741063751437905009068824620621397521287561353769669305814138774597226695895586501865566046693856847854299933893235175942908435253542479464330732988838567024938437906670516518067486283531249937551171850446690256101135334052034663027739812357745233095333891523590525933627430960142243473264150536077894343342273014360510140502531711404410405699544771288342612216891783240229089033353058431783306314731694465039520338882407411658365438406357278798669195778621351163931566892690732609322479903014105197471164401865218770846053290871985129420671350182917755598919935705027227953231572564952824405336087336923926190732686586426807515100826425127572109197062054841677452147729692544876212395457967945823431685801892195742414135764652719192036935299165819153905820525086889718722286187020572680815299287021926184752979405014240172886498928429496868213935610383996509996118196406202135215115228807723445062792770635068775566405456128599814772756520766070870902189138184406201792367400109739314540210250234673634012705661321457321986130933715446518744038730270217489646038518608963435372622241525475628889027214995443068523488232579122704765985527063075749743260241322593925612336365367686531800710130293814179622191333509268395161532507311676860395861820459399024836219255404558864910340239779273721535973177776908890220608949175290203525755407114735525728301428536710838272709751179172959157751786731745989015164050202699715594015661939460281389455272621789794300471935251701231194118649201216463798637027633575250171597533359115582459265949074920743291380026691518119989067703997053650212692602065571258117989415703295372865527385713897588134778317663905289275294332963545954498244263274349051188665495097508104203212190554948092241629584421110061334035087516042172176431872397759842797035671586198057901394782964627528422428938577597831644776791141875445623254056184298885389640572697771691412538739422017129127165031260899683087791847481094949894868047999859725821407279350563256306281804172351731819165181081672235034309523434688714540191437094778003061862554946569713326120469731706996904705230312310084079256866677572422158774976276681788233033656870681210866467859718463709639409054508950927521580480450520779262037923221630587982112006477390372587812866100938998359098682349276265062424841269063376950363485589962164747946046222846752281461801732479745899247039925535869552945027232349190641657089519695690521475290188917989720727953619158080666460941162929965580332758843259268202418163937442533636370111684818139404523190661739715658405213764164866919436636703832820734718975191941586486458395873177725204336280634330163723498451282885076473431540660711710596025341580696162044660296771669659514489759584661225662574533160152892442652384456781063511489814259250125515642064172008441337170963717809292030696377046437169917599030110502447982128080629232938737270959782852256246968307232295259855777508530339883737098170224567769307634484886428604028388883688774312720913082497344758554029632958012676908087523021929448625445480531962085238775090133003157068329554023164420001065681862233230958579013732456603965688240461764608607741305233259351609177814880288014602178900379264387672566220139629342620188981290665835365105160779695017064376248910487783733281686319747361370337435099786878383018214661176980081922605169643387105346880113942359195731822836375510313219595426051910920037158764621863216087099822884599663012429536102580416234369358720022700498678732938315756470899145114483099840839457169781224534805576870059280682461541067698291541246309864490988758805697150548190444606078277039693484986576989022175350687559708071221269904097697815700907312341250248823782214547768719880473674395695600383719063704975966138631598325098281301076583328574339907493583220825311724781125189033590802462254666635751047974921601683436074731808108622077317240805330963350840314211906259572418460272919783934212756357545945506648259652263568767187744593097690886199017726468629217890323606394560723805060689132194076606947881799096496955880951853012108563289843385765656360385620844409259083679796696804169553245992791043504487952230056091893514027351269524004276703536584794279222504539246147655494334289016953990308468860780122984896063061312415454629178934003956126591323188451834208054194207283477570609172058820604175800529410862867057944928164629866885849549734681544998290152495018485573620259444886896923656136469300443033801171743976996534331803170293534583503266423455045297089597967694457198033059346231803833669071318042729839906001365403453176447748897423657301065751266203039725504172861916939019832864229369424673728017357356553950774762979184583226441073426471498469950240744544434434185897159684419393207740346241458780482843597874071849357249285190635656730262503243740596481032854976247837887490041602617106232260753825767643090586121883036452814447170306615694357899415592909868891199479129468226271650875778244688372289778703471807336338188743056885008883771739041899334193058482804110886293053736706051655580041341462814837427125428507726851568616639432528368169700228061420366039320318524761023402226200340906963242746071222466725762635788993071598493195678543337886234747296997794227854880954147892208793973496586693030760770936849535170122517158851455135017012516315405805752174797890493377564298613279483508397289811020588145767387153147640125282088650940591032911412067146450072557802249490181791724467914557217514911880165039219628065141935710922531938996499955020382057478765879188449822641070198111896591407564432547812995642678385787539283275705176952299212178553526142728534526029638743495317195283848742707739795567190023839709656517722564920759767478023359930976183973250252975751367611593115240595411275029865559718559817840950128342317572855595347803412480592664962743078471894831132660197441582436753132728207638709332740068321540769079003422523116300440174090184690733723582699983582611723706517852024211015542195214240506036385353838982708273833335921376201191625255711611866465281336127858522089873081773065351115446052657300176760175957588778142615256873374666650744264273920411936097568557008340015841271198344858070114306737359916571214690656579254265793692288434456623362014600824835185938548873536185772022699414569998800518794695897959770036969004900631888103547250428360002311385659818762746411250424688705920611155690129053244281405979739846483970514986556165682280388611701044106780003505707944036990228657165215495667372965099408691308209669859130625704896606110008166477414503217829423091889573473779404318368696517594802003420649822390743265122851078192408853435905911761270044944354416351772424829527803928335596633503480402940221671060792400382270916886470930537210358978660261544310995581621891995858742895508830921334927949333497851027294407045875848436694152093220641307590394610457907774994290676470972700980141457020966616262818439012967411414363271500147769485207086761781082323112438260015584658221576984300576754539181467136953989219598984993906832826773482517421534128728129281228665622776486080303370026937924021894648942529200365329823568395619791106897554651917900345021699382651719586675869856105825584003968224467964148736515682986453998119634711867412907155469894636894149161817190891402313229810320264091738772079559184133603228653238681198087735388404847762016150807305153924184528126132191459756154509178905374401432339538329181513098542738745686315507879140873660910465704863375606145793522871847386804299741991826860566097421848511341149326801269961231066270644977748159811847788393951771711962082605846848676527535207963125720924656110257061113102822186025838891794613598444501815079918924932467055199444879484284834289807184215324145304490148206227462952225715825168855087771918577034411282649611023381809553600323979089812658772190329251948635308267255932278041049945642115668560504267632130150119542344937945839183200367914146456805519420693774194120881204668371199467842537390780314099611911292445264084914507829449555641711902950611666029708874791532922458398725435933180503688822816692925365647825583068558556441883081214239291752456582133907343902529961178617080052108399294316776139313849577802215861033118722744616071874080984857334954323561597525575632115817851070906528305793409718421022478627696576134639324543029636293357752971355023510284348942616446781963681526966542429475766816955929987133849425481419788465603050751851033935446436389798734010797491129507118420308227753336668433784046527396775958063284799742344216398691968944115554321867454170163894806881870099077276326930334413954729124985941711328143330657379334786532080784389936807710474274491593277240441176092734715232843374117545011959137060496519678628077122253908510340169284914572991411007714870294150535520016859879129226309886035960071404012826187805566435248644973140484847635382080180370465671132981799435475100944326241940566304043885878107549414493135485644874958559838975986745695075899196371530236937303141879394838726351897781799012349781630711124542367924505093746119827263661486096705829526731913620900845107291931410068331868638072904630565902932766904677228305350401017027063096829448225344564903280312085225941576641344255553913846286033981361054133841170791765666046142592068706304826870071351390437539654510685014080008226351889820065880861133048377808568028966195842724961536515210867563831865847063102693102438994243014470088999253292467038724744673285602558821018056811143813414986279242883924237547175130018941938467574003793569369060434777207092391536383788350332575923577140237036063404362054767022150610021662532119154256431367828957486790817104521783884180946285993715421513724033893899355449385340293801645608868609528494337827740820764620149246797224572658718778672886035767707700906230658790142281037659802788907491731176614932412892115728745205659909206743630023924201123585532815038592243079832060338782944771569838909603191167232726578136102404161550268280890408288579462330168260710068679899822886340602520816514062129408525827393186373285446954986135709931900504215190552317793907888988458525923205871342821108548696808813609076643113280668965175534400875235307563025775448652925606277409507877431335064990272500370337738598265694773464857418271148894716197566126101904585987262590683132932980216599215368742062394903404257193897648919587003503128908247729382855342616652427495299189803403874964785165980547354774549660519804852172875437022382006652976524344660578902609276990603603751263204042271959858219240313204589919229158737846988826153149569784096776774508773199499999186240740279982920318811235500153000044273148309859534022661496030589250350552340660470998980459819522958836319087447100733504063197508619217741242773680507003566702285214800299596343268765191177528141307491333894363652050189175281835436818761008228212214698883021066192216893323783067209081121914053214376910639374054933458183225645165169773235613745721657380419118372684078138932538671986777355186094913314577759971178876758275972851371210583603514528885508173816850747617478842287065865408248569830119686463299632354158101704271325130625497694738776110199924341390489439091879485587444224031489698508968647593706214776051727665474141417750552524044134184358075183919245639541933736964893758611232566709127453746256950705449826439805703224508107841615106198094863589009395184555640339886473256243011546054572330734536498883678311742131514125220880959529531603171659977741289476502670708417269636920069298939928805619915234030315805771440387767845817517104832405616184237170754525464041385024356750315759868073284371551767360350545850344807688159700127866606764051928752492940274453838554639331137522175037286772460127633736591194368991532547308178789322419292882354368112227305774832659678218252800087982077351347777744197026882399401087932192293805453633785410689785390706206167703152501839899028521487177307290210303831340779501359863556808769302681017323713614299873178453362021905189908844871571191107556655892307089098616189012116732658954624492358486817209048596249818519641988187039373923871814717968974891932133882358596132790800417767582219980204463383174791388078320273323771190723465031391713644943435144763121289312950995284673601027516633610472867333088135496240396535304968276767146121149956544010444714589287191419812756357272870215915431625434084409165527636804383666013464299936896603152672282994172426435162502604416289662627221915310893503725816070138587586846908313017015664080903287822132705712272947854218939549613583679375204255964953135987416547901643195692547320235623644369688525804110174269911213143729431284620457221276689591981560010876496282200157089500520541535551329456297730022415389334503678517956270327688336705558495439287015988213454522310321910629373945517320060635819267252862769335450164851961978648526252981965809075505963521540768107853193777210394973306075628748985987745571804005938276221029077441100671795768860928124075344690733948107578973136264328214111023470940296473511613239108927691588447312907375472346074559515045440723932639411927997961163884525477668967283190903246168341590085658810907170040478073656802014616333217035482849629355350490157901671830902355136379955149167107294302715566410110249395995178303843056783068758722139116006775453005005401559591833294495554113178492590874042241422498472527508195345397664596631802002143702543109544032762091205889675705216488983172487953636290531813965167024189186233386575331066020345427572475712566793830605229892446071025014559112845414389031130020985373672900143122235512981251174409842532245229765906423636795275355694357107211486241453697039030298891740230700421630704767686864501900898709476254399412633120359335551054933898389024273727464368807695454409130958846977063396972650555059705206355817270309587633299866118626853041503964178346619475616796287121172486256604496116931286206847204547991290979057671446901396647792385921602724226683129723113433286284595862332278360738305072206283086354004037324127628282601523075405053896072812205055518364512005800270553694889247318830405965180172573075389660481667019575328802836025602243554684155584633614536945763371248257491213763188366033269454929146844357751562231318380364368033786571520984112659872711380822420889660682278078283946928998327217859869513050046387305496114543349816834176379350128067576864381949080779078252773098698504937028300509474775151926772246323925353689682247199910069218538849712720009245929299399965586940432261936401433842091862130722693743259637095659357204308929587209167530299777127355155615309684599784906162418064595483999156831427719653202700428694335479938129879202739035210999752401225992342042704700521459074511508200389838601430919256094617386024104794421351266847439302846059507712660866746280133498795425594237684776865885833057555975205294489721693151590964464568308926630855761138689781666633982743735477769103511679065072961991282375417112240332508014896324311171179204248587011415623890804169130956086495346399706051774275806849429043189118552711031911172822026541529481826989695768262888401686615718081031018680088386960223590175035416390752684943434639392501033970648933435685758484905217342131715786873886847844272290141501653108342179818523085314864458460593589391866073770771043771367262856492808757892985230247795698027320072037471854492606168062068883769579311463856180987534837247579973224863096719354629274992533144153094735982816964503977010837221742732839996649186786369785660436104541723266287726452132555319677961762281433385418711655492789081394101033509832880310219333273669218733191053083835471228984433232966754441322239225003631508738327755197882437875964739805742249503718781558146844311502051039652619728245528647001619141430923858804216885276851946258824280345316016671945891507358320807514218223962944412945395331929040618242808924975340104241716113270387209293625406955606243288195691878750410585436712513917716285742589572216498014288333151457838199568768942852449703458751579798799698932676090237055711863840168471565181492528262558599549355376321481563055197273582716935536452264718838548983376728269422347029679600563119625873797197655720417833273746771213834901726558714857805257521230609882882844670543663452150666067365871154738650081136726493023703760284772952505475026881736837513484692358431508554473639116812001337968723337965112078138071171569725283480528423621841856998210632723973678395782497193235216707925043568158671565055567905301961302625482450354146946886009839937238130527461478182711855196634291762344454228412221494455495148708660287299058765848876596728295308685908133436503910030308690395906344953377413507570200547098594742883530886346504922175377823547213217965955607933772634764708227465157477736695942384874726465673504787415218705426074821592990550697825172636531181086312055478381259006759003973261399353289096327746780527287344913522872020639464963835201293912624323083782027412662891092202341397552111834104715180637640115248043187566573268931303249584430092681576227871595155447595483323521581893744439697705763847688473520372995592502866316745954613825622721650938323077094441297210583356897194992354791597508240491055554448528089062480099404586410785956655318717817080939723548398874720440390161479149215721864988280637431410075875864337969288859623989130118921659170758691113294436356133213718050006964603839031107634884009194446713325029729418581704761598662594260370320743872353465739272312939660938208099863233777121280928700890720546685275077155782850393287256325933543719876357837438414417793646633714960434753449923684712243353287431814094199748529408857151542657419518321448481551158642566128789933888934038377721149869025578674803767397128419337581766901886046639841570210199694237778642284120788896505909336234415026186716793296434570659468700170590182232818886301717245696033741095382155334183637879148841899330367733289945001696161315101462645491021237621458705295973915741153716525449138204717006860392285014366202419525370915697643685397914960143053730644616150179266583244101360566930609296414488650747563499670587315798268930788094456695057860804145994525162752530608329118530702335284198500196677038189849627007702747277168152533636001652854677230470314647878611411148701378836989473446726011597364294170578581456454545872268311884405534793476148842499808580455982099868528363754765754332442255340732052569690152840832362245366830998060761120717736596562669366781564504453070169200608912028516402512949191101885502991824557683131107908698104065740815863732794394135389404789154426243875486235703301407014866874167536331989271840592023861398554707002644408916611704581346395860501283039924938815144492849591906161531138420451104912725470621296092755179750513155899727335413777255435791150287652623375022015708822979433859585992567868707550240437306704211496522021280776293507660447296458400456948973941598422261347517142819927359439820152184443971362240825350934542437971982889337207986291721334592902402773355278620899976826184836896211433289151932036188458650723479016762640546235075101179471875761703644727823781818368959828542878013237489724595490265864722251963221403408294645402783826716524407906662595700673839779018810753023171592414692110576454656511293250906593019300360024795775170213949555559314312295991213767848448716501862177869930180204436829299203562432771758096204029247438978244864543633333173687693300380673367326265068537176395568682502035229107414557108350425228107808991031250103108492960322435882374697872651204702292814640571386831798779633095962600241099166154585330202176818631458952215115422264649397360718287819930766432206960193446759821892988417928687622988745522898915108691786411772983814930155195918054769811253644971356835119070490451726057496206440247871663473643159114376072322846468388247346648999700119681181071457162099253412193398357568622992196915130284023094133828263617060738483199483214399975466312747854102010746450050976869369855161427407835396738606268139733804701172435847661094451388323108307260222190248862946957219757602158808918653962513183812339119836626644212592035851099808235511227270971415572583751680406015002893696131718710398078591788888491403564826057855882481578201069478414735212551326251018039415895475464685931691012943855190561311921071395468129669949139880347449173177076165584805003398921956162304405991998550418330078981201875195244319420430385880971234621773004699156585216707775156672288548431003964007084335768496491280981523705586385081981951084527593333690172498771737346275639547495435038673234971199051202851716135175127510939709344926118459094727810641439669019504708463171734233067282166601188859887618940132874384361088744648135193260396977028238706254433742950051441127350623952685491035947713825395039369729752533723253478879443159013428967454855442794450375485133159342623644839569474170514599132442067457165112558699766199900727724504122162920647138986492429056028053182437221870052607033420003260269916154962403522137696018695272021006735223312524902001053391160172597711687221150383867737997560395317737939563859607886033276785709967713202670724108341778787489680173043646748367809912672985260418784899012895405622852344654238816834943616701225216652745298269577385166979456910851521449090560659162390398612587533174900419430846962429792733116789718540904620447455663185655670243258865650461209490505831228915981485152491585877827402434503427076785189156613593026678029811333257643704313172338023263575511678011841719735339155650740635236331870666264994067138035347055907809476713432448451905899142443221098816043406590353467871640642761586294335612539839627691441635005779125742864341240462745677630548960129029422261279637536901852007801206068570196453081474203069757774905836343182145299762856461217244429216873261867391021837396366963331510745144896141206685619817881599504914948777423184996877841645618770201490924138627804691405735374031296642226495746136644927404101483060770962351490434998279374826919049961767143617137620512832224207010308897719602182735136327067863243697103252399099318323847342965650136794077535466886500804579754859598345788950868316939731990334054794724357404911089764198488308822808076492354317517986308989831989812547544632584136147753726399245694246202570709970849393297779882581859993836813656650355016691299842378591607730509435023034964077485845088679914475780806005969436073747329246475102245845015167880743103920139982739084125254706959751624525181153259299098266173457820234909198115457748116418318102495526359454359355580682802112343411799158430093393385234647734435194361728934852858500363226663357457952334838897539927069492182907755144710766241402328121151243182662451712412835327607780082050785020997231159943589986448222990239303568122696053043959643137315790206124072362026640980451630926837106766774518539653203799150988165142071370272987951661786597885215479772641578889287453533256665548162425205226868437965012855137492641446866592964856328367550186418177363339230325752204976427958639284568462089652537702049463301101765851374632782909726047905544209367515382746663657782484166392054273775712933974568541322094408361340791743931218471913119496242565352082997369337196521324942396278334615514967800248477985117031282259530329965706725311865744064764837447197410958306883585390571390284321733581741607900552934450203656837591765374123313615795979454827464151490986037368574406732034525397023514680233857355199387048256360918510508236147654248129610526035399100693991931492673257497463605647642960808094292158254822257031876694611293259365117188995698454695383143202414605617569189864754150491275843981989018622437607657592487563834053125220043768523149095613973646148971582743701285951381656178165443194087668235482966793681250215079215111966368455373838438489716503678195918519272557033562129920232778151923681081594345106851045060597154288741374177467485559725611408186021321114966843461246795707533488164585122824851591683279787831210250950892547924653590291603935688299106221204278294434293221655440202470352797356984260035081511129793625354847991156184095400845188368510963036359710452300672114497008302281339025139354844198972183230855401110168937973916259080443819734196849737309639618751330162066910507687643722505544967671701237349623551965839727109771463112404284405122571591644658895888841597689593185268410635225983772872753851404056037907525123688724594049449459923377252066963350447366797059215491058358830637042217411834980168133433326320950408127485881234657072559929705367287554055676462544076924373211336098660694664740791145006022028329563486100383776601988574913716412749250582804138227390326875951633184529339876406037532162852235500313903224665407876401549017774547305352907924311369583412230476490362765995892727850171739281870690585930751333025725298960985308699530335490594690564043774188797210186430168412421763093064223718085644352957022733970004780189290459250183761072448488078259551269401082630700045321718520756158116336218023764125406853940359823830334094608303330488412015890354352991500391762713565459146891263579463009689768092091244224845510309681357967202167552176499678412010125882758046537087198901505147105917245127752710700562588481804576928401512486965790934508461421375273443692801582485057632815070097076657191341377128345195248014770158874351393157445675941314150225185940538616538191569897330000896875021828052204075520742131765422414704357332154551669471460553896273306018089901310724985601292240159227396797341296694605435894747570125237802412050269085185478088246886256654849730056644964967107897498498922031777453289976287657810644795277459169641278880344283235757709772963770021959314245753346162023898451148378523702341141379831455290362679416748856244122128689928334764197013061415749146876224842100573312703316057492423379694575111479665282266296806951024031500492087711824423193887612116765697920692970493343407865107191320828410005761124291605629181660718939868636313161090276149985068540453888361027549768526006219179037164948116693597716926561071004792186978728129633520988282589526435210179681354333508349981406282329040109832408301333361608221558297898866990955196818245702454734906248438038042707648960192687137743876108086204855129392544908179953507340290244654742377209782254339502236112410451741448983232168613457964474445726835792859151430256983744399093576909189744048843711359951511369409280697942360995568931934320735184682519023091835169776739751642568391297883529031926561157350360486153747991826404320341649511989166455091379880748782078276907642999552409051940650962092325729303708039900089355995367958189585835854105204025239141979034154008470180566489220068354503311497125126333225752019195602282550269439607478437272082622749868959599268822170549803055712922470768912096435218855217795084489827592109767623204390073097620192008746209065623412799583180302696686508328402928045988840942029075365048072811051365886291640816492598245865740050731888441886147286221543942166873041819442430443901465898244285620114333899202937894075412128632397476499924135696043723997598419675321768935174909034047419521422202196408101273891061078850983847750488602893834893056869065975095700835677987192257040746173148347803289581434849004252301003432282683774530251651513573990102498809786195261353958105592327568244623725203993687904667471195437261513217159694902263038807887381226784967107094647081177769907746515725990236635853059375044558754600582085049635456154479823482110201806780171754954357008104273242245284955711759466233067343723505035497739682301649663759270346546433422615159645584168564842356673044829013086008628581977582931935423252214002390779949475051521761027594406295999874974660212319922292613304813305156653251638848166199009622191518187760349220329897414092904721879965153768517291493211618715662311979953412925059592524621092328458338211761374623170373360431943671833044951352551936265981874666221596000563700682997883011729381943744922514794456077611058390903303035281230333583988794980748673673192270119678771060931890273997463550807015662767713567199506503105290537409528723688052458421089452127499236790465901677449313551731097923742825751568279592643881106314232085918016945035545240863572928051718389175518020773885289022899814611314867910390857976380726844071070842514382101780166417173316789902675447612245646671035116627906164314250982346496962360734035511467113002877282891618849670511391191016295055703816856593391884643615120285530883611198936896794031452703977305589602209037847354911392695280149102037188393977977418510915680791761908352257310519196453576939904251932318199926485897454459086065451636849955752464982647651811814695746740268659274480443093427433515329062424180604402699640292709258464586951946802439334544081857514132276252863379411248889409047535521881361486758411909234995818101185483521580830311131767449964336970734316232554420683609637362532481591387305900579948639331018152141884469798385543639456227502560431694294449835909571672759108380058795065666816179204662989230424742778785439829966260283453067217758472924120222733413690497810747000861137625119855343914518549845449626058181547977040108281101363520199241849856219358391010417137293753598887893902867377495831148091848036962669227749113962465402958834952869535561729539600268262177909736537123086238029826475284153341504677063124915759665128743591101428473918503958423914744822140899696072990832253750001064892248122801506699429761099516391078869489941569477834774389255728437908194946973698177584841135452394710448054635817083052755577944333015341000210838938256572932957938842430256286356730032181579885427110844411437411409406319406611476442596522922773574362723738233258805802350752245058822207686289846529466464192253221765492595337420873562328029091333063989972655929539722988968392650040534387703118220859076106071733788382244127157940954968367067642310246447671892418664941212483786372010321212379983811352832972150030227217348460998686445155184263352269724788018704131210099977317901254094593964930808107366314226489183078873583404705228498948639646738498576505695958510067516496101747029808506065025881049406801478394441793943192782175147169159193104279059700279758330108975357862889562428815522167045685729637515107253063736643057720668509061691800287577790875571919778884243295527913510311934325922859257544511291455032680694396060698970226801398804685493775952882481002696884254639245425283381581027391399874962264484843113671429251502372154325128187729920468994464520716939469019092755517777503111049660277223737428037005784769464441502156002525180020222995220471610336221243529074567259419686686619753663217790834555118333000964495389209443240644086959139849282452400824777734914821807987709832173919451687054289155462060547727289085901333950918753158361393589095740209186169741407618806733216562268988812716363818396463934291394677462075700185945671369824489486374070306528957130240930782167615419162807334399039290782657353715440136048632933806797318733201918040415309341361772897900726807327769948599840466941444209788452769121662996701115968816844937161419676885486357154950719037563666771024232387062949628737168431435203085865370551850183072282997342094441826606177247251595491448129067095575654423989968054228180429918860790933443088088134950510576165820706995351440445515524048802772292008030723091940605748393972484636590852008047869915972363917407016395957548874070817035047646140781455417045704831736655493005897243813340117837894710880950028908767286591452953729565001558181322446488997333138299676194640720753426990248231713712550751860882079578401375029625782429500060342725288002876782106111816910060013555079926769271845429814756902665635282030161023797401640422209033263744820389842326160328695475108234904903540998213280548610399937739052326528200038307115581721318299753153645506454911964832733515540005442620602887753605439033996166343413387338009769590130849192081215237024898602217489688486252104090931250002578907661090919211182302467464847911808720218393408921056300691521346178003840431030286501541038330804160333944839065699957065237971915802045021395874220645183742794477679016820157463313403773326911475244512253962491631573165166578578854280913666185496363011770588279308829632228290612530832916851506834031338101747847160029396015517145194199312458999431157748486936463646908860140513584815385724120969633898835972917277547261193284689663135668546380833031596259977313937109782321675812596259431420145800076000309709869454113752397486392831866835992108571387846030712623339356231664943341524580128855680778124805711178913436137573241737972691652587575675576323277785835042802806018781166866707747939771952598701688310554860712167118259232770135645569973508147772232254580152202861776159006788176694516296682271318175610951230631155496294099094769820475576840986662968934372039440388416219593413791141558461627721870582367936104976412732190344584801361780803681465197425892753304918581586323802660984739298111169779146870993194277066004641453712982416362252439504221705498030711286616446815811289519124582280364911803274252598072040830200865616928243659215344350302150116657509019645140097850938100884092380591795217533070657609581241670601220029488589533437045965841755460873283783825316513178371081762481845836027666826506498357828351758001221446165746206225917678853708379988536182031499224166852209227771834788440477845021324240743763398431627401961284443270090846417298943159149575687076533960241228263910009025750151018238044386529357812354640617149279131306877117199170649076013787100654973626839191719858416137693287968731222457331370592114339556603552246019736499602848426085330121948664669814975926883989261268149862718022470229860840416759252356001056162549542310135360690308220519389662183883637854456294390204442018591943589558182724306500649466627639623921143381541341496053164330570103920134140953867061132232475069852054752771647534121823434167310609278716560909778089369303891495506576339825992586926614914280586794861459445559055507786685316265374625335826994295432481733387999026410600960035264293953147922212498066087256528948539950860501481553810071158520759570121298934996858025333905118142593117545537691126243255177130484278194620033082471160047005563146597573950327446560831814083863757752743389574841389135514571780929820631367116462334344532430294615794849736876596970592747238920231593358825698016641897361686914654092810472699921435047052158574497795217504889139654820275447678026474733004493270779053093343428688178533357880894690159572339778410367038588150021340009480486206416740052916400514378075652393734658039275479164228872923464771891630778032190890589529551167292221768983063988125855278039834904877067811841274177133779501572531666949769735884658972644687291239852450694412952183288449268908454461675604749214104505781926368616776824763008986900631557255720453966170613632960266352068075105296240724112191106026013231468964750697453586418136978626071793743216249318687309713644567645788688185221793203108898280048737640973390830074810914957112842358837156549673311292644643705874624845531032580732978574632771958189085102858688719723861153896903205277384185468810499233084640352219265965019902183389763269804306281466154057137883275733756195367021203283124586886329627741443809540756033482719359684101228731074998685438933281426714843774665426788779621149052718830774747162837048385178468613053543320245401136416234152114516291852427507165749124631094427551101173698295467725789306534893838037649569772941918912500568492375922754907352382328569149661971487926933616764988472419997036756446715102701983806638243267595509226776256278495311191498319267403806849959002730841504455112800468288119373016070302720145815621431343298945610055367318547849600381417363137670278153257257446496172384299847056342548949562714684752211237764115876484456005533546764694296020212810135466166916336062787438492972021923829156794728227073470285967739716504587723424893564163085900221141077401929966293156203345740501581896650176481824914684568803666049361768115396146547502961307970360716438205498203404966026513966792918993945675418057698835162208239662984001351875233970289174216698801847205681925943798841251069845209366033056821075940016235155680598765626814090032016831504683154374357991936142078506838632274864663713334310955585479605788377227624543663548881745615774346295090955318796285435907828065688563809157664077497496926389907148097845901657670606029031926510011200961478489663856200948416810721812927876955998756349533653538912558098572939744945888088038648762012559215452956755390364896865596961313194846867371272040922826428328745151903230927046876076865679796534020276070948653850220170438303347525030121428535714955434276243733625802299170560935860346237115377533589397663058121360091778700061770546313520702443608721689582240484994520108306094977368497503565886587427881386593227683377678199115547100167117368687575589137882250780058900367031792593934517755261420137467437052471269480785366173537037502829834909554235086109531406495382330787147786899882398614277099663936444448180734754542166029975035979328773231084032846171902347646391583716019192075054200603138050896617215105182173688898584438986241671133565703402198627691749925848386630050290335965194781109964017255734634527455507263065759324060751271164717092643097636816714263164212460726159393870023332675598006704188085113786853722010293577298756500574323146605189262489652300230074716113544583932618583919502597101302947686633895348165083376690961424526443143529387863395329447350745647482286385685612932777309706746635960975219012388606144561963512877062618900347549950462673191276761717760495318918338282359647614797019412151254516690049621395043439242542240731732342173657280250014366437769929335051805014401988066904313161884867127646814461971021772292359495610565073839719945580494614905084502101262190131028831235868072160615693069107853666174891071232328055154708871618219005551180003375248392859023901192800855120018957814074935392577885923743695750269374517238556982810297174711404702755750551438416281663678368222085219434382237028010652718762645314691981458863297282444268541845580206539665128745718199606891073903840345427631705588107528073102242823617450547073097542941345936489657555328024240073769740657102902762616949581315702946286682286579715793654204867569330610457951608248390788598954942200323917359849191166525156091252319637149355619547309124308907476435896855106237429851108231725777882585646074129127574127641745299467674653128973404107264058876439900827776575810063880245326728235663976418113868742721809542522969464210804288512061622772299650122578186299147629365031970979635509862555983253861503857775713614994162768757436028900403033895996015865745459126261866049194922738752457598120686113404482600597749059788275792791349524002209028863301540160777816217252132179270843121647505277923825198822921814377790715877937785650364849520703956982713001540561164091322119714092878501721410591362353948247485994189334646900293992327985571339312920363838362386069646634825371446938030846783913560501181915290253691014303766243696498582088082582497978215469776580311534763589931230686036514178090589114412208845486263406505211185578431228818570994650352869725955902282153915428492080698244783895060497098885637648742842169539908698178865236387194741049872310629769759417904699351275763640394407967354264090442471143363058716768827939145602160985491501046667772543886215452241084333678526501464305420822475982040969832466848951234349153403195070975475260822835211244089253309481769950948504851243869878888513093004751768229759124243960861703463081988770362302029701788777092452509812701064087335370126608507369445553544468131857795853423408238429759328780721855776131151124770530598799789229927561459513468782873414417930418405252295521304810876240990221197183231931018885693116598080091518700764176690437403489064754914187436087442922343594349410875067305780949822243985416337053150399783899969746759506560064618156420966302259582802255358660004891116254793425677141494286541165312430340149388615093225372686676958036784140583361261688432307876333448613174804779466906302871337993582365550637987214124972520760132765163837624246561401165715673684642884842131271109227370730334453259289935146571116457902707589808351036537643097235625895035780569416076890666256555346156972222726606582532268207998470305994428017563733833637496518656339578449817115921239685184779502840674216613033004976860550174652764468495350653290779779800637976819059628853191743002639449669427261908478255778451578191914970956523777273905625092475967628536281437235907539659355909594781887385117646986005121635101726466757758231399681454494613359245847025684048392368656031676828973718071321111075056247348069584530125311469629671644586260569329836229768390511379664988853689837455289721735111098907157742064332714534229928825034038462404489310545523843228534580782773465291414157521963180767522858585071899334328480441293626857530835410750960300855420207722206816974167638681542899943397175087221697612064595462417796223938894956703660351868968064409686218836277597379017509560942929343469873755085273972161970320775883182390392608110985928604904472942474636080944824187731542335262320237247619012660144852784004831183190864603364889160515276488132191610248058543506392377271504065608331473771838272548875477966284453446876696280982917044141872250139394997096379717388825929744054645074754498420860681806967152833366141798073155540772522082774643821715506580593411189948745853986560023060899872274272644030416133810523476620253777509994942390837957667548350830600500458663561803639660159492430897762359866457783345749319361113471225493824254691274900562334647460944241320678970460051156837122141867562171896090699789344951066997020104087960960513536571678747126455164733875208665067438427812935991167810998995501652161151349793845807001530414885759589799846426355145262107634073847050103067330092256992799004455794053451451280565055024664852370453478842533926877667820740261696363361950473412957385377475344865376017963298602870186796268783874077670934759231911732291075794978728641810290996038294300674708500013999873954855281997453649786210808262651727780174413391062334485302898264620997520144394894830981307956463754411100387753378738167725859563206880541704573269108226636623288020947850269966575343540134480249504212906372420372631209143966330383686197872417429054252335598550243532442436798414264211356580671218061300817454040389263951709680459028141583828787530629255569062231924857719338776807790942848152009340997591549265065653658231576361857235065223759033553354304467657106870480892802807833875667840292274912683118992896962685637799575024049404363990899702982105157023261065985936159421852295355085974645709685447954193199611231051164673653029203477802365272899190662345714744510460348472409237277792522822469043134758472396456875682804927306530380608095138132445908309105664459979129717317330369209414234069305388839358606490265979638552118767657655800265614459547309205194591767756365317422392425858377017912256877848017254023489140274818209734250710081063937447403994746435695293409449264521809449651428510541563724592599730072895746435325084903348294999128271384080880757068183008395182667868607973475271208098929698743956708033195945543811865535146584188183166554675443308476724707472083968728982937881502862623039988271957354735553564555205940963025636388626175375543368458191668944857282513487043356970849947905936906207061786354841589566801002355627400435878157453452375787299798965430986827594683616348271109021644268896998150840851993348761498586308073092308050585111625633013822154626779317638971390882810155463755698588301219804060054819846474343131569581696936305413075072104068825179337852175482491002719858537353490488159013181636761927087076948972060503337350289903458749026976908360610568659752506567099960101332040426526346233849492318365990587525580786176489474974206971287760271344551600096632395164789851564921800546233047201612068170699497029210890727449550906804811788058676752289521879692545652362396386568151195212506073959147429066801874982868183880803646090645741681002299451709612786114213102579469147421760908802149977169154782693059139536416339595797824358660089538583462592178253420137380709672564972070991384224900430203604443938181864998286765403393362802726473294821621952348492626265863641543468603107473709304746550373287199193696010555111657098568596891781179866378174941259875091400797047920231578711325429196411159852777982578839609512138256050334347865458245660513291120130991951969469810528783004374271071486181752249133580065587631521683459981251769185558766368382766289775362705932155939386567628138668577469109487026106373416153049255110848362106300568102312858638554904066118233048806651773967269611962835589556472506543135653558847644125653728586065582136851095784137704530613838671531999213046805345563755690360354545216732648722490201920787971015359376001826139984566280405305857919461197686533475576498565847347569401760554504158338032067518207111629015117874890663000894931664886976789958373309909499508849752813970266390001885432902331416902493420590804653154284022139283202239890330775512857413695559392157516858083656917069848398325993384125565388142198833723152565548769397986148838616562138264231556085305471469041326047617069123354506058276587942113623807779294174081394256090674155320197972416851175164172953339259200210510614949651758588642824287168155436640917635322421310872370680419848050729805130562604004768083776290112949048826755391491635402312423301794125519319613421101048605908831842891302149960554325588327380261974270417747204736689999717830185316377413563459122751559595717814235906790968616129036886345757908999501585584323176366831108473815469800566983286647782908544908886475046016966715149782802471729106177928691625554348420381379963010473925515665310692692701622817208864146080191939049735858264535158219138661340745566074935787980245716648593775037673794495815012987192217050014206615259405398497668237592514109688734560203445480581910966457431756499220254659165793147187635832696661076840497093470421199825525763447143393724403668841191103556949667559357620085986443757250958379320984450447194236464307494569745013209603880584753719437343955336645064229690915895536268963920135640139394321410704160874239248227715824899233969904071369884131209341338633105048499400900048521963059354413998583776309658622302322409213085522497523111360636921087560232282919322103076766656075482517811312815507222503606567825670761784827191089976218953821955398442701836801193598037236165477808050502315893589429746645870047098625990256200878969367567076756670010011263310266789819038961578055009482465536230769696725614555286525594837049185465068286968306480728907498435827424391284574662666895032931212238315604626946668373798839125925042571388605762393703554791473880156676351884135167595925235275182011872982893356267239192301783400577390125253796920505032736808784440603808123699555380678237256571778912333411026643681108196465908371865066742791857989573035842226746179080243233367171284094039252321963585303989142940116574458609591364776139530304765923060779850272344903777939078363529600090105722392389922011049844918386197333966845855142475233540396988932067110455611683138509749528037499038157302721799366675042822264037955775960833898704517491926704894212167452293294312341720122656285983640186023918009440185882942789470188555332679068312550386372639034577326546740237853790066469146400836445731190274339469806540381502441002064946711520137700248444342671701433943128128644003643392606309972762791575108141298990853912034997562791301839214323278409962359999019017918274088486727893344851491271432450877613809185562409702930677861319120328230449800004141231410614954542851566342187127576902136939837685228137027157997477026363698652337239523515399160890195213775490179589093724219879748673221246367461730683429575758606235566450906922808979830550867196153515571278197060764138661372992296395188044721685300598888567231416561374628836766134060131046837557923679189348241614447829714600286165856480397584438772120758219793259284056253413755095668572001051102246214697426826993640163816799380302443597117824594131639977009211439939925532316071043683178970570344903184577004164413672317935481712382877380004821597514424629823592967363573711157615697587830507776909547538361124360078340905024747937213695335156914984631180463272833637630795781113391483000241399026104677083366724712707192563521210779115884566384732623382171366638542267209390822013991321934413749762277728619596868231128386512853927527142680584791651177193996948483955669136157411807122562656212012443010422303010194403328628838871203278492917222740338488328090652056028240411042045813847921829994605817678921610301387878500672648772368368060434437097248301931969584241643927970589264613908091421464015017685703356491679896219316038136844273272234697542639629958157613742427475427259073393994594053439604345641073273082945570997717652985834133012370730321899585598116021448727377864019093190824538075271053745134020621606621765443722814709586611858656093849493527304350340861763538516314439170588937325347268382422087575765069449922706824178228180400040427087900669814230250023719527841005184887734274801504894171945826955832199330248082563962157392995390350466996996279346067928017567847808817613413882735799413049394336464179596335083839283212319420367702469346382954021499687314013724419551637005889761136445812084411270129356197412196507724364744945293373714738858536115867753784980076152379538293260419061423361419460817815905959716255289027909677500982520645474642151774195226468531884414461524098136131407564588685662370394542121044044140568565263487255158487612957772205337638931152962027780967079594314819020212630957316355140290381183609620078204209871326223920798306548757786172321497958847179118615522333266349213516362748631577844169632492750435052291637571110723233475943131348729384200644708810666783208019312510648255834352369248931507137798725247774587851481293060852614744841758117069256146884916424363151005075601155012335787119895631402370112442179181398219884593003019254719890055736991024923270491234464796268902951164565493510625839060159269263281723787345883082349650689827830791277731041075068060688185316879107214522975032165207577313689910194903810075864353389086241421529943999590229489601158175272802796954485779418712017955334097666011806665612851275966670430149512439675877437851540017904138637304538359179030331115479724998676331130959740283464141308028018556520493300377143286061983355370306049089337819051691518640458338887619354981368520665517141456875833242027371288319775880133618753216409829944344834387148256075456727735639238691581423557379886989524560084774286504028251109107446938128400374304212077241924619888972795264765110004445770752712572219647151381260482151104796169116391656653986120436120004062605737881840685789819049235571308083185500671461639088450469425505833770304157626496366262734006726193786599295384273409532632384937700714577249644056253449887189305672330242519458100510046957673713785761028233063626869797037511046702752119661858097244043064134439551884079377917697114798551524281622547897271517131843485040733440135845456064727125305516636787205097615012280404551601157806014006313393803646860297938542391817906093037376755000151773049084434421047087653342584576878724529783617805244080964258380248588859231635152063535360481979621960610113498350985011804143705938554218602466834010921551158284293083439674742425615137493123484587724093878591877447536012817862829413846985723678133703768153878966136686443450955900714063812796293394505776661753252216553845485280837978926828776068938235155110606514545773901500046774327415507755709034236702198878072324510969694157387741428853791737827548744472780427344939514803220980989355360811000374767392078350875287734811397731081403197316979566240505932308747401702879580516502451666304322231170472575747419266179124892045966916948875053162319464903427285781261203410372463171146528520535120272566495918865706478770551473557779002492263756647555940039162989391673266832362065200235187144727039408286637586765845372815250504454910591308878716723349805797916572191042470270747020606516135389642032676418610396155858493148298166341906820713434625913148020799036611363745398548415463795872409989972318139746201256466657544724103120854877534367344136862801572028163327311731787782998088758732393616628141511063091479086862678443163583943334378406444110165445366844937255176810207986766409162007003925602328848604737613088304497893628406877763673731297607646240162285571597415479632537338355524891003458278836799303419477672575725340269282833293676581856992996255458713535380805982310852624205484781210391265435657210822149540454147560479812985480109420099748630179541048051527518044478621240028048985556504219309943676146748352287074773087663202052721084750454271880152497202029341747298711419771165597217399866548907510096750184024620870473131525611692358000669783233503249388354569553236261033111401006242980287041459988703751131275447385298508372366459750758423456875416700806619675537023528568414688315813357705536747715037802720954108361030210935538379632587214994136086386311453317801573154368061189755064555958538631939180983248018182901419058483933116355758966765981842371211080713230549721094801784770656689003765184872621816484311310612933621997719215291184766150227011382137118004886640642195360264925555837487512960766274073984450793225339671008680542636699005747775683057491044655664962636823227099216643316855337017064407479427384429897960704336117549382296517476915087529226448280159324471443223817791882309554828663214302212072079441253482584381865099575715416955930353365963714599984951774802034809852929478046661789141226788549986815889342844401236070311371053123687704221454988628282154785080105045888852067642022381466395932138103850718049074199021600065119273774540926637893216415851598376498313958848443123658800723171512950695563806478788633723014742211974435690764877897474396903474369573916720775285534792553076815152243161189850562721847539923238317191438847180779623099420071662354993567991043324999871761559848186754332183338080829944052697844886451579320461540091405411057398088597080425240629086894425423032248825191383682458212276436682267789752307130990110707251471652917773253448244395951368264594413355202103756954688736511428482115849611850799153328521849165885401907077284215231812633534663919574433680461025041615614954197975932437021213034944129657119317994387141915190471022880444447950504155856558943201037607459287487986675226664901489152612635056990966245818305717158693108694016347559441754790510023758822106349402659948150719065066382928400858241308225854003572433687857399265940258753480557210899430440918612218761641835039328600187396876679818869123741375532391003711053135452680617859961346864234036893869905616522981196340483947664309814457262797266317005839061179353252312545912665163089941224713564741635208347547559586058123474771333527032239527071159438039545655794058658241009886685961938552273327215242354403709007209914944128612089857556579955364234299165594582262338433070499916449501803144823551430043969525531233610947898074433391845476294756419326584562930546602250898652146447362336120062703658538424594413765059633342380665515530195811191763162564459936789917692604352955506207010279817977485667792012742210541048109857290761043934517076350950903379405074041414102878605170420234962539957714337523481956138922283657014619022063641084393835699735381120771535209907863290333520246699662933414519925237899065604238232391852177072768810465473953253197634668785956767247385796646047433260857161153095257195859623019653449905889325258080753202338993489832267414630991413001389694902659001476485565246217150745673861710863551739807714084590153746373220375500751168772704988188615094206445168802222916999586363384435252395118430914364239784560385400883352259700647012147371203816926194524297299769650886825925906451741899193613364189164377557259459515130416548774376803796331384074445049766571085277055697128790215933803867291251670592493286931214131930128846704303633864480996015239253723482825988743150844852703254454113705251473640062500480754905706014500849226511166672019084949491668933812704631701741905454795704526293101796690418020784187768617038602904528187681975910820688992474636319641397943772448212032852973803280064812514516831555042081082880722733357146357208850726221321674506959442020265613236242230742203335022116392946035663346495175364791825550036864351263834975351418788080974948346252698752023826213626201571702931168504479343448859961514710733324530776108468105859696936048268238001521510426582094315779328105877821367048510111515914075301215805659882719631943125677446325798527568984298155064944875798763949255790966978944918342012573249630112960787228217780107410849172040110493545529228572628248082760997268917212441061602909942798699525829343407434182216362627907236967491435377715861147805692863605151652009192162824680099093138945824233656422790893786233767470312754889674686619656794953854261737369718022853156745411382393648657363433846783361040391870634781147128354063271371140981488802633530761840064872882970111890641273956927468530797921297288849226905390963359870507476474859353740361153277777649535659541136094593117366388510334952263794208024436867675801813194786126014227161402525625636932078282011109796289803950588922229111770065718217969209520979726163253913040612216968813718779246655892842100858420684739393193217166564041496887450379304790521624454292795357855185732052159344478643424648063511126041108758171470049198760663649523055472401460324486641713738731145259030274430525361384787435877190246138355329134027467354709117898869436841520659776862141644789434445208786970800098659328666716190157542851484347712482255640665937261456279069553494611053845415712628392455372977296057969632288637458901153878795570573073821121245446201502751544777574654979507151742229181371482017060098711125963584480252410434263874996018783030030103688576141076110674377374757691013085658806116212918104504269157509371655605563812616525560038836431651660644666174516307052043304253265326320620232029169426008413568406422993474007329698798098666329701116067254171998402245436718642108156374838897319089503952296438200502398153268784397684035944764172657199100682033879011021409906347475795407885209435899420043548461943732955918375333474411188219754390882356641335333632491505860312659107116249784273345036028335698237539136140200535908056641803433199130439473427296506026585851713848952274449218600304142429958777233288159342019627337804609526279797552934812600593668354511790895015550049789554090144115969365892747568586236246028089204277858670745320330976600267745490251534644735138470310424151827781026944368711113116522051215677138705691424465676325674540338009575991683456973383647807563834531124655979504992648302586391162637325864377144177915514117607060146866089930876491363375811342805807669316983527134593819006033860707535930256447666710048366454382912454321351508442349208460507111828805331782099855633351676113299156824395663816584868207468710046982349699259283196175103386547155986471345927652047180555414095782606823535253911356013919795061383943830637674516077595581284795656584056916816207425283530092039574630778210295803268788592648110284031910440117388602807818321267215547598751661083306103560292356415229450729170278304856250837144394909521311614907517132019253068856343380048495873099913646690611117002994181416020521337797819429841523972046167259593671654491503912072371478010523652353574192764694836314248797540130451102090440334423291870048437323864654551230505195042118197173748207924986781148639884559463331727696519216661624434253899570596293946900227571395951260306307015311405803990693004498084225613814820863908053223114684747693231231332445075834109245370220214848882808633859890541815328429867064553884123162258505938555186446368499259510357038262668634045514500941291476700321820158692238113259302109446644348216025429037852836823826922826030918069426440058787677623021077567376120893801274736636839615470584941314812394442489014795127353819192036700870925782483630982004381063295381917679601059981163424926481047064028055048010303384834890748308346027862140291553258243295021262794888310090516209539389951836576966908452224267786350726461390643887884010134618082914484070103349144634918404269173135330487625748527929612609874794977273934969448827151402185334599316530543543939499104365616114875473513963999490609728690279480270500937556653053562840827257384542424501947127432975935347666601205216765359589703057248173017867904146789908763890606921690053806828269989225660143948219837009918462084574471957083090372765596933253343284734206876110101738597086425107701372272671615942079102498470635936510447338638890139324815324993368697844041320450523438028009764307326556897660243757875374511053568787511306888021119648613821105146895132340955943789167248319118113115514187735802301483279275881432840691207859837758741439063343141082720851888074115733341747224086652315147734293789323833139289770367845963503700198257700106127635082701035871339418307538108758576030077536868859428399578095267923939927433775553779937501405176779119120413997638125069271632488089310830184934122932509605229749286873221084312585363988727803931201783569574098646605347545884501244739089349099744150352622108521584547894111686348893413998291500277302107192257689288794529071700879350092143748513396482623660748619177284174866740666026874482233740505368496964387139410830928310761657373294799230720159314681504845336915309787514927087249700597921629056211854035650240661438434738739317888641161324773499005252664679366800384662660137196029985908747267184066956142612723010654756602844462869517892773410037743963454378474916637556205780474670140654450704368995903683167154875531635517844154964493625420336301292916410137126602629335486623743927111093887920723759669424783835376786854085359589652655894238860063408136774320090766108182538597421498872200172405333999159830180336920992997212654523755384974157751647127741495043540496619053470057379940217193442965308254488555688054655505195191342684216167903263309865362298118773613330667825943421299665845921066413156261865923637979732686265669847293138060521157354475706421079245023628639855253399400344021441728217083285610820149492439774486453323619781516923386285674900664759821504354914179283159422023999236744105144182235085585191820266210139352059185525255465169066241951586962283906911396787840484198160792001561769995922844808285001783641795602537093255137372960393888305163232329292865158225367306540500129537714909943048883448613058047057058548647050654736536413660357236241542704220612782537958787442901285634217375491418741994627313484527036859451778565077255028249640555996696296462347193875776442931961340546084942508944544476202759856906082648594137613817578766206175320906480023526608796508848511282727464855380496827233715292170863941368481656026220086668471832793445577853311317591453331651619973976113085306857016286168727652915543373098608419851859130484830339250453677455804953603862568576886873239597390569332076214904887121698346550923020759965644602462414695034803511861971563048188261321808275300223046573254874637486699572640971033620245654993056241263183230379244024589006701091753129383453731653927175835573089275675030093828128980019923990141223146814351882267184149605730354588475870092153111355037749477660676337516333635423077432168720279355092618495591582204161882387417790980514997125995252183165931928555961164022099136950769159963204904933255600610106574999311092925707236116486240191198880804126386164592599561307732564693860733882951081638036054576243559715105436150380175590158633309779383621893301808263709081273470751909575967215677619595908457472208533312748140862043875060142649500269954534352128582642752507466577404113602148330282940627715229378886606697293772841171115103621217618416981842807686486371256590598595088252296435641981644640606614098309940958631926314619935292305958121348473557349093437843207312807263126326485945280003201908824105248513970880500815249608436923952920745525631476249091337224957896877299355775683272467568409626350134499305374793910688973993216480079557557065687271275332009170091506320989688957647422014425659960541138584402843618517189111443359799880610559002783834906574945955917930081151061780307947557814478722857955307007662591590440635810369113912684775671825717628400460907161642223903917113488249606751691101946166193756675760754737092679299845702078737418180215854904254621452836264135531957532187256632353833812358779270765593353715297902751688042105157423744775791469869591879974214442274527914645420401078446800310182876942671137439654349350349257344810475369981051617573951186213067980694420429040318033888740457645603836308534554645403778431568938713483650112407089519496808200808558976076506014182500850598776810523586978547414915289740195138706691050034126789874517056361241745208058831826227342009124944373282405436759193859962130268437849266181199388322114263421052585002971172092194829631599183770715392967724249208896714179927746653589897470956888126623697007748287217152722887609248779686279013050261068882756157857446478510619845584638645433898035739395083216539426069309493846658088450947181066459397002123907867259338827945342081094997680302822630829905050156773991917085214525346903324557685845357232155526039114910503653102820809722332891611980608606336162816168467390224270680780656575382329494927631946878184291981691903759530906996776689902482040456637524959499762270788573351998612982385093999146903114536636289935802290248679403604472698654914337594395035622667661156906578459781894168411581988566720678362909496134813413700891286114963554945576294460411218452675710916605829739968533188796442853204722931093092523684409314673787130819269858163145670517244552199056460015670696951488171875499003151634772108194162477259636116502159564370697034324014353190618646634669631489513229358826178144051310705744146606842316370073234465697470499503886616128018537526744884001183926678155194033015146089466672460469678001649555417662752368621162683971927132118961020127522084083334136393034915271810066758298864157562263863661259768130462348105812736736536064994120263547346937976427670664100701732588335880569494524343834115475933012767144518816110015593491699510692550434384536627822600715756028664318997664753622057330548542737525387546369726044933836047983767656314441822215631452789635972824901663472345961148302978659361871554103431122197147467623868933428920694271379506628086628546150319047544287652281507674984043305891731907224475912767604325991296782405982703780014268242058148073692962776516949693519007622872123650596447004830076997894915042041280519312907985526742901513215021101189183901547086059601674114429759897687780525871998228148016162610237272792152428784476426585520129290896295382753499344331982707176686917735448563648223292693290467437129698363747955975197659597472352906181222334902534704313366976542588479564257602952053325415937221937733419148371598989250843216613693511906473040612179291056215958582650164167992040010083075421128190433021418265036196691391975586729674408515785053116702566709943450654006207809310343115104293041712794498340335127082178617023089603911235214378506503915518712294254125662805107720935689262806843699860043134523271144814825805900412943134839345686525666801208425169403205563933537985204622822498643306017204039182957097442898652825126223302546178099212985640786760857489268056397200410067382591157170855420331095679368655130556393735434346797535467922582625819373388962393506614409589007315452131470634128222759828371569246813833491622818962822665206253534848518708378626026676201711508839151162274010348468375054983761988797278218934884384502798958628228915298810257593544300484375092739076346575881150131421966053306284629726056436954364683136734258596561025501137341745767997221079600717914565326177470132968752000152601392556501135031979842289934858546397500991064224371753824689448746260171932478260557409225387286174904570048109423845545280267442967126940974525588968063553238587803026870514413079000887508335110247942208195583118866956498365841708279918516971682220532395120086917161385898596442293798546336207947352512663642555780305540651409147540617498693968204654702754558659566357103707844952258899864776611834237757642021313016216206937745839047405713924800163526661058695823761859433428393304630310580195093157553806569167208210969103251865942359914959097742385156655599193601035565069375274941703143487359754015558143206433020625998527648069666974684151339300545513451181088538067189178224760760679269325762574546437193314417511493973145078443637095322496461953394759450379162778898045288346698080898254069578286570969790909191799805584986615307435728386838774595992454668062269333419070145411564613076256787594376801336735509291347898762299292891239980827887387092016710437794134770391315533988216681829485183043544908417066462151226347262823362645179731734648056939121225413088144416428003933378788560218151099157017153831956533663481418753753290841673964757901067395970371003582867635802063583683891428545676251764141411333769247263573990092724184040793112754411752026898124078959802976981573410306684691625220175273960912249601864884337275583582858967166699307580796625641919331751821223903065290821347591943256072788605805917017654551190998159158740499812118060402538951414605288397634707235395176962811833480674505467690068404264414183984085913332409745092208489090679906279003635935578167079446294843804950009194477775456177122094662898898704184626072541714921712560563025055836177570232074833760080340586851355385719173918380934697982767911859179348034572259505299160820782504379771225772364538941439479883965316267853107952934636870079038419168623000028590655777823095484112588332806070001430616215334593741724938993712601854892675724178075191222607104213984133041873423451545465730152808685140040728611053892102537453790745388172469022910292844511474225403551876282259549667368524324723281041027355650902180004032643488899112159135965130687438544997147312380799539499152633139926314556145982221632002536704968925440554214146454631492750542824929834867246525468752520542968364911406765343252880690621294590153961427491194999502437262883274320858816318841480451721023072519387253735614596354180998768873782647635934220297246956175263689858008333720711182346102567870005306858186970302049850342141900157054522380142325973417218184133060786971399771892535576710254199906621559665190425229551915542551504518144984858319788865876006989238661295528897127550991384559760278484946293979848331207913046538584061041985626185809667506745057557285060141153847451132609742954116475027050513821673880204668274868476408899366573805606225949507344973217564925654684433694787879187242972859218229353067695174453970050901123030531331161102916769276980161568781806529222182989227580489403972674229052218142140427777253833315515646493495603759650038523666000636214570435871076563019782746476698406687020224021436769355272136051127050449621549358551385545752699051749014541773645228255537302712325553349194195166426354217717556453643046737196802923111058934418294159436752986114659427241264232064045505160969979391263129753353014778764315199660300057708587274720360233299729511759903917793144454959825995826114043574426302949725331885579422524822575324179603820286835376028411408155783925939641600463853775417641900008323372187077934386258647773022486838745236570637674167795889875128783962047025267707274758631653126347756276406433443089983584119727616154170316262579729007178597281025778200317308762854900051032868168421292945900778390274434119355714984418004334103196450907668510524733620091032843426023104184047948316891113139434532682622116659390329961391683989161222481079894290776478341382090949363962895680049542306591549471026643010976401487364460489765419452486435135804304630497162263582963596155918107910721783640820577348500175293901647189250205223846969729635220132073047836984493440368636767591549314306872929636708707117422976629016090282885432022754441180964056521443857847745368641600748087649341165319309586464399054648715907049412938363796026675760514895472802139669573872646378531280520783110105423937606774413569132080839410824942026083486108727915939406687888434450168117785562923751903942424964979703656866274252924534734171280095573215072268072115795392026517424780764951121007033591419312757145138108650277696086616502806023991025822729827196865252841225961784808744680109603509447344544769202841805845463107289592695907946295989149771550606011613479062424218294667179033181629338406624246928874260257885468094663220201281276288050805922674322215782448655085836295609362212167899552583409292688719310961670566941611968104838352313000986471049718793992418245116322581716681657672725251794117629226659402680014202507187821615391413969103500842945574639579440114658738897944994153478920305952442411438217496536964086820686664377224568165168557297543181074665610978773110141204352306145167675967687671961943200082045279895902218785609945977425234394991265562064026520357620623092015419776323228090864037090615321914086399319674589723065511188664637859962918468470762095742795762464655833089202954393049598017592697430883831555976233593126108347272185710199467202271358867807105924945394798348692943578522872606120638802735142552471165973831418988491340858106117052446100290431576972708152505931610525819365474947367226421396263833365626701667265104877490899065598630322029792586612656641520505905243039878955926983117265874032671552324719435808509897874622477110506015191130795772412897127026192294558046526741298142185509390740802036867176016926650302110271650261347249811336418972662104746901976216503167128014273938874829107770915243576006771104542548015620163142278031223405069327250098741718012278530775446077664429354858796961798303638942172689332663478094943880725129167743575342596514069026882230611070512362075291967213089665512825766568193490637468946639221804123915371080430116868726775969397554779588223209450347924409381781796372029518860147561730435952372397471506111971567995483268639275195846257074978723787161020737755599967661264164819772196971698253459337355264027435651043193212254341332364855640175600928883928465845049329527388444253208164801080306372589985019116858078858999564097839837940648760009960201933679171167942623043479887212041909518480641834828973922362037689355455751415485654029308431876244975292222546890079287323924180194406041808527089955715359628451454379139580292787097547607658932031172425534440345079971206335933350169002845663536758332425204172107525692491382945150609093826021645034219278398097961508860781548596955895568215008413331873667566859561980765377719343098456311414790849628845711990390330664887124330283016329943935953188443569535418808445102272008256653791852997602464325630035346058010126034129170037706143935199869669850241236534419225889240505427870425461252324982149060044518502874634487753307744211688124082404078438540103339232220356471373761775548145717575395561179585213191193696652892080474043812180609234917499608239570630096265909869545929146361331932595682720111030749787231827327767712116607511323609495485600431282149336390098590518146898649869228240558673880228040467958437539250209472938340136810910429432900773786760386041627453212984194436735733223052877289644898894395140121232725866785359311549716421265478883545935214414079533279466839224629218350486457087764823696587599799798854996576673312509233368294241065244534937218236544266934750032624260488100273191357381393502712400331980137607305400484530884480357630815828850131237739482237829114466656684474992249706494262745536059175675827302688052710802082917185930800270828842382293299840023272544430197845309062668623518506907814565602784346310467794955464115433640093060053624951114376637508685814974550971473986075552257017472930251078835264217790558541131976273678628285177104940277382130928904085305010419686096822829904582475550530131709026283869399707972824566524953861346183771364516106959579192459773474689318481876291539751714193397422683822679998656464383104196555747059973034052130155148417530383667276900142874652019950209751168933224118410013423389437179874390917334803359552407539911846677856467975348829133534231562776731386668393842137832893185749613284544744495413781492900305677723364456426410437289617203739880272962299651750365522396550892658119430505542696272013334531627534440013081353410241214262342348256407639924435450857431940533903152541792923849375595054811743091110302304028319116200241236205548539391864619195246661695738283364750669553331707907199764607484222887712746519798310472852698025963984416881240457388740982600700723651984710004595508682333499439955187001659919771284547031119641718967561462029849005433202178689967802355331214629924757012378611380481895522529275643228673558681860294532038819720087962482255223914230345703506522696443305756624245783569602903567836945886734737945654477651588662912979892506485901552462918349088298214475368272609280567374854251727006967983191938251700674573769462819914920378458276023410712204794151244165139212726865798416707218603689696875781211692702276859699479209378010204715899774141415884964198898336331118101835186659100691617835004836670565520008145448705877216435482136169166614673588543176416259966542246716586926660004917171181627472661725490960418383729908650681535535182328020117955539468841138404124589378518411587538746029762906034734288610098071969395024217684414582630625433296221355118661646628100596364380661068076586265149253269231733732738004150090001252426049943053717203163918134373179038389140599185841531892089881616162863166746714186533882850680814858615777247354730853018115217619817109646764391304355130836892451913737506970739359014396317728913045711528018554964122857950699676368987079435772988940989078458506210688742577026229462246826323753733843359790286694786025442736353302351603321870169818091228709717496836574018228641189381241253695559126595681285862929904107041792097974142377162635468094129495697244081793583167764893244785360013842475485690033907283709557421452415526277750526236713914718259890063087161220922337778327628586488709480422626304371134784875685051386163561497899932424380014368193210672174477753490937575959655474897101611216520305250073939824853135948979083761778628080542250353393444833172282257375695783952825759818059181076915774272403627990613597107929040374601900568735646991238864174945266641408293965361874861942401285103767897130796563057979665695096537773334181356224343365341860012687627087387577509619273517292279598453777107706732380219625981508315341434827859378283091918787619078557586353960282239116462435734568843232479177840000193749293173505651149210304021803918080080156590357128021142436724262272342725296302280458228136789316011172078213630503122380696850123948873753687883573863343406259752763585029091778113570211988302862473518799183410532676134301446019727719672515318047460548481246896257160367537423173616243367867997787030888939245575684944565467041807680911358154954925672292585995129607400702257965873162877389123876692113262401887137084689825806385115120558119175866588536139862770632306290128995428698070763137549090983338494167831208491927370905355060209395666063627871117045629468404527966402830893352425168082558713808122023483975322958762741627241884538368581987632097116109479613840897088041289358274433968681131457298008124501616399346237798113567439819481616801194082094489099536275147476773787789090955790045354433829209324092721094671685353095032352354731548718779858547149683140020993100554133729366533483900852404581074572400939760884868197895241523002312305654567766532064268390914340623692040587641034142557919005628678218532767073730702851690316964231273544837534600973041057153375189660479749238256212858267543706780844831863803247745398312710298594490765937089562345539413568528474590123311342103459869297321797944281572606454595103686025869757043002244103071509572663346929949128252775587427927441500045181484086593673442826975771620394812601991566932812441917643621777441040465183955954562901351713960889331496518245162780790281771740657866111360998441373023756736985897101171833440004769943068081265432622481687084424603515403673724884755552118725367938036245038738201150444508317767504645185885106570304944939968221318907677376557525567300867664066905008817493089126924395878520451800585018182626639940092083641577549224754623212796105643760701373939008687663675610869988491024260118270332676796321634921027518653514078592320176939434544677180317609397607822271328602488907984087222829788938007292131324820565806212296922424008020752251019432996297968839181087727282099106930578238429841363928460280744904534011954724657045866079662561549069157303776490947839994589518984898902425767505552180001455693384220752597475247315975762139630387841325354377079241610761627802857752463823131192702987487983177945101693578208321060876432702546446056871577578079747637413736664057332391447773994602972897981612664717032365710059459464096634911525307913410211744126995874125222044315260609030536693706022857280291379707618623445399966719591373068506211503772653928158364065289416475794221277529172393808358843084183128237387711647671132669308225357393604884133573696143918182159753198396116712515041061527544338808086025857801954583238729647680049256130915435676109685879629534906520254995780505403260320909337884797645922135705333726908677086926374285370041261704932644923834864017891031038309355687155057198867795643068358100841395154595461118083129352952567417252826442444234706917431393007726267492043283212135533735671578893639578996046775826492710329209603024650452755931057369133623020741244566631365159501793657090584904257768966200275762332206433559353779361288574482775037417303019141847527525730481183605050156622571866327069797870006667587191722725195769557633930826180346003931675659392656418906109079844201456962349391253984222428799509887249730254260179877956658097104238306364001549329116953606001033276393187196869699333053087542960577176474611390701703927811272356184697931474389225342705056366366619236312261102468732221809087377558929291034327156771087701667710768467904869678791971992867166645785247309944282075933307365050198290247428097366809769876625679370588461884808923505778393489029056990094294077389901849223523916847813577882878266440890103510155567546078238701837832200930859054032303400788129063757818950631915972908540560047069399568272532432218889917318638784774161519456682579902162476890189943601515350280612316163383205018313486279015836697530599366728738139695797224065898033117187343603508247774067873998499392653401204165700323570169091251348887759187338527455254702219374137992956138118053266292183212506369931282894875931120457138131034554476741899528554761460758057675710629683516735528492821788336901188936382931781383890906858584733776073280747593433057398904526486140642601167220019183272627622847856364512474143482639696348972558815357163140651636390277572231304710314575608188204052125830647276810395353813882242047644982102328787578386351218783357125775279180522285766596740269109694411915644929647635364590424764548551003142123932214675278532817340489757363965022016795390202251644847921428823676710706755854110614482241568485012196237543839382246889253124120974460302849100229756823549418234567677788231499949480608921725549346078088795479050693500033833813083799562691659478984816476570788725078730765250015851315279825994964876986605758133917378436484899352847505742939631429887928478810060960342222100157077418195943159045947185401494091900838250014604570697821586184874117470313163484417904500765698625269500883390904459397818328192859026782165872042008577805534820187427313349594030986406435961626479368521385793031771165244659195144270004178223106459839591177891135120818450148781741961925117172846709846263825207346610048050258235270379528795965708767793677078638601314150542432347124222771827261541350447975854871448116369345827953774139668564227161027127625220110483192043701998975348414530963938242869170864128355163936734466964389284834177328250666291241118643533874528316231041924510660962592847219142528118446414361187428673492299243886762271381972239713342820831177277377936848478639432310516982043295435599329954368843087951756051706040660741620566103052123910924200489633046840518607042198763515627904196413686827390531552027805509017638847108282201540506187205242478165508378692464443386479448033159534429773752538526747936969467320838366286149754640638721853639564486556680401931455504882669343178139356774823751098044246162764416322409834367088090503437013121651621968827481319447423255562389994312813823859724847185642342415592693776171655291499288942621508228021414282505078626628416550348537020944997092481722275321244308113515940588008618495869671564511033464353524380604560531191364115013239718808337611513720059877430328377874998214760013490539581287691673040567184837908978906961029602657127661106672851067514641293193330972219597948022840641243643169976690973783245122356399501655285991948377108152118903213832678322417306499645282283599801244154744058192435324144978962435076585823461700640557143924342768198090265405299271906301934140983092884793669414965633819649540302525300896088314098576474827215156185650905677977652063113009245018871050211707885734049395640562641644051898146118227895049099184540595851662605973110306962940819138144245031806196261253726552119196557971345937440218347342140583786654567423005882512570767072033027046515472250664281332308451114932252564138199179033682037577190790446036380150617179375782987808815951902941981666855481746723905691046404692368439237231708519186724773726404688910696989930043589354632153036514884448321537069944663489988222954430543926164856024118297192045101031431964451782150750731061614640499059023059417793693857697276288211735955600241941362663209728668294469424455091403021258477358668692311077384769634115558916510116922267799824579697515739223378918640432304073543218851136373849901217675926925507243932999807977239657200672974193418108633887483967740213270030058998996716535735024984338657537345275188242197553622309016075318134171037617419205060133473522870859483021350519503126167342100764481128590142135510407751162781024082573933745845758257035867878835602024655563678479279065592936824802832814251289806551584626952812087354946229196388518314213450373125765679283887715982606005265720716271397807276196775852729463688254681473464334106027079737134288079769529822822026041947092885824719925217847090866959076277111051967421756702225361348714871185445844823126217591234557065826206324326334631162708457647058799770193081893138953475457315461894006506943018636649617966269890887729543929266119788027444878738081454848621363669346721995556064525371721886980055556450770179475388364116275110471999668334715296501453007445859660897096591978987217797009328856365697164997081122264596827435108050008163811389024109972911587487694031375158028735012172608148104193972837915958334803353499012686747497998320427100708099600930721359429663834345465099774327695298083388510707771352797676925721869779512177569388141228534161353547706895998676200125767419181243452944959989112414754491208370527203898395764255255520725885293488538672664838835390522429270876009054204830748177117668625300443036410888101011933756742191305930921726710190400468090224164537022864006014110187895055976857753917008801586706347160226546255941734419651119236951433970814879919277969036039729996002313295026205416424308722423485723559552854427648792036081327216280879768443303911131458895358332166733387294200987139478903388678855060691725033962853927992263325671295165355868188715471549013665982517920931607923120010823028088852200177173833904631963725044327031904982691605132163556521855044245134037160122573666709704945588490708878770220900729948311988027683101311604465426812012793639329626555528842922013128956534814874171889998184031620471224808283292218775839630444147023934877472099857106630052530053246575597363398787040839340020826327862428855013938094812787484034637692007159420082991624498787556500610809558155125725018954496762618070300740846131618915709827694533961042880272154929622313860320992272244145401624080420560743733221597328939791298823748936127346400355881173289180887041408659850835974842168867216862575515862291052237750723651339539902920993578547231734473029614633985731479322938615409156915851244638925544949393078397829223627446442941632856925891374919620383453169724012180944395886630504068970111311348908551970250627720389267718094655164301397402739195037576583090287336100988334832468904246453736368972872774941050096857079841618735867566187525859144534403263455596734307005588605453578779359183231708899538742390910119538893707950421548795062944003370662660455336452560230955493233382944548763499681980782704622046029937056757232938575097581305080022167386251050940498347874274103472092331491264077359445447390503979327409092476815211034889512078753901252719600243592631509753537481043832703869118173370457252203290373397595350544251078422995991789918412836644578443998106827662268794617300063039730028927702247358763324022748063962381167136954814586877224774622252475051482075176923362080711160404395618047224592269869669921711645472314812714065402667347519485279482071106262260265637838781399856767154433216948963178790913113418863361731870259310345497159690359314738638753148096415533380928752125272417734208828165616735812802750456632407421307402949644797256096941266558680969224019793818635373946375211837257179121956526811724907231922081021262602809146455242734008420089113928551579497373157618864753821904395848541361970607546850389574604625724771495772591169556493957688749084015747984592325789139413762905881182424782640715411794309121009185639801238814171238645141534814099386158541222306881148463753731717397483050087286926961441309622904626663713606622478130165176982816810164962390503327363870813020937167333674063472217483825728500773973565209521037076595673710065653964145841423829016144787349378708723529104051537981515135378527750634194437554897080605763949791903994490634824843652809321045749075661740234767408015407004483388679654780624477471448389087771561264839224385359972688549139381502356455318561012711074055723616292317964610329662085046571155564622739833419577795008108741638296560500400411885866289332473030725209409092210031086986709579007482801467462253549122757950572722350012405943914892672645519006772553464101790946282921102399750524757817951221464263858508003191619690357604909254688716074746922915355227256117866985365592050764251785365490674630251478129932389816861668064296842305748180986145595363690383773625245739578114386587768864684164798312697892327152229966112917792313909023235850372800630331518609857717939047986577142758251844206398282750467854087029800848473707188272690864050275879435348034125115935997422623330237916069844292349874122305406354022327641492099227065081979891524714061894043161788156854494750326926671812163604227792131304288235405560532979991350986925155356933728905044730761842506890795457568071671352481636188890681516881870159876093786901208125221410655023414555048376478268246384563861146599724753563309906288969611992226569859207359460806762602365960367703813749818034431077269737268135324508417346156299648265382672980696819309574947286714562556569844550465313165067156587467727972803793936452612151463098183413762929973871158996443139644471015692147221039993772914346846317292992642465413872158018835510565773887128732135290225412500724082545968669656416126061854033112046717736168454861340415287264796268297573996155317697290928013926927997191023024179744264791146838608018507743904153462160547981595518179798736760293413656441209017608573970757613396833763979351327120635978117653322931357831863364040240864817559487767473367862775997503935904816776817638071528004432813253723772124544895838776080914284939795346406901368536352084280257316823884330357216538305675567124473524284679157106275819721696670717419298350117105647630060484260458578511367364254117942359489395848160087006799989129361572946749600560648359060698778384218010471951963013995035192828830794668338619436396276219143231759762620581447366633179570785458071557991298558088520918661362374332911495767789324027472262062860333978313129732691567462247376445287441275444687257295935651685561164189554170691040208058957756926061536333634048575302774024971586006143864581651233598188667330724694086517561401575916784670847106124387462133248828033100852239659076449758458101644505966722078607533701255461700169881275542254734747286875362085165704265855686366535071020310101510342501802804016654780279629044725801772941721741878192367355732761922513063739931135598301806013755496379830751100023138440746973021108462053197160109869147316833325878556286282228929965693206716938796191883725286334886671005962180920235471691700688439342331869505561505097673254225698882439549860517288381099404322926349629088769249791779410442234491644884167851538987697279036752778084939922360223002939770155869528039454888005764777312458576024460097343499736226815951679778430363725017307166353230025366539038861473803327950863962500734071804604334157935782924410603732380355665669925218628379061124446667808320634989988870861273491291044284911336720013302381453312929767348041097189567579934166500450152890605702659503910974079787610865626424676193025858916398293106645007772226043129594680126090423999717162072205002463128363625776227476376341559867938678897880774293996475275024783688087318337147369767395369723305357066652561726719183409353353527087414257102157877203156698846836829557643465697934007211221880595636395776799949782547314533375026294477006265718917811913208438385580796335825454310944428700265514067873156502973932588585378668325963812481262022648273468497982836304542215545741747114094800456916688312297229116494815291919392416131565895387174042411968370192660467949016650998124948748578994812535520204475255462456311414008081440846153758054759734028556305674894163443184270636384855816576843123925599766987588945529693230916452034004841454073554167279881209887258972831384669126270731458268399956876960486628379816742654102341668550267672701214779448531093412844338593233186359532826150036581361560860231434420834603141996225857154659101453731010559536293139195686025084447003287367059210624501470212769821228441908558321367348832711022562254666996992161680211300263835437965094978606272384272143734941101920589375101165625172342225892893817705507963446558760073443723546124836451847914845525038950916463501550317899257317948826001944222025404968822654951550023704582462061573962696806252099804493671341348148669655776740046653010336737855288273067409528424661672494215548922536158320846511998784272079002708418790716744998005442452242172258588453095720931497727653338602396252597020066160645992953520754201149147756394477544346259947522400864202993192554229322272442864784538443758085421657464378969270496720172727085366176909296655457147057852608285468729542055617203064904127939475989902648931214420346845396337276462054243331058072973867515190112353839472000364138838898758006938536514519405684092021596269865929157873697171208307801849979106007090837497714975465077574361071584758000440490391871337127824126383060637539816692679489361153046878376294927871953995558084797213838909494379125928103079913151378573427747022902173836650451148134616824814368359311008845142655249811837784927053588135421608108232972932370005185075760676867633438834037240514979411351920489194002110075078835330162901800458143340687509990185541531225744091343564528121115700069528452078335214277690435843752584101838070062959030450651519035683269014373960015132900118339043733006016321154885827493791066447680542915413436754065134381750617099959677266560126561489559083076319793479965597985486491931109368382296687438416016218470867432426641091245132848219317894051945121275526115885235224172046287987382814890936083603070901714373637933642753245542387967921673683686241875784474511818120146397809709366134849055140318218210202013540901939891513752036016348402157171258708759141264132762267422579133873322753012129201235391776736868202508803739799654854898794994611775786326803327814058193181974826148797979430945574430061012377549530811077677430727711321306858854080888809267767061147239774313036220591622276881041759094233261434356040982215482458449167636419424577254653200747574156137314002268209533708431025388622450056402252231647601185908553398321333220717595285626051471877457934396336121328906733140484257185837147449481102962633871058931069184111262911498040388117401629799740322159084299241504094087486721714659508693341615666583287522383354866960451817927986064364864027249975715315136399942123982142976558836758980048265267318352338185480270087399012579740805728458025377568488545654227775718811416538321760731425881292470858726787953042782948926417063122521769585826450158288844576918990284222195507936630578224776838399444458161097878927484246729773343316685334831605038704737740725120572729451643396090088095569137470376023716493454629432782074521389084588455304637882196022905414224572036254012905496519202612613308551339513235216581635313363222674483464481808046773343298071634103273013679405804540570768098768003964771615684055901922400471582099049169532796532541930233205880202963794409055270890785445086441751427312424867159006620007630560006389189391562007081490021325983433502006410126943537397813920004721095041486354619687661598400946243991434679361504370665474917406791947397015299765804098770882431756724531318231747109842645536288380602659018822504756824003369457631793263108101863617324314184694723598206600662413255810413154106301245833607727616980625077953237859648680432890784046876180164410164345827815770763336534594437889597706797688851192844197293435352997301705875715099935803884767214289068306425368973146755537858042935850052827054491474254749274009324265209150610064632318322585621940270773824675064609264997199015288382685769787692413450600102949155497607588175212996412494385804909418039320821915143974888993376279892559788106587867093211091453509579247018619380814423166526579174877470653976955052156663685749573605835907750023007649960101706829381532155374201658282841667652764417520980016073640106593945269121034750515890865366697896143131933844911914375024952353696586224665663452531993105569590615685057081008988724849220431797552467762800167230617065479819337284881120259923812556979159805724812536774172017234149096292318457501012963468367508337194531518007731656066965705003629250439205815851632724768218797144826698885878184524543512699739841687497301278516774029932848858983430420659076658014066590540186273359970502656412359503587998207088758125934241151132167806820973918510431299198134437489198196087247089687450988770312343689090783951726398003151223895825342156219801034187490503751349961774185303657046039791126525090479731148071530220939163837861101319944841807274091437517249208901044415653315664793688335298977952936471447290881767324785669760558620549895140291174154189428008060663038536035832688512106570110048660251256633488209183004323953165584302248279261501126331876445478220876769646034062494255584040860061765759696729673732407621709685978997807028000380457730473836204975408490684296432716402808486252168637691570722990786471275305352245251723977620732736029736286377612881401448927775416859261230785012159166346674981616765247853113618218616642245492519069145243061280917501631647618954366801343614371661026555885771171200739697048088485287898405920053974575202364055442515931851498899719675296331528489879921372933698229938092825048481333380471515358624478759022310147696443368266120991999028006156367872437071595350797165822092130542156883044734575927193995501328205737248704164532748963334465785997112116254923979212039356639179709227911154875391299815311486368350592120667177168179248726945379461815761107949806602544770595560411790676936261377771728718620483277193056197155116580652479956062676112230481954398017560007344101087100652462552299987392278146433436826675505153257161634149115829486528897179256516315673666336751743458924712590749823016226439435974256298937374468884229291615139183744167497320894170693209993489991750001712747516075293756659718715844765713118960080734284152373590813859164250177148045172294676843180317694091363426252107041053354767655056740233298481105351437467210866258019196992462107681397030312344908935572457101988351806315654821453937604454863988913228695874235625349445549239355767977375447238809997421383933680798065471685287165371283035231244788778997473274353942638209479566666832135486016036749068093008286354959781981453854430753418396628718752205341903530845341692631651059673819895452075358714172427229857073107912346892765575678625585664382384664012890355493024385820382004740654265992223004716838717982250390109948329815920371383743385191485898418866553151329756474321216326864298908447559367996064525969198527869723445915563217538660129677709392950666698124140526552919768291627525135387481490138504080590592179430469088512734424804742225220783176404445178780268860771567868963281490945332574263842067439976708281192846963847825962698855624916417125802576671216135152512878724639323304725694420004940247781505087805253580908344862597194996200324935977215284125337555018764163423655285679452268669557460053282494809480524620194594408598296194519369188780438840740790574117698881042979358586228842170984208492923068602820241017346700860196259539293059916577178039263498423509554418089521166881123507357947179967693390875337756411817441517730583021636751721076720312022106038532055222354133171975128139650759009798071709788731993895922070269709354584406848698993696642734240461509860697901628353322348761719919565173458402626753558435178538496708842617770354655733240576501905527121054124551501539488193117336338010494203724141337544467773895874806132378894163713050556539697622081323473341695026746193720205497976696682750992375327208160258695136216451655762140561621983882745727462103729911898710154593482845154653474215672843410743448397404525566803726313875713800346334648425343524833322667462909862902258775061938488900646355214770022656383950339300606196354557816210521474015451103066980735878701135692089456662631261640429278515234962958062552768656633997637496167418693044069806786512075981458766968942013864186919005356047834060653873770620136298362283673566162080271785631499394212556520124328350178294003847333451753790187216455063689416117395322909319089880200944167794562815886992264688504631428654781332513721130579066789479329309334483700996428866246257525258498126842875050575262907181354138246634287719055948486646411295066709536116535010247660943352936615697260140915437433234513342871410478519648750778117880633723648645728046321283809704557204617140217981371591387801496193901934299853918843521224996756675950586778037971462172082942831113684049364456449876025809065284624143087656978306619758182738134190614091920873840772884825853174304164922592164164919620229891787809179807576975156040208591557255278584720604610367440578281275749331268189613381845514664001592873926248449995807508169020113738285016409309745684154526449604819035292049217114800732071796361359762407028321129172136043275183163731543744658467309008768434017062384511393731376981635272575996549901198633503932746731080413022483863583383459122328366520370310946011107744040109451401117405094377818329913555713429720626230213706214260833023264809927562605899298154485974808966756987776171428087336813830332506122086345962050927141867837923384450521826533852980548083351721994073048140991953979596319120585255410452212010679561104842964916031928163328196825574256691131159172053995905985295758296715270870876964847140612832664029161359605524732472256645038646667128850053096038095115651080282023711934653538571426555021450088664612892177779579474121993761230450562510448832214285271115541299059044540006154059436370301978861883274946819761408554421126664981934302847845189543032227816324181603690856675946040150803407543979969661325557521679257912291849549352921431088303522949152330578194852402608763778486969111991705540468672728494526480887939703510646249675669154351550311361641552744035899714154938031809809246616626400246061609376763916469415899060854034934356136359450731857289284831607213537452681066263745439590179773551909855617103775917688656785803129900781256388842720068983496604927201449139746702647133611813392406270831279583150343824900659960946068087350591439341536183229593921595238957026306736668140552251200452320453479021536462210928841285254763673483268162425755652402842146899435240595808964767572971800399367081769509153468561225274792515928538352089947950035054690549354272215426841179087565437130267067791390055767441414278571669380943978375164014612234988301610526214505097733376174467206820050080586918173210426193469492333101070143920008958959602641107346496325967219253410957103675627625405569431306201413697792754516373614263419401291414613102652883889430382112288046370318407773130692394099753486214018868750662588172299108512450053454820674938766233542363052871177091915761028710813170860625269841617238829489407395060979375018323020450895996350002536524228157655966923271631156516972600490542844610209833557056775359088346146688493892694637173356001414818479894615216038198835282866684154173753874077337192017393881730515098637308709180990996640389891348420784589920930978626940060399733316639765897471354819308787606956678966332098704591347164835649511805065428201507813734182998137582341097274612295225669668686265597035318193016437440184310741435983729451860881972661205376411283978446081211152395729231302779931765723565911360016891349376132887629095722663084117624184486588220105151890347923396628290412634097864231714518531048394068974639056267792778944302635754867434451869995809346872855026578689914868858814206333819263715412018061004451200829434450815165688137170739634040496264030542972347425172464434613074964997624863303276462968931415493731337773979298646768333257161447250506246727635946043209286619885267631012239223435489013701179413101887225516401402826567082983398165127502059297662620938578856977642763928967830138794411291899397807398134882653936478441796843333563753217309166925916817220744998872491449620439525757826834815097517231061128309080798890180543778671312695018620850967139256065869538923076663691943446017071783095770164542759648228272453685645779545657764432324774941980640199544576045552875075880139696385378480757877583486242371380369705615043545806112831631376255383110493278956015242595373669997297661640664253512631718050360325420046697095354034491611041315746111666825026942489218566673855894299995959275051333311505318174353205808287489454268669593283970760295642489766553341397075086321928623117329988944315346337222649517851654946551858010342312772584463775809568647699498341441627812406728881145388371432054680053898367008790975289815279567094303671572548067826177470570234883069034837465169788523882822512619851858062079629673545709889412940122627708089417338960131611334073859653707771773696911708458122272077007276555182558925135983159857969569584202731488250111457430411526808265294999420701576780575243189361231881047956170633907721232161756457497569830286850595311252527173901563268689000567002931365006020534259290571386901284496243363946987853951502163550048753566381976660078097095024745660947599531421991690560518245040126137522851013127463577623619664346088820874244711163851065329782862436066332515939308537684936722416503649984908875493889328204647440428656835666264046649298425447983152151037281265744192436195589236680577094845506954354359066771723463080459232496081108276746050165707861996903086600438231645236853557192489430022453599143802327406712272667014275145413231431569835134842698309247668331646984251107461428052794016300848329302661983174656791926211746446858935244704543622907714586055811097260027229641585723470133010932618608899292067879631082682076030513578450697495747908399338148075908422703287481589345852513831285425654100628770348130304380163366872312907633756923656741472034533220604029701544112854577272891910885992521313133205502329242245988068933432816375077413989102191028711323914722696733705548927404119204535679515916859367707241964357865707088688667689435316594119817236981438188516353339989733666867020843084226087743497355129939664157242951564723623579970829555272042424155481525820224248748914724313396438701915073834228166850374867829861103489172424064227632069255414851166329033372953489800304744840400417970714771405285822998537397836138509015485539023841630372942265176517024235315294693481649205025423802879031440094526477024250678252022542755181220246709969292550524058680301544493186918377405303452725935393647120953668660677947885994438259443464911701600754863464429851739893530288154052052717261536891049202999148425768130731125700106725570114997253826824711460108407571080375483768808287258719143637191791347172863151535179428156632015271138961471055910747991037840122752529117719864665077338516730158133120051315495649044219873401823767243838696623381776353459365813473188932636753385708234405186009015468111333916199821291298913188579133083979424736060290250552012200928005500085274151624495671309685814844626129256916742640282374644298373144701742438225342925641283334770967769508497257290439081508105101179529613764884180422120992235998512378155305682700479592125305159080741080807457723574037208678879083319315724097956958533017631014062148331674015845819323698492849032467167722746618611653713327240904551170897992352316409751045703899717287229702613524756258876683064936858617733919432250037140499293659677397572026728498195595336882343315612980121504691887257706373447285066690707419303519939038479041335147168532322583792741876560189833406603979785520808290469095225022462068336613928635348976163703371029184704524167887125335498796325285861826872959551868219768123024879696735634512117040995788237684360803724986872869087317384824110717683312557986180814419251916493185973898050692488826992167787521732182107509181390387943815800803558324585936104996700406801149570650132032461213313096559023277727549869789348633821055892714967756582695216893704114393903228447425783012006525347346828210162914425126643082704007554762640030747409346494116795623685030644940966751546054543289511331920591486663190131102148380920006855587214747119079502170633852527956303765566262298801838513143761627574247311614632713669340229249724095257530053719489440978601392593857525849772294404233430748364104527947112167742641163215754748029507529442935672324743515199633328671595750870342910489857801886821819269872543564742594054485308564252157113346980089848675161618043308819935231854850590732695774000780149275055105065327196657257191622579857543586271470628326719113303563521370647386391715712737232820301631964737671088932892685827165633198978120694019573746367286747310127626259261480550375239700126210218975858790891004320289400524473535389871811428171290960367790883425850784053636627319562991310322549056621231824423759801110565730698399249631276055053439310902752021027604537261541436261389115431429518372687282317731947637590154615366871003372081380960422011653337831282469791854293972365425303654074215786571774553800500963418974117513976819799780283828183792861639918110909421384344576808597241376185855039551689935007445084688240451763685142761539670659944690194650504638364530822508719623246161282426071436496628952842469746030070488038914302574857935782525416421182155760715490248835952111008061373141616908770174257921579017139571194789397243747749877970820894420940634066391175137509186291592442657757522501584704404816989388136821373396151909805387867748699473469151923754650535571115930345906232973506959470073434782805059193703615020877228089686143055540691704153727285734460229414233570676290158722613785723840003921944716241555328564836778428299052495073044120245856773118563251070145149910852522407533354062160600743571086916778612362389252149167227311152287616631759295289689609615996011158149737221370914829460142730414737336779589844297347082810533903859447153125716551387129429153895901966204509073891664925838996391045266770356251903051806956122105997581719009426205770059812809308129541436383357429738593783154688357044648094104311213167065325523113680941658814330267244789704659195005235205121151093315583628054945218368664392233664817970446756504380085168694727319803225404316958304694658664582570518971110470897951080985205457867710009570750422941204026389331551414907857824158786222784216706413468322262276852456102504277281484193862860874596607276243968465056382407630340152980289864333488861501244620276644688282570963688757848328507690082687515488366408509744883127237947401889463704605182533097358668610404745732568616605030365719238256544802553147184789108318141569101524148236602896877440949225717739393603950285297335129215444334755456520802486016031496559167023396831141711524657420861451491887765899998734412809156692714762119237215488786616677261838270468337608021596694182814564191357315679349870204060379892539782945185381040959669438437009748668790310036851488032929938774898902018417678787614465544601371565551893536890294141324011292650467574362875415809805510774346651446215015389132693344709828868987817854303208164404998668674737129170035601032700701795347218737987549868704226823769061092900331938405819449636216491842395995454193458543896491910984370468146513494240714516298460645663953632427805584414804295611929051403456350429106200878479581460536936667992498148508715105589662564719965376045007819741813820595300395928734612851815484338671612859733529739809414266750475041477432459242151009508542116074295309365248810364526764893775427453606608771766616920681660907691425239318222643192348528997324419739166459016160524996455408800127905130449358105259064148075317540943879593562102159687625330159445841437844435409346027322193800150952069507684625855001876085159430039632282620080528019809463858998473440693211492625162796926234476814818708769428227815680517726223001131190626538668244303276219627299925106227524449751172557523940984499915697274614257727471829461788933112311666910394268799828409414546673625751306041218306955381465853283434909040534983459910959138337218064495509087277635730220905162946325390352826883031225910677124870430821550696065885141378960070798075833211479474031448979803926974656159231611693944232749609561556113514921967505414471998870383078908397649276914011720357288746289960516794439002157203622552091016670005740666254326978784094733252144156813685726726928272892491649918023495504413204989792210397101208976198959952328107146211756168803443240871148064975863488538900939498933859730421784825217877938876989504136297209319740067133384250346285936623089972640493169556635027176811556458380034105848557992050241293925581486082495417255394207755400939947721276280701392201845311322600283560557274141539808347005157821085444575112383899586574573401725883665504398637738986325752008161630602724934963789288460969710496970316808021424970413513593033216200128450586489963895012413645903687251230241521056568063041863522849995671338381181455924573201374948358806788155313136173304730063016932731895527105594156421096367231197236745659668115770665074604781292992368623436652189475147553038272913358058648585037965389390130795646275310905360184020722851857245852695976546471449389721620778730842489219735214559203464090925725840173790570816258513049749085809171003112559737920295401690840715175361191906486141908216224465153180738157616575306968952041175647286014103209144601670849583982074123228967433168390486639573975825784333678267413161659084652857060431607562178057287861847308587724921557752212842955961555837977099624347404958920957084060673158219596952322067365853231451956225373918876503091434698934063343101701977343359424670411305711496710034709860022529070121718407642846821300359307551426968317192105161514681459631796120029803395793838657645284686923006037553128338990916142584684868220927867583133409738370810951383910523780068504554857536498746727168400256655932163666338610007272002824012663782409893590630655671282284391048957844914485941537980707534995626975875567284183173540411980149920718339262937528733228474938280580902112403766555774418683316928500580297070021038690803171399352079393676962770214613434608500948128602468249654731589740143571135815370926888284084804627349850058873999745753640725986236330623383471708764963804142366357457360092535375096632229801995985872178357279961496254991307748077677808834565462300355014881991975492372746494023530000350829526695944342449184256996797377376862378336055539849490719311816246169893077029452862026863297585721461819250428029731853372987600062121661268879198457919095755964249964939392463567646535098156849544326671710321918248484580643908650104933802753364053849799684732608915424596522160773210409899294414899949009419508751926567629001650815632675268718078052664766672538064661420784315768221399658634339442715875708193683112279865778762292925322342391379362406427840507789123919145341161477472413211137918913221705060279947534089289814326253520125558578079583463182829107240756609852370563060317632068007230044652031799443693869489250202068647419709760659472858421836795142608962138157694392452243842752506195260787810653859972599350065064820486974030004240538672615403800968203028910220059715442978130505696265078213301241633804208106350787787071226896034963916232771550615219159401006224203215855991052576439098882467092340475263171413068696911427107334160829646235772427640853654602181806866342752224163849165431349485688243515618528830078085942339687860323152976736298357684929648539285765285552389687283939756693528353431316434900733056306302770000345812866567900437481900237589211980207574693365891733340971043253221909428269840519754325737935234287075892225815735846426960998090563725795684653780677617184121100029042037850877572867303853625526363785616200691134287819130065011541630204550286259816472012946587806063813285820286427262635918920175325847401591679348153275419394629635779775699779108853536904797631797083712817726935567974885219851321807941790752430439825477045074264384425652679696638906836626000421365869677945280387426865428887333778207628539491473683392658644365556244202189215201437171260084629426985834715331952809490881507697401001971744945141672273415594761182931102432531746631543561000083921729925604903836673008638842341133968852341186869466070901989478610666056608835852177178243216685109670424107218019113928534593908277723987284875802429601165746628706404693782170947130077288417565833149732154783125189347207977042502176169085702080495696129783966949797076005070419434156960805184465047281950061008618827361419584668860432404818621047265041775918856488126429923799805106664631334453737967555795121634367019669168296030908805798984922545065549258135802633042194582917835527121266059908281732831182202420323550856112493586638130595379488954766237371721605699150132347614933322738781495162545954535914388614177036139707240712318096072207316713093261536385429709577916711990814204014573303193160668461134860197257193228986642218407934035728244284920739481762031625450814274954241248983481845605005985961211801331736715347823751977995708337758007908806058118843817564767429369420577469150480520091821362077366746417102463181683998996227948421678761222971671146776110125788946248980556158927214886841756674163612564162726556972392764514326103845607643614875689000258559622986759278100798999633464409792509281050269752818510959302893315263734781868667461731365522159531594240125722634368059871557499578879821969711762365472929488003887722769439103101200837382844974222700030472996833825249662874841985294621645141509614826759591436475141302180347534567751601170532152808755485038988169522603418439313097083089597124104878083089547834283975256028872974894195927321929492550519922968743704927341627158439049919296284735727020528381741319247793760189834951419744123268337015258303642815517999332574151501781509421437571321842952325925154858903284058749026044589945355855086311533467507954138679784919412363429920767934362536064353461418965293386019299878615062042092289599089226778771084314439491471872837210064287055491056100645182393692668284973050936502826868617918635473617795760713873452364339891568319194766895043473514565282478964161808632163938559406601197984360234705437074182461799039411528843653147400097719327842072712011300309978091186081160975248793940871731126497990842772292782005369006617174652323285983897629837595801487025331447698208366108350694333467475135376748020366323132562567658497486479090995293106417462977534905522228916390335039237312269872996579550279726799268718248625444606157404108228108643023253969013015269567331134550086062381885057175967432197016260186084119531419386349375133984309650655221460632892986655120193659383366722425809954875878359758660398396175604406085544884842556199859317589428597642261536675090180658116895628129994573541045812442375954386173206384393942972213319314536424334824649989521998426758388632968512607187497576746740819496818672536409064096361455391528770243441281711503175589145805631970180356948944830903659870126632548506173320217430124161760574589136518474038665088656081549946542064135656737485741514497077746106140449445439994084522690288887042095640272772213467398330584362067817365551687760298988475257569661717641651356857892824236595872850965031378564682925656487558683722800961573586314190962835282902226057806318388712346339980032917679156546053648471492994333864096078094366498730647486415191689400564837264140403999615346421405683873807408404516624014238842834365490719601133853413483122243864523909591046760172754574778153292621848015049896243117836364233017357329821035900439702235338985008296840021911816144333488555358093992537154900347823048493408512037951197608310869097429075896627814997620961680312090860045417326021910539272748148414342778528129365508671947041919062282287654106449553873418774862652451710922825846699768882243159490773029411077930855905509424806432651674851453409848863874859368078169031587011052475080406299491376455485460329862211054249287938301867731523236092072863707023432823560307129404727688554069451077191617823764985186189551964624600961252691794161681781963320354834739068598827201459683758160145295911051522289368437267319789016332436093655451187973987589847160426632578407546786708660458763687714403518352502644980986364737712017194260987252316873716323935474709182314008540247481517202257513654998202462465480703425669332584222688074398991024225844868490796342149504932939049839207095563932553365956289712777707207883888842919328871145036967963072844779790168367129742158113883680343668884221401774064830997118984219066792425859125667435745937058253733471226117436964901424125130294686300315263867335813889155987428062146737434609101098511004707917391057550489757710690447796206676075269353847070501662810813179904272518254593647968694786298242289969918257860913278786617032794064022854602551640165094840507171656887071236078982120075596036965128487240028112283835571345648660118835889076583005230558910861270467143531131065721861541650882995636649899083789373678804384857511576148732773567240880873227607087841244475549557913642992630531198050415625411486086977197765940719732579210199243799226454921046774122214459272587107255795514265922489783469043976218963416048006040830929799477380147303094312039792302410038237048556098149267109618290495843813460343946664018050669781047169129951251097611016390081330665999073566760533970115586742681226103372275065500139054186047540833321811535989537371424270587271532695135415438532286138053587680866039250735995372852591106639513245581651911278220376314722299543584412487081979740629537668533568462303518711407991290222990637434797453362775563626498753250760223368433719887678200043420746209962898513516465264996762713190386886314331035353562997824214017952458568835921426532562194783736442054671859465811339697772537156144226315837801338280740526303543750615244336692353769078032565538264991560043487134265206738754963461273980504008630037295625372140187498950828274845938974486298882583557886344806059320205560756314918063920073612377075605470879625928332798688328580552154803099931364306966215347062595913802047915766652554725673586150624410926202493627022717583645821931440849018132700109568893491017151288048611616944755076043018718782488309597110232949527572804911893106566120000458676222597134656959292463401244312309773424201155895783032761464094129482976571830387798558456711568345905399968165273468189409723886964101541949859500370415211179985482867464675352251236754114686300766391189887955848869894858154144485502168671682506815249611363947781387258227560945805781849920972171318871279138356056141394151433845329731213319747238631429182803498445063006944321686280033379308133004700239088247778092580059948229436441784524642635868878535712909198115551157821559164200700767189304699192033310997885106251768296346185026256272623698931743724864557301184910090099658603668427097915758038945366535681655657268388833925226874758122194282147437977293845593319873570601351314097835247473266380483760697413732343636049525857815810494162553063230128791519668731750181957136658726284395798887192667801834213741518536336314135896070417145351623998673068629736992835059989594232840630857375578459248497922087464060718171485893824043190499527053489110175593451447459712717789208854047903225212334870724652900305590182154829229778062723198729611304074068450885217950906948380535704605932665569761077161897143439004766103530267557603573585827245555369427942703887639334629175996158452988094485874818266968357863947443233437593895083027638839992863165682990000628281558055763860381399773479708144476778355571766234157633382257903948700457541451487930545427926803933396603307689109519003952655523531720976505501218022348568276446347721495138539994760662875452506565063409980227498846093992899100004518826720951900073234423834198961106192416940671382596488477459302178107230196476874001847367090368621403273316708299562795458799816543985272060900590797069296029099697129901412996997292965642222489836224647559008654291923639183004301823595338893833327580210190024045526110447000282538459609687490000660634172340057180465094684717441292605164733539846327474289885589523988408652633379560368683907461451478179796694043633021710591199916538225309554191450873217973140638543399488863152172097071491514712496655607834878627508311929490251154154958541200562646693499135455665062790413909499947734844914421289596948003611485868236469160390578335499836847587006177453712485316951401199162484305331660720732377024317812644295029458274720452072741874537619402019413448507654113521792721883452178574267132756791371399914888548020781081716597845056018268167635428138952361876094794444460717244546809798805332069654380661109094851555520614642625215993927382197294037980336938069937903605142049397083303883661199980437684183493609535791158770020425808522564454353831888702823248190398066137741134160218227677394476794498948980299621145843867945439438950164794275146846276984219176584276452401558311458258983713955204335408290814957909554050202343288921968837219105759223727437012016543587710770678010494767036382233688493770934083008113909276374037866957828868169918558177057594035185899458603623776094063377277928129168127171628327456433896015241791942747108234593942487315003592566702908255612336700536986715837047145533333552303282833313006942056267212228285683324141877896717489788647241967831035595088678901757986902197673896994950265427462526816919719412374761296266890300134707993475927954412727594053707608954733370874507070790515189181017549574213831082538576837351219441842519900258814738447644924372703673801419664157273959606453265110165958442811966074730167066844182636704230603347882812740085889826713489801036476920873083234062612119612017421454349757461294818684190087235123957779105564967723842713056933767149192115483264309562083444128022187967044234911046907620568805349858087471302786589779630426533134462214077572019252321167127159183334045739088471238569521470699482093360715337744949931890861650571314416305617393621824219003396631810969114813218753677630656326170849833329497388524774419212697376860301335791886660110365083517923043801266208483950460700386568544038898257711229769221103467855818992590414318251029213800875675190444284045043128846689103139444479847624610461794342354176941941532469124707967416762291590338269698151483875572730742560284278930383391914381159884588241324407773374395396191543016951778638559491102422903886830927211695814778556100998164193821050642783292206879625034154857522351597848250187170150260654987776311086544571710050225695349520878751665990196800440687211969224355970325051520211411437517312573764901839279467872264630917718090372807208111337540317071032803513199353204397235751480855877936847360773288676604988684895399433275418707876152872785880627594950015876480039342421458435977122875493615725266544996367585486437831670803934498046649368659163051581128970868474454704519461357007063595238333269175658920184083801005148544285480342038730159553228590125300249290607590318093864041558271151260092077186972909954541280404087098888647462285667217389781491925428599778168683766663051189118156845261889019595147091464764582475450170019677079786807639640065882791979792252155320445768419283280253407826247603240994494709775106347098994438033397673345385192270788533686917915237912970716752190702756012494920930872741757812954413638354609587108491065359138116332723471473886792507076537031046023289649585920216196211128730355613778188351348789121897542707472994098568644193849020696283264599432173454088892483299300066277889374763371667852669021866339337622910684893122355305251718145571453377109161438955591248676209591514849951204494930762852878603261029450809942354279058613511965369892807260593661057624512866472358667694849382457093797206558369499523831449428304118474481923529952738406614296858224880598773055419677956861158600225294240405943663165263603125837873757147990420762866552281774238862857450380941724105592020789580242247746614989255210120728667775242937250819876124492470236688393086616263185084314417434831676184480932671946208144016805688489800607416717022006469725453617998233961237920550784968324539101154969855320678921489153913683180874438420784098266908699075595149821097087699534013036168471233938065162933061283108395703839989292191958328088301063945784581266252556782618417959323062713014558089701217580988955204075448856080905886585037052689738636397218598718676707109303751389757014427014991961730396526881714737618602317529863678390859288847781948344729151920887921064202865165878282912737089815551647519813660585168215261127287067761002800170719505285470089560676389046013740421372656979681184948385542620445757887075302959640250647663350458569028928339035037582330162823803614193564921076821741239010198680816631520215193553921564531898024513593642426522011100074842095927131580625878293453931348597199296583422574084065764412628805515886491641192111124399449447236845220494423295606531823084969190762491979463849191999587967955881576864514466474327974584331599989980422413655209702129123208243216673467914120201438979910643150944858995912304276522404172978930247208016886413731378275878685199815857764550009991405178201158928859272404327800039132433863087172364894079789828749805119731624560333931232984922193005370990400745601117116513538947529519753415381811716262050394913402627335717596085324321431294504450620707671089626086431305762987881470177480602493152942608313431271061562180781203461502587918623869060205328569961195284635233818865587613324934587502822007774298683679088085224740227994280989810554919024335968479272161338874440767434907613493705765329903288619912049011845657055784634039348836723687930724761357111203903685239195050481805629922081471933854226182192710194893020207895276005878420347993961575290985784167203044716347134287034777360332948208112102063163289146189185392928319176011907954885008763878206055279385702976800720288776067228548980231730393225775778017266854825736314426144005041710323499082083029857679023824734826701914277212826138458446697931340422543127339611562752002156074784965720853186172982710671323960879250740969424400812694635790630036520881103143744049379077911779916705232653122348812973271418213289374339519862388881743177078267556636303493643819890286862595769782459028693617223200433720929620423447361630910947445082383783575198001793673876619501337385889002684798206106340870045422849620002888509739059945628914738143597494430935099203096292603044748886051668532839765311617300683345678285594217806731435412309380885981213669848997412221381221502665354608664205444054604073938955127994961013128095322388353293254011848559186562014717888577651701828979906480806685324834682483047789294835061969671801482044922833284549721375890572692084906342181371200211347032065725430727756716845408574358244582588674012342815396766726658649102250830699563033237801578809599445406942970613791674980995936406432816457508703992277433294872678165411994789461780953510123232559317797668012545946872783413834903272534254073852010810954477090041995050086210185935227371833417737023443933941384180919789208743020250653776286614721204044984490735200082937033537951944142725583036809695560427063856091866431169909270244495904564270925916718238424062075935823310609501295636546194768063873408023774983692643051945286153422855648643055851601821744484969925014338455809962782310205129447898843564633334466800746607968880851392382145272614869812446006688444071262708718789973305884986271537754103018007852286511051331258939097228654313878641310743392043181027642366151684996470113937732995382600747161276879884224435440170080367753491505356185702484557949213707694685989439530923352051639310346836530826040607105985143698165999180011528451700228146698775503786492969396511261643283821522771066428973666466075003114813479684632718368410884587907918823511377954042058984635542299677386800334434112101366171978515261534732338582729671926992976092853604132290938282479977009799757838407872997648332017148133140083062531958717109089796403933648775869631610538337774829675596813588680785533599900865220292715038085291905134315248370676480645044459937920743320158073000532648220009412073362502485492123766949182994227947255069433865753901511543887228086873726640994848929110914415828875577091149396946797817944651800515173415318936224322211227683678182664917911066289494540840890402648093287138318623716664327768306096316773907323892481835578602389852154055381935367291218107822349837564926464872068853502115886810844647803892690243854020110462387962304447548885813749092995956743172054319537605253001588916463458040160911794226869458981329183047575678345173790429450053470400311877605673394370717514610049614143511548851763838224322488813091731673298313371960870180135586127276964947881830032939330233715119572251588204553715171581762863762829584435281530493578678794565226053915027082295597046619329927836480822137634353819196544178494605509042306385145371252339865206277127805614369229808512398746582826255162649214974676718078738521743949103328782627284656764062932141718685954770361403557539897247027989697435060543756903207174444402028445161827317125528538283815456099711965258696804612661091659776633356382203918150144987438304430779657294510539490031876930808950755731423340035539586928507036058955560332862744060022567661620399890197801098353916875097625274553689064776482505511147886496638796624344709021231742246788082239728159586997412799800265689896400122481710121311178748722649398902212818038053927184865104924457736689342950650831053451076502975160928384109311445326619567847004573695820745479658611047080264495165200122742470472892916186370336277008161167880373608891129663517172967151311178321089575642726682525863652762950124218499790603456935172463381914490113637153335260132919599391829202388994613539567467171271501872609982809671926837653439378826957867458187644635585929262541476795405244683771215924798028072218574843561961618778940598783231852786699503047006945672059475919388107070826406090062438260781987280877978306259536201184337934002028937748133729049209835224189048951422394221861056800325418446349227339064880684468484278021535718178191373515915056596931479055452156587877944951466408860916913860596260774544831199095005175246486832450528509756693368616123577567140570469462923533727393858842290909397050063251741657753885621917543803245230712813785731608021336010025033185516675180101974879667929389708842794727797753159727491857847069324428780413349201037705962642884746492812653824600250069196795861050658368621031101115239139950232207216741161018055469129189240249329407445999359549367591673848995630136580065857929636202948337920810962336949591040139117539814629088745765762982854561036021216689975165232765164165600036895561407991040914650262926891651113271071192015997319996590695826302283102773050724102011040378028966769647830353468398112267837258071252838197115796609240502914378213544984635332561686772224805016364843589353776772868664455634680417284010462139178316466773403350436933633242695750605780071144483023413541814276917438521324173040223025735935371154619905482471061488118048877156477779956989745782775205501842954547485939749198921953354786587128568132416948808122685126754663787265968376562770826744815252723850226376253521027053876983906511696099048175097694291069040647319923310887606416853851638463345386959948697736842767698268466856821363865964443068749081970785714918878043216083350584272767387959551101236419260609951460437176971267776293828275489344524316831070113204694935977483018925260359270832914723725289335458110680259165044078199862747458653944337175186510943210910945768023534955553941570766484667966134757836834706112417715238282277079001968904862130283148822395416547241106177253991514290823194599015402992183742754543796532510714704994203390994729523129851263990182262078865705479180992624742228040594588080825531553452343321216318679259460637704250212788314784405283343945938139611238343180682065006012111772724267399315493631890845472374686374874913772771089318454980179998133020809380497423669167960165272993461458550140065162463251318697655473095655939303343354131553015962434586016742022801596128840897138872129327813014052473506877334741859030636064010693854799782804158303168016736587181889048765979861390752735184002853606545471880523399384550792093159953875383963532313311791897520251458489175974186760836612882232035186971791092845783658250798990498333992689262736259021439346417591341123686617313397123622307462666085182265995284263873144343288904664461721079544049769815015104468753359059351461035006303288204442429417107111373628118557313851682903545893079628713429946420418465096040446886316140657893909915523440305808866909258419553895289124427695407262909704384996223041993061255598907186396062991640523727367136070629881104331355026824524063131811642242411523387731765206334679606767552905193640057470639263993504301298331026672755253573282522716293684392988869917315581330828040188791352727597568433310665164685516714912989052539485619337119681341853787804018625845722156553854167004639338870911678076571642372036371896000548574018564442144457789144854017447278127365402177552158531964799174076237363281477873907976632149541668756407249727621343851665634023311425841267161272940910499590087933042087025893350493909016362616960757258095469179931426204924937817907143166265925928381006562455358671194631546797405515937263444322460725048098510467961837683798043129270255436921129285997300300710683841837428469259345042956051805508418217129204909190175512406936267627411888525641481306402739894476778663723478445384271738977329718140546598335806081445355660986960338838601964523089182863383286614306541119497927548663016237004144837948439940033564638893272992801291054270171135620035973721954851788353062903717358725916179825198732118032104158704065919962079259166785186310455661853901504761364666963888219270334681887779667257931001220861872973517033855207963892292822071051914887728571293143972838833584295626695107775999993933928972759685662730628880669772491316578469311948473315176807233503166659959120725137846866101332607879099717462590281268072772872211897248513656714694679275852163395060421349944491056058018592919857189164217563379173142108974130287289445061755183976273697997753129559401034317971258162084161654255750758480222953059545269702084730390165740224966273669942566339052993019406227202924431305762268120940318769790860456104045615406145808901960754038197923814884595606173551626731298223639071495763994725144402932322669600599797850864261921231668497582159419156245258165438109616143795895018302980616702191124117417414553287231383140180957297224449810888125008718499202290039583428686851858486619298691440133376149438266865884401272073555382430248422808396140977724725291423830931807909863190152900689530927309065160781853306251549026922079197546571782477359523151393207300577736164967815001366179526689503606800466516204788580072758458568763579276734907928739987487029526245242129705479144642628893857783821532883780599967515914266132599832771339332082085400026195239625482794508143808138337358241025994995854187261809308316256358310086901501678382967907766331492537160717415148878472803919418942272491107127587015547712516774282016701262099786942340216654617588469142383609084497852820218962219647030194808754774975617466519651959898630037572869685326519496159964787102984364598533065581410796182943581556530271897212066117937604666706426184792850516093492320560794378996684114646172103909930618724307195419094570062408085542026067921882507818954070773338681029429664449833591646007189368748749565623474561883805225549494498441777686662128370930086393118355457906963866345474035185200182922345186168582375582350359490451750949432434663540551660065913338436985532135696982587299263724210638919236113082860312865169179645165502169492269745836161835826331613641425528416710788662629912072401020289171916243338403545451586849914608511414872685802503454972963606673179361870345771365654315127656813568240340997911061123328963898987750361658872089944632809348811441454104321409294029887007773463511244374463822956551523046632445327309889956343116178452017445565662097635710780197367164680258539799163367680035903624984664827360114598474701684490607659144930536912509869825414168077899791375633453692207040431124361274144895031574805625313025238128820476885494709052514503336840684894343298961977443658932968063994863601000139811625195394021894376858642998214378829020433691563772032109226109927194910298894325128487746804487565220845573907529354377218975189508449601248604173880810724729532978299747538391243449981691832114205832096769663198343857120830657572675492041459032726555972275799407332692753355422734420702626899148985745703516734013668122222944083095241410256122361172363963339460357378192456336383887199329554699128201328141773680408186286693252350503296378264288188763236779274710053689338777981274450950603971165527981281683055039152539431204143107745165843647733804573444012735577551059492614327727353794902038135074448273379853710634728258853947875094856702031675439992877158391626850544954599214731321371809498304988583911055068905514171807719297135612129749986175249524864221736916855876986086560127854365398865741172569465983762830660324427203769613329742308798434948243549789048234779927541601391531200913293152232462030952490488315747047121638810878084790871736744218829328863628381229851163716260657227314075747761680270098067088956532284530457097362445491187894675426742376592142151284868780985474115568752749617253423970017612036138740685401313947810914459041044688939464529696076489754292509924398127004624900760412413958630686948841599368762879790400347054093693460492017744408198980661426697604034195228338763856550453695631377865762753426413026155311054473869181179582394288239369821256215210045773057952948793658347476876287938271298257896024345538930193995909974172408405284158093527835931330069879560638070965347007328879029586853693552038219231680151084062191005617733281452673206222933387095625670977505222717240878293712225382898721052158654481981039050107639997645626113584122035938646765559585341660512640535225013987055931886604999801448849662249688254779434320881414531617086927537719075061531466671827338484105737441496368190418621481214631998426611633165841500772002317108249852800894641979919946171741132927271299500009069104834835935246863327559096830664853178425827378636142210700512763679974439958230870609185729086382889572335728296535551246981346136790926445452169239707603463752773075480175263901934270078774838122600547447628898217375687966473004559130216296499524234557650697282404479735228916052652565240564617546638605261110548525410168123379082610864805036213246577841567393122440508601015194189710287990490549680682056177719898109061830568140404308759839876025500137927676744682959196895210269545983471631162268686300278341316035955178900552509985805567178156014332278368485460308052504298251889750322122590913118083528785546027830676152427455168433433844700667878341949976949851030706088175264747288671736835631177028052656759837768064962322896287378675104155247640826575520268713986067957466615952020954465475981930846001983386847648248648862080681673193514857631664313188437980392376404133416719198701444612079580807077414131646402233742543500507408233363060005784352053216483909073821031300448694690509826738585196826323024055924151803669169720173618945772141693743568250327350997451100963038162902896556336135764038143608658005046438220513867710026508813693889422541879495330641944663133637571872395158010821125869119004894987072242688236075554922631458641183880583400792233021256521310629595228802407393114417790460704993074366619455659615366843953540539558713752044601048763003015425258884654080160561352546729503483840502698103934399246125648390335047379462990148089564047242690449713834531165917454422399929338477879798619810783300855628786497638440911900796594727461132491444427247274027862723616987142544563037694236990702420749607359673597384384748042031329048856772201690640132593474054318806096191687013966767777804339096465204617596472809692081225250488958613149230825620814635477261653802641738842278088620431504486301027013634310278339992927837208986727297170173936674776131835104574584647549420797758341864374499625406964636210993881613233251183252692404743653202810206969495051436840080100508483100922624151937261798189709530794903089676885470161341105620499528417869828658641245353713871213926801177568338105431634415926470656269815040870987892961310780128191788529604618455299483416938805870668270679093940678202707615748553842152094314769796022115768906216936637313443726461910209764891223736007710738297123418068923970998225566692016943027565312508726737005180873442530778768209786406525285712114743495970613015341093015589887412613913494287253258087179506299568818119936152468708316399188042952369362419491190147001631506295584010505573869066592791126657115737698368478925027487196812486304305701823190397269872221980574656672018754020004728277944316980104322763263253170642691168644274242277271889534634333150776078223418525430913926919280970503523942107491471813542023311151542609998578776076072081870349763523385855398368328142371442594872514680649493606016051343787774860143573356937559998444628674291600733820602560606983503445106538344859835530815569678312712441232938250473379068172558427446634763878003893508966716548407295574393645650485355503139558447667297013482890450320626132887630824848141412489137867306804941489480243353455054103653523276650401699484517323985071319283473886086958438716309120334259794909597173075644842293350154538235489493200696720805384124008272011674653979551407052499008256169685908878789764782879493448650403218086244138137616632947626736572190485040425440764425284273207123252647831478534578398825911660447900466844125761796096998596718165799658694990862698498659898189605556173017542370594086488748962872841404387852624009412706148390718325332188544065312598429254670481732622243826252074191436620403348459976511261635659889373724969928280368148974578209389771025499468175377077824192333850886533680874198793126143832765945261528641281141962039101939243216268638778864291054580146707228945538369084013135838104033098400451752152430894991769312460280802217408245190024110413181013000900190250004208678699071779197697285699116001575729035257734391348642648478520927495028625722261050626200305586097645048394786917739938810502355497617154015870096146765374661621103972173348243398272553639853762688276485270600726515860305490570789515106934489182750224690769105208710129094103141114361267102819631205864187310428802821577146670056810052017333686946242007751798815785563317151814292603502820323526713913059026158551360705589837111891745257214454971717183432998533405922409975576476214448866727882905275135307407597197007866423446773860524882383912020183494267624815832499462371120486513029847403065905790423345131550975742077590178188669781027894115913084955375242080000088481876691126874956256153514616637042776886987696349861040696409274239695263334777126342140245758134696105161194555018355904499150207794441202563972793972349010342956321910040864373107159595248753279478095884884949749918743408351649790897118413618205308630118039097153193706566212306200249299855453193943461077217143261733667584839776175923451391938747598189291373977736211237939364931678446137322408585429023204944614233769285066165583956934027086983805794151757810416432842621010460218074512217019077804848270027866289896008221006728360628398163972641192134090816018471296239061222025109833560778783650047479220437980105699142478318424214168436217060909887527675407191523620569749160012808144821776120811845885006435108076655931978978481987127477017594220310599821802211785856406267957406079136012743300561984637221202236956988675000368832108377739943731394205518265860584842447001935549799777048663571669414887486579090035593233988342232999396289103895961094613945716777965891561308609852865192736511228733185622629779749950626034367005443970785701385251137365841086100697920907298224268840019304602766743198152502888532715915604377266135406097823311878642356024123709963352812842274245572902848181040388387339306090908511096097754943666952190390886897504396043344576720062015995676193570791015324824796358706588234728697284305207326342731914710247721011520275217996705245273088701322883915596085465222629688366075546373111129091454314993252881656852159049397430626832973233854943518149507692235629927987053657876491787271146524787347827896335666831854705184750689465410598520213993065719329265696802714903504569472962979133677465231111233751582680079703007494624516664243115978405749230498095162952580334576230941723615948044539885569682966185091322285702953904857588443141937515788766650884783744307865000539499666972574394815569079324393599304356817822052246302475601279364459632172076444002412684490223436179997035633264499824832627825230859824819711244644322279562379853124662931802609791592433273606805283727491661930996915383265824667212867993248770025417098566538798896698608710717314738046524760949420952231206800790800266376070214317927116065585189263807056835980842919362138643471612643547834156081178307051889659237988939649157368935114626698882552623552769563748353968584773232580371536263099459427727644238011937814182284315960184698560352669598914795196242164529883554779060225288230619165107287596669805189188975512047463837786656976602481410121713802701577217305335099977350555031014028164711934495951156429307265802486207087939976388174129023558701963204464578937637682613809577159255565183348605152937821399501972642815231534739691358238552745822633106645701823975116981780852243317803541946621733032717970620031571128158210859669657297205497938804240726908134951471577163774014702843923032058491510417668856888472096643649441064190548840567456282080599558912291496395694285287352343387122727980847547405166966192804264199577878459645919834483528502386213037137858730405341231267379717242885562975899854279516401638265884708308180572866918195293530228707449919861680150412003333032229410626734021625441709448613542447254865106561735077636781378771515598780739518812396601716320463874447817134809150091053340951458888269287321558569630648712196488075770359438785596101350732071622421572390561109399035914423481195121570869813721499598028697849786641576237373577210504114231847904172134761253620819380076337234825569500168662127783927748646339004530810563178418748964584289415335990353208752813336752742349841649217786922927894247996585540715910295093127048638287140215748704733988513926584320073070899229389389164210476968679276791055686367378624406938931478429915855992158982552537719834330932284781956652170401335399448637481295610396335983350132803702142947313820656304141212942929292259299330039918500418271075525671057922258432748488366302796248514839800242633655960486310683877044028346492116737956266774501621028901500144061971801684471456064628307240456614369680692203685663136690171774398616017192523801501676333308244929986629918984498331114427264694902132557975304002459996866469254945825216227164414325402834868361082676988045956868519998611726846512776262009375709692477960235464464672426537802542857453255538804072084880334103132593324171071376197197791049938523471252705797176504033063371522837464771587542305504596713459864918078003057648086160434814277869616416805154760193020882130356725142387373785950032787538169842719789324731451997585908209972846437077443215002452162795721203108442547232071726154371178834244452759952388377452172632602820702378398691022138411555606621175524810800863636006187338935219902990323977497301297479151922641790710432598461964559651155565611262537591686160065154335280366683741944271864683243887580983974688595106685048082611525678378079735195351701918569434707474171965569141840546232675572780051324684676049057502394103074144666529998007432721482880980421326572861752936302468420355698036691345610460996297378273035533082389774026368601773500168841567626336640078280028329310547679310841617982645538539630072805270307399956432375608447754834503903027037034132929085977018601329853131074000744338280325439267688262118256956600979812674265667067869688206560346450460247320125834125403627469348616029952543705928512968449154669295795784323685773582612727613435502245497300258372605525988993425727689404053309400913415467150672973152393620320624145506794527188868308814856910580840887732307213086029521929000664848529474327072157826547705721634463290795177802140764664400652030676931023640870450648361313609206781135314954549484257585636856807493491469967849977850296563146225880388819411609692637502325620233838751067614917947633458472302738340873724100906652853765365672539234187544749024607247877178006260397192722844028883882901157402402932057731841935517196875745062999002644959863803935221918618802688228768804927576623970663844910306197055513234920170466824359664248160852337601659859183186385678256320893513129740391324654574856815406270456666387212261236824665923986048685152769779016946988157257692875818903688598208281084773276677267135992629455198001623411726786561287243164973440928861361392384975529122248331501167711551761488797949802195039092803359856017321773631920347599626075674891500085950238166820015897082575984152422821096838800558857175064190105100129534226404003350338528110915657728070691799525662930107842093653781975603860317159337376791815225818308321966405057989705414543513276964500215329178672612376607493040020557798937557128996575386364259530085009560361637223850730313427982562382069840134527089019860284429602890883187314418661796036433892292769574807787441559203490876614155639388083720660628843024165096849336192643157018891976779077974720076510396833458442737375564289318151963511502759701452072173005434394282595305663564389959878624396169835092501398435479091529552625708616772692512676715237417023438409211755302567717733908427063799915066114592026280581151048419489369090019224001687028173502972205184301552191410398677568533803741675807451162916455933437559759363024015926469045049309820041564355902505729640980955469390645194857839902743013788823972605452615540989593939840708927634996980092486610823920896613721433674987599131315790397999625084878508016393499835283592839870592778060708880635178169451610543711484396869478098798684630051894981168666427486456720811999453115756243595962717175039567998451822375793193323779781273131517452712871381839736701028292016608865957951892605537181681411266879388992965290013195986005743568564337769268423413621499999158647123984822104410557122837396579934590456777477371455972491765541189333672279283898891786756926091860384899206843489855635512516339545612349660202381742155748195543392599652674914038687935130198074185410567170169310390398752912806220059066180205477336157754329341976675842607117375545166813404095837008057308363071956141631225870388869097947205989691898303131386212131621743182953342679833055349283695475038956366207496356494765818045852151455197204156108635816830623165519782609341506760863655069219577762541505861915464853616577677728196884829451397394659480531436623327158083464187273156480535538977696170743074302385125182774626125246250466648814706204131186353564853985470492188698952807169334056045205403800767856855491305434313671641762176829838660712518562495260175195667017218735115330302455445534842650932424759002967071257276870568406005533631848388030026184490172662602658062190651841863108044360395316135202148601122000615338387484930660575294974553432727246739186703265240636522670200038437550372640321869340565650624702164871913912187943226475307821746678971816188563330162805355340618546153654079886355016967990253431134673827544437468726159131660262496904014687896829817969830355207097464183702522665138069566668216106682609339764583190771297948424354508827911575509619868057625614269188877855151219930552736628242045580405756790705856016056176588461008541638648368893952189657246992891778162620928220491874660141212290028096793497679471506253834872140164569299376694910682368254506358597209353435866179874838217907492904172393429450840223190336963201755005016001548565865311780998987182946518302490388214568947912678369946985592796010389398206903498836432907228619804061790751185731802190096379901764911010515068106395375222885746071428522676031084467047640877341488420217167842090024526889996978477654045545592495478754606449639256149763960817686271541753568111352715188154968592010264886384677253102875988776271477160938412814944403440550510508445902833897584533538858073901004716987213961396486170788170672341136070657978684707086282647871974619579890841079117055293753144603582838749516786049314704768383062501241289967536580954175167848451819184513128233902492603802330574336179396293336190402206295473496502283188829144755901300453529667777262645042888919109267427682618377338522369562298348040005552126113153654143370072875467188176736264226363598389165203676279540046130266870892481807005905062155955163993118503095277762079119576877312791617494314185696639767130386180390651910920109783777654094155399473973325468071444816061160831309252274641390933628463696388446912806075148997542736985722475350479375361957618224913609310007830069915434987812245854541829954229364436323208681225802200406949207032356939123839931989696036339921531637320675251230140323497927250104908604351148338280591886063380776984206989626853210888695159350921014238516520452854890583697570198311692565153903431647672237135434351103987754898886705307390492502431493463941241936146907310032482314658259582762667104180270585387895438064615532465603570301494172458049318610148083463496599304631211251848644540886547368917177782011167171594081366040838544634782439184306924987635544461242703917008399864619959328131168254525047795726597495685923074116197078546817128842895229893356952424432061005060968608955652907747755922625050185441990720076611542839590172990207193853850201117171358588354700391260353949035411167991225918466376177613071959562321710639041025145044117913441801649124541572186803449891951521903506812037899360298356705188134871688427435970460854209142017327914269104870153415544028587352239166853456859043754719302929058546638180012751446396602424018757238835077608078011559609900562068358189367467511734967001540628724496049294310671278865664857717733905616436910684775374841530693178812107327350030972617734737532006324145622853499842896253456943356937350490465923564561155725161984087511099353306313502393981998432952166608945617559965972124849858753022289757805893042415616888598743732634304189661759152197183183545148231658830084734830199529512835150699252964021570767385273226354321129007354142044454683736324033782938362516644915002751679017481830120423270115519511457791980550030230224315208568915700139194639043427931668088221946516050160762476177273885949572936722142004270803072336214059662677016866007293700347189884311881830847197272884596272099977668516657063539088532559412107895940904163837375246469141898219533937020758637551358570676140519308452831300764770563586147966664810912961268006495666265032014633877688387574941801359784489057631751884751662542908664124070683846356325112304820975233695657641056953073920579459728326120957672842289806065136303129552369835686350956979093641781092661230294109538700798056700703416621129393123900700884036938702239894766501428127508678689820376343585443133766812373951106867926592411984519227543702780633633545057503303580800329924699456599199393930505675585251221734091632286968721408103103533662337727900113435372741004852330273854377305786771229137501154043196643366855243026626445447768749698620794324617622818567666672269545248283810590408342959017875773911450432579188970097055143593646121942304276055374751803498198890692097361922464794689092258870493519930517893990386887852126053959060392783687518331758756609593940630437397142236760138043572656878513402962737621389159871996204225693310985085304203627183484051387056491307251585339787325959953319440989855309332909849107476172589274160903429045561492865541009447208148578799057291899477565095275131701790681833778897689550014884892087906638275054113526103651946382771862358995620846155637535890655971458262046984267848066381036534708952405907732885115461932775396457103809268820041937624575361913979016756848438238912671199840636566084876640998579723168617777333971549489784715944461216011831082268926462216070600503623174833025237163266026494680153022075506086914156292323664886987937410360692618931772048188580152441083352414082644430170220202075071056475858080569808779568528604276322880805508770778183987420011737550293363715823398437885727935919964663089434505386397170160673967438109477624405396384509373656075361009331289788993837282655730561201897774908935029736433964868030600084033690970064892685452339165080468524079460175007581091795861855522458965019738327577490872513813798476565526577096428237192732384728031028532804402131772192446887830604556768672119633860587213378496072503439664008401871473451808162155592553692008106920806532659738150968395666090661164183207177133842674075597092364598427260968976805505131657463246692775935528026468866014984537882696852231042067278716075335283668838738901166705340580754354655474867235230800969632356228194224474556851819258400205869241447588389134493852480697882107496962558528934410868851978821937062525881037652128704719380539004215697038517615181628780819446643731909601940443083777164791904622467217253245515063280169555430304511679361612273372898467902207755448105237005954705983958839638766640927179307339115103808737405481450657681312233292663228030672077189220652037317537906314049195898382174913930666924963281374311993839528454938255872511732927181057718961012288604478798817256045829946582293367150342148970684999757802131912091361769055730914433363501994158072179413232440473726838519790826512025764729141502128940788273939055166885184546325808357549739902479488538687662263384338310794071536404470846792602799395941605017890917748081985608101251602597889963860574777767841095605078434103746274254594197543437431290511063644874716096161702547368969070866517827720498670376904422141870978891751016727732797080332855644618973319845058215903727251308229211304618507940330267521584267541345855665368084151793399950697433878363641033379754708389627827700325301507380369157019552199424432536273456393210809242529962582941981556953133671050546518725425131509018496947774282386711959547148905229626862777509725025568686845613708550347250395124909836089918495716745316701221925852655992059030337105979853808941598146081104289557124991897781512292154799531184838050908730843081407347786415254595855371428944054071978731983665547509907219503374396644879215604572635456650181749143192111846592815757809572510970572418105199121940889820967814216859192912963144494732827694477855681371100087103629458478194795243120124012870139274008322582049184803145424629141681493716265284969271678204784843795680323771684448678554635732162076875533436498559799247852521151213674899044593080101789709043338569423444319490620542564726795381476203809530762129172393521250532228969676191323344027169816397246964082295162516604124772309546140189701875597440826725784100896247170027733524425365565508822336809735186638128384282056878919597988361098939051733314136037966870292577223728033414316586207997451449342079995075390441731317594427072645226786511673888978813114327386094175955475525361646955672586217243970356498485159500776040424342297246006814258569728569648110251232205394144038429980813478350563328797789505687538636975907161370809547330114549870827314245371092637772948093100432742189123326383472776353708024765234202937247848812053134156339402483792816603429111774449472116907888480557332410462643289362391745611786321700062337053046247932220651710153162024628875020549825237136581758925582705116785346216620643022447669579238408147699386501139811744909930135718189285231186212321835224042110260722807138280199249273879577209767195689930479009606246401774510402003568738992732296047051984254098252556019531055956134036884453029905614263930962765542250541900511786233681697099454939151831593393557539372983085830413912715357590476671254996510580355201300118357529223377294536380133656826081783865065476018484241005894385784076443571235312766375612487609327328835805745644628643056624603553738520404997351555355568920159334738781713736916953180746882929399509469261385488433100227572970779649465522896455136121713116884369901146334746459087829435416673759150742030040660942161702886313815490600464820365257093306606929633033517526798342987048238062769175376597973441449407221031719931987833539870241628453650905321460816585432770695236104648855280310081231914425819917624895685540494688156762756225618436209380108073086818173475489529997886303804584172671784992984752842806913143325131480006825194239334254265389459510851054529051806390429932929583754147499979443138351552368281855159855706575344538682525182670252209496429971790769567864502616514674106603501092208624100902727841712969365891848452520393125432128440769467181379613662923855700118289515393981467037146214298499488768269894334133980124543517469094035618789360237712376673532941864569294462051643352725648259216823277468638316655826915920074722146292990128300899724198150740645832637658188798581750168582592779188375574139651315656646823519577463265729074669201438584563077072522263177929472475853947280054734537325609064130673109852047007697985363481656808144263847404702206062238377018070877153298469659526793468470945338318200743162363448417966357972382760790558273817271743585625078905117498755824252391962258736570829021365075074857009811781440808043513929495396339457812309567391505403511655105867196142955249272676211215472748253303108094043927999603059983878054727609305480702021585505440698782789009817635111502980780164844302225408641131459699054966822577494792808213412981570173310305991307532287431830945153956305899277240722131073360229934091594811404687045217156532178678827746050439842322855104103366830011126449647497428405026181654323057791684702711667112309960335754421826943582686452466379321217577288588125393485464403303494739776872852387748197207993786740522419662094821101218269851913922018989757128371564485402687646598591689328646242951517351087225662323090444806393469739406027371134277595916152437238703077993627235486716934813571281633146130591970870348009982401183991250853789941040175753275188009396401189779723909045191201285563426367211240594533077338453658013229823940541101035704584167447339215421631245632551369564564948454930399901685432925776985715552724134467814383277653956557229962684474896925398470279338003814643774666821264224414714335782333310003835919850054339558021560706674604178529383566036279417045332488192057747239860310579141446125020587137789871774752149054018313368427955228021365664185343189922064797896760859524563506461049348667490337131399030936090377195346811914996089723958526603477357296154517845057595450276168297863684036228504112455640843367201582030393444179769281826745406001626600945711521495256023165441774223808347998249907014600847284274149635488373006010021945217198004255355015083295675714464802016557527590864170007240913022060011777315491241355535515222889551617116454436328546850077474125331112139594190515063588326282625500869133301164776331642216314121981475009950486037391932700211730029530567385156598443328344949268752890366908479778414197490124959028156208759193443324820242987384333636804599284561012870918778669155731040840929749509717858060138314435406186217975777735262426488061114903319435328413769326181792924625254807498926214935788646175715440734172617218285634410956962159097308350591839015255748299586409275878543474255225800542887276422057931698204893993846303109875423815008670423042658078405987346114254132354036297879863181473090973322522424987488601004523007303938934297361031533039746932278114965381219238840729233618295591015929494066123753766301328809012071910185899806448053870836650959224159185557419458989297730150468112841180483731875828050804608209440095103080447032697420816630782851254946760639939526977239171177738729940719309745560867979146996970597550024197073268394825003490311568914962538306939888157586281626590799063950549646118683034312940452126454865897624131622774587637030979067008979295500779455538909090962559030153349971219739985986439796329873131077141531726458593708577126252947974392783936515962882649460035809024222814766313031578928251254236276280383325404185101238481397792564033910878938185178385566282325848658014889502126121526991586841367044498133413755018501117315701309202306002513229343053402186546804005999786390261101896614002171398741037456284879702614207847149248342555044100519579958168408884206571867390016208682358403985992724755378677463073001220877251473238485337068716765367097545497580222530591901087215913408233764573167276186860940854284298185492602020703269855210962409881139406942204491532555257611245890662633411500680397239396776313777083648672380917583947526653381429320061654690096556195781719156387550336041254886187834099453980746708321959080983296825503685043355120586855947301801041083263304966692972879842623761612085577547858966903179402362354061170703037883242933006632934037206868373021444472519508321618328709286830094470545036946683059189894544697200030493651803250273046028725996300071213674123179186774254687081533631952040865337760812168199689397511991513755502023337162551677174937902479876742763105542861727485460382852605729141420817035838080417299901321435516187165145219541142315968950581420423144557858149636983577943013649643502010076347558989728858464222544942897408147445743322843834285447975422430104065698089665944393667504824174874665040278112062532319268700224756282414905121830543822849537392980310191718285171372748894654142576167025692130058317762217908187790678043948315602096182458792018525825410893173945509443653734395160968318185689246559968832165629503144399937493700812714789587564764002012820083300346659473266213919893278838153112945832854989301594198453105282605797414084430242627202539153864411302181393695272060817992332490712401879051886044648840417198982026312621649839860688961633492833465544686008562535410847200730316411100482275284911735967270124355727868356583431336261522441603622667268918440726284148497068858942081557142591498198759788817344799848956961078400448217213025024091026847579844048478236540652537714533044490765122906710508584367474160563894524474525196976492207658579484647593957111954114034812169816874286288349643659827528128085817736393885491118789828888635871252427889136673872754314927732004335938148085447723696339090980612027284248546977139641820124630882816287187299248776228283625583953653353440148758410301186071145680800756352202619664374879854272055764080720720089085216239677643624085560287682720088346051224525005884600765707461735956596243409885857369151790104112370011658155036185719415675738679597187404576619657455055650075733561634263777457297244446940279969300214205954109185573827470756932248833771575484366178135881226317049574722469863635015254037199756067730318001723529180251679021241301521277540890048871424475901252252027434567636532685177846493817693532177414315578722643486592798328382589699240321181038824178684744326136927100673113700587495480439300994169626555899560217784899677250383285456397869690623532140943966690876323559329038752718141390213935735090199317558077413920177675564178883629625034819497808902961024892376990699927628300163884885937610620110765602178126799756019597434959396904047278734668175188515042786702369735224426787227834102088008697133595381809729727220385755435458304793657637171674804421256613776392580148763077248203277212049903876385692368300252111641043839966454402354895495262969118042441904011182715745686536557292168478712473314137966898311227235117347888034251535965510440565399603400823714562466815264610210116979259383329620779436967781644426210283046205032516052092826235778946367455228788538141820468419133946559948476766626238137588032852833167003742863409171172935446149593880125267825073404963985222546010415736042712798647964114085817461928189058823811122485264093782972226129445015099872319419981944258096366237819220520394107827369506988478255837102755061561670477419829728808791043822735435319227148249751928026375397641740527127783841595990335177462298064087656396218907992707467395881814528942068610092577139972010340603039591829402232006597785445674659982910284383951600633442104239860238754606922635150908209370017909805181593963807633286895256086351213193927094569302985247104235769338803378504578234609515053317759528119377519316832088289158843216044928663386147622875726618425616851895935233018478666205655169243918204250739524878386935956809184001823080127328182784205834208580249644812352066103277513358817239088635453985740839444131788087014584466577412047432581330840381688843917430266193871126603156879785766163605498855029106363028767991372459479795252642365440814381439787599404480369962256801937884692731804304739416828792019967695411737272237417843411386699464362266616754651012266390399412397916140538050701552688400975394008992516117456754371542550171993626786318605136355773078829104860673461601086463472792469494137468883083814621089764283132796653111563785136032989615037944384827300121707471428679346807728952430721936885024790181175446411960033543156400094621176446058221113779386836488364666675897709134352713226066895933090109322419395626089685496537690025610503781268631946311293350262371760591562473932684056413429581431695284899452688487135304943720216090122301578262644381705948715894638122218769301099429305079229630190853162208469402463299594914230199884094078580240813835293272517609124918817068325494984771686545170907473865968155406798083718669772255717662678781869648873976627395843533034174138463181177365876450251738904658781622521787641087393422554463419640691566654353090444332285162044619547387969584864383133637282394879792971269344742638490120732691510342342260615532870716142779168131537351404180432369755449103508355790606883332328541288341674448585494655183686485276055112028091489033591605692450703387798616010312823886489358593713430814138829328024225617024235529749440729156363581287788959211800114842639592708579698372913430945482550663138406093335328438566674569364403636681633499015803682268589725038329087529639403355905804981363958746446614736694096337138479258445749167794733260067101403908772751042603841216366382675874680957640180339408409350380606232292028130063135597149744974125340674035683719819326130157749867360571750072467018674384078255886973170176566117104426674932065132744735011316980589908245508011261790086597057445960874531528271916036443843085572194103839795530717024335598160605961655395153165748191848120569594082128963467046165238837911923370392426112895128284947059826601435033221722331175310892399715139286472506803834661223525139831829070188805407969813500851817833882185383475829159850325357051450558803713011431122787237181285556363373498894904195860115806593844934968670420380465690673277295767499804606969935244819784325598503537316751911774404441951751751553760997286786279360154088564907828369739109824307548089463150135316960073926527574066493663414207768161289085414999731244471251302210003739764619978671727786752631244755302009008933581675736835438660035166463671268836005650221719046943420731683469853741246606304800708407831067855971492872154106607160052202775187744072444301812343432974382798911754351877104661581845230025495621935497411875765418975987220423261922322139188114062646006081290605403674517542186975502024980469811277854071236169292933980759579300521351443353555332926430659745576841883989026887857863905534297723071842320961281214508591948875452427154122483963093758313341457143957310602983971798928591388536360988810542439375011800402410424023523446300126459476300193031395887269287029465058061067156096996445167565084669834557770298361080589653629583836073100147460453791710407407411950904269282825280333930269325411532026825006225826660547239092293830653125683205006718800891389648501310903905472790572281230392442622066909630416662732127113229975540840965685410721354961819513910121021135669928925305347136129771729514678866165781244209988267629335713810438706617149847478801730424756980800633533430890258105850819011018406348652864930653195559154284617845868894474867198250731835977348588709371519587563938745800651705631987781344306345370353651103200589554192051051344569529608428486564902369436843015055780400476708519537279044132514424586039275471002804416750863903103774958405488664365642633643965144429061517453515739018169536350225760426424902686473822050717226010480654921977345280908029731318087645998787485158560489678183478201605751787534766536594651901561108863615169301850775688388483931171084058178084252040183827273951721728883387697856187180985085987247174251203842373613153310314406357940855384972419459028097214480923450065117186717252919777460898011746185958699937338799173617339656106506574344624126898258307953688473967718137885495144472492269248215711018849190780575217395336704612445517279161151567111535250072124384488210080581632267304564783690228221038466078283345449873175426974583143391260742412157708896437954096156581903143729030022921980635130985420004391594163755854357648341117490940108398916079438256681174828416353419693050871318592481553877414213198256666598725330088990809128731608063106065885468773110292320116771014111504807715605059161354148457646679863570872639370845844287739634236484194481825450191535498250867458302444279839802036589298581296552165415204798949707163701575742125032583453291064197364340214198379653624582010610857839091053866954848705262469035199013969632511411646345329882677112128803155856320916830803538052480821036837054298267045039731445321461553133192040087450996148611789301999692183628902272016369107240441497148531062825530605029048725939977507951716555018160906311857616981508346894816222809429763931555930860074184293984995373289565402907766801683867995376846213197111039905951320746632708676703609883400089028790399911269511509540866878729493044703860003734497948674797077910268016186621279981002614832691618449325957997216614618163905106192409333447519858064735326015274421494017571132375912614603669072268405038423771950229158386704879257612438419736777579154111107398764013689951229922916879929907211748590710653095936637116014842826686041828244128836616136167287996959268713653772229228697633480275345592521719836221111644972740043894190343657939858673121170456202937609278269947044307965841212522378706066181308345969112063361059689137940629232567808900680912640520545246900955116213477683435841797134342998268801141630665730407373219848089188388508411630592138834800576453196390910243535711826622948049354012145835422327793561842952205231424860136913123286687225895516305858835197971743747151180849496066046956466511890491783857991529998939673566099368074058846975776697834548358004938442132505944297620402435727626278394730029885835768328071945653466296715244345106418551977348363354503255934880755739872673668766735780255138179002141068584204265590238623435675097422390624070651956034701535819285847920786033082491881735929594795927026792296852905185475592282635183975451911713567665169211582712693896062658843023329806836701458040302819368957662655888214513121811129353612065257807007804833408278875808104793679197478009912402360418264937354150636087171857272477807899857993921017242651102293124391753312260343477188856108432762979374378116165820536855563649098485141051712335545067583955861956704466295960546277031330358220419617629867625007462146653988373068588322504261904590176474886430373262629674091797841973207965082400175632735503050241834651394323476966327053368367009686022286366358773089945964916186224455369008044657910624751172864834702982014446225784416605446766112221046259225854709227226362321292797410747117335391698650273616135195524566883660617961774187212868519969316871144061817740091418835360340884407047988306604718166521417092872745460992080908795381364574635877740252192869799177423413305852818754157579358776559035740591460533274470007274294704520611639554629917883046649965644061402934698421510751438368516236388774921358827799897531018194994374094079001299576673657814504556922351360048159113983380118161572812411575938543151954078687850076918022609382541996313363874361685288968102632258317306771759536324103383779891978607971810130762673837503430110613043802741582508113650277886997663645670418143549864302824211272758107097903709908589000102557307880253086913243457992858505626817126892965611124407429671109455998819290699017767033286420779408409347737251822700647179905393388585432201391663455568973337343465918157186634977209113786838641697762235842984462272617901125777778435274846270740524829218999727041867835061490264725718529054101830929804180034243566922450228170880661193392990704986362920679073782306914326475400924006963874501220416339799446707200147071741672956674647905108226744099184448963421460330219346445382330393463743283876482378484182399389766180117105892534512291036652094454832170817759104381777789489865634040961623666217939354641280477188560814592240044339644040575977753640969273949814119837648974145786448227077750531583840701170675333878959999662747488214880459335561071782595205349375823122124042904195542384243923942747455515713868820324145400290713034421508729303707281468280922951305921864367643275950137030105633438180799563923746489058538946721375174126239475870616864314368507676132216145301340186659790408528862227751110886769196023093449244613626491911168097956568793570632930493436702115778002252035102294526034509793800909713016823747299406217330820667675476525060811567652989699675890078966640552667381237619560048313463119250813690493791254925188226953244239496152200532518195244165846792650926801052593773050333368911757860847486966142457582972606966479067651046470630991625361571190853731201792131297360350037191732211715170048750007221250909948237436780473512261633755302950053149328391361472496555848153054279368087842577754508601870224565382018676618159940991080721762696700078010729428634136057459794258876168019371960371882049343280541333307871414177381000851017345974956759610794933412853480302298755604992232872895449172369843088290002521190670834136032906733924230742010056222468862126087360327348648118809635139448332495568359513888575266619929564707863307607759744718299837360002459790476810111393669894669804019036176191388845720388173904208025042472203641119165115042515062217260580344237587048087757295007264276998858097426872646274246989546474798732020402977016380789596517505085255075552588328757847889706246554150686034797017745132444384898977158216767895607324879650044148248406572305066405254825403408849870761663805503799959936444199377299152338410730551079565169889616528154141076649085808264539725486134364610179319221627166110142372657983739515729908002347700092873989745025049273431361201308396575364632938991414640947559000743123574558808384379017842104487616358291697477028000372425873767909680898032145055026033756346583141869296884323880581164477215421417676912579136681002315811448987109004744589832338633776225331893431268147286781491895252608301810858152174708975794053369948264968894147731536407891347494959025802675173058316999495402736312540339179615343426919074575184081282735075830486897882378754120316719388875661221665853418688381963878672203962435875809204902753447535717624123338528234659290704194329852776832139796801969754606431652735991169923230091244777424949440858556580871625600039773138958704325233555860073217133322727497564729794520405723678679558831546117996111965305202050132914761541682910948284670079217549054931519285524777787614522803027268301415086115554502041379963962997201165262188649075557186033295359803506699335326372716618034594321739935638155540745051030197946711477157279646238866670254465980714850054877940666733146699017560732027385345313125371296685287288371994829381104640715314311631160209656783850571889754355424608785643347486301024784068132669506991548223728892489148098278632474611140257821917737092314859439164713661263703736858260376980617359440923503293762564302851009788156644110318325358292349945892623066657671324567117259757703740439859282292561884092390922637050681378929716130610567690147643261870709503739020836419759296446000051333157261909170829839632897223400871413665362438501171589810098028902570071931497471179914616096235324620848729786878500541452488839298270529738659205293997805545364686322867540588944512763948443348310543035845780554476709418749610562503865172908440547519375309145641550659936372722789664867276459363513495883538274607243013062815083515092840948675597474336671589549736560040629278272757397346486193723390322797673622118011985222257817581785076791000058469542722896796439608148276320987384258601624491586675844679579129310371231783653728017372403668339273485302660618107930674015261286873073477438503634563976325990392360429812737982925472433945705532373396446314450058505843668978776854298474337329271337336489540542306273813233167165118354948594237341403360629148702574172515563367349695520998705068442566291648111981230088536099133119953663985678011311689260382547536443618881127225782621359138073729723822488018769676916726036415237325248881552353431226195255534338366996584182192194525245653450472472276101722465054092824132598448763931761291132665540903727792257035761311451562397798328485194218752261596218765059814873590919572124301961827820963928553823902591004209740775194214954113229150523763288409208101945453060727560874715977925549619946428962242611950953702958977901010568395483333252928111083041119244675054032383701817134417607925451577013762295747101988218256685878746995088812247139459896384002303565650664960360043721886778649562204693296384585378853328208742200061732166652869598706891296339835570594427331072896796880667974504430254883867526905550872076970251473907303622776899099118189488540761632852116803625920885027232073571083308805206388367467511524103701628368661065125020047545274724616251546205436435741748853684302250510565661562937392156998978230763520716298571177834208734221625716474606834869832429279936623030384890123064142087987468610033417338717286736518899599475895649307676193535953657300828922087783592180836906846178369506636774335565000572012592115357141098941109448555985382726999330649546825319520179308566882457699702151644527783004561584347945504201097990151937950172591060927008599291019480248012191669028944095696016348757417788577829320100923963254793080515051860981479133858448149868450475546493893422482909842591369493961926541280651322182397117803535073176760921669919176951384861021984927906716587177153364212957778135002965431758239410916837808081292225234507045011559097184912618037260390401284633634870828497176102415111239634814063532820207979511470228007104748930626410162738863014497023464253410030181451123435608249527903468502205422809785028488504951676526681077259813445743006800834796812743162371056434520480405694880648620681143195488666454126138273515650270974273309343323414247567577042860342930098698305189384574792186122040465012611624391858568882372982322353108878994403865740016887902988312723764448006456941261218579512283796179998347992204749407894591093672194205420313736788463184336319798908890049422393707704320358776598892732660797162434692158770543647430389599120723204577306542741173798206429451285121932158738374671747971043072035399410295674629286705210020886095587428054108752573307497713605289076775132637072052601154420246080787316561571507596787575828222475640814795574772108794609914274515860279001961663421256688299038394314379633882665296945699354146253873843325452489582297295224086979342439995195586715116522056727501816652380068849904698403707003479027092530898317056322004851967226543782618699122074835497330528631158127888756545193813866860420506348976836977765789628454204939572666533454350267995231701233098601408236263735620605312247366542064328298106065494873632762641667726518634350111053253218176249674099624930289648580714593444307019227170285511669127617812027458052831743941234115861746185324197978991667067952986708645958726361912369123492712440131907028574615911433952666440593018002502249460488867653737149925279813630492462084339682730463206723530421023612620966405112912150994168333358229937970255888124912758736078534510306630079032311000913112183534962308597668203628573582981118522273449154849692259273921867699599934729932515532199455704340311081312129062249306677588891289390888218429071826464493390669731637443949676969643179181046877631966663233499896133040415695768740294392049316053864746486968085128727910245280060144442344293782816444337473663463437823814977290118555872780494652198875165188772853830973647661662759164538643319632974305989126335499679333650252113332950948254523262462491977922706693881363938801171101559257306218080625038251390803801416446719462455232084459316260199665950934815379170820557475707779057527035147369116991073158166033319451859448066126751043714009492232542062421681284462395514528862065035613215585459204160638999657066357023490331692916908564762705043356845207762980770807102300172443305809110770247720533834347262483408644578271344156913570630787662746989623158795870003534816203584934517977963804089985944911375106489658367148709916237278246920480931741565022161717473253155736925033914843308863805304271255530112396156307005250109101296430027401842287989530027126736486771990807625626771728392682221910751072344678956699465414394754189168929971892410577761853549315082621372673641168318648545652013985068068647166097640421354229144180913106937173396395502229272475431179837486177993737619627484184375421740607095706379918815232313699173483648042629472767110661655883032081500178328104189201707694792862236770842749927989168659770011354309876044136037685034292426844355352592797709676283522333053155103300072091600544820725822329602176613768096574935855874517920122830899166039311971273776472846042543376332094456364802861975903891675690338459356967813060199583771620869564904493431347280713029567583941642078502277110023623200433585532978329435481039175499187660200649530784647100178788111345006229026431821270759934244918864008043416377850476639804341511356343292753828934138574775482094006829487111281978433275945864159373517723738550605546345739168954651812301049482846312550937622557290486960614956472873159296916168609321279283092925602775995797776515537437811175484135350307291572312977414670570736295169449832974210286216151515188449882009607722728214401977970091059673467659210414405981573887030760500593934153860012014152496217286226240156548700462586523797154440564628408806242961951590573238431547826863047033726952248993329927770862426673541722198611405322531361344026693537636679619291873857060043764016160028005843803440106740721182138774805388169731486472615028809277357484649734287052212674298988546351869649570751878641633393464684943542542764350587052318603907614033055576499457068482584460219478741403237879411295770136365563846162378721614110577846958795372454687938790926671588590771593627759155558183138966455646725303982583125742922627459819548476927175513480205486735123126543298430443454855548714990442310502841054325872296399299654148733144296826364303719254225848785528020846016899844659490235509126372385210723793903464487390578953107474907070583599673600861152722645068912161001290508193601988899457252883574158468534293881237829390902838210836514212873707286653143807551590658734715066088772980520558363549339912370497471846499622196987809075147624590365421790826601573731124387801342224276106396053355937005052048449777418696927806636574287779565384457675512411283451050058918094140677826819627725261759656364814507919437042137568773531164604966492662450323807165636489197423890874519469099785411928936639605331414074102860954855685784242113808134007839154449171316445447914084245113340517351202157705867509933797027940303223750824547032144132119031037989029050218615285365485787088261487498407766875078330536629772050177952024401472512513223851736438733074367481529735334305071344421354081881918249500296204539544902247392979334665762797486260034662105062314506345023054693089980408803190528533285221556067277436172320890285650171429285983874103127003617662555061548905411337557762925332535198572494208009268575839756661525658237494802037009580380376113003183539608089973088143662376505587147567201359888784836443600790787441035884000369110754322267234787831475856671661733391199969106210339411132065191259181511071157714069999348883893955906228980241733049403478315689392222342563424318899478749534713747824519752614967962788165750179134236267790067907610638080052736134523224247897515144625835671753766945265889788266622240437190801767247219843314745534503475603399116438858037948838678453884057821347509010332017391899675470823605566977819463198105205507606547662058926310157780462706302530074111013604851161840312727794066535702826419224250643077263026644031063543884316878165575213202540475843955360025763589597877044627002540492967533891472195948062963645731824540695055625486669739369913378408691253848268584587692070165197359207683523240190228127942946570806637625015605855295519073129667580368763798097839592407057425608031820841838428722638534865325015528769280248015772778304063931181849705258187583866489991717624064607121566289536312893138714154795246981144675249081254413658076757652515541952523839555609820915341815082834567572415185121039096028783056870951795107415445251542880586914023772787370488438479067426093148090384622877680859405621341926844039187975922439964524628941368879671653121519073805125532197243843115950845036322204160593174098761809751818510562238044382955988257373698382429666885974127437762282255421819283381826068815569040908866059911981937507416361881219428158080678667033233293296295085207844955231912744391047280000429524600340834447873263706604076545768946644035332813316651993327660624010129718538273299587064491666547131497140983018869708300752508472838785296338350115872690097621509803586409533667078541627149902044180879295504991861266047776015751512960904988209490814193213735152893137975176333255694542276267698709711957403306108459012738211428434174272696120792546470880159843168363189303761881877071588849149429040174940647804239054423836549773032675326867501858407665396053924059434960069437383852398751224310002691387446962248118073452033286583617821913417343863688732756011786197367656320134992051542475572390240678027438411588272290066396942571573302303691340244058306856301563534581487496856394367836973196932456602955270480290300144483038738634626973600124347176733355894479011855601530295287750106817554838144932860620147431151015347074036626829512478316532870972763091100335496557372399451441118268189109520759704835818786589410386457494094248098151578504949978915043225684736161375012320361904250593166070127169395699658888662848876851559087110467621711203389716664747691492434213021898245922873909990974686963649370202343265157936262432816668162006532905373172219867579243462350887209743060171202668139440782105012601808010626712191805040789671943436195330326154407575220597862701656904195368280598568296860049886290280216330813587670866399614099608717150545153594263668265787042488679830695552260363291733958805525600067211131171420017513266737894836293803276548893517894259596602536757574885599873105300658453261083534976759158071298707564086584104735336779137672486293160467438472679899158757189190417317293049166517144223774928947839662270650733860768272792490747592231240855847064205309037793301318698053208904985935458250721082953088221650270056277603523272723866674514387666711507104070023495920124455188960747586760347773719373829968213338398689705208603923602859091638257985899750945670407575054144764552709077760910514897685003904423294923715235864600872471642452360064842285677492237377346891821493122294221762371199975021421161363103511496021479793225309966479827547018375933287633591292477932907325704576506136032598790245534607965366532011505904762024041539419992701414235029671782250824339870879182872998834076291974558378461547280007496730006643331996848901148327526314011429115664440037425165150797626776625985867008563557834063974663905694430787966939723969578759773027400281760861398984149910079873492853172050867822988691320280920675053714814510480156387036249680941308293668209628928108644160171539369912426433293505861969459297099700419205281692422510283618454390523517785104683016017800393591977717649447515842900374199257884621689608986617174196896243049858604903710558870373821509747426013568266151917624897264082718075958679912556298795530674286249670794230586477843850808373439425726110033557205415463379133164079920796261949117331137001498810707169543973836455402607075129383261676713622479143093064693330717991400543904581848840706665446214019474915694772202484222047810368899033565801335581147159777287800924824892543128616429534275526715276943089254000330458887985305385560545016486772128393754707114967553346700914624567100055575374894750670405899024821535165251389019237493209997525651666401354094771367117130891919996055203530467800125256387324293714111684292353136802172834376414161077065459822077623856538986371243080560697908854392595209852910731496611847737712149576584482446388639756749127855337356772486649681596428641856760486419639266252341185784497506981060143899953352601265296809683056778753327821192204404046640228103687362786996587716858735695539479081757159846135028634052447933397523308894204285594046111872202392720890151389255813769193739874742542895180267340726671242380711186239251242570648871445728166089843748272732393537283036008137068430084448517320738677133347492094132611700453626788784798064680610957506245833174396757861544273470095144791070937244723785131957917399158795819660577747203938732775018761193130019168340451753568535267473018961499455693317380327911031453648137530298481836401285234063078881784937093748354855350486842189692021233053766513845501326250741105271091178547023970989974604089000966049404776041093935386325608598435819360405972373471723689286077806378791433493567002746025953359271705082729875396041969470736804370191279023703993991368964712083674784991046915445403784348916761171207772443777150757987976082478935282145948649909126477327011651285656200120532005395390116429361442880119093670315950423138115931280457177142614884202911957874613672617023928406493806433178829650343249919804532988647647868308422637074229265345738147237238668296704445727266473841286324381278273627806908405706776675735136966761973097746275941033449805710760293081117127802685867059433595889709575575019755370276628490850788095813806097747569595235050885284636399314805805730241477096734740217847460215797495890787220264848174175956476040803634370983034881443562751408814483311012644793982955745186793874678230100878876482163242789414892451782846565360420302522523815736186029072101114404757376651057088692638907800158928077346951314364997501718173153844114155314231615041617624781720651850352540584828022903624712087301976052820874884316617193616374367916006223976525066579543896491396007948079497970781906284155541010883162343818493618286251091735720636009265840387325543563381480780562915682974948379820236377282163444657941920497462444301130079112641039325146920205786574002433426034436619762057554350885848388104822394009127813059821522467882330103118319400671734348063794715157200580440880970735635790837535835532171795484818102057946480034688868068902092208588998855567942421922226134451080650585088518364893878940441311186976572361225454159662257715131821337544876628918369922875257732887061747268429887272589326097761716392381851519803769231209605798494352111781178391015455698520969071082666091618770527540333484954040545152373896005427579556697166141736371799439109803963483722831972227057561533436379988953715842026123719300424576866004046545370975788379846636703641538440912029460542627300788971330195620263843636287898817034159368016146739664105262618041592900768899460569409373697498573968339068080534014804047721322949313063315942195507281102978570044617411539339290770797840228426844828134635398171839472986457036818942188443075930880171352719606037869994405745873174961342915783353461341844182788538853367883458619356637698344136964698277326169547451360269858037875897056032561765597537221987524560310365288748632898818493410320324185749236594702137738966940897796629080601855101197955625862789731391499271974698772625545470189183317005494858428043428075533980279466724916969537371359953377820815262380799337984268679027288841653573425000244666124301888603669352808349937650419624716510636589791513043058546535708923627748920789550003880366933654024403615897307185966518131394846985624530094310853312570330952838508540836180812527970653102969231480810159633614127281513154383869304042497282140600580546315157820277877738981981011775894999327234542554723430215536478236184968372551188560334462860220777078764028647032254241251764058811781154739140280837367562395872464055534284189063817105451886861914309284669513667433591750381122038815301521126345148802864095586182016477781165578464690090455901318720717744105679149474130572597293430661450978476767146828022481675131770601425858516287192145261268021275358524150424801355856472747986437129244311074401783113754995931318241873297329318748333863314038349727880416606883709249156142103565797351212042251272680281694033910579659144784969324984627106089975923438526170887703230664515584538090240388841562410753263148120363358393511042666720697522544182903654276781422797517630424429022881489248246247328967871089602547370567767081061619290647865002572736430519475226723158665275182982085265680589195278309187444730216658252802033483648180141953227844174991462882367950205172404105072629115145493758004730129490263611064283459105090403987184203284789932801788650179391188220762861188505301739406408944851582254573827017134261699944441070489866558072016749083486893876309343274745017907633706486459184672359858060712256108590707859176207001148628873667990839174981121264304606565223340398684980315142708430055461452088090590892009055341819241158042482218179151066338620337918070284896782576165563154681300876205623497412824966848329104777016084723681887188108786355961354498996547470749674585061121839855274140661113482429272788491719180596575009315695467785770632256845839909970633236683225353608984707397412015930141223947973336903534936873237508066924015819362324540049838660077561671830861708265659259126397580495267365504132454038844150645578364732551765273388148317112227265957918967828858261596337578055458682054028991492193826600247150606071332026141446225563076166998434039195573246997272391850081334007589739422578160861774414501029001259004210294974211173013831508448038926162094045658090881103097187123015787996764680684734940662039238260410485743959869299782921391410295193447296182985666720832264916596338477206184093496639175673850439431980745897382966781591258697625916098728956252738263111824715299300343727106244200458083552855879799474652849404421348423431626353495908432115956117751009697448625291079219943676316611205102534828354164217994580140357070480600756161529575298854979423903855612165532883647548247224034833349601820209514203821062687483550194972101351328153411577603186642627899107880054066434667201135241755087234867377914791162288190124328153320876997725554327845688270643950126858408074678625331179961246775706522839108423664714165007408342465424668947948301027820219619382720013543751997997908339270646491870470234930934883511887289542496471760378786191152854126381480710023295996363445218960478465329360956048779855034032773154251050911121473793352395436730927649498862818942081590083647921205017432160049812073811121077846599943079710310427836803004143512994419277360464794652430120952112777277870269653055037572331518171493446339211893703373229374477552413060953194899215873727399820650405224937829815869397882591371646529589791356012862017484847503433629338820550042636661009299747412560324693834289637696696757718599663762858306554087229946583151505771760389621043788667510743600659614570738653936463040885529151161255401649088861318057543511952077039424895837323214221389478510558893064667590968882432333380674017392675975755329568442765454147237063303718575287103001265350228476155435831600911138979345548377079677249082794555869818459037299665134024615944009855472381364721870448033341673649876458454043394857417897911008683919662959240503824212107456409572566532078020763040992386886925548861897931984615164129750952953981364644162344247915699178252108214118314395074879054987519928585120060371785590272163707686197185189461855200525846036768387929513216609147976377487026600957438020716554439852240660218815887079499595048620168671534582607695993899392294357954078838642693811417967788787104435313802598289348480283829602864507880592477266043521314117638468604504600952010514931673162192231211435607010268712486759105581934776597623651783137799961510338340800076223807243466028367921457141059494310229874398121663402651579172918133493767203086675617417919941844140853790365033378255704328177526711986750541107501453024673537583592111252769395055654727765700639067280290836268974369546934540051273263877861442517474807451654217067353092466136736678833131750065807206700993075674937863093414732846038819666499335314004788026590696798844544928337197943300792235271545099583624653896250111586663199546415943271734127797149273586908237179234104195276826605303453859280984074498433525294409358127291593439627500368860184232330889496915403185542366815057231834110496371519839459736078032142542340877433160357531774689523427332238360041182477570796966670162750136392725454453464355978830242460880515103313311635898744480066745218052367399750112863889250478709951647674988674710208155994688580209319256148880895904198070580633813739984063714586313482905443754086541680478251577956701548062674867551383024111044296687716664505893778429711262044499620558348756816149473924017963883168495848692907508664287488033774082710717298003170425977839551901216689978856851987856828126537601593491662620839464078914462547383321425435830185155082454878785505774408030612421993716635319117110488806789354869736647979559352725741715420009847463238276681336400331531673116896737584379053161982556012849255344672774613278915710693807801403052120020302122099778399734293026731269465189739012855635114769689148745322879692494091483000108940895774303892766115088951325493432461104740089985400083864554584036641961739046510236724836522282042618342462294914973202234327970930694432732611441715995267015719349134188759632411693493047784212441129339083543356740262312523341845477975474332526173433316471600497726415922718018861979254441163553637339373945713544826067137712559624662963542982030380344491086884530786318770627118881414036559889107429875285537089075880191112856589351373610663380608277179118655664095018487302437866553429599349202210781274847204989724514919005550514728334586181960466018128170006710861243446161801295718495779492913902260314475566991658560356818068208874746639470545373249748965389583124714014131888056867218975985159899997837402364761768655722424283335693441997100616269579372322674102883635969895214420398156767198034872471293560327890140918492427056386873238973100434492769924948886544571140279238518686426835876703409848396142002686951599482347471942348874331176091763710023681614272363425406147781908133905274063143713912915070234833273197910722823270384180549800914157144010715260231325830345761925370731149549832855707294646368063603149419062908895935727748352619878774301043188577140143282590791353318382487595492625966847102804709847801230758211252038516524957867768030723091911990725852553617297179972687493845748583037507881406938132001483743267727229464313323765209213079375238082164214071450872117844192430902394858727336052226727117657527377073961355821339820281761212097952268257146320892659588481177401770354890104760648422888116513032577318027318065419611798399186628141781389432146489003586125164455258566533501867590440076370233457981472842990307801056732794734417258039877361337442559874047288876600312553127322567422778360402948325994392062235388733514723487003144840601649571224907403464479594678314184801896534382030737837287365509591498489404118819533472798296206773503563669834252971984841134741660774898767251371475261445687595939371241274332165567913215114788144018577486871372696243745965742759678082108811999859262610866764665988252709302746399198475837225536887717461346119569023457098728020703345772433576417018456544140732966553343665977092594913512766873745643408709077889842307394164146901262070721424470842662201456630430776871621476203966262207126734673712340281020621695150590994640524823897749688022590719922116171079283352348098480735287321106208308190239763610867615093430461293137947424054624205008739502101907434026370501628980106684207381557135761676004930052369042842949926165364302739337486516490207035568443834113001387862180239658800778502635661771742460946464453457615982501056769500342042773257614672244380183429340141945583589163443805078555346874324034249933254220953323561854264003247123269642963444497483362626497127132914735576377812235310879366597143821583614596457564964773831674232182343405437173990413809345972464412679764145114641989054446028869448700536867641783006331647861359987272279545957776280390254187514627098788015738501111330262989222903176133747302475446455837988547383503780253487904306732990247490531954670428516777117086738928260709918212488409823850013272551145850183756781222146592060958437492426414858847455593088919043151379089914270416066791226122270238168313802701663780890738121644224086659040399704491745049816967931356186711106175337660607637957318356010772363383115318996593236887538022127102951077774964406723876915477683170779849078712824670473866087556434307173016591177660415619752542848952659729784223365057193682949445819927308165162420117753097716552429691716309467447243545160148321833393629841688526292716911690850118045001104246708695456684143514121886500053475280705291924607750106903699883805704043692257739485238204813182366526985823991735879700967912037282232020599340641524283934919773398733433490122724832985369091418963066147933941053867750501253857983904500176145074374197214801582601535069895895360992662864339111156594154141172897840781693292807196970318286510012488420276652910010053699853480970366419805565129971078343279815154144388353613352000992317273682598974538557011714367900520243191425784244821032126735082169753444813250323969200269433364728822249823777945157059374766463793307924176311642578260766726161525632179252783860849766957694630763998482612863343378938023285384221769447141212521816570475493460700762839487572757843024642964317239189561059179515747002396630076934376060145796980103578516880193952328752191508048313295548854881051647259022565594824283927663007460607169200233628795448901969497452964257142763060038216693016295730596774558305261429679850815396115828081965137276583782850377814645695896481908908892510501099050260723679401280262464675634596138386583582984009187935634435440579153848219776908524029939099010528970907448732275910289469522267067453518038598098257364956981537932829306187174211933571109455336170357599766754480845362120277408404976122307991127585187938110513547773234133449730281652742922662141074786770697199148057419131435169257343267575631975715669298103162388702055442602750789910928689050648886613300909604569014785086655639089915665138961204454704210874036732392532543592011821071924559958923604053259559419857385015561245187798204610541906964474521233928892398273934154395395007982166735373099779885118773094695519332138367160329320658601010285487160172727749354568784807485892478313216929871411413285506166267824968997910267649125371113776120874868395304715060267969714734961451924969343442120021451977033887092549729286118202666893729063274338150384516329720157104517255291623404944312003314319952397866229345622612625240369285835708630377023016002215976717252713101536819608542652892282342658235091788158065610554821627859303694244981209427511647244980001164340187313700199600445048995277913967778666327393613373119903898098470825527246575248085505343906407062093864422394552552871617046489925592333767585728000062814951961106204418033965889749784525437274984546195760371549865819732119084710971779284379732325210121845116615830433205778283622368254204101610274418150563822893653135596633575307831295915032512359664593780118645036179951363705434702398855780939295815646642361707610411822931980692979189431306971560809840987846213102686310316880119251984741566192560254580499050240798914250183057685717251648397930509567794947985013609073932823182191246871062385069992755106543667153735475092201970005579813115552725513699223694510745072455142052478871769271926784778858238422175996052067758121864050937967987978760099747353473460330050245283185787224964882216974631923966493535902543222838441062310914387721597063888667721023021744148679406696280543149691930488925571116620545114323732878749403090903604441603041953527068900563968792247521735702502110365173013369013926069470581857753654078778270598674404367022150112485254543108561816384491971388027432620657439225744877753921378812223021690777778598546420800450189736007471882353923724615549219451531071829817434469963014847145107631880794183039558811410884339758865513022441231078230321842237212141985306311198361765301570996867410563615843255986402475262723787048813495260476998047943177029718704274049166384044779531102429037657291773196706318316318816113850669532252606074660202749718524928626273598836051458766436914515371469216209194302342876859268581459364495706991132386737017061099370673353070456686204961484386168766200570775417486759216490791673428948624481511818852632351465505245303101045878110020222638058374848972109318776008462945449478600144907760598304262921356495836538253277472141681968018243523896815841897279988918239776271613955596170373589488601605802969945600488616399438142465222387048095954482395449310909860734849177287380150425759295598825642637918559423343976561264151182337275148389865950221822344502443700904655381672479168073847451715947142870564028581558217762335904002560606419516190070844573287742516515986265127560254576195462731687418347908476376677133084453870744890188719859201408514518014003943749805869996131971752617725415664455042210011608297624824104191946080539121923991594446259848126755270597140379279168239308939750896198666848189296283157465522306682757204782682164469802558229450805062338403903946584385738506421900374586801518058652476149678777472207180143451765958207246779309522123803607705615389307997316383959982342658950865189467768544413541983155328843057715365346605115577077360039308767567081882520465400388653980067010438272947349932612212866020602523759587749450206819172462635812097007687977085060469010541936223290757731740414485085345286242738991777537967777817210176017141010944351473612958014921010924047440067178831881062768041707939764447641599524165509270524369513183094079965873668779614368090560929368534872495179905464405730510392399229635941876823642587801445153932827025790404021495592182672643270864882276165578301796532259102565380251235431364694932499779023817590197511216274178296279964749214773865980416655974802242476336830952713338340208791638730035514912194275562823384767166619135843586473060449435884056960635458937602628014154930855633674354944955596086876942903628275364963356381493615445878096776046920457816374417411069330650025741949430719821778861657637508669060081713086584073720362299519462664896030012109838961336990280385438214803795623708760731654212664170383510100536228818155872449608550078444981144774120052689133028313189204554183729076183885944502122421992217272720485972910709066528954325832531409033486497882266490506450866803886764221074709312934173981177194416565581274017993406894974233406551112305216754279539215641599907891963039384512127527583952013572721570486579148507265624268138171896515638690202446441289426976608438190292949890427367638148869623189719696299217376576142436438416023821607424065380762600815528766716163837797313952505206920632129814299158569865490855199344696295626185664090943168241066519458706768020168188459381973674562318692222825510211910834935354463748229812317776794344164761779007474767667010576397782695253293348414998367062741120178637100707280961444029719981496721340145670031198133185074860963365072009701413720710365849677222729798356250583983653524217017555558739300969212631245443933124031337596999805011705968275274635499242741524403879766422249011476405222320207891121092353977218079469150523934570372556453106109186790419727226175785522631171076497118110491293085696957706705043604028314294872442031093983416339209849438609505724451523342209635538462331816331338474431028644721067129367641256603691225118969707900505050316617569759269071299814786947609608292187009467804294479134943295056175679976685972763091618774949240413612464176994733583022944489706869094468324813904078197141339975833078158179948281502724676536468040703107662694425741805142148293832093472083578623475878176936228356427846122949838485232329667238481589664508980108783228082148636070673346862740288512827063624025111086777485373686053370546698601063280130223459369213376820749848088032192407223930802164618631046839266655961682641343555859233463936736705688097050070376209598221382517460725071787715187866977812745612037349703784477047707179938114875351647966353938612750064278009706322235334086233082253820303019366791009824052050032229429234310769683079052456976089194595406127363751865033791470428931741606080051296730108788341484527519896298443398440988251363162087221351340725458864278634085106998151095435959053897882615102615925526615890214753856863592398713840747898084905275526424113723523987456572131922678644932820369283963308310675717878033985947840399729784799508530126808179651127478195444412365126326292013880749847301452559730459985309003292648562448921246381494829003126158569173462388172404507827884125394773977152261865580133649808547190167716768936665248856064375198974544238127304479603678882240484231679426386739311355551334903882414289492289082716263278993206539443224326556709413462875233423334813786697147148979706993919071452166275611477777317372477530421577364234096236132504122182823596165526258609326495259742437534388188238268170749290304750928790177319579750510167365840078546899054804130095531913549498328250608203217400708107416193932363868867107926506622961759162811609805630081814386811120726881271239223598423225328410704380769376817310626043352231824995838157315837281702824442315811743546801493887720083967084582369731024030348590818068086216217459635760571349181141945222463028233159803515781438419622767223536508510725450123625435890544035926413858828699111434526712711033449022730923724410189512262359220709651952774175837111099823151202267618947388022989298680139068459342834715929167736184610988284556306501887239904574034668666119573725734749522977227228108403367665221020351791945598050875809448928406771641815578769794444150603587045909116240268916298405544656775059644570638383950982488399577511447460255478082179374544897459365750945235764241127235730280888021966901039077415548890522819983524589313369522128119710856390964896594278114539924190589361266534436192538569402852176452558351468135834662282742584512003840514104919513221979118328549929398936908733974977730443414502178332389153172770907673972813605195886786925328764580717666574475068419404284995402809110190790296297517982857736273030007139848301801941136624015589049425948258280796457336776832933374272486657502475086252982637463408404922837986105907724128533833256763533763559095280462174821710714046705925542761119391209623836649714359136295252246512657215639334440352849215618824139823246377067123791655947028970715867300456792024243913737817870569850615428194324741650053608491141643322187083026033592777123834863043780501057154415184241254641770865791575643144633141576280096039972252764309922749265986914889690380202808013231041857745627128388714979731301905800428924815687055812695080998771985911073751137557849043341899837967890899905665216227138781158983764630799231908585690477138611330440787616515860580711010340714703457360159464442897911928415692691525796979918363296256505448201376958128303770019949103944540016937079711476793041364969805056462406101981799666024507458110591873398041360580777956743563803720736831852806888124536539733044749456457842964391187734163404112976705183015660730878826366331270588722155585227038337012460813154399287298782119051848896632508745396372150970703314420525943713430605895339053764347618984495378768119679930856342610438160821880524812618369218598800259076797722482568004502172526131440783501726241596874133501481670016197968661663142298976236778118615115686854299205121070890667042480404751175917414013017272269251945911775040101799122389272321019995830630196289456399924014868954919320673823724308009483505059466129806301262180165393536067397492208066120109347775480476543735951119696893167475293380101247512212871709269034701041304524698804435027470174828155276600444509197245333570958804798360687762433995508891311979941111464920287155927315187546864775529699285731639408981686447049861913074982895010118090742439614139931008522857156276672386883359481311849974480609384780550401020162084085268791706896803420894772287397368508977176160953395918646869699486809510440669269048799091497767853435500797706353687624542090272305091138363897906968942643164099554832628303943438487370647601203134700233025859082174068586634429234602861991215041583992553422412165979902740183125623545363414160183026510931383312941527480176404679057857346295533260542958354786261216553610230175343620006103820890480481103050350899844704730847849116179135960733188139090418148580797313288779623535582036898538567409103139388960657612597393342728108954820229580154479389082577478817109905968586236605660348751902021589153936370513334661328484641333800550843948552135101575827557380073722555663271593994258812417760046819114975494678038950620994329931027895132387783249912799004767548910939859443836795350301528014741319396029026057537514581385622489137545552251242396493479833155180686881310650723523320202032101847374656023913391261195646034546266855379496938505055368036709616420324038867819687644137062822218462762809733263790720571263113446063992022339958145118530726585638967663993205173188023288427743231211122073440144753565199614986050218792317120660580287222145377834520064754483012381039051033918275937903232506492302547934440424772655892500017984851832120576258032339873036512262533375855361543303751112572012459260867476927106332457022177673171252898487498502280854765231607196127715202186608976782355101455115087513152569069195627936958940923055756343779290851307410999243104592612411762953262004404872985773272520100409995263936213217206453283232530393793479854992908731625151365964772021957612482563445010468277729034277043083878689863429417114541965730740035752762008107583196407708925457043129131906504554383822526929841573536434805518795946737226646405238140298142905462047479639086069723060618649078508628407221071385700011378854207345722159683984908218345011938698569293585356768516654615005016110232830578045173847848420027362422946418691611655934975792431066112892799230418560591965104511757670522087979248227654842983246341664698348963821382608381261390605406883603610805766151559211289838897678103902431687830776963558599431283495998933011275171387256624483885604363271443984885898534227451597567738956245775590481482993153248496475829500550302116194036643619823437244275643887255102609625762542681091136654394545519542586131103525890050887933196794044811107660406504914905714400180295737748939331462472339008327435580578523355459112562869434037167057541393113161848896849061338504776689410868141354208269832358946393767139187714766215596933279890605262108057135779188355241440226374407932584874770795239599211645908384715240123461619589825113837928329823522322615569678668668168448507301502850701533527978865554206508674427710118855352932706895028559472952810068239379696501609100102379428735354505273870951980846108255233881994549669162112881012517890387840426777399026909973088173260182795117907334814224780109820492685919178123534377720506101320202354316938828546789602270430252575657977760053151201911861183255994166175769205637584923591331302011861732692184233226988012851524355094494227141350950934039678149537226497268862672061313115931869976706187512991273364374941488073695492142780196400930812198374461521119758813906044774499033270941133010101103229980114147396335150181206655713977838317119785116207245879632416677622023568890562745738013178919340762970924427583377902278145549667522518865955671998538134051578556558841480742622725862653325697444036937875244791110808879248924219021248661717637099079066488226262822915877970875458353351023098297933353021502587622801489895167747468149604954121070422543366686083968775396257625244847290609313240659151111840196738241053733578000490382775276700055687676528171471673078508452014269666804364569272683297443253532932927201292571423353613797133271554182256761149225203167297615610297276144400325247488667613453511948490820904468054406785418466192367322997491959836147985212937667343910777648872675312946997292019298751318574114313895834809319933946933957068194725862542670056892480569163419910292161490220532232936203887089489937400983918343691266938228962174287937617567667541220463073991685071682924614224666355460520504915986843322229671098964187944775890637609908990828370035880341614442895746441493889294991627863905958324116313023577107746863855729366677592641286673745362933315288719595319354646127549494227258427271745645776733716412444949849522802344228364692069697030249033126704500644786128201629340655501882581244984309970227242108937513291901737742005888393968861789427387377514980587499628120425716499395206517486158861215241849968778991082735273910402280698511739247489369242625992628218860282210786420992719012567380630108699893567123767812504412697395084096374622285310392840718756804293825887750476213170280755123365012726427504183862121793958147005125972966480440974132113036089138337558520143662709073917605841042032941940131809578966767645727582301863000621390725805177775667160255496732093135610982971186512315026574493382492849435642261776929359358519907728279346626923143604848851452378019431209570652924781349637931742707439837209413061213722719576381115767499129251071912971804192060990820787530468153013886833004164689233577762703386742924274295264289778024726450850965425283693892113570429749923584862170745757476206304426551520889890537421401748407646292010872733790478539790686321762699868743054743034431627310899373023067505776089405277879989600659106798292788384439571454078260842015052747576979271896273236030431555346973529514011155834770976237482695082419431411995996405623853421534386753480859702213531899051651893218571910685106641925573936774275643311930311349118183123566468094556155819084107586251233854528997008348638383750097632391175720193976677569906890762834669953532077855094621511111840198188327670327121290599183707740145259865355111643104753729333680559180930026926851058657310920398397004868210621300938447972956271390393229979979832907260843685326627358357326000730346187895751921859975727193055896935119358380627785862328182634423016908828857441456848595338364107990450893186890448387308586419458428218019704593416940715644661810410923638651966439961981766558651136951570491542865539353990396500294924521211721404890476140325576892342674067176982889627183758983210788105341261378797722752917908174778466554730991475987962563313399517752632441876678639254330811632812274135005206776137398667394700608252548044427474791151867468442330203615362957577097264082412818069412488779573901133790513810253669841511318648713903279488649365310713810529023652910598100171316829721086094306876570836433680523959634246562572661017662512979229706977834022880230517042451146095894382457351563638099335482087113694940374450513568898505673829476454736085656969886751500590392760351664549546461917704323449745892483481309312544809198762246952128781584649935653846647077771220332179185743150592233784996499211794120514521602891135436485423577768568354563704992097494563442771456744910061908320514081802622073949005517894330737605065680760118996493956524222469168730361839944984907706726800255552831890142550147427309050768296432732131610476991890169022611254892444746987644218237222285780588013973227747918548582832855495306240051047354628286999267735299548520556536245733196735857906686854826327421085708413609245817202999851826013629398739294212061863055664302564897823273715155850347515823810658376376372756588388345795279442714058315492902930150092449564013509503969056457775254810776460882996679936157104019186994330405256627722428254156153530288767842347063380927226836039426715250810513548579304535651314821706670538844418106388608154908826171512406794108102167977893189008604203430182014203867616521698448518473722647825262368338383036290087444738599527544223142452120961674016191421032585799778291687159794072289416025865849216754528468192031050768776836411317314323017126847493249695347255216300489940901212506926913945183703542407058656726992810717842286793140096099511067938176455925202083604967514702516787164674929750676843172268343598380356213100080297373529039694456611677946617700536170496919803977890548210473325534400918125330756031847467978371958566048329286772657270521593244050434892707480254834846422730037498907114119679574135658884295642936481517848282041214625469108690726690321936588200146373020529474848217205590118242345845705822074072847389149245494848744887890563768016060250072687184173102263551060268925698540003650115657317386512035584452650489647231423870979132397162117072234623680689963766290923232429040660457924749094260148791013604472626662553254369855421644727998211733062868201782011564028372802954250271823741249619900183098350355379668811989299843737329863162804803175364262551323192854037565864769187693763977547369103468132815233076404165584671700816437623431767809338240491573658595536153855880645788576655644896013881881350009329508890986676007220445907206112431271765922612715707167695665403498206516106403488623515056654176539587121219388192532780342774811575818902914971650537854990014579217878827472917653090134110866259887198372978867542623086618072261678079219347732068778710849529088378172195563711872710132868243251700952350455201538035879732350023367266130691027950456043901890241530641790550399395961839119104788401383153863331992207849848238117329659056642524205553752953551221861311393754759797834451025272423878542728671649955463456523142542955643853465457076700302060462440272020342574086197104806394160669695293142236967325347106942005859333620307261630530983811260338293419512057467262581319320990836238381198280686753398827380953780989475712589915713618677769601511474570179856135242058793901058410064093629796983570002257269238890653491915003620982141845304120035540222481362279381815353997810565875034398409065592302143528130429432154524256373875685316835226864372079919067129308076647316978870486534963918807158360151811790978731107268947388745692576369792562720181049896556670824716361848073120358984382971744887745028195122067998561804498887679905850197463079730727187114966034125631755590433992836971811740255780200818221624059971689186923165808184626717748227865665270556511143288744976497438585828183013297330697918382247944535084531534733178949947378173518983504584929515552667806184740164540511283371997707603153023609418593399413445931073261437450021360615935400737285572445472377537452649629219221731011129106036053185298652325372151322151501695132093506143261382458432709971978497956913494903162908889664259680189484491146322281597246132180994088961405209803664446336952008207085277203860537752452409675284809919231904876941317937875890753867752377323203514119014941990987432235329741369017471255373521632433672732163903066602347962550890847072034043886355607563195130897846346434605080172075682318075834625731072049075041517162700040580289298318146060683344363152584634982625272215348832820171760637609032488116173215058003845609745076624675579875601986398899234873909607024839153131407923002304404334333744937905504974126155704877003044675119693827890890831566770645908675325347549246525494705947120285750820595622233903157925276514580221338709744689057078663986518851091362140555446117131907701003393627630732051067348955589100458010067660739043060588294555135389214321239545468897538576721723748861293702862590123510265906508173372363381771577522276081318944133981513329079762180110392998971324572187438902742929801376714509212066088404264401917974054536004662754085494435062439319672473420772316331654696160058183288542335594991127556517927686974266150353191276919642388604519111155142161887248735705546162925445944382782889647474606078275184315568265155986332638499800942999908693417593351312778812254933236642504363913648732456817905727573314059636842572296901477252204230817082332872543375988141982656580320694245748006561981610981603342859033438516681281759712009278804009271889071109814642078374703462282800322600365578286523231225604906607932189470921205678693292646066308810010191153160259839686242848440790530784661600015049818899314350195820698763172552466410092965483170957861242558987536178092268113313685144730781090211048021770263904248261504819354132233568067610230504938995734885696114794887663065476461059990611068849334404866724904274176122790418562789417289694676502877857232779393280333183677164600694129977956294985443226667262889057516936518287179279872476383980855002320217131308381901082851750928863313872333196366700226644177521045174432679782132808617734395593591676065349971577658086053707756389356521825533449395885271444793294067765712826348829290859674394772926784372984232857001926392733780808016242754405193944966332383101959076043760499592367556831929884675348257895822441552199524552248733860955943470686573132325267400737492983878330814286694197377105425728996105059746408523833142418985489408789259577671121238557150155337705465406120051220523300599771415902515930442496802383981064309147020108001603968950973294773004780687967272619277290354068447722437931503955442878438833604330741824398642337099453034690681566908270297129658884782349443773554509234125836913651596614036986590084964710944479636784846853215319921874598725048817321635909744342884219898682061132378280630615320262835071733713754574629899432881751331124208349586070582235884672839548725253347667268834968983878634879943372656140638945612559936127256842566737735956129644105547426459289294803999587730502130748610724418288469845247169018284767409566275776550901476055303968016459007855676488939600174408801605332631356921442701879804000286055385088258805402876329973504095778205430656392494516110749549140089147146429144498939822968711586878243459216174978565395733035790765057600617527612197249637791850879715968711331492941516723411454859270903154343515855516587705016831036006279741665629402476889933822497292918153100226552316728343754504323087095531203981544504089955124739241418769316436302623762060942148490885633944058454463333945655875130824061475910526438033749403667606039245497760159116722790188539648947361952637886748169471949749869558051172028252132002939755682053455292981231988702191152684926751146084260571961917869460329545442660420315263510186913368938161830504156463904756144799719423077803139910898610860132419767481353392703785655123120000758612278725959285559660637166218055813946201844615986596388198775626986310968814100901577306400702047028982617705718125892151564939745844964033790206465001680816103041738886670769769510461675413804737756689079639970074962490177605822888111765692050752393914577148070873728471117769631013288509277161921185317244995825223931453140742398106501888525343152583643893979359389872998574524553445819744103905533021237259140880179955157968491905687876326002612340049504950026590452507145559569935735685418794373933808256294186202192928043838919973572214547854671477848050147805826176065629468499380269220109301107792292496855454827163211757656027389932589631581696050238450433298611224361079327418423897027585560859125886529295760284602965167692976487489433667127993616819757812801468633555547860014818298378756714702693552210625752575104304475417560724656589416990778209277220926187336615404302014837433416943545898478086783671136186017984351745971216141737182151962859230590080478507216611696650448714423778838237895704336377747035500054430655749529467929055434427822739360037467151393836107355354753178259614464003223601572223731259820203551103065266205293396278332896751379598834939521476762355844487237852435394324849266622730470911340358931338585119384381634809640954935727622989724573184611270648815768050644679640393242641406399865324867821470545268135538827334274737249683147807861633064101306477221098942496708820771871422767252589768936896472297806603094697265851309489335141290493691415894925686196149889585546006683441742468297152406051147190785426739312125305773438284915833150099123406657764057263939756293013232943925876604768111993226381491301939798481785213013774021486484878571506960553023451040229981378209799378359953205672928929801058230498333692165438300549957038129492177625780739866617629837994716997853767732382210181279317719397422165914807391351726915210963288679461538907553265927060353839955188648257736590672209541978322708571814314342401041853426574464602534939139847709917505687375554881538614449765785501267858711453481943892881444798481033907220794786083685584269322670875595935191186494490455989316104678169872572058844985891333403578102011938863345618020330120359285377850476627765188229117767510848134715022422678516540895656991617943339156140990903172015322417994519367876937434914154107378341319231153797571388052636351179155349575041312249416938889286389721558326096646775873553081879177062318343076934809671864010590375950594048558436695636179334983135122144272381317572051312767213993123714484978619935623920663399065909797928039248762848309097349491953845274311209893108875286231611069448134638334140863854723335605539589500554366826971662260517285182229644228389736094940672014063670265784853845419880947822535472434362039940677551484250605636343923944348572015684316722480837551288972951432968353504076710626432990432053210225548145425766821267258158783884050225643897427627143774221167784015963634344540273359704179152619521733830458657746917637948166598062150801971391699430383421026428566172382185477363730112090079445508833663344380044066670650839533337825376988462667427708807871588715875068973194464428688521123913646795183671035650956936418462562087318226148595118149934798621301593698439366092456100854179179944494068361760971035648777655150158046617723603269690789498420619595742848020197236986177722327310002102037682768541687751817089543704113387997386466892730377335411459485020172689831022689917186647064335125086624384281818165188413248504702461683484603230234661236976131152773707587006676968124079954417451387096780647031746581392148545317096219857094330956405147832085627954521569721908543296768644075895729777491724127069116018212001133480403661289243738079602291320006709412178197499592583185745693666200439343405304477634165579470206725192741696902747601106102393490119625663301443473696950074379235808683021138019522344008586673463320599351259878735221164781949908107908297997759818819179237858600244022284948457241624029644034061929758010552085386388145905907058195515001973519147400354712853937918624066031989769030617284623966910859321858240564396205642751943092283713576916925211464977562070885251173864808787679650825622699819114246867571275354137295995021095699867650537534456084680802082044037261544291261311139343204343631444621758754814530824651743127637433632936205032036763466505269641240841044280787212787202597627824133360776426604998512137877825112131014805166632847415366789529334269048860011548076025084933134245571919710269017384256800930450188538252612449616001254780485044529129842314811772981549967336518323024805045332509059436004294696856133490195663702102838024566039656492296219695126356206049026513583651389270049210377140268116642452474999212596448101707097644287886738777280077023974754597271729132009343652591985520729400355212580340275988726454303136250857845840857588447977815932421970032239136241237410904800907509513589281571765073643722517485126147956887840755948454910497643070661086398219182387585666474707473941046970407647229207553466791564129767275633779283980508522076388501282064002647091006252073369412866949172845215593172368943036536370060247712828111408282555744657861285249187105255862969304159493976291117839455060929425641427786641219834555382334227202082662356146258309872208380255557524014676026693815271451455896755404938429775028080223897417034678162986680383149840099054121857091258553426335663165446165980068966452313398169918506302495051025453894359024529003723835536620296357388518330657241947690847295486986261286989578066006745475462546959600997533568498001567619924953690307080893582275235663121702889588336935713345411997309582081032603068774777449732273289683579761308652292834518165614066306703524985344807716071391472520786514166657483544481556271198037393009393567894617980793990468338483501442594973230650619208090244674718567558809966158108722211462565192379366012474030770895752178392037881005054801834277317776496358148423954426445509054720871432192458878243372354661000599308372856720713140846113464109833337497314554189098085798274112705408049451812382537063021259025019573181997514220665340904814130385443689790209141015697040348445450143167253834576717567904818536076867999484494664626334813892144822051301712659369187368054764218211567637605687173645351551980475219231406877346481860554891850719604846118419228056198341387071930483231851983668114383817258737606731270107119749222252672924803618000137292430934167316674558022850318165359068093599928440622514869669043249973912145977690573004797586756896267528748745392930641215806362313202369005951637491203469814165713220788785214120739827836851714902075795764220430300756047295503161472181836785885179453903881539157015005590131479159058301725361202651787385358724109624039773801799988001999617946076089975211700312711059584582791520347114760271491468615508321615475943781664838118747232735433707533909471348194882448568868283599539450834528571585547314580762739086513387362944224256321597644005175915520325608074685110127282277668246264614787212141769481120131853831726782590433466808649931339337184291379620410367583891951551920540703865784040616518155146599854494550268040892304582108811299972321547580482993540734252452782830923101630318688098282475888215496839056349376299658338637304626583548609116794804038449339098361826196543720347511897931666014871243441785766505402908455501291643467284935661206458250147213888982666210605206213486714684453949476472335939438713242397339873020059129064646770592942267930728193011155278878736449432167867876640421437098441174270839612811412753424852509321332431673399924014513378091971252195129956659361661622795514121522583895751112553229628006003800185306276730594564661656368857233207740378035901312847279853788631448802043981722796426668925501209740405646921253273541305837637679615413672259356044336878069360522370221709660994229127744097291569280138962512274531477311308922464957823647764794944130021552540179046180937112306980213235808086321749840409017960037497712704561675690215202136920464523646451131061812477664935817057158206116525736925570318698702839922963832011512922018090079528301159318734071349145221444639600743879598735441611685450690921208735457781524706275386020664623017826691946717370349120019094889456087737262249879211640371909856425799743030773195140624573255545341966638917241481443332707706806697775938063027536242671164470272910873688595099149678143171908827923415478894840765843910696298849599774554223958676426706977267237993873219781654486649579727657267341045064829525550333996070449561762699835426148353274803387554577865802619994747856332222557055331717815990582639838818936620754044148557290905281423948221698057708109406378474137432269716311606414041410061014150583339244827857455588585625606904817921160390253468226050855431889358642391087217468919808873262579028956060142708330368408380946136751438339047171779712106655154558003175427859155696934398359459755514581702718096440410402696077176333053825678651271923269853110125743264773711690469404803849749355297396684604196720009312239857028137829787221501297769940693329870581849298292667201573426208392701309598329467010170032942737301712495520527191803459300672102640796050439831609787290071951654710446934514662398539683819870600761036506939824285953823685922057888636019742607443363431581827629800082394420382589712851233069752428013215537478957063947052047569685609607889120217232390192302900308543273077971554350731386114249261536373115975403800202238768907732456288750668826875689565572385406616031290906848562198279383355090396409148548405861589501177198092459232410374064196337111248603260637404573457229391071114078258956308110465246575802417178496092138027312003306492831751534653295037526413253043111864482359992578399158029247178085081064975691888554012865344945281893077649766836292965254640388433708430519760120243556187845465216628417581490639131854949976288649009456358326987831989740668205634280894444059291987382260902366533041383601983563161890979458137101725114988111097046848577841357201793759450807822721796294461698658330241440953162464046357364726562836811708445980849888223108124136342364621311116631743590692662298201044577344686785234982615105168704344961712477659769433764722356796844136314495557320392342879955135223948299749454827247285864377212679478729340457936581087200155126931170267099965837877676215287708842086450620040388957665420850558010321912054501645594953565157034199960933735831104165346423832621345639958038057007369260037451968935535424531653759975031291604304673097167971657494818732402354927491515742723258729410510207725079415397321995190186795704079250115507263624831390097552778023819068826422140296196051715706546586777461776004000794815801144101756776729389673556907683166717849503309836414678075228456449510209293933559435167820009938298659271507781874047885341132286604061827966005690272193660304093969389705069733888820405731378582282842295067923291187068653121536356010224400431938565356312310615356343184016974398726963157959545171786070446713109702761272840714271263118232507045871505477953874299178191242181431793238901523551973955999439535345125907134237481382072489679922279336293061856558496647859522632807697602620975109426769372607893992129171676304686763478722724703776610434240854282648473634373225357231087452141593662280093785983736155814978280239492107312683661723747651439833592479218745242613658204828260256018890544631804628952088210520611471403744573934745123638268832274247531956372698629361871529552479473920571976902331904626842871927909137856160656235718029026572685081674067981207955155615279822750314265644647199268400770034012838511669667416130206947717474757623265594525937141310954281381842197397009175703739302251388739573921763794924582058953978460280495090414012622255401126036774034999014712127538811852062823718744829196638803904476586137765682472274062608971622806017896154779986557023710332850733409109873448717382493108447695081503781777954352621420681469823989139967695280859009248125158090173693510072634308153365800475300713095854326798948537954964498523237797428712636731314038620169560629922950801576762700409656370101102517740946101346197695479554666190946241207768047762593694792696421592329808404826279635530225690483150800114007021540386200972526950208735051466139915167639845885358406334685733218398698512892713895974894205735194996948513996601561292362659051367322318662172151664941902479887818549632634990913945783139594329020445738234499398323192305254184033099766696641567116313494891144640083419759324523961253531303371280623311817771313170751071863657593245246787957098193289431715366934106364471095605214700594606702499949835312641907171092995740622758475192265827865586271764219859981129467254875790738152216168519979544182219351835752002017133619301319036075326474593168333775696524123857494368142509597712540234220675939402833549469533241350353308683381660634455329665577316514828129306228278882146833528694216618536989804939657656110739601408359529129561018791583441731617336476525907596194018376392848862456040199681282931669834113485431932538438616487629713872489280481035975820090008924316086102686840085334041343850614497162135065160889489416891433480094959428604477021509785567900676364021102024178927490563029663972897704587331243682300844721950835793640818056741073990807984514470222767458431989189249793721622148026546619201861656790355771259194682752596276101974204373531511814952282172100159930470512422795294609598092159187619999770564024609667024086211800195444725813746648332682691081846489320081134877742286129317695763087295918313311144283016990111356771153908020242177410848431693167206386829486577821871006933256729495283547656697849468879037515438295499698083506149819896686628749232470398284743133380469131409715744484685758242268249559950284389429049949947628691656299596125285972407513190019914327824614270704816370890945847897370760375608252420098752431250945546182392688858101535421810253179498076747988437587892088047454615861807247400274591313105070233379849617238783404073042050919650872678303577426579914347921798743860425968081551845589670174227158422122503436823991127454467876309853865265285743847723139140428107185618177590229926096905521259430567253517393450061560260368211139619451075760744710508306600352109819694742393723439263299756786034967189550539466143733948258806557859936546678018584995135057842230746790821318067765730125177632755715084941006028959807113630839508100407715384487835906007545027784100897792747743808446584588880647260701384184233056145787531030948750231251497305402187076894917876283135282807156395205170022213648284208725137673435964554450949774921693519804612188446387496261844150236605046016695143889899123117271457859640529184354358724438372809737178929410418332002573217710366455001915740499191948589933248261875093517504150048196154579740856758060413195004378791833894904820614512859848462009532799696266377895252549301616478066938734104275476344306193551670933816374568773413712190224941394121035280481636606516136842293822514558139954976068184767748957391846355883211556804900615033939233411483999654581291276733532047663804784333621758399066930515983147529878626889021686063470038489240621878399237775943732240215093555650179514853143676816999586045749993869196173891135151354277670860994077938258643316232985300603124426860231038496452156272975242494413786529337949272371181533376219153576618843180892281591749469856784182118336954274447698234933710087645101836460360922627165148012102724780047943810388012746271976212045343256692106550173954166187789633799105076247732614684865226443857472931207648481804641312742838045382899717434600207612786625132995910708263776122622777574282112312171545586082530615210285502320846212809184458886351128495612961659529276914360018155065485774786654010226412434819846531529353238476362086096445869105212896475966478452769725936396064185104813242002484783480370505405980138267266276690732041102554133003260119670605520283776428076496356234024091002091040506059611747738497011287862979444165786548410161764033881769610237134370602127180579258527323649577534790822549557424124964036143206095386085373982831552586495817368911056231109011360235128376331563189535763138298612219417887488739074716750296767171069081467039006990612987677407998221021624682820374135608387492695907258700085714429661337983778737853803706899418252000697734688179742900653605338473012632088665737326676773198662797340304568999560716926352280695340009054916819264716666152221779983552281071756384282683683437122942529282744251254619070066504558868621323345025869049654550968827024908691686217994213815734957259269189614155130708234891055108051437180900998731969691228658671003370415733537738501943122497054830640297216355422084473985806740690346383851035179881727328699787963403382459931486013157516000366785802713025800995241769310064084601586419138573790348040719055900191622452933824620068626078025225089838021500301504287133462203609712314076824869612757789512354509923181922903961257544757923849271611407537090788115136919082229037732171731468581419931723508190609339736482206049381313021315714220833353011628426424840401836285952121535213668112941783472830478838964598294882249435917484074922726640384418654078072338088393995409295960205816898450604486799124366657938990659229205422032901604774183574891606928163759186819399305131978704652324775678088451196125787881152193453510532022321603035119526623453230150998780935031006787171907786932884666174757222084130495836725850462270972479916765531297193247603432911505334905566415645073025953248618274010993750198482947812586510907081903850771420201038890103921327703962571824433724626270538524514528627175402350038090752697627486606574574000177700240187923373191008732686268696230026823195833132042764340560130385777612922165005356927310046891560095343191925956242855239469220571837846393469259008363803322748004543713117863390820059416055469917024334652202552736089419401934712049432091559262428801171688073932968932169569202018662444849759966100336640850079374271212082141551887920636236228259656575541265710607748701097160852487781390786739878084793324276328731105301805628448655729526983731363949455662954184714178297193493720836563921021620564806246898948408030532750855611184925528513892230414474138369502842915001108834921249571293085670556074261453332075662956020520627399193382186655865340029520040408327887246469862455408317581163520758788583628574206704652977190449418795984988503831753029930128583024250557643486240956590710314967793542303890429535538201269455293577310284271734098157672024285857331528036841262725957735807314086862677738551999469274716654673937434891052261543870741885960311973006044492362430196129694806004079918792597994818679279014519873951929757218348699996007465786656792991234233022218343504587025657498165911867799646069958584514737774182907052510936914343180831325848763422347637476359426060839819036667893075157383974720264561365383117147882003754127589454903227944162552090014094800813155491641533707891381180056243664288334002653858695556225716055283452176146963385536640181203205320482041518788922892182691074150072964186458184161400054125783475305412308012923228997862188138252813895380880392817258942136660738004735570260670492395461566760138574970022025502573311171233134851419427165512970445969625611761452692790112883087245577902800440666664520145545613053187816633161336341875455644339871546559474165536741296966214514096437516766487888692038423474285962739765579142103080400267172445286753995365987657168000732084166732747594014009163833310885233876778194161558708994047478443915097753579629791757912668678713934282234876677157088354037365226000835877516102111809117233566418048182386632483089538482412232742187929417500583743712245858991420705106159621901101154599017093975138521256264489043985664597582448170771116997812663682781153208468123427608344179947544758118757721885029170080796518245364050945735970587454076244923171706494216343586068090645804580603564345315258973676304558590996904978059268470956704166034294763974871315447509623312655031051742628088422333157537336894797144070625502594386461206590458273096011993454065577886378633869161285419478647020180877522129400720612794414106753143750014209416150465880722786773308666236708020383586714641447977421097770990761970349598485183558829583678503260327705110494380429101411682741556808468873438455062386668099749451384068744424257432271945183433870360897859779756384946900411340849358611085614148312754989047922078848688606530552259094001798349662829582977163883226512545123070179042268783383566097435954790822437638788423609316805684444210048793158470664539881485656790917456375553670452138649626645339749053671310465295102849929665586044970274871822570648155247695627638504772082588478709056474955153281246762484159885913186557992591000277301708421510333215593705303019260331771526641753464810551510416038170346479438144638446953533527091585575165027369012486129893284018819155137294682351539911971592439034315974122078742970590220098933503649461041281341202155438982281723324784191966520644640419799837865669372150868228103883449677011523881728986399507289572416497142910329525216198657234718487947500427258633586459998095554382574073972340289100203334354455854866979839291942275211121255455313226818409159079416261509050951167596808840324851272325037702800763168757160339587285627304397259071651410116889074629126791520892996324558354101981127523882319303846027512921080239152852196657265701437676273050312405362656861412618063627073334238424064997087107262995460326565161878117366529083971831032481646045719388596458022948350227771409707759696025608787903548316531866421364263227205668389055252194332786925104168754536699474712345921711481540690981881444621819320080147614141305331468271752329638190865322549208639703062758790459157803296323111695327096157749690123695843107688224694505997261704651356200000942674007165973012940467115577758405156001420824268355061813345622425365738201949787304001864996126484836260698713130644107553909882729478082708566450554664615763991377774282035680589597827952612395309990738422710565925301702160943667646051172037090584325554558795659089758156341430252161984928755275235819863949264205913807815690191509700217822384417765053298783285865104289465077978564817345607570698371548282279122397928496923587216809572113799002554684665763233121995802984201453924947684417530432629894163626353891286684230288411068701305032408301466428827536229338668724169475952286612103338469577841522226488743841593647876332522165594421716282935995169753293906167509818328936778792904591471686312584569199971401417895540814058035727132076241314932642245927652068250470419045311032722306388473755166136337165143948662102233385508399817711301005100229364161348327218066451293651720653900685845164771476598504600589829818076487042958844160131225066735606822656585452753210080073120812698904427612936760978052639584574465449722922200877197829354999857054218626018979926015811600123615001603216495728049296310614803209766885197164025470002429616501926320495822875610119410958844238383097851646499668468002408312579569653437387183063342618450877761836775280505874347961338258391464679146834503344263391996620532153883072737828328559894236735612163014841632251734487378685685180145251261632275218960878520630778869334987076234478417374454388852428323525308572093088594606357385194069081411568242803676063507236772399492947421907490490685892969701436303436830331189321878868049466726461896553430746249111527557726116126986902081103125970021344877144918192063502235535617085226817479364824852087371217101550940058822761971708157965785569841707327980387612185000909398016751898547628268197659699810373837778578061737297661557327957284612360565087199325520524275175773176391220283939179676502614816572901930764829681453132285832399534424438726420881767203561510440061739052830140392356671273226256828833685404511066017716964642363978532324194840629543988038110828008841335735676590299930588308175773146115678278003181631899833943729178762454982852043982451305834658695129393629624868614883089041676481304570567358614499368337475063012894340898796699984211472035367039619199314874029328816534706173421175885924151938712209439314285285589768268083119484813196858227560813664044570279006807128935754791532608059185827220490502207762927155490767915989508552200587445411192102066884982606586683812797763678240387361843885495190614544125868883412974983363022629917042253707991900775589578428793771896515047642587138707300606488326997225147462190265396764040729713021379069031258409010489678616959111742166472066250684140044956205989440683793077404875993647387698296604550862618250840278208063780728113350216297656524822398492178415526787530778525266280792234094803546664515740720112736902891820124760444011116101834254230112473023872278257656226746929634540677398409297723901118144125625267959474368365633488108471961249700716616730983155223492549054983064810197240677174394444237841465247085244371863474827937926806390666440103233700278327949828419426377242799662504795964553717570935861557530773919472102540489880989789830919833957627577354701597267882645021840834170123394042671143721468889585382654267492925577359858545652795808518913353201676752718724419075216846711789660754143547401239778216878038652685610879952889573098700044453218765887731641850508543768588000314287412419874614929294906539696850772986971295006294017707500330907123052300434586205058446819038963771432174148949044223495528182036867850391521522900580874855298855059046114829334486025121888364482725574796060700470337463044045785763558269743491828923125671756939734736673195011792336066395126400746154551903268268241132919870555840880458032274843786934277834086452945296026583599611272750778361707772874869500382361283545581206164459582081423215042163982398804309322461002265400817414971085668847347788067498960751380669158426389644043721753654228313084930727030374880080062657963192553467861036486082947379505985468596169083329903156309440043792726917590995571275300635319710553358384536456928417230615969783447819076455574807108529995248446217323659874603953723917456651473464370295102513602246050900858574969584852683753554449556665010851396680723262893321896614391836846681403346022031421747223027905398250209265644097360162303398754499126640481153468604889733143108236597523810580036871082305306964966439834705099666277024635444832831686521388035053761623757258295520333167978868301442086419586356611625841788459395324239853471131766827352284291126414201270143897164029754780056283351060379359372928927499453668553736635059426883083439772717961343986945203480851173893585835079202017997747576701128228333182949351745511808876169995886685898805651586772676235794080946350792577416291578571215812223730475633940316143477976748979184507829768815943721001358084576211994268589931841659332478725825436645263641978381349746468947087316168194054217923862651015850101404275987636880394043383044495461536231498792044438031477736944000318224324258954797305686015487944235864781443261323079758409865017005204348898987925769662731992863180064436789642579151072371648717437105875337411559706971723638431483862704495000323448371008634327410050874484801633269408193701400071575782364266428279738370721665137587397983290545575883339570444613179148336011868202881956591480303019165267713245664731721110455918211770737894558288632489743249206946349880926464108903466345917015188500624976606552180359111009302001716801612182372719764316593854396521573803729062017601873698103209167981320712056095859879774374173898792512942811600599817643045512430542034556641790153370695870811500441293379470893725598710513913875003164810870926854499209495395760675263793911191895580690110769907223849467316415690578016046602345970114642299349902148765648675451218153280251604388253463293642304250121923928295279235146921815961528426784368382075000811836318335369920040303663493495433656006760801019137526365637165571021663497237892183260353589310440218771665842887923650396811760743673165566038976468391161469455764170078877534435530674108614813965003741322544517096774176999886860401234460733615121941849778336517674573195585201078050332333442174880528395935686996055705611071577918837520150350258901263563981474468931467470465180589974135757928421636781893254893395033151763738175335418553785222735714359884550188657110630998535246229934955272338430805910334826189168286880721752698409475072239632447854883861099344698886994885612720368535387962396669462552268327076869946862568634541484364272076433171999911266487138556899203668435567438866898677334605808122824437250387688514268519288770298756703692116312480747373278669813041960939765218236182251670384738573658988313099131724288910228544813357648925687613675606663555340942580756165333820060570267469577995415509927178827145879311427879168102557571212207831093852201200045899265977092526256239562805804382249537012034432244198706855877269624976173726060117356649024215228024395718334286638601735788303497966556847817329075456658923072437611183922161397762549628394704032450836505078964199418384930551104546708143334263093594280160365834930065181371575024841750231237368463129396453025347069719674198844667628772899406089695628321869069203725138493384465624906198232359503811977233987171162669966855689695970649968327129267356561410091397967193374804972573473586190948907362062614092469259051570719682412236205105821294943453768217658900869451354480851411138939783607896928478458297547632511984913317374933589525079369774023435713181663197672104297623656598499452161983974498009816877463948702445198323255024330090058100639357398766575062767700567855702166475623878900185829555401697725068387500148684981950935966222612357272378346480070534045161679218782101197927510354976788109728556178386733110891063926180891887791788919988742935923571871706004406233802830773511252042471826073649142875256748654406812590525345350948314825851610609289733527064483010991590200395270003948466646966448660310531380296228906202950486986955107155006793457866282694576134543297052166961772129046982743779408891748070661515688196427949815842035913153629716836990668420505483809940472836656491182719317095101588349355481939532784909814017752488633809788919449393384005869366838700760538612032380716648726937075535505580783188358659377742446652766746208919102027661575665005105978180685289743746041473149990004433024677897285846188922365112757131321215707936519441714541379124084888806436231857995250123839874985686866747034899913509820627217348629715635295067183441858637951823236236466701809745941080909478946752351864295160655581827224254867413786930639627438573114014138157567137742591367745768734524178607192144514120329814101232142161188384213680574929624242241634499760232242698182081300627106678213246424196420231669197570260967735435417053434072609907080687712350921749383092534972843419721353387687808923464610024664157471605979330457317382588416656938126816853879672593604101142222763714588263238577107310756679602957685573229943968691121309251262711685591148348553433631072910689405488210011296436911966680375827075184885724700318415499635853807233472991895484863567369971310457299181924666041286338444668856254873658158857311014085429236491062628714391007466356368952950838323089163833820074367494331929322651810172398582881869114825077667741321858833685175054816612338011328064326579956643574123805426093281750796539138415573022655323143014212738904356696935232641306455814582005716211073770179799074027807240084150457906282831371851019349389671226657819020125093027927740877692825795401701144448321115267297920543829961980856418386488494288688763839643747016052000775124069984366555162649646699062419235174875742502965705804980033182855235220792692445116521495807729114602747071213312654227770637500840324475091385018566001115426653801341908412728720886943506311883907227458212865252548458882126041760801488490261642625710891971407417609496835000135416829557814287502141184228120281905496654701714549399011615887414683575285697354728960953205042635082776580465707386596548211055596310335973574618380740845701345380687891458987929167504558892307856991548531422795425901691510450820379253281146419415144427084646016053882263305937368682451737458025969164578296373662105356707184391712720358556239959227459746449524454080847111626738632109667560281656317840734228600813741882094824003663745160894269436820688487890126275037769358421169835152446557530149977125951016701562906598646702272022294401323049566958384089143729208971608094936501377812912232853165199261963185468159972540250268862739173845703872183262117587495704643398947234596726161718180677058247942389133114498033276432031250762227106416879472189327100608140278236383154599683111134962921552232985980524262137674761921793437452694793582894950149647863615813330297559407095150425139079953737404139560170035459114858967314349290314065255451462761627959494292417872290267269077535769848896033340829208547335081809963586908117039402290992379477246328725689609169575923103186941117480705630256206004765535182545976447110466633146272829083818113981334689951265525520271047635923659368639693059065031423440805168881822081221984970603848166646142305868493410372904113752817444787867516210181902830571488270426627819400017123463387608417172615893029743825214866716561122063922491865605628158048696865334820289381080351625230427506891945648663598745946621678611515097171804322098335392592651144866081280389476556914964219151147479774266518426657121414551552146131041809243290294715492761483462102268707634123198589462146374365590059256954632513680518778800034573313715541680044028947176821870283025901230569975213363216059045201701043504937556639266171381444710182659520762298595486193502249449100569212030362944032892074520627483849184560319895261708827703283107584409254539930451067907273990188600725257730702997757453175296798166533598221771047682969050025297909881205349750271047945691082016711704276345338175064637059125485280806953338795805595046455777693222487164052451690790818122480187968623649819515433880753863799755154556417147872847004892878870609377232875656849822536789686319931630817487212020158273785919986960000988238770440808951286521011792093859324061252883267915334227567724267752118564702967505054786092845335596461502744929402082067748681625860879875730647278534711164700770692336722573455715502580793045754688873419016533823875321624826242218794570244220999589910093229273684279679798307271900427009746812380306392474382212980748659328186602439620858328283933761124019098075279528653913555938945082469041495419925638161631078181806199602485856517702502571363210402621433861543990877731953212021714879696890228502569831109323147796088202833484246991395400358022785341734994467123708485161225205007028689963630978893409093976030576920923197613619257392889732711079545894878933414823902594209257791235453026374256414632358302209506070436311068276457768893332775031531527985913116800789163829883425409115688864435609330020473912603336906396370141594123160936120865450202649674658953647005692377525530922945212149997043877222746969849837368917029415666681181981621656921486915759906977074007297117939390531423125788680225943536203255142986239245126005152900962452912497083117446374402993745864912688337032438076937816495521433317761489304569048475032259051077722772774827594267778944289432024448314690728383220120013815923856222538980453606208964597873646438354020115983069006883357409751473218208072940670778467452150929498654426781215203990635121272627135047471271069425847799575609312945382374021831634026099261904966917037176275451195455220325846171537249798425322628358039020845243851287909578132630194071566403584702015929361408138366228304499642273829355130780542187071097657621851332168107576260695658116820514346645848883587123204116093758941312682026725443982883641478722458091065890833753003152709406747146758311574219002151951487493936998741876876251792657200228034717138392663006790797295989602078040565679983923153491539341448955228172517955079659923163341533803965378552758955971356063764127575006177964848722289588605302436913337525832851179684685669434630182782594148201305776688028818433721576118348268402807934924965391248354621092985094247366644360286792014071764461831326103139386459903896893630673594429111954689766664736019824364121497759850527824183154687125368720361725650144375230425220290641472296569225441141500474077144884306596614025104447278615295055714764887871011604013425509383508785354985519674669618151626628928344502330943176876275091793439528739240949473286390127251579604815202915282691325159209121708464457624766360726406798458317573858031381159914426773273291638810367810204460423812832034984348692922790816737827500530800808644230566922528698945834425822653570428551921871614012739408418875875447873512442907917447227363299087303669321341523195071770824936141034719300243686884479653158848002283670298364100493561024707518030032460815527416062743192694900253066729688650296944019691626350549392382526360297967527736758995531764765610497162620402527889134124421822017164068404369233598917343290656115521970124677963870405332003740492743292352239606196619507491274001864369235791299347008061774926593632620590249710312292180875434585749020329148324435753003109567412889847714510034840605779180928378993098287630359767957184194855369360320009581964933379871633322227647350340733614305155050698860295337509538428776648935377120414177497332741376806561401295249771100710336875882881007855679271011463751897270654913637080063846859211273806515197110355493433152901180836694581912458331811658025447046334712934248255356690564489043897199090094369289497125914195609475841858165168908669422666118327970469255142602212782813696785680884279493685411805761113968683854884430629812182637021891286948223468852227801508529968016762817403587977803917334719619592251128334432968147042153927270531771909734874782858439000942051157511564172593848432969873281881911995360709483448887691673535709473963088527659215068405229387198213399628824430696215218912601304315996392460450023362617620997613564671502491676981975902996622798179122864823356249648763117187372195080710604661972054460633166225499112390282876974437829317084353189790654820624494053277981062996918898933735120694353943542953613007079755928276984606872386116571849882023943744949028490993850695296025347086128068232863433124219756190139440460435468341931437836191815407684707094642382860686648272018316115008888036981952767422800236931827593182964683514279853041288135497232290656687799820759873685465276133769865569854154520493080713422205649099366962206604995004553259308596163560199360263423808170178174995958363726452014431670021894731358812637064084896520821615667924968727451614481301734570699531438364040335725758718806188892138325553979277117467469430440647722220700472527325011598508437109585501810922325976707605574942873786516167808769750516275635584298710651698442218396562580945439611111283069834937956265539119125675490413289810791065422914982351858874761129549321511760208822339468590103186941316100811166674401955945281457759900935155625621911369292856137690567145825215876707099265562936471174350431802787235579954941423338024611085220876058563723902710524242404112027068663277292103771999642095440440246585062386498547888173437401175085073611853448350143749863627016158699159602174689268918629954676152225070662589605167993444273848713248186712481250384127307622661923813674288238272804530250514626186918262989723071991946514105296969043846117543290499983979816359123488200238977145747080396095458381360529050354133529817109089886753795932473927270418296255558101609064197180018108073698062259994558334601390596518607840989878125210816368670939748132098097797964649660931477680662410710380669983719763910669559644759940497789387854057764249621882092428739231200943584421900688904029968971037647381057856338911614510623249643864607937455925822563052022620730258445078428772011753236932883295702165991062647528248595209938955209202431934761249005483915079484084387568932744989750121079154831253948570265126681843421479354531471766117587682657716375756951359790434023542604967088343092148756533420905199779523334081539755029150285934983671674657800913813816065676289095836913147607712181329907764357721991434537164506642428515695804875738526707064369656136143942863390278996513620171532245754767002175416843625443631131174942050807506437682083010831018735042343394160082282268205102122141057574132514066470371055111251266656488466703336045652977139866341458999638374515313480217235059812105384953673265960350087884549279558004056282322504050740859859847192508843522290086005887566421324427253280379208913719214464564309019883738914143054409217982839506073948077097801908193310661470598432741079157753872534324816597245414871149658781579757866479487243687202523149670902231810853754230402056450296523589964244837126260620725557974992363751274842038571133516169890108276947754447233495080996457623532462682000553643119567056364094473165528073275497327016660862337175263655641469328182756716061277009079834696936432282657920199556010474065092553295956566915427359794844204072507706187796715106435620966593518773890916424106301309245195904353859582561021449122664707284384747645591770935046886274175453673277923644853387513265409149505935152139396286622937040505343284420585435882765309819341238453075090168278549831204585057928698190218605957504181933249811269809102240434241904916070470380559956507093904191807121284376848420122457445765634473223239558552614799505421502604058611934344271880647492713875286717399858018893874739688053773124947089308648802747657606209585887559178465730249053335919370858897210451280954297349228812440676187524077894363832617025137886880183512068410445590698442848269548989971834936871804903517788697369654865421574203655376302898132853364567066563693470868729342829889788449769585854807633785413987571497767027365167058680664607670064125381370259215096870939601072105177450434830048973135441347671176742375366483760423272383877465656517606014611885765789521890390349440043531065360037924083686654644024684385817190936959304915007313001186635209240174265737270848330742326221667475564779675358285988355433948322866208425030858555936548060274016655192558780784024088970994303228353452934251581338042431995382600863007998626489770326486125104385996741446637357196251017652335748556849938514985466981128815713551776991542792341495123508231921702556037044628830634948805382722497003173517781821210702062573746678230032907562632190308976635937073816339554794176438302445797078615920529990529702078293655514390577580888954764602840209632167781068694385034723420003429398580857598994070755432415828100109669679920859936007367223518123450122893907617170175794960680725575829713814051604098930258012700572354421263499643106633042999625470979351708844612324968129197448861087217309734225655623853607365851360232011550748003122162614169449008888856018587768606268951217109624696826951738295861985452920280858409648087447891451075947168975541065243759882297387869702425817505308561449955343293921527824581080950709282385428707760035906784298336869980567193503499359693727769544874827987437742494387560947504988987476294251281310496193910873968602890585286043587307470082066464271275385741229995705974287840355372456173464130000101640720684442945904012447439279976833974512113202079400812268010741495800512774764366798542739042622210550817487636359978537607572276462362770399347226208377093904717261346305199094620908730272906466361736997174632840863448576624305584960826402488846928192907562356880003615900721471111470719995061884732964622211923996206163653227161311685311208684175244970739773291630985642011121014753505748271163743494882099122644745948437592315459805159465051003280668493225456485594409284544488195536183411598445673564816191931893519621051176099919526588680999564087881471378500355322146118136783989274434979552498006367045446473926649275292369182601200026784183115708418291679801409382111496327838866422816128378081665734076265315908396641816984600752169377266719652396836132168728557214549517008633763101522290770373545020748274732283696907884069908237567816747277787110785523485696479179398526627739032258321931943178002235748231615510438058235176199597627927497029814958330298902956157250619528101207293078567637826380304640217707373930545102963367317532487516262209293103838274680986590492219154881760769265350068121855335322093302399188154208652987285067010569310061171211853560633211665544508086170976660759272515748726803252807373179820203908339375566276787275062659886781020131921142937807654067947505210872982710835655761404764637979100166738564817172638211413069707818375773060238327850125034841055847328554482736134765921127419846910351980631116255476939628480514781422386619676636532120575447975335270488028496965944771444168470272568978957269988016095325844434788949465303490696456029189707340592511341695332895538222303242841051278305300508790065437847921709885215589866560623453686154587725293733224759988446517137473001785551216727304439402007619627555967752979165347662781125344827636838393225208186471167142221869476068705675671068911320139844651612072414148147966121755645360534681007511015620451794796410898609044103277257279113447682713068338383262066826526099220106642187208504297802781418551439070239240050410084462739420619793348433499930322845440091284562814212032750387523889526010660352331013888530934460797808596943379522576758130453249725921477541923024027371247619076336152058830322198884325525535719174179393296124756497201300019036500362251707645938284555398977624837486188777970659655501290566689734322566425391618157640681351243662362777206127411766369324340457283891134378542851946868255271121079553552780618343263460480662908929126465496773587897483207100394422019718431942389110631574691111410960191406839320373200147702349170198453148244577871484909860591783621514347967053913768011347217634738015387106696521255665046381908751846672237361629822709584151386355312447753950132982420775996673263065532904013981787525107005919053443972870994700626516113098132020299009741625009967118011305655731272590063904582476341448872103549128814375392383502994660164487704446211717956647716382952994195930894254424834952556371465367640940807746862194960232949065253329631245452057260584591914788634410828485466142027429024035642655999228760195405673075544097210766739059895382469759327017838238031460765819087446271584590152450128342413383965503792511512298580603504456933481418409236758413464709863630814088752870981937740081118026765596979843898074599663557423026000996196096309243086963001519657739379938343070744397050556886436571541160663428407046612830014284103420477076646390725288789751180961316171200975135818541501049655778715366563579024827449769684544239929142925962545615193803854751146805196835812942377718651772473454256132907419022213517103918644895883087087344397482404820410863455319050057420731881146807744861021530391554509958541441523658524050401885968266184914263410444608824906962515181271633817447051559404490575808671163829217846081469250162911267378352445878400843120999139145022741349999294335082324881730614459712838661056980484759544537404027399660472794091342888992916247370072674761477322860594501646761324506333249286212286559395058977444795901602925043687611318796430730055709568129560430251145305474767971511821789282597902888208258599642112597415455712546608511269595117806471575683005960786623196448597380092674005893430354685166104977731857425230583777169524741882245684018850424059460172203967529916993062417611497584781204828553488437172436192990857993022458869969101863542429009914773020618581707070896090009700499447321217944313410766503826558733183109733278058392869349250890009032203225127725617148403774110876531626245950718942391999276341754924492308237750382001828863357038884240456304236645682952943388546887053650968270196880425765927527376781011424960896672688382375288732664181049329910103179785818945901040387236727198601701954831080475313646855408450622644386525157361406337512041939270706213723174203070656156265113502509914051106627399702352434409345243027639530069399120965219004949575802119189564532888986325381067246073863517706630686312662958808109068874003471432306421441505802047041564442137569717266220827851052557899281685145744147341169516121798095684263880495614613852840352858992653560952245883786432824454679943555747239093075921442532579079731159252495623764357228168112415338619564997249980825728333355962427168659835359569956579974674992650009285915644341011159734457974017525892492739031187000630894380465882323204368611162559501725539040094382051213627703950508604575197833702475004881350953244103617002609614905647360315255352262899039995889897337297554219076162710894167737418676251165846291232198374726674037572972974353929859626803327969813278982411349624595177042230436654509379166291049858623046415416831640350657965970332958915088508099487756038790898235146038341355922517152250110185275445070517837768987538838038508542197751512044360870322894483807167235725191849056260241388452869218970976087500330277641381628425338793249671783743605799699658150152473569173590841740617315214919552437348591863512697830967795184059675558298556403236739134538816701701218069557767282861808430593988403649237482154043058285429729698203822258929872638934224958876129969313353941052530126585558464858553744730390810807139010685307392333940836318821668102262085189511074697281157020901457737128580030850286676213971222769454807293917002941259560969864750309195839813202309158189350396342551650699035491930221952836347503008086863666457486226537303981498142820961687739366924082287593682513980132905613336429644306411879906773786083750939401887371222874810961507143955416432391399896580296768052182503292530476614622043546424461539183180765979210399194581040005369271892279576403171932051719332743900149812638819323080244837948902343877454979642610774694499988024448179707160927601744517062389612917942095233733216365562266472563315263435653828213219490616466420262669700845358736106119299144321910147162723837600717583059410903484540535153851394126195192103115919587755905742558662846946010956057064604758397059906860969718829320320689506369929360384385627876023915482622725849557644673337941869468266948597312353530152553596775507064467393285751223841166414946482410448683046865695472907244677416969062588745576472088683460911016766627458498123532436335374858877559922414304083372221826222907856425292041547406123947965491925369107733790209338983519263669076089846436257096343818038642559105679868058345968800875680653992474278180791103536389411675982041985206998933603575654298670300397699169199301316858114438258490459912991595055611382845973983362408712006308699848702582148738472281692072977030882849464253698069733667576227290258798591523708715431119981242205248469131891383949916921313213150576805467885699031591704486363928907046641825672089994534164074177129966845100270864720312374463465978426207386023885959971805881042169543993011219680161721187541138923038169526057811833905790162261148929452373797967142717919624882302161119478834673046820852152815858531982122597600655160792780432767960904452604392854125997861275845002808326379709354042528132418571600197576952819408584335555391385312602114245668581172455277925066571059174007405609262444182874552456523547136974318008969711214465591805345276589532432630332884374855317114464066303097829081620818785122219337067337008569055076381775337148736511271092720898068776951097099738545978413986958841164674900666880958024053469330762188076409697248373599514837788270711957542883381022129848523277154094652343208355692185934756551429500356541650709419986447099671919176549261111337401875684972623319591998527481300469936418690045773553233380006088386875627382124822072076642377548127441498252104392009712230845678129640892078804729303318140737242509778578538371306330409178568229319958172020727778218281375444526810561674861763917374465872858322180018451243542041005420597113365381262424794685187056807740879217834722630598797927613924786026926864522762451418940497813106552303827408675785353520506131348960020690908410667977590011832528163876300355624437875070801219975336298237970712622955129530122746058963490084705398265133614349020647852755216526526801321846128784222264077729145202903827848500971382383454653009856470282838773295738638738745279326384181973899750802991410789196006604397241951789571990740846359703026579168857965392535702708858231229931360795915101165632451083062521160649640722245620797883327806990277325291296141605756445469681776721518431317875623848629413159096425958691586727744018594575215539336258938390077160823949290049710815337370771174310448344375088730033703479243044116128650916668744277147246096880526781410585263591646502949484145720778261387534252730993960193222144467793901239754529796708294854113415265454263748245865206931144894234040823899177775811118598566379012865766581975842256591628699139246331226077058168762334859908888521566904083343622899214097275595218037121395901532138311286327779898517217245741189088907102655144182136288608402225907790575885232628824963457413265078093272253987785952492542556987470700866508433872355614026751803475056583606143577666243873027404957687088027052400596167432121972133775506403797102697575826419891781672465392586324155557175841730618724565515725793020550604642884060319906279637210743237292153402720983613240384932495568278893104411967638787059762095163607393512739808194950814136208446238539722732177755810879808144163249420521755139669579953675397635513734026353617617491599207221537598106546588104612396589289925272606975262902491497258851309944482932496348034028986776727994174863730095161154127182065427346349545613735157050481354226402188476074492092104736045381273153273252647160024221830367140971383899306504363232937488637902010794837940970328205667924186247741611822026790450783032276357548053422647680004390305764669736336167849483931126099972134823062975527332035614742504151059547734133473548774341060797653848811750158188139024559037362222311442717809626966728445267932931444133955300186503901337938297223958868310707188429084910470187024405719111967169905144704700241432321816244416560986270110780934017641502512464584875807123046031651950029970963429300870776839383831219313872455557232470187704735504900521179262980984874826586547595612098898320542625074889103482324817606150134718705158407949189157530375950432553606966617904551675431720869367835955965656094129393356502919776879288796086053084550232160408634620353114398597002908152315816450545525361601616866231104439894657858437689867202843062414730185357120838380839599802487681005830394960085217912021052872282873493634343091723543025251792904320938304661545241233705104886614569282112833725268995251941043346024465953846355512118206872487826964332587758469120773123140577961870462365272287933501989237899921736237574989474629709309035044021019106993599417282050665404189138244406589162904700081463640587404517998220309923053337499754751167947847914611174765447371308304440675698587440696736481257855396674545750812305494976901759492780287374058086799978572160126600863282774412238316912916426097007975053028724843284180512280327535632101122824243517609080869434453222585606641696209749105601422429606784772489551186891301687005332563372667337676400167654211200208443889224269301277355086183316454709697506174229790640888639699397603434106611243125568158895476108903904093814719823605573954926498082222021579458404048002424438594941303504866670165536710010901935029495765219978818217099110682502272748114329685061291617693182874000548985003660318705036218708206556815878343555766479503223036250832238577009238308591792293260622497656003880627824497024430723228234379023956009611021172609202152064119212304465604119372691966104942822134470348861173368228594004224953158749866303621956562601408337765331014144883705672491266799442358741040759876565859227825232157794718106572220296522874938549484643613852456448303752676140525247980727239120880035939735779652080497923201242699070419599501992696666826268914200135298019711208280582424181133599728447149433418083555786082816345253225853061263513677988670679554955576130220219150898130237619451004245745828154183263496502331074616953163841431324490980122495121423785878940934041349898035701386847781752494102657038764479323769559478576800131365511666947988515242327725167957911618058419506014820313187557679054688042566929837253921930808157180989412137211308136408893492516082131640955103163456900131152233290900105006159235394957181523650683355446278301923073115603828898369759271851814451902659753731774849820073727534263109324316471792928519266620659125852498378051623131834413482397759274706045765023218081131466881992573889232886743466240726747889516899826845761354466605551618970286415308899497429079596594038862910489335069117501522431198007174434098437973733735727120832412571092719734136682990812638659472542340187687823034674229936406961819250278546666498576154781233171383025334811057409104446316680846823183691088025663515921475837228231775915676534634723721849868692214987586678091365844087898088902833073864817046020653444831429479538008177833146340093386172881883778359885135922145817906091933736961092610804264479447436274997720247525916554703515870330614410056167210936825004300994758107331844451982003030566288123644110861101632822332458491224641830819793409093561645966715710461494247056062679306712395767388818179472298452728785539162563079447873446251752117028678598968972809334461602783520193155664836703388527361723209959196463318650854535581223420392687064062861580092260635370074040888372759187147533637742014363513533109244232120434733433146178280796269816564459826250085937926625506568669380687106522973517105085228578626208806268150537852637518952782120755136277922382753537365586020161174991372525453892394907509825926381296192985545619884586932478947431048250247269638584426863380986056642244624902937309095761531090922702639783879354328213040176931524462078168768179261930694283556201865560707902642247186336113504831365259190656772524848293452831157060212925735564344485698212378636586768190976265975847187304882512834709750602193734485208528589370689686775795615212633985482721995541380153832649716753081169355213145915722093728452904573510925810606186768422580191236884965173595884860969668589000175397429460559057161895692560972230990229655488138685731867609876157334559018932206573003249821677602605011088654151973740366557938256392887092017853806550208358978187227878234829452604295823301229761919964062118772726560884682885435787775995076903566919037394596916219894230593189095927290208672781980338781529728874213018445448197118649021867183485796150732135544857612870629053270360287059224124375393631450740913252121364214791139338597553146785090564326989276207171353172613545352782269098340205679303391160074016073975866823393660365471543754964532137369887683756246817618599912041050164613274171514638878653683637548830799700317310425009949574448835164161921923036576560134944974407232230721160908677580409050152677245403994730074072680568224897742317769168525625163441875206477390995047259039229614627410452168559937077749534359223042737340860429677805324922271812854818932201977143892224653694689690762673691927803706547016247479336827677961238326912377509337555935409603468591070774847134319315342427524515988282493745099494898455697852459213796316722422941079523288897613713473072280215794323577986194762610465150422153512186579752744357709319625405303508280719088399680711275342486388919254325108277022375297448480148559638009404890233657479182434024055256929047537350124977971171332976087022064177322678584651034887569448453795975468023431642647465457501394817001477456055200719960262428671932801273263651205076350668706089806708566380475187557920303347108791494687910343887162271873159995858853347531519550335764690276738084856799757687918650202107692183069674430381323726730971510403931055451175870414665267628910161309628881980582576848659053075217046423833585278305132182443372246131213288186690138924265079854696788436348069085890664340483216940995513640276243338276247277942571114685650504170023615876087954802294553004591117782375552420628907166096221008803336402082905174797288289632589829280485263386817196922741664169251538977552769865177786335503129391144532071621053433009652397686711880435889034362923733217689700348106103824378667149107648162421389983028690677369970955269282916770254372314783155741576073865051443696521827269394412050361061253426090378868278767389266744006887632776834642094517122239777467287686966851639212442423205989207505279381406269390949425753222871417728619967664912419148419455923451786701445602483219335477320045608437452395842048123754459006340240569604370661168183184757625520402277853924051946296167171236091370665533254450933682529935485658442222727364643959639210730527238730812192387188933157226088723208993185197833061392216667779174764433358240805829220023541641906445340332608260235724442515043656584968238886219148588312849734826595716953091203867149440840002869120836847865515039889832518239672637360825942965155840371665680471180413072213597945311167567245537223530963625540618736316434451813197607452426337104955580184552698375968401112581417149467162334352537993885945473386437821527631197616242540305567300428012818506269380766671252048992990051901345053654056179801651302736208880110163180676130485768111796167122010996831273015345812439285651146678498444609573998578417417697145110958248885637989732964038285680431971109557136926655398683101627099790314273437373541365992996104821090660481847492710036560867565078078670384751494001662047044999764992692905222350448769106093463475185438825017406625570406828213647567463672052104226100012158138387466230150206017894982530417867145491790016893356521123150867338930037085623970873215970378478569863213240427190265887899919621416806425610526563899638864363787485691705912959266195980186591946303536408097481072365308845486662131444358124763678624886307259111689509066541467774319769549062065445080786039762266578882706792811696651716763100394095740088612647872479358505876016579158655283166571441118255436057629838504865632630859294812635461362680304737328512185868031444765086783921263778426736770545146958046475069626771741914217067792720234180246479462363218422457313360713422255840679827198983035756868536046525230811824407008720154211665587330465255315385562986857321769372683741337518851099231679273022855043645651200095809982661987753793443398411068777207709896869123080423129880739904045274305728244777253956021064127936879946854040794419271166445878073371969833434618742342458294573572378077599765716503888913745322596708971406954525969843492493672267544408502574120712537939379711840286318006205666798120674436057633900814983104294819320340501450315343088437930604856096481929729290297080135270864041123366435874294278451138580659800911153564333919333868332736731554399794911664031238385413620454149914352115143673190138457016460863306523340066091178227879532050244188834003000646190157697613947641447364297815180864331808087165906399692005857060483108660433932614760435282321009029937857104564954763121615717003521497977588214229989688556613331643846492074705753561211670949793965997970729815016702750508945434615761978599721074709938667132200418444939521713319384865911431844236123488698668432709190294972089966282532035191527290492104567291703558109919205963377212756729976691178993736348271314682094351789812739341539145572564804414820316453797474754560970872033781174114124137690597474914698910794158077959067842842324338213924808882370847588438621207729010122760705335994603335942073249048885931663171543869408933219737761484559958947397529223244875432216480108890374684231814687375248664564221062154974599342031706806460643152226420881609257096566442106773204115665442255425452704457723726984965498370580592138569276688423734567930622009018994945087050873963664995056780904171109026685157973632852641219388741983677525767611140178453996317734671179990289763909872246907368186743870766209180688282173141164613397283728173068377623845956299215024689673882911226651206069258309945874036769850799761343908162735930025645425130582396372888578348080484334718854167685937685982664807481692757846801034255653877641470624686678010462711354689783191494665430886440613989974901751887859555598372922323633729594229116271721610240733413941273734063454800854074727869847300955235407075307471007401358301970072250826427002499281607129005255012663205808735984395592652832494604147561663975234558519879913889447047589920701995678155402491989377222839977135660470138829219949726530711898069811099729231144106693730934296392799691995416024722684740049986997402240419381400923030887628636181721586835176859362701712201555578049809824178158460947647382520218130047866781759254332404644371893602449731309330375902230634157856725937147899994749345523896358364798333890547923771697456880973015051327766132617229236463200593697365350030168513531034842990916513137623572384034205780946554369306995208615961938962226405660070366208220567033942166089496780729974084894202640774658096915635998369022820538325773493769582047985297658966479077884893787384654720527180382429454746105621952721344860258747287137196433650484100044664983156283277915129494364723689470971544846806615188787388571365852108768387965699412824117668704944533699406023281335832518774101968057554622601053148400475204681971859621465139870590291345390693134230199570863462586385640217542478816668334999680705822681666162378522587930587403467087876391903684789992374944467943471375257209525267694552657829408022300305756851121281088462355487063548288070250804930082911433835123616073786180727981849802572082146485937334521141139617992768623539525579428939048833953870635144797582586181102449373584958733615914198538097125546680497271320324070134114681258548723711016598621405262641496121166759852518460398469152060416616096745101604518290172292630995170879331383782307873863353740039848749799898656734560748659015763935499846782817250606537813792859052094364806714871047890077472516415465666588910714983344755993299350445555085437738564060817193659441991147215993454271816481110025631387922134075472357657158499925822847208828613837982979768641948200171377655072081852365334939067671329052461838027647603606836612762786917172722328067250899321488122624097106644358767497797075707587148011683884334662666512443736709243285626016785021047026596885341893498391392535973984015210373902452087562080183956002734969944976767341573202828343322011143897332489607383292531126976826793817948325257310449949713366048538181906967161094609242709257248763672140417734658045030032808897849182578924171571914498472707311306626400559919167853301416115754176719288227112948406396237871806302192667991049546288814826776911287187892116100843684422527326070545752333707810615987187069510845701616481177431057110769551254309896465404425108344206752241446909213960226815052145896432591571862575029243728428581629019671301608042380671125887486014245836953243781674243173309679179251245953766484765699723023894297955266126109860922404482629879118908483683735954970462536024995317991735009070859061470140254175769781002309501204619843953233979639164561420808972140838232502702467943848084154810786586891506151779678696570646072722040723512115076235284996649170223889896180522465192929516928197021229623782719558479900521254121302360954994464353342639638726546818153684779694574767675303633011924528342633800539779921450394855080937186053716306439744810216706471440615928828474049329987753314125677680207797402270084922005681988292847095144709186457897870412569226823055073443894697775702482720835029915232500537979539766312065776327695395311030891056773620148188548065867419381525525880314195600471853117982929083992454789949148120216303303629670962680272904774761294383259704341611993850573908886646128862108785063161904452341503274268468670099821393503019976524790788186404674693983741691871443495849429512775244634019846439213392599422059211017710235751463831045872565417863789567398658596379683307376677087375350155658583507469329687744696930380257343789820841404825520839482716945748233726954905501868656393117167879533252835210617266636371501375474681217846508912601578402586503143846461958361277750176852664354296174863559786217521433967730936907586634791934263279583324397932816243210039552056688209553324337054714026175509292234412864903740373651360160464584958361356586836784623352821286180519350298687912501416121330046278954713560912799708950527511060720728831610576844281679573054462289960861245406303896184320824381943546843629448712368850358249018143467826516246510044653858645818077053980369749067736323722147114314191199545551044967657620859996598424155454083884387504016106054342831529213610415657126592555805496897085990897842197757543504248613758502853269444160049554217863551875359226491795209074125653613100355095717147204933216050130249007869473376550580334858219208804176578228817238167046790039175988552021459049648306042669582922295400595763667253579954095592815612405436610015220289287850038489515914144515428980848190458044176169633130770846546008419472456818249719596041842783845511292838139951545636303302396046874637205099721070884056491749584933296650065799043247003001866942370560867346967199974043801861487219141639198270023915558969940904406904994182152109481253127045893480103492778964887787652258192307483899622039174669039267103283807937196845137934384209326786856386803089442894606107376898418706243182326315741487852883855748865258674294309511441775131651866169619905820731970569281135917475209951034716904346325976730152884535170031605731882913969564643810373083919284268323443656678570670770988495254075682638756246057582717019457055505212364293643057502974308757564975339605206944197362506138274951390572396277928490578981055101129413276814288618556683425544738965775216589290611567691599321516776349052756984888623296564264604928506907813105944311210038155387035109711664315478039079707395056704650674971523802664713935003880991025342010744135822248818000383656845900753817161546777833881009425108511598688551598489715174556205615244469184247293343070123496675548979713182058942607446073006926749542892153577062741830846138304263112253792794327308068765624736927294537775156355683073715558410141987337298187901669415223545646109348792364853446431831325443814648513721557060133876990581327543702844958174775119460384175264437827481239784547233692465063938555854242040910719863104652795648195493531264483377566058119102016603117425280562115137386371102321843741867956236822252165459367784034283831250606452246410445112565625522622659740253370665843814926620188865276121010614285189222281338910666375867194294460691165429242866866593636445836863101353400360256331434194285357083402949079396821117641429759917236647754256656449890005930814759546401211448817756267204027138202288651800991203657751065178153450981986473469520689613667998079602271216930696293227056320189085519858723791798346249255430186540400723063028626072219109631049521836827713606471720638134230261995521639293199433192896623486080251550318971412588141858837668367959711055111224763084618278611719881818263092415456509977759262051002514840916873657644842659824400621656054635029437208147096303067519550872000136049435627970407831096591321061309106601485805729241650670071149554541203811274504378869251103118386717466401839845737596404937081900092488507264910716027390174230518245404308033045241275195191567141760410892614790577081200319526790981834086097316434773147346202147467053264790646746506464403082317901034152415194195662241548796574719850187896134115297055694644626727595336556857417385143223088544279819799726619871068271245155860774859603164853158102417126193975873690565642545383261481320439249414856481693534935273629926784024305703812007737029504111132376779654896497130234834665416626191908072872631706745654704774656417978190944462688791590958639340814629206404269443323881824132001576853204647494107614575179873836721671500126760239932290819752843763051512033654336891871053021473898221235346478178192906722242611366917306731894206514048267132385220208968852880896953789114874182524630689056933518052481476236790060590754637163217051761313530575444778459803389683739858306177630493955204817090813897452293175839173428005437931407722596735511890251021388493173477297328667177192279932811203397909078730092818537255408566152117476733157139434788360761183550461977229487326071053733107338697057778142609513263729404999383049363067063977364709468193606308561791082111186038116955754590798851518354310375216094494573850737726930340933902623227004896488397305694476430416835924201058380263770598419101466870513363428824413172623982921506538160475818028604970710471338223093876400868961147378030889023340008427039688917489390533282593798883523082806535323060910597159579637012065499934043657395628337696865287375475992936739170396212891976350228223754506406578664337579542335591983636577966503493327566868602271202741502621419272350841907064167513760817277144610502379814745142742216274335616123171961796471451922639265046175534061867022920327959835721050359375333175873767135820313400074990838258903106572308947279971214382710130757281484225112557291215464595093065278333317917661013880110047706678456347127398467592652811237317938264560019608888801068152456482562351519271106947156611530673429927288641081818217439448899725188251582193286676864318306761426737610152604373994172382808215526007285594439262796431688503240889657318209963481769939871602127620881027826007468973009575879211750888000180075461849091305348071615151282788421812408203486550282427837433937408154798868431274400548168907816407786863500288698991531977182103535841625836371393160219083676821895958083972299651061687443943215704039404917446020321351960401393138471653904361165135150100530193079129202649128823137834421898335078313318228701380056410079894360391891901342880607612825504768172163256571556425467938318325027583238371366866271564201051678900948752166348503518661685877917134546997301799087957672559102147625136537385957980018865398843710850439609725723909950392286036996738087821289010730304994380770543487042572423018208788614221453978011294750739880565619964922533810308570139775411506336145239458489408163524559830664682853640696569284611913892757056924336162054259408743429821945992388230056500945573345500048850599462938015764495239007108929962211909098348122880299046059133897422983188024709349448726960743078587166969574612047840596780994026551521457265245053551314768142539741153417146664511243537844565765341743091485648990281380053238794318615774588029543562987298507742621972669007139327356609261025366344011848435009021678597342608567374504573296863183104854379593047756174182885967074086566698709275854149937899100872348533784734665633441686578883796074468512961140103589172548687277469405189845895182288374660688055651959194744147193776331478919577681372799516182939295166794771186054706896313836284252720988976245336923415425489446187440524077440176963552878100879800780984649300822693446471315483713388945079976336211108129054378935422564459478867503417737075965050745546436614949801995611819285808327860882789813140651779418313493019802100297933973711451193831100154257382196922593340402809110113794228216129831952479885110286996632305670327100792258266374211415140543740910120463717863661034013929176350690382957962312470476973553580897082930951487928010569918229595197492778554485392212125178286266644566715958203741913780019290394180533043721315456201525842399649187473930160803503833681037188253332931229549578592575893483679773605720846878825406630655278508348483036344520524159090011199695902238972522340441729650598987663843648947435055969723464125706944853259640298341403010668656668303022779789056326919624613452457322436491738803961073361221806147497176775268903759068126850851580019318078370386293369467407384085822669140365229274751689247960754832868147252436669419719110540052947490846092542336240071243355592622337361382096069548790612522085306542549587795684119175249641255153376287508155917145477529503308795794566701673556963037507316935090953006136993868616956749719037944715556478142272881683899037139971105067351814312122218127246888559246946039800967204282541317190466227433275693348681231106513028813541545441757844002839290980599251108092177067363444617215582927002709919904480117832979836748365838341094812313902772627722846420292826357646460201240853772229233021124389472100339796077584778932102750779659328048600929912692030236997870603351466432657395733076864697418227490591197841599577750531679090914659848492866975651039423816950066727672585543085655481309655159781054947175644523966132436558142826051706224830341958519848152788612354625728201428486120162414147141064318346499137003092808705404120795907698146401117850782154232315524457952853094446481553948472438120495285563100671733762266478172361306665343496278382396683739013073427828322206459712863202646857040549686383870137674858905580839507217994161754344062824299076414920297551928741532663036547154574393875511197656428804105487011284056725939230188278894612608428934296673793689041095651104304969313766333459547522228061188055211451606871359951119836998290484788706304278307190542411904602892827055225986351246584658923877537387092166997894240751469552413477961966434521758760670404352634845820603924569053591066543808629343173788488011433776294211671686764499464111338338049393323109122933851996194992162657279486183531633990597462776960617454616589584312546405859049639346934724566759183666299942893641849776088037244954420640987607920874527793687222176220957511371807926627893427656168072325770899301681547694167998611362532653196734009186979614460299270446005143247783183768131265304668462849843784130315535741759706025125132621376471037701450233242809483167211049365239918900369899913323084753541303174923824342174251994085427739339805473664123643740074772674839842544944335401370822395260831720864452729666257841305543460605598817600953011318355291390389676905173765294947862070080228230420015787748085460646889632895217170622730921826172189246783922089672596701228275075903248500871798946346068889690592630495178566969167116534784064605602647024429186598555611272887284438449820832407797624975967603965207529393725164236091244285234518699930179354549453566445823341955949816728085178137165978713978556531708027057059257919628412273784256923778093540721866127005388991240708639320685810329959490680928248560589764348479349648786061010313207415129490999161291276617887324091031958431443846066953340689761925985650994204799077729125543141681481279522619062015135238533146430059288721067782645480862719299006200234143836426195298070728278150511548521268488604313562312139892168416891143127922153365112293258871772723643563713873165280873844774029245909779272510721343688481463311952243082992334505033993964453378234567742381064518237197868419137486304275867980307806455735311877577761624781558076572143976089774866357100809045585115224682237947307170965258572496884393326398843654365216315894603171267650291159136763531224455800708500113346992968281846502061401770819872290436731344365602247208925581234504614904360687459278319166624347878061153651473614826740373739319965437447002188888788639983530955885015162182846680063678396389860638441410083769446173063514170437526957678761735433089489681093266132855706168547398579886442566189419137716395219254964361827184639171071903943539896290084890732477541893591617928459633161887213128015527194531692350481711887926792517149332555508891959521841221521485728217953095647906644623221695667521268056058691812564226126855035381601011582873213604679144045895486974938691610624521733505712229633881162432338520450296088244896230857068923043530152114510904315174151549582068059611991468490556291499615834593564396725392002309645410225297001361679147019437899722216754137661614319053576906179330507471960099890118660685035345216978772930669986509291935635224687009685533523220356756646080296895391608526452184832254991302653160540725421406588084727439612610821352939024392586347509334264611865470990224257284188024422537978630988757167862956388510543491417248948666327926368611721681963210020229689057743379210247705177253924327481237723897157183702267525889097785856159393153960323962836623715966953439606246234988037017291894608029922601143026997069567375643136769582512159344638327832383228181431107657850737741478143348079959777318446073889711400313977348995354795469172352325488680501381231433010645223668644067768037115153911094439077448931884001859243549589948729948774504612496707729597486347441676553603882241754643918123164899838590352369492679824822165568392705284603904985116701944897981823102318216412215725458738281410804422871799501269591169332987784193516309815527860314016955874082285477056734786315615680901649645015246270102804131511009998969760159090160065511589619330310440953685540970019821066497208204581923142559652094406956643832688557116005042899383224251020040290059083822974184183695193343646883170082125790774684047717181409148508642168413868774396797397364488234747370739240326825692554303316016473670612656147315323467791128682970847199511862263293657260350671737747142998256584678383086734173589189428423559513793368727812271202625031436865826803225982545496599757649317499865450937116898579660300538753312740783272396156531925266873573715333004269752615625649028937116132546822942395087934265048432324036843637528699680526325563233252341448764420651426596238342242561757127354703114472845263315191951649024936574143132756487855319942729721290469446859336629972985468338249425315313415214632990432178669306814740331474046654489222445408124560501669902669183251883836236703563992367888710014684031484499177717223392997434768735158159510856452279783331515638493456043526070983960407517569669989296780373347386446831827023809072171795277638090632677213172145550827425221937824254903718516476836640631618612396267135088242387856201336967358487164534249150751516148395212625041562594475416999301998571628533764329381129278051384493569303502096364247711282027177467072275181168393679753107302180607390329305709485060969701152217226897836626737567703812748173718830679256272426976690099566874530804331556906359095017657113387503650191715728199371119094393189490363666179872679187420868703639876789524070193268015170381942453521952720021785014337010335955511838184761498845194110647114556985243423317910749235214898085297033233187237828676663912749283616068341950221744995145758878365186597702740692031760304206922495792729288466372653512579373438910661837461495105207622810145639933586609389901396478143377861032473397217738752670191075858978139184216585007705305452151326132323634620940032998116531747092430173220309835117180344261352349088976456867422747493370551647152014365454697769032014160071275810904395527018746882533122933167414342911440083453495278636275371213008310062978449080347931179949821320619340759778985452389422965618577345453554297289596007020536819887521712995807638501946505079253534622181891846645050502560701581940758055673749439137138460138082995727659984344162057607455082368680163133166688149110383160971828356420459760339683277200515083867773358451502880681759391921491306933041784965597260256159403785798217919161912813621898993258251673814234275399612760049646012149779433008377537963536698406858365073389806900765557631095187648247326877441412068486161590984802307368986035979401210476793098276325509064166169684869925559544070500875238488102898047449608253786884397372652234264589846307442201041029191378825103354135761904234979947219765055218815847574138530724670673089944736578872544419584853006168995153076505092012190221934671754460108216318630349044333439855321068844270626283196488202430779779367524517707110479113086406385550166513684239439236879920930860501517354975945039731809876905781784077058709914048732323028117584981021802925892536005303459230197280030203538058453651540393552445793268559831817282877168820629480846295233943223611981143181299225743459298180838600879180270464656829129907729081808993509284319453819530090496326337021205222794138020317179788660474472616842460992695992452086762335383940595220195709452893875105694289895297007739296018445767867031937445372514098214523681690895187661010194619826842112044810277042818262010117680681691665156647509739648550823069281327815570957778450123818032212266266277559132805176204634005076800385447238729287786529185080869432613941299253619234257504208369283521815159754583404248009334313437585644257957301300945370597111470691954106914609408305566260822390447225216202844161103772103303558218280081952199307171083230612006617510586940924521227644494712024014508148214287797269095187579339798104176768853121398498892649062311423591028673625310122188924911761809167449248790601323242778033133674986002325770413798339881223532707911591924247575252540121716710906420140008877727181594376507962154779877297311532223781704212014265771932806298976565272975208741470107092960216185221280945299893857927173588713513084252298795405940971019288451215779661210994747011057359518493528273002156404981557842223251735477568501245437879514622014349111045353137539018265417560883871199504299181340185887016124017387973613565719374934874986733454215729168700446800598842438464375456487214850141896941305888236656501606756383025925537371035486086072555261261412039456384131132410274368832275774007877526380133881406372801322221205332090365253702501772739675393950557777137689729156321149665946633640218618594459943090449706065466317745571321722492414970497016483537285703665350808508477190765908374648068061725733569673566285593436583339035594339958278222178438675270223414416526791749394670801604344386610090218738276789767139364544540218469630728910232328723210592881323862707408276506039202815353277844952388362085135895770829858807092557431202758585709338450591846172962307351516285655187622918986207644146183013091892258479553656738680729476000831673469633364856022251821414715391125245229119524871954324507958027376065003150849621006847895069381065599893483635477065668891691932746918973550401585639222918108464980062584886202546377563425763723156787495778628779357290004285624166749584713754168972743909077362386205377682889942754678827303374179843108025381010251043385322577972836453763538593939670468357055844074038797151780768405108969466788742334089984365654635818475155980170724983780815135347932987585376071954594377894529050416422529494625604852969519727306907350124378692503615674138986307163331070462297050594775941530735216185883837021272649922504522806569630280095889739474208660179313373927776864030798358780895167647417722213292183636704713682377200202988854178470134132788772876492717181168336016384360920546826191165511373206547127649797348151273464668462828810925850020237054987659547782261394404345248533887311210872922572470313890512835626444743973502319246970165717761085457475476503365358797392754786982424457340888357163939794428513828344783321362390763566278246887706460195578584667283742333426372095486107750506236250132979306452431839351028853401849620133061608685187218688071398838524557037730763590316923984346665435163331495439900084218246533495550463829382352653293002148796521390610395717356482274361252205126813071181983661605896465558053982619167180968878344703825818100787822811113824489978631094566967351327871384525723326196500626494024567214245199000721010544949020840071118926108360622074798569925003132843607134611993995014234211175170195599072493086856805460218619952142465125000050320847545617118239525377837790934626076993810736195824673878348814226262991328101571265539459224764225317901992133069787955438643871636577112567289003875377592188385948624219931066251195265075866635876189717700154219764806623141299075110948719926612300592011197182512478097471502850945516430719381523948785075001575275268679879204664610114850715081664440913132092013374808464766398297569210482692286745798842890683754150212597208117608318648575821937661297161888683852091865989067496367357300160156811762711909790334921696200357803656024939621617059660084930180977469554340701306021514612256991100387233071014383155538544725391655447167775676887932900738526286605567526717129741808108900673263570304205226181644707879408179721537943394214245218965858937709014640195231000547378548613873612020387120447727895171108077653919450842416005038848097298212546608714993077201659695555538462463716512087229906187281168228444769890727631266699260008088340104132691865010113580269122171721429704592799441940105804837778084114766891290543618822358128803350658829127718158129933309741723546057906870558891871905877667532154319113771299673198308639094817367324693454077657932573600784422992029953817466432849392747380292327610492343978178421464935666485166514642390662099739874933046178994551007342515942552172657389447795050582672085717178639142768519782496415232966061054125651250091786035943377653419705608782730379951356006974071064083212546981203107591646049915320484006048601321291128696673720407928660957424138682949962942974706425621844112395678041025551547898801774770254255343911930755625095679669730153279666227840206729380001435402708830827781437205740651410619862355310812270771089158938921463797696028273551620377814275561969008659143917531438536047801087079802964807607612284448346903125939278480740303139399940463035614197948584663672093207938488666697568786693606135099814652321116750746071374510904044496252165751575641245553830984515452755100985466024766201881750330861066842843204529955962915790479950098821499207240335957051857756900622004982887620122467391854730089976886316352177256781577806648958271389769536829655172695622483569056267496159260295406286804121924218182406663409698242642473819653747194875909173787980970954827985572134245493376285387139053409631378396962136657474103427297745995928686234276398268168776323719604212924643265092131113522420743862895459111628482373672747009051883366264354819216558064336699460491156490800096535671312149389308796956219731748823166794901364901389251809939514044415451732560889569460313040241342603869629639298320824342468635118901004230096200262049445496257156496717795769460909642235796550655009477597609573100563173246459930794432166679699394502437965425609601870164789735760516760859631851006101660360731659748990453957313290903526518730382830996894879603816539006974801044127271926018352126978541255811142281550480247523342822319287608547065028392785385257736726561956850122780383586355649265127854645381739550014971065668761107870852414217815432221153949301214637386140159256087996999197275418977478822960627487987971868124309887850471310954215964066049490697509534426429525886553731587450512428195090114887482250800967202924838477733179585039870977766924740702434409477846323924246250901505460001803497869276447759910692605561258532918321519780412536004128190631647268657823459693491318013653455440248635232386474599009371480782805041804321198961593535389800370909827924636340621882581650292574266645593766103184822221714291705915383183356448471389684839037947585368769617832297559456872967045418908259643018248097583181991161085556213344734902128566967849873160232370546198226667359899202034199570064184792919252718049775148995938127298909885317050304019285246444572183624934154815436614014786255489076315816063358686011587543605941939609010411039260160462171060822632594757353982378890371632240401501388461534714633974478717958932483915318570938401749528928688062036660108989963238772880202939982791220868964991294580931033010982823620490633784773116161096875229861960086338354407558373182233450486921149629922429750000618769548384644026518475062211189387704763637529297512018241900628769224948816335292238040114100630200965060819796854572679408094214767170720847900269784638312666077997470053453473002904778566728362133570955935455323910069642131497302725961602527669885024348670000697130038627585709432673232736545733566562220656052099247623573201364229930498831749323845590965628288897793739549505832434801435496638442042387073222787038997152985233122959035129372532173656577372413051881387596949831121048789051751744673302447212122659965066253955440173117947181605954779523343791686414666172952696722515628771815520158371372446383371569916126252921883199583782631306328949920216731846668001445616586444200033823592963801863756403860441693483192815139471501789697950901049104533459836878846899861106174548732008685359277487390111829206325853263580155465064349112429007124698168055896995810759795804889346716095722465146549190737140306324195126609919376973720075535180607349546032609061097759436464362368220084631276358486032821205961133333544596999977392288055028975131455170716531296011454696897409782805587046145316056695384470856858907224082552058625278698961491109803330896557351156273025977494694900762687086279584499622567669400053585804765944590475924288169718742853640595078012899809958438580283303565981395704474384909711025474371409167196265082641446273792911503577749061357273118161957002621027871660246107309127924324644296744429660057266838846680039887155090714730847633780438298057307738790360259965547749171242405751700642154608689376261072531420591446355492712683440172149754197216354477678901939521338676518481354832446775209359419937519983556438192135224346714316879407077766639226975254569528094387406851856061651416569353417297360343731510782260237850886332742107593677130647547142912579985047887920487944210374461928939815639244720736431128534686021089413271957540000495239760505448445333746215987160953602200341838478550078122750930405073725144609611999699382866690237465723965516232893566993895039991542541919262634385295598859003714863184455657856009114295776515429635375868539055398594289374526206899132554968551251675482292888123043325505370511814521828914400479643163334475541592914606177297988339536160621230734428438092730428908360277459461964065904797428717630392343317057361597329540715215254684587020948901906613121342429377598502227853501473458525923232342270455732371018557595981040266158428131274160561965119424720342780650808795657626683297107929021995642160505070463889633904728525009707656979623769022985426179951674231275574926216244723437090812457866772648433539762150451503207471774789668025937022677503314208827166566909454616535431215759664324802724867813933918983745597871037765344798556215989528241353251453396527263758716569132523177044470883952184445500891190233700524767966676495077572753323844324939067930510376280786808404153376425777403426278394055476658824249459306406578462993175195305501717226171227613943015915351242784565364642151740205710354920429058871668573201570107413233801424413373827094762948537173969627781592016127078618719127013377600167351445511910109530557226571685693757120448506038620350392210530738693453095190248000436444563750258721356891153373722202970022041676689970064668144052776593051095160494173549160589047894126444986469829926111674265902847948748616079960025003899397969370729434238816721174442165174835991567116625791645456444635657878599218919790212477386195820658225622563732094761215765807125770051817371693379541326181518632238281307036185498029176880584433224410145694794683314332520543889515078175773164669506395168177669624355218698172922796802203508060724641864221087721646598744182569982389700821152382217522412594783992477694824866016203741553924369182151149396422171361574113857061210057651592588465585094834658445094772660732355422965023029444443450516501854593813957596860110188944724016280054924335070052276632356820092037035458789146779823755684340178706028908291827214281438696934490512902219665164146277380953617267701066653154379478928200469199576978791513295021076822045696817207596162308210456458230974808045662050357633586663873914001362780655037715154145541698967406297591395249193049806230356916646072676526599608588632425354211906877039439729421751630324121298984604187472431269461203595935712003368178770078365730010877025879702881628917563978964176851967979634012940978884965047314795626103832396094799186512679209373105839562796994280394738138244735837510578981145447813593850356073973215745190810491198702345446879111521225719781140517858868082433551784057062283071151273692699311373128373955260082644180313599928305816302655440379431486640300221130394554783246568107813884747326509209629297257642667339546494048837408830171148661071662596902767306348634129442345162171209901699755246584473199429476310086877757617726682211887921761814215310574636969778526136896003201657052266537462956552247233366153687578506365246727880440000197694667422793541312335916788214009638650842918388265740254620732407960097535699647391560377732372967342291920291559532048049107723468505470112987684478827500870490555358612743632313674543198799822015261678658530462519049986149096714500556879539213361988033312247849348523760746718130551348556606219359601899034908991827279235086921240907164762140205105347317014939442192395458678573224978757874683335663718532214856421896718234809896021945686849507163846795445021659462723668164877191972283726226364403699920720115853922381560967026849994564813860144363252596231764772229155661704821380527869141238699311901690688317053534862792351724062870009418747912314563696411534768292390058316163172983967627541370984394447122840496408963805945552474813762245915386412065651219633085682143176570165669474216238393980760899636302657511947146563798937741418662878716254914559922946482918619861857035431655875038840903219862790341109259545217821576749036804858644411620110869692658169305754679392432050065253464439844606536737621507734656947034955553830861256257587525713534764441875710334155075728852142445188735626992491136255072624421561007191684446959492126921805464103493646410371560097487217764752411391629471339541171995168212048255931712142648647586538310693266755897688060278445278358648589538153013941913016245811978222584019039671677758942440479611351755859963701047966235300027936352087676340935079489655464133737761418808278439607396976095516898486973253804290814175059866875771969270863857655085906887704305672344481622968896365321889131406122240639227581427075102506337128021944591435583615443627948366509988322397766094731167287749001881203795122429190776390197095560171919844713077851428402613948041793042798696862411345723721309221850267063838972300176913327898981425277980072778385307399880757902158568991480068612571394992495938496801167272197530118576090388821388622978763101940509612669231328389263877068854099312381191028555008695168422625343512409097697516071657859283393850121404222139452319699239781035275646824497790847443231856470670373440271826507410970218363603788881444859552048028666002208664284553330473664935601186583864855827141711005710065121889320910804942566683204233599333515635437740189696568427122330656522703643129974606294587964845045627549549079898061087195023503489286246905700896748549525963472005170439575231540837130533689274105966808156648972773980121073157190108185646229682756137963986171529692323422443880865137001179209444425716174752318787952301916394098233852913171267823211178467613975190766812754573460907213219582353093598833858344853106182814761846463162360197590171724738843234588518986040410532638070501495290195661796143624868307280706744889144114314217683427098798771163406128107649995536473148965791372894550841342799361331798098546043283347234901633111038078873802417962326487236131429985237007815674470775754355272227947150874015349591336720841257441993263713147026190401831763926028028917091870837218493190985751123476805486323793715029583857650128211018497502720695638470767295000121735288564798409803633239305416498922524521758366925954338827726855950783453011715737589217165299464136149528376350413570993110866669695657765884026677239786036432202695511358949746813091345863858506355623174421725917680719276717596077079330757495181852488408309766569117103586845131210287650077291304884061017382846365484258342265926207376123364472266625863249468976212709313777682590200873386175409164652316255931983639073356544787003948630722929823721651703157961538622012230412005232706719045972464675384247652850489693329287926761452014397758761545155926312133747412631706717040089237758506941791658354857556037655002011510510141229550486904381842811417354581084451526064526012479860760853939195576982095753981681228898055904363693407284880453009139405848338449657056958826375836832919807059262163379495156720173865116763074800255096765587806632446831053341170151500807645103246449698047879290375765062448770241991479086572920963770559867679608538464769291611784292016436436245926551528343704598238424185801354482539105930627472578120910601525938588286745701487713225430007572552504276814536277170068848012167808099097696245468723985848933844601545565203455126049103419727559617629861427603188460383531639210177627623262630693544337631647270754506418692813322664820793148987319267670337938957971082207561178830702093493818427047137757820595361566760075658040522415855982389779743219347649680326278054087705216884008584897873947777813650191464871870708606815297979984401570008545965359511690464220179111535922363116185037172848109483019040454238850632980122469245947130356388510607312852544179239605025008130324072109808694803364764373436649837429998457615192634047927714073310052061078916546965107221353377062626022517712096154438497071960960780411206852209629594304000366992403482659538070718041329848399191054527806113911367882607703318898781264615014306137852928159043722666914166290273981724123711205091725464379563704491852762553347866680553129600455942966532260014767785481213473126824846342585949517373491300996545877104556066197394684251819469579337875824246342531712673304265435097200271152232936699799989042429904216065496781593482834473647089737826849554883345695667831815794193770631720035392957867754693963597289740778746411459758780862605576654944373403719958658104594655030357394865946815652309305065643731872271048681203253902102738429591944186803157162220659149356812791988364369013023039234162533509811853424870267498028208242997205376227689911497545638164592015974782608899430336569155157250874837791027137168508443403626088386879474391518607652839839315331620604466699457120362544858585862403444767964529321590741155345011936040430989307302556399272233959703644186651078152466854029755014135414488672777850065373001730559478538680556674529828083368600972873763991296674160020353632757537499272096990235201487332479989190048776501735938257052493015164345984384255860869041779184958042940207074339324837972330897228248423420588941544746529834024679919295868878768393371151605843105019412767774605540954366058835016839229016076250977778512564703252217966445632879708881001196859293451846594684702415299398757151226039810217525318695658443986397810170392906729698155460960223123752246569069641982158898838455454182709564305677870057449525029534025453539658174273831445777396861194949289961810490252299015123084297325579070636248829094420106989283404952937529670984321509393185200554898788345951899183380456671032000442836388605396760697651409562203289928865798662514140715873560848607947806941757051779233014156972281534562641951394678804393726138678422999472125218650608864076532779948391021315155227661332716198594421236722381362538008261042139502211301959975791695630884156262326624545720558637683396493779428595838957908728665845474094055142328659835594288817160621045431917384008224861538942871853901899946463163764954905527945408321814506612659958649793182744020868544006919254501267904871258704089961154879669342428842028149189361675915097744333319577096835026729109295376167431394172166467469350948957019641685838800780125825315649369149310351752176701581269725618495652478953579518840292305011977128018209100960554028713100776961140559357071148958111477185576381960468181652067785858167232463406300493905223307046846616413386867985342417431122017748175139540236652792949210213172866607684713656684545084758644071193924921946695112336231657222175815419169907756539514080281330148763833128817754690320481202781123938824043510865837853619522414130653964069971377166416651264655663431116644855197530964254821027217236179480198257631272317339251978489291368696735586666926552685704906806282306737090034269000724998535661389987187956208665531779003326159699457755409799658655318472132058927006277856637283990362937296984471101308912984155250663252265135831055132561127054372178710437499184717001000036775345801139443391418038690858062663039532090591644967342195239089078562911368948572878921327767203859316858597966512790866297110135914030525920971160590262383721764227806615292509009180709354915784302645885214063659993718381121904711562846175883802541501472917109494209314035610745860580505830879124678284566881615086195502089753584194847098927870948174636787669121303260170365226362073331233484770244879444259650091102327090558394387047093890151440397046993572850600375462018736914872695868256707737228977704945228543731570998419613103366318114626667941702196181587403264283189100745649553327387208344416644253436843733473296210449162047810304547114383578737024209188503809252568620398448966911400296432131999444207903530353463910028922569893378376156050940368381539268086908913515868250150752581641010484705932343798896269194521414537326462217446301304382669482790933456390841179247223973832524269653173170353738847358399826109851298299650492705436247904723527422993360180681316485951200852559387133787810043168078450803242846596706081323767510273033207066477551017421198304702659427731644475199761258340380906732992583280300480090309283718084791886523631428308911546249450312509331400929687556895004079618691750325363016692584494629702383436583409151206384251856653250730871331705840148036861059218401300189013983039062858157926907015822801590402489777780791041951219158751454087544596684871108670200363146059569163851790602583843081970652013363604956526808301351788359953057093520677448948529395439968176679664968337977385576093646626681110662676284122111469396853133949721477894725440551139773832179314091060058416380349701780391819012018245092854803167088474205198572462036337928937225066335546258756982431830640423738540438409386869568652223058321625138929092923974381856498509587860270089246265347986113089892006521512508321643161096778241937408462552653770940421488871853043326222153594693155771821593694928654496715753606218941438765777590620346059813861182751385104272827881127387154375321724653778670066177636452964812428035084603961623444077181326351647087420966855739049632840356596866794237640565644185100712269014488241426619040375081503434883098344386707175190411686191074378840501045836430114188460527296182912700764391139146240323040661094920123454444587876912189958797681975023814537805227240286790432520719626329148177255974584625592893461153647253128482777878909356465965392458493875354634045359880546598067747172094213737052730141623690151557317120753336076456257304540995284163075859237397385675999681699192611313260697529480476297648088670538669805827804087098360211842946525828337994172770470066578659285260391917954070970993971297672914359353789538526501837689881562552198209487923166368220137388816961597657873707540837665992112651170665553612562449214247471411877718120917589116710789662053023358715185129134734815387567478281985939099645067853410764233718696572624505944913318009485176724839497002569947225753835243957507390797164407595406177890799470801985345546422163684791232652913546794790700972687931378812028346023438860906522273952865432943161760086029391625307492815995814514652787979991892800085824574064502720572929729441286299831320481867938774918611962164218388248276030040780816074712105937413193752645161517695549674631270855341310758046490594112223348907199757499153097280824360614308551723703572063277627508005684438836193086821106751126716762500379611382149283481510853302470133502673391601412422213822073089753157936429896310941495661469224360122677563055178500417464731596706499971062417048018592838746833416156796227575129998334755505988032516116740918872884852555950215416203179525250897996803620574100582610271865828212565307130627524235585143833300873241939309461728566611327820719639634154316878461402395129859288890023807978791837115496586931238852197083650663333618872357061511892486346844165398747116339634544919800351264130964329567296462097778864971206973980805287040415639775747552302689043625877247893269014580734242051696932658407043732662800277321497772286644177444123000975265489657923895424807501667935835229413259099308220520100769061916078788318938806823334243520708883102240396502317741288961242496075878694194879033507008111509575587613562657341820110292062892592558214117112462668695145398381557422519659088420911221020780555247030173918345593901835518633253271380668565841560117751840954901064696460584070916592126099539861664405959198606800380452606266501776480925753344829407476293466777509314731404685694609969978440950673684622472731095867947004145852417393213499387797893272164364793510413819804468626799449525098348316032363844929052543245601899135756325434206150003060125552520833724782511389001414011365257138552226479379775004933621505820465886123341301274633505324192718287377568358581966334815273106210257652255802992062759901856889851396445858347568104432370628429101558194640237913164002220225157104695402616070987055300132157344451395137122600129372804521416649019460214584734788051032252396206068706896212757633021881270313588256892904044302700527018945264836068127032675308059836200385500081919873630012610632319131716751912024579986609996203905615899208480929539917162369165510723392555206132073763413537913782398249631122936504143789172172244450589203854258309437210354290857913895790688393155830566528105649829362319812912207441530765997132050498351973790893304472057749926556353584253492814042267730012220063652385183821192557468634571838785275501847550843730193383849332502893876727279667893754130257950287591865112419460061543195009975873031409086484099809231662268933444155220905966294777872212138647198972666690304315350630474647905289009483315236978509787347219087082314889982744579150871760308069649473142083215365512249456198911743354070647943545121966310545848778265154364581229539976377668557378343193866564807002650442712888137366187975300339200601269514865240562663356227565598534857509358765650186118439128298673189815363396985529539219457947663587231215672402292617094221205051191623908011471643506631219328939290854608160535162355698016785318771061240133819263976273499929884529175773785057901429567632700759542680326596080828898343263667878002602115337811523777146036242044794865454759530846253762609772340359422679233295803753022545728912946096494282432037069261505741429432029965833393572403962217769660210182883624280224282203943473776652931697413610504162582031837512305888821974262453932688724491563401690895323544676846489062974138862937812679438362748316777690337909752503622416213864291240984519273642433485022372596881056390174626083669033375801901607854367057729766811587950470691709200254534654224770091685333743212348082511389567222585700877187187431899532319263219815302110242151959193110413739695084244704625553500613491904239512360476233488184330808378077463452632759406905021627226282022105646788317616207141936651218088122407847940559122223657785423519330433217127796316328522378675708060260962991329533354618005537936022450669095484383303387968781994071584267847643658262853429302967310065351786801891756387021446863211417183824512595252375545138157624958863702820025118605718052545078504576238009924499297224099647088389171674280200976414536259967092209347708941652433465645174333750566696646649967065353833612207634707910738972944701301743717369242028886960840884777265813191498971273660410305464623951069290179879695903522832099925990736522869690889570639290740698259390112677198417493540333810095972020428998393511907059849825482893907129072997873141744442753340170768144854059233069046121458355645542386005671439135821428176303262303635700371133099168641857492094989499611697870612057000026346434378256664202987326514461469765186808454104870344011494721456408874001075910656410439396385721685778491848752502432056453662905339742882296284872914677898574997077236267397028292484123877174483679340400338070214819817392068477236207077968128439457632653306509649740162177021956688233478524600671906310468930784891558650631322327724231924445750611167748971418238767780258077023660246591114368565064875600176492372281437828865382358824811352202722534019787831679722234263266764300912398645085550839649585959044829395321838118637728793045379071470633853796973311053775346172505337889451521729293550658184504034142550495298446083038886813384578108821034767557696676073014925411945154778272597101937158566175358683989255698254509846853408011401422299179636434075111281364752236046055452073419438927354447301712957398154962473143283030504401716142848313011756792912358997964292656880883923929181936700503090175277671970936965250951671408029195102386125042537746535464302853764015199028086290652300244325146960069038533214968269204172870822238299546909153978691260826490539187454941354755757478013826668941928337374274566131928562472454398700948789041805100716394664928922483158311134186225004177247627957374649607870624450160849119202783006232567061725664370127830080503474343613595454407957464622670953932986728696667634584470880182089530795635984396981130077243583523382661459288557073406262746980470213703129346721993968965529078029607939319891238499752919920397832724214784045212501615092344328867353222479840199773141874944766813510478943409978222433560790197534600151561939227870927726017025321029221050202727361569317498237199524646125738782854782424899039877650330198152835244866902140205388481218965209880467950323717450593478972091503150982653827661296612135711930663747421284179183345724149236078564042079599780486985135732191737267803422959303105020468114911054501260715362948331809906421069409435363546323080674106808020101289273066051193141661476875306744300347358659647177160316798998099271234179565043777605470417671007041628316953720318800640179220708108616083872238334463702376949618975247361299177131839933989246897676237049578053769336661848574706990634750301923983994220486851045244380012397845405885787495156374413272491380815827540411194581093765342004371544786162487614001155389199203883299126687864864130905713418373070702831387094986531610852151278600695025650428136926614350513500412169604287311920834717755344626132832914468143657145800417638179883316018610258755247737613124602015622970105200914295872370203741544646937636422534091747744115115538973569989344608907847711118379770573500450207234279701634467770268204702480572467241273545248213900367157932211000878551530927618308699014157491488125937395008059180224982365986587148539418925320664131133146605756538919709820528971525563795823395657946350027270345450840153435500519266911901389826917216817532661985717310520728762259720914593789601306614828283430039170032154311121507228607482007957256136691516482336730612092762046521079809499755385534098890877437547049085798765629306079656617334433685474448343064197839475383886324968834456712910188080213571084285977451167872803994906948186827275335858791919325859936287740673858827610795949873536992749069333502051419626198613195707389085247842368571935055546448388301148758507000605041149832362938058866751052736729412166465306421060829144547614903935920699882910845811894088275250297371828842311439731565070184899335035898051337953027804293433893784478098214582980306044722264736258532596650118219055140833772511715225405002267361203588172654209838054016797194695355693853603156600315695534569349521271947019073290422389286446155325459889035168694937865010771625442367132970612207010731178843424291370542084058007858887216837609547076193219340567743129668983973497842104650608640737118947728216502613869521376682714316002842079309173180637125645116596409595946321515174697725577944661249622114975065446361583442811348390616901175725753473313814245747074722133167110621039382340908288465243714993620006457916742477525053977149666980140988078898075363455814914294636552233020662655056563999896065268898995259638339573258019517534100183035621053916629416798447493480418804738800637477896938626963071237204161330457940493373628867110997540683146460949364397547615110575481456471483424839322129411688692420808974987352425704156936186652160914162463540067379588140447565305655763923423398355792693996213722412510001183834748918131308006684256204834611248882439031786237072954628025733682518002301203483264408881399996744351653938073003509120318373975397217859895882129163206565255318253963308659819644737441830153069827272137818222918943165714553194304013071808106297571706651695936324794044485433834316070436382914334280077578170681776797129095049995845635000313719287591875912976281569244509999655819379131814240290516642541949285174691101790442829274897158223572514796056536137281718714205776271311143531263030870634340073721245906079807384346558996448575527063407435051074684361569057631039947707920415654573796644312070755228225012975654114139890186474860894477079681872414366187628864428782653496329974329912113087040083895713645874483737568201561902709291298524631953014692055416190585301215224044723038930656413067963919164416865753282555837987411911815835044894112500880965467912277897308613186441849282664203428690621212144598006101717662432443306715440337742308708677250355559880236263485457295338462199443694392348733718758198314263656335034587325571889896138186135846828853313379873810311404388394438662482376693131461873214852871509144959892394092690895292727364118684417107759359410059868832990585020287350071444505189955338973790929403321578606009554103714481291396764700819787191973803437634236985187181089011015824656616107425402437168712019688565569719825900348357106892205518541290619312361208354844416747102667925791865816468591027138515416346202287213456014974622866406174106842294282493035974809605264383863926929501576274038506925937429638743556884926326560496928357850383959434557437834759450967875038752001781044579549178716620662961555382547742377869934019809634715400116726793966700375765838101861721936822054555899707970233081570693182106719594141271826901617525569791124996432777663239421908827690992062700148290340698624719364854902159885535619170599816261683680774236511477649278421882815344958967272908138980886549413444959508209692472009096644145452071668590359813145800840795179597078100544920653986487122397148822394078839038214089743709411946738113892751267226076521053848876823559545479600700410529636565728223615491040654786272018551872942607579619817041138929261524676720198070098239472494818032252813795289912930203079761118524696037293897436733232159831100738649309115736896084060917587621475289638282321541515786927825561442673505313498453844514414448424595744215147748338826078736508921970616769930625226619710531108341519055408845694498145577549332575788657312471670965461717304353162845931390481140639415044900616778265880717056095151234045922564725350661559701451703360933306880908062508575962796786537101550540472705726820622744879095321023553837760755190393608927183553238439369444596105023162959783008636118993625001651674214323372517943722106260847554988086049893030109877108179675348572699825360394963447224703401326635662160882874096963058605649790910474291357715951168501443117834280727485552671914180767824519419153425485029056869037508286867811029327896236786480712057953178571946080665684068995423900245869439583160733340910747285905461248414128456592822349351021660139387828269361059545992931558707520810522194924347115848361244563915439377508626040603639489144167676942582611721604791242212319723460698634180698753647096180403814443380311123437921281400823998742598995841960015136652586330391639970443233361134911946867867766878589600413933087620320461632243530406351137398965438425434947813664365091030819847259364345627302035560214430139289828610021155630194979033929134121632568211770157923059662771818713220689823037263181728022863696881159098573138679665151973083512441511238243674383069541829647919621220448739979616008148632255601749268770910034306739755699563262131623041365263431546381937677361757849396814864724801654080679132078443816694546539898374069016680044948104092532461635917716897916781762495381045038497485580775222069596002138610249157292020547716336764941109374857705362191411800616331355652017900329058634531122321002556293589675405041466067803858649858008342018290878949936771834226174002464603747758367813806166481501206904614579350740568494237234891787355174954545564753620192601270124271927362588578073283914000127491836843110633051945092590109018327166266188711136559498313648474926101372335133431461944445446998188868545499162526060693514660690996599424891600973889887793706602149242824201563003424212947934400215362446519288525554537272767265225459448692806534943925776709879166234253567350309502493846913063636185706084143429374969406184240554286020806814383310733020076902177852429486276269751041987471291800789645416783007814937111841925157880437798918959858976057226243010458742316721061200150688461758276943669702732658007281809071997894619823967212976073211739904865010791599832467070337601291407922792297264673117833435665389959467926878722128532246407966733155981279630958014648568590061365573104461616309215762171910546911450157654573737554665104124250923461474707112713247472943396708182620818859222341129156905113558136153233810557551553830334379706164589761717377409660057804097817687472580301481381738918915092433814904025657321154374474319651114551848099310626749004941280690989595931091320458118264525394232833228638511349179914608066798824530146030750781751527565469147574365294426724150994755919508071687698164177139234153599390730578902537746169873850700838694740177679471532679729316693910000524431224226464273661337882473636491397079186151904274329768238212811767912122901056921942231333012051274459368687403935186886129652385276655131002092119650157996759366618321384329474661994377519417551703046234188946272689608818630015239276216011729327441313965160037994642874792792368554394870144472613238477473455052220238655902960586793734350258830551541923755514350276789560541185564546768222572381128552297174434460335574427930505623366344629961525664453084157291857998118157184181356419287147067949439670396072203599247125278544014731028211230501849424051840296642665046537743147312089810699832484290113756949719354188365681481504938785198784403985137961069057237017766095508682846954632950228557368316360456573974780447457481413579108168887622825256579334197710427282113602762935374102191980843278289494204077980675766209013212271531225498167147411873325928328557074133077740123790593072356741709104237652272956246107423738626174717715248147642379793963394433645020033118662700008315578409573154227210587434340481899043734528868327528764229558994264992906297678835664071508865382268962806504418148742014428604647878628121101107561397838362914619466020450458995853046939536651194381306829114904514694733449005260438309811066940541229403744781049909423347111881001522136285348730780618366637572012135215461633284088299868117392538232946123791266485914472096248065818219092240504102326690211642322013761276597374399282455846808987243207828885425832846252242280263181127339938283929735995175225723303600770113429728564262166177022053603705266579713565639404816164685708136896206310894554282377038983320293446605452463098577390181721050208296416409501704873824035757726166237524475131013603590094034475090685008470548859324369251657159442316732378248091415405532805595739568563916326317811638083756263199183887778652031990235429062183054340436492316160030171916896898897913710941483983969061744631484441106878103280112631603671185946183398232000840070659059552378763946864032928257509605343371245150899620487673179493942605126135961178316259798855336724040507112954181074598390582337039938396194826532375391542045403246690183627492161276281159882722302590006259092257991367540675006772961152096211020081641821245304808786633374675113840273429154309703790099806621672698088252156791292940621741599256730132325647166641979374836164845032356308471347894696522623029102985046534001323522342836596620229557521110201063177317733002576313007335297830804842612536032452313523069790761313048328882810233882800050940241843573863986406578904168141622874329521303523019852616890476766276585844300228477084517512178406451241122368228995502398512474728003945300477368032969723859588229085625183983939106349849226448559860587342785609892107910171503419223991858984950267387427398283264058742218621164380891424346914420195688332223552687190507338045634454468972178530279458130675814799502467899629739164248428222950509898192168415125518573618415803478979476751282031763879460896547674698902401686607313986273811161532495850905895039281343845931156151046395848831443960213620745328786526038391856853220068710337852771974863662035928004645373338454499176169595182537565346365837915227363832948559201435737537573472880335302821205355289640220125562695397357195528811026926500568916527964320698648431038032205695512323218480487516347466436000430506387229971073844685066639743088078747938054043122593881173335367993794414312852163708196915931873132273900583428667010690555638106700962793183439126880517814427790476608645409063373589457175011436545239237305249630550975044701209122264695493234781561371140522705324595672416373126990831477644676975083570165666115727546612475707030110344399059668576582489982069544133849215668982646525549038787450403607403184186537350326238854378940642992356231746193091887191659065889399498430880323525035713659680385563535389233480908500069628992757897874596411620949871566041825179840130974379282226688437336855913113962144410877871849399383910559450662372858334713630664958293980561544440438918173350953295837530039826063758132731014226863994979826111611702732811745917392701462831957490430123615813970206294588418587512580943082232232045517814133444754958437709940067883096800966064148703880527002303347815830260342268228420980874520192693874143284328832842447040304196784464479661432596155482751394539929986084035782956168682536956569845187590473932110328644653402738108397857757164947907097819166693819578087535911894699815009485921698670154930793670192305508008955569960639229438326382587857802322239214121101204478497599696516541928912066571740576211910119570317142452419362189831657392606374756308015330192949388630139204019258787525166214598242843240587695710548849488444593533769461004224415271295588183081550241321825723707868151134342845760111379285392501269842730980712449825832095731702511811105213822044296564823446589037837796778334418518691888712174767641053790347029573530640358521671541104825898170360276108977729457529728103313297972847445335522017594848599548570783124932653228921475373570239089213734080256405591920954367435358904459923811890643330929406312316932367456465468860346885055006367702123287168318007342057587854938867355488675320293604633349013425257188335547647699216294873706197441239857812099883289385903687844435125037681506975168235246901136343092088867200083548393111404729593380325857378430125582682625796573391035861401096429046516687778164864199322968749655170689393257204206226016778793061046820778086615728594463798334473115655250064109081678445013704370583885195102654507992773741878528506576231904817454465021374549455793568103675564795287104126683740156296092281345977543150180225244113595811848191615902623830502110093923642330443225297928483962397655741502033031473675979793972772239321490465553725214213838459029723126558380403708653213902434262988111885494345878989931616604102446139367793580052598091141451505506324998039799857582306619788114349249315639940365525739530195665578142324943740900901538957757546508991949573506750140852805867816188785717819629950918164694164571333973027916793786985131024586919158656998188680872001352809326837322628025177611422792288277385715812563475629857716713028313369012099219651109002824617583578325846365992896534062753454423436820900731589358853703210754169115261817723201097697415431966206671241559139386833209138874631626373600921783848162356899231577847623239005369030644590936807249989419341977349690881299186630725609560212646542653787559526827949537508477969738094168370443536473622836969704171924098914274559402947356965994945369230211752239653458524039054809597415880111604399538691325814110137805924434156293516391103861866447831706804276479894749624639209934158606411709408415474077073729384587621279504770493370223848595735696164727066264213929024482054109149851678649419936924448105828022799473019533849016274536342100929731349682168149188873125154597263558816052408882149676073846277997058766631382759804787209968658496526812195965308754466069530592266073337872817822292283518324286330477006972599427604729918044059640003794020234718556793890026391772762625321623136028404199966494667832144949785209885919681842190766699590743021739610236526347365681854435712891857501776733221753848054537149632258038428247278340820566856035874761809207125065409262443090422173375994414799672219837534479937766025704490212001229469555377594892960719717201331533592392296174139495559443821412552151803275657196473826994086266820635420237530854901759005960526156033096984912052093403184599735116905654727190540173562207496349167867814151238321414840821615813617566963960816293947206435512489957289876187632271637573819869678975622367488185443824814134445060839289756430783952572703184150417687056770665244821335298298201242978941125571657910672073274699864040092492841114008251474775708915625018611608831685095528249267251070136597476053320600835089365369782935122286447815917206082492567318556876333262378886090025031571401355812453768783979729052466857412858846370321625601943306389312092708808962877250794992621735178125674079480217885045035869114410564407317202043321442859991154191786075192197530191267806598915557134267737422514542561601793907369188565070925614241408725449770326510471258515465425186306641313621349307236417904018353991759734962743037653723288618501347141467878879106827502539247781497664654257166742550894981904897881187002721270249650844314882727381889339114352445439682281431383909282557806195038175862279632466755940787124350731329586598070351016066443229316509813367197695788853732223676867828481370808018892392988073684454267099680873973378413797257457790429685487761004699349388920897822744348163538946055612394327405985266876732785605674404530785025295248080524335171702752037205545411597909674295696208145164487652978947729412976426622715383860616195828471527003310440054035487541734255795517926510566783163399702500395523998164365278959114509991491761913135626673294194599485007701005148210277549195816958772892940492454386748665903880292766117625350542654003121994527122255745503520869431023552307246811789344386483198665393278339666614170191280985833833923354804993356954940458848378509462234832423027385790795896929126045738154289110966257469543382688803551370252139009091326592265090513017347914843135081115249025384006317554472895478102651281957186454325087629527662822155429654043390784742358268701713259833865405304437506974434443053902957691584025033185908542832586199963099011936424295664217737295330541766650184327630201111648909710817221464712579674339855348412901143519087915535335874578692774394128934685083711876592464125056118081307439962035952058860472487536466503149649745206547095582863352548493394657293382358246119444235323874252794573255021233407614684049323809529914470139780221703362767439368963460061097414301946679261383619905282201707712359107900075333921926109488465247531189895320358028703947195584334336828600523936961922516440895404028313175420082430748481938654488165909172406968461980724850871498801500370194885654958078490144626025061178465844607161645709138327778775991049622013170859964869359949734857587827209722916997418775582180280039576396241320630730630411526459864653070595955658309648593609194220670610873269944485254556421677352579390481192665360051933725998477490238995638077758294928322388238080550253591949741296353991428162747443080931517449746021215754447646596223860935369145145600681761152361760209400190648781784045537646307322688261168602530722685543752853670253176287059021824080811465581499858695724681936552262355098012376579152248128824200679477055244403468459403001176212063188220890010417016128948574108977710106951870206488062408016691734203187413544883623859072823029136955004425737248636107666906618208004067488189647223832630936464107347097723480470514439347049904342891942366411973929091362547667443027837702940771411316287633538712703885927236828163417010855293604245248939793616952647856059569525247857285481506310713549306792867922978062886770870593123938837798358951294090750433143396601104325088198920668016234851579837705497957407237057660896821738382670457066078961658172801752573371148621968721915172512975852018908099680776227693029428063560297559929947519545124245054814386620867944388177046824551427771330603000904087064143823167910840962749789891596946200543875151949709928063210623186006281623653636166733170987227002783282373650819542041097351280574220981168523903593604605364357123338058043801887561479010563229794866044175420212384265849501426621033175083295189697949968750824627706386687435670243706224861404957959250990913079887894481182820038779899718642361296254157257146360660173241064917874840432232693727022745426826835606033268486813453875713639305492257307755575050489790375127881380685882611595583608991470012198080253161554535178804397979408529656523711277606794379154182279262581107771610563552815840368277309545364430730576242086046463016648399119619310031539716968150179309788968906648718319292833768143471956164333705722895257797767299387426006251293486780673736011458317168171680208466977954312952635712272569537154819935613011089567784229011413620538419026487916508763046005658355265085929208061657526455517762205103741523587954585904537805613131795110288453615221908200293694879285106366671030648885051135255822324518870256608896748975692949639675002204700261756345698420917495935246785067245896639218362066744183973404235758484929669512481164523887554838397691860207683693728208195190686543131715119612699634318892607230516847398297354502874365989440676773979473121207547829151303069502615370649534602630565929132652354199974280580190438647295110251289626638541873285057596519473293029528237615480533503104511194732603763635971528936371876266203921872034771496553146167934689679134780006462952967947997619481514197234821147091389269119409187716059041543989881768816856856941891662943621764510276633790584562681395708399145237783862671159333190496701589455913875403787652501697325231737197557875340043106339528604979352529111380297900361978405102267028441215082652655092365799733263363212386640333507608664678137730380825090053009232569201030833257717464493461861096745359086042767820971217156036586962479407673845609255843265433905491189185073079982317557359028912111812056586436638265611912143748271957967020038842113155064091731156722014565012468492029072309537549812206772769609395966930177769785331157137329099667433909245966550831470091185457634726240522414551822026883863688938100596128029950641503316908175747057317137616387401847880136325988115664440606601903821175440235876148788454982987215591760320422567644903141825412198631086578791126521641038275878001488738268056468101020255248053441752438479362677164953688539659988237443157417443176890498994551146239796221004502658354762192930485528955629369481767857739426337158396787027856712463454855899881622967611450524146381147586232504196443938562905641941360850714432417961521556250342709363856031652891213327370181391066411602316439913224244396443343281641446021798587692975995435303439797368463857616994084087150251041464311388638398099970304903299552339847270266277292523797175862831616392345132727545525923781995073867381692188672529746713226160212125426296473799809399085001425816406849136159365865176268617340452827486475670266537168168931367432308883362141695410441487946438950176622661484146961064692044883803524612089003101410724163779155147975875067152131899797073052612925012026678394388595323210915061167728142138306006921217143370069394603495784993166984018807112919261679928993176692836424084451918945669032126031856898029481470524322249976546904149239157426076376286411819076447067013991053178360262288282840150184004490906462399821312182506664897905810764192714515709044193177766724614573990905639264008800190294559154245493577450470024595668766920109496848112916016901534373130519006740803488267758546172164386605648516401428871834887225052503558921029716393163258915059460150330022997862241621929096890246358993812438201469639935542071555442480694654233732636401265501048917795151954318075884972950460992420415885404348760872483398098204349322370786006412642661277620578556625839858973936610107414732376768324540123344798531508061504518874270621872811544099343145531993049459204266380608702319447815809408792745984642168322013035355111049697378984276564631913597522764102938891176752447165966226032523984995011797562610947657897701998966131081561885676816221175459696802166389414372014807796590391930604061788974489129941091740830660603491320294065103206862738124008417101700797833765041724085195786532076911145799345928618155910980458401051227849924360789232101113428630820767585985743990374714178734210761803063736492910875638159530492455855825100322812688737943819130248853570575139296105151731168548605693688880375739532953900295212632727749463912564357826565100087090128093457867242384705293113852220013208794500865670247185861173638905964776708753128397679472820910490062926715588580723270531272246376402642610165564290548143162872650816443100171873673649068901537762640712869358950845370896712979229147367025568975932465212535315746916907686534640347017657136263661034101388088426230227532710284591178055007761040455729899097247371069595392199479089812868006494784215095224229803601781008660983240714008872795669396786911430588476009865103129440448259677784072058214706658910299539560553596076984078997896166921469255676837988885371091684259217849858112710250100241391405152391993415583791260423809143979799943744913625297187061059224389530548376609817942700457143709919037565284885895211578395367636943000698193429427343115245954739333160530530776935840980854104251381240002964034866375510930347129877668703180666150512131942975314315337271370326334471208481832129963602757316215177834116022594234352869206895212765975759179906336621934693881599883578489707228231933516367715747179513271145211941964154744480693866669274470981893010932499092898008936277432787277144013372245591727348531073645576125154272536937209760137776243688964220631852620142768375283262229043070357788980234038907929766584198214616347737959514302545240910595632722898274181740974465675964822723183729093439449232542155865413946883886854312020222170625647828270090322956504801468717379905541114518496101705361918363720538532033325242518029255887136210208218790012899086062880221927289139303406482010201289562758686093379398912740423939920154695685176154351315232438079148383745022741644168359306676486373638095565799029219388165489244001343573996894966554298547669465908134718916223873541048603446850332388799871231262101826889273935060277120113287622804920535605544444897014128971432782455863574240143123974458506283495991517159041424360159864969146613741983025659627480886289394644203530972823735038074497255943461812767598541393549156991010167995603571279040144824069638795833756510222527160663275388389242659062496866954165726717866416507376972302420884868868578949150487647414469380457006448914272317594286559089899006926388347451323529586279592925099764033402744868770719062382340480859068824347005569143803701238378661692685661546413954228071459182496159648094778231682959012650935920992445042347643589312620178097279127871291005597543622384423988577624041172834366394602571883109693709707430677304730951617743152634155746960908739064404827605823841871028618266524650764584822680215895519925698117343646838892274920402467548792860800445017898830916388684735870682414775209170696387850032244250705711438538592346964927953225161561138454150054501996168962379513871300131156824207210741155065899787845665609083710752615498880887189770295324364598792027186361710985285465409754076215684830393755954051439444387189406070935226419607825196262791152118996173020950370457702382115425010329189351519443086971325822470945062612813555161737909718533707801144570448405812400784074863282948986293620085146500689359889894637480319288866257295421413686004968779766031127253080744526965255118941380917348232887338886861060217065295582278464677420615307821072214540671883466363619760003262029153708930360810545404460229352852794832848556461161045610276726458194919230229916319322966752502408413366822635443987362998166684452343920271115984126006996607118117504024662042600740996112495511565442984633348572148592740547011642201177386053246033621747259243138994297432473716437808277991043132042172887743326480523181531337076895238457833281143119908899489192041345247204099443688522648902928527037558919531831744065495305365289136616721061884533642873457200778373792065466582517329144261203721332048811855754567294166638677256527279047416300623792790322768167575653993703618898696365235096347724863113221900770173164887301167959629608174057035541886495910943820678082692096277304640234209356529293274028080607047117749982566805479739695097937203621276062979449752299926121173803793367912322918542590256979250776229286448698202340222392907757336813904739203773144214474706548541930765195019624351619853763528698757559547819901082962312711022888796989187938074029583881220168506863253990602209736791381845355167899012113505315152603777218792774633593512434876378017225881946341845182548021964283088196309132543819237940229466092151183545966043338947616037917659354431772311214466151105819710914265415330744119536163307552709792542817090367791084416297916576639619371088437674341611011912897161832777265904110204662136930710938780325667148180839653794032571308893292919822722129451970784761576864016630199589923331772185687804343427849451172350432580797081364672267375864411816234457945501917086884523108702137040189252737161174110439356090206142015450057850577821682949456838269150448731219960354385563176255886963860737414994657539546976187721879361160418108292284137768493323834360750759335091035143891510525284184048667192317606138137825361785905573750024847145834293143734228810393731715379069085883826321575118709555187618515538411162857148895653331677492080591886369330554148637827834679454445734653939146089833645082293228749892417053911217113896045596252176574481913311148389234988064190404882388510995020482953286174792789548409979193339827295470281859991775399189170058244628190234019213705502674480902019917337896002428391059511755104958460343551714463890913114124673541093393162673696034736767330935206627578797192505896956759264340732717698190644857905224455617506332204094192455289203071501049633379617367682678744323230431504197519340222183580147275309295543751319427374067722322963138196002822548320518129780414585915228436730388174481507860040242298738672563132942453399675324633559791398853485167693243041247405435431340427362139292657203083595681397385248420011217831975638201528003102797536186176681909347343723730393647844611895089278282221669089783017306118304915523210802000758446988025332128587473383631582048402483899255722460789254255360502497800378559093981853884215447542759447846859524456546797549120465708317559009046498729105497838220555953013514812765983317840917015493619053050195708122991991928723182361492520704379863150500081258363185770763078622192957646361035622991266742164435913494056510512569839973705817578817131215986740069518872808694258084996374184377883334417918080662663083637448436868223442409378820297169048673181841847022959070580312059321127965850434769453969151418005358342967156678813148221075182818046801855819759937070045891938358190338428469064582240854817316348067278038919182995604875923979848707481155162599207546885188777207200136108590424700300436547697780574322426640056655412351341764031195478723609744904623197277177792592937601257736727280850211260116021351620012348057725330979035454615637943602406835178598190588252176574982946755216040267121022475844415774552136794832699895485007889121603688081587256982685616688296563761044402310585413167908694306661101320941064152006531512441723280885465271779944139474368317149572263265014899783158350821320358891481775653040709687367438823271600510199406767305837902197072996910645877517795203988492513307763646643934829725804130724557182937392381228419238400753480335920936746241942729810107962252077544414281747116115062723745640946707432209447499749772470485537786738181184231631336394792708483994744817710570214419900251066875030943278109760201058775266938987049458367095769383209967925748595257551038277317432382047351669016752801284537735188269805004461675744015452428000198969926228240772141241875277976402977499147457502513080138391173570100895444798797529846741636356524339659904073899672366210312652803244442672393685753330025969806463307103352985641630241765160615916824405730836330433009380539834461319131436621269651439045989817520392690677597404365683186593845724850853643760158186065720603019457040619567443970344936376101435117006386867089963460110067026237853600887110911560827551618217510365868548497460113182081253978305457095737935562047645620036194237229388000891186715821208070313553176067211788133510898347983545992856316943940902918811427859830554717839704639924209333003172733304212342745553541165191705833988358075815521515741549215660034740193338404193972751063450478530928927056608433704044551150319314750717617363668685391522695876210522732496425443861490981172092642968259862393171007698526269457308880932117917526475140785283998963890675611195593660623841155037278572439878802509175194422222459897356315100300793847850876243988448418896914233075173540668880126753399148859821531874285054435133799520067766008923410623552189147206240687734916785591057919718492443411602039282035216823707727041692153678056961394552433289428960552338309920721629806749708932910218451680452672924824479989355569892370870791200021918692915876096937718315893820395317571433849944490432618786553688913773947463812941418984431844698391338659385827444667348197426044694085554323544697521282574021840725586561568957887267611626598052796398677275680621673118813018458886220293391145638574319316564293864822290485535918616344957285966318610107260291045533760735951542000552171573381909712798449332696535696060168244137398369024026382397632839959688032049408700150474327606827128502057505403120889640874746456154995543106527439140198520489692469057006139754623830529937181645632839891144846775237401082962450868655548921974935182970140507815159506137259949441958783694973386011524678718178226112365123268415403507731009952791988037465675964100778035783397643635175427049316768372142118460576932710140849226114812087075599357510691245162786169893292108278948704640051475898897953441938531704926995475927947766269162574695008459937222664827293384008564185192633656091197617039139759848346222739506358176645078336794719409464327059495312846549814335178021983268238114971605980870571382465755329644473924963839295280343427660327159969448535770445290027061025445466016955543901922023578583737707121638042821365947228399389110997507460852480297609543283209850375871212247788942967044092023985629516401589601934576461664309599482309247353995748038781216848727780415531353878382956418132092188399431648265669885578903993592153223328956666308156422154791802965802261380534234779431747687184808303871839814216524191891907765914875610194353797696671229702078712451377747338009081022930779965397841641399398638325339206213792944875859240213256666775102229891437237978688482846566011449900592864810189061180844898119114600062491213393205749723812086966549493191518600461532372139563445977542960940562959110761679912582760334716148811702307973983172227208193227945946950861732079339572579396460478049013827695759404909743751150753002094082704879130246543764937195179598424539445119795777342376918281422504307473681335344300695477558278567242339924065412424612032823204021382786356152307852290990409253876471420207972560230995812785590311876568780559898958174607788863641382417002182955973224201753585395633672422219496870793826561811482973297069519271737167597613913192015502288794798858613230473856420867137321701625107027849355751628416975056940268855052234077514344197170011661349119319575923306403591775714354294627761461967174572636234868143877794474286599835747387884469002390966992808009556284345956861305819663550127094157476283399295438255932593964253526795809737007597145592992592647157492520187238161315926110460858363124920108589756540160137806903915999274919760284414994045735515618725551812919850788450438616831972785342320234853209739198205200236569699075502638968832760560055722056594185337388991246658895522376679724202153683819028948331534423967972131717821676820205196964048774342836278702128223682164720198898153228190772675150558939537311741197223221704490401545235585946681534876415853105504415222227515739935811966364363342182601668778133753580129799653902171687406247725555524287559559912637831607544356174562241365865549310306902746016718536183975645154496461220175298361266496256517887078052328791893719741731776719778085415342288834753628669610815275295569181325066474947246818065446815915641741693499582980449476403292983225035537848589780616455559882638681442010872041103531711873363849193063956315711703036609663711455519565369867283129273263376874366021684395940183165869903682386542258051645081087516050020381869944232728148665982851514080196715361787029813819410298435765436571503726903562802868736083792392128791195943981911638083674304436283257044270724164364160846741530038013621361008186636511059120263234763215652676611488911470189116539819578772396482333556704693619629501742294099740568367503875920964699548055531711840730490106408663495124644703316135147278010219700749376150558521772828659805401342816170679299065525947124713050951456435049597378903259020512088460898993638802495822355884487994537151204095179207000740073406322549796380007650296049814591967739757955837650711676568922944807346512222179315828759251576810406768389707916694126698628129012832310416736054913881924344993638963611573127533657251679551794135357083986644873674321255169723428839929387583675731322358689814162529076798838863959939341678976157014093013147186129193413534565304413282671297593464176137895156829135269453420348189508806465650746465997926198841653041179660313596317460675982039261242797165238775126946338263135285268211623405046258327529447778481570225425701172568369886101568497054611920936271752187613417544310013421161429773070124967297766133836569819382975105525803497739522410606299761579693614288676573020729024953189026742683769423849321142527407330843364127274287102864398529227821465470672143480708298704297359658758569368291363176045697302626222635327286293376893840761524610307303554606350286403174674883215469671434773495880247473128439625023953585666799196761274089914795460748952325878713027367165568363393822894698858651634668644261517557634519113440003603717937518668415738858201669788975671451628674839366518386750402685274045355288899271245481083001383672740621756225352255863319476370392779215277932086023951582095425679758567456841038370909195105094201915842614053273796675108529823543240958263506084491342896144411134229461275234920577030154651103868304269617079675207038553796531396736931172216446575307409113042172365841247164840843145446465204152139401372186269310295744198853260494215930116636288769358684625723826943471021766619945933540687185129566610178507396393229110483075164932046242082453548063841979411335068488631890006078381129605846604971460228423680703413682426750069323764287475554610012158115516557266524671836242020792727256236181498410658395336332842596553852301009229933991490009510893438535595227630090463269186989954005107264121210169731422706594399340641545121185388321701384990253387009940148275639038478133581369015376273471757644979081435468990830651835388986194051599396401621093984695142495582712200850255117494304013453632396294056082707084074759757380256560168724611711260332932656191419382083459321366837494881665476175527838813633746738859448288191833228524796498197542643965138874529556784784931799202297830862851292068669866555623065496379911990400593432116151947098273141501242832591307200540753581910395405590550229284108433927143381240140236151950456127865006480843335180785262672306842599973424350101964994016625490760654181367660080662498665244948418660281445495808551804555421486084838024711164074646616197184965075409810076853204937301439149074930713755333731504097490537099526161276030042633062911831394632146388162623969176368363039379523350919751389746136472086972590874790015712284166425722904983981986536319976086324703642902134787475752105185974001287673102728057208664611138884552568463918901225820565214120983842184544676964850235244948272412646011163394507779084413053512324095034165111769007258038477243395159309140101150603534086179034274919513603287252336105804336546617427488385889365899590249620146871044761383209432772928277399024234630568852961928119265045556564586765748506647914957389852714353355526341459527567943107904246890386963165688498395450357059367700005131140674679982752495096035027460906632597967508815419306835627553516517608929250342716778541172749778024105946170630301584675772802236967653122644171791598143597961814529551591832574639362883813260828665647570285170747273232224917819561971942004643236601270060077022328333930166356717082790027216849880970431550756107917197923453424612781554805427885966859711211292640173724059773520031480529509679392761436079787922100018643699870580942840637924876900652092172462347160956734529994014053452439029585181635444040830532750822367687852013376625858969874407235143699204498011554949039125413433685288261503492551638729850688988505092207259306822059795425563451900413821264212058566393988169336703792334424369619982342359515591824467043299974616576775183627315671476522100563265879451951581952151771542572453804469103858356785855866782354130875427216052251348155825646422801863086234697980305654327884691724557128697838874279616231422201437421077714614833373450864576740375543634736656185680175064676266819269385170673474816235588769802539543218453877163133557599938562318226887716721238890382636721187365460244339887914705879838137343547564776167692392927306918339675406561516423729920641435319160009002452527658950401529798406262047311255899981976144807211939272247455662335666502734546368505537223365135138388732287231289857558454014277124000540716755912708228158153693448526713947677720437566579188653753059044413531279536571896599627008039138018953544453815268780944725009242247481322656664568567078366919916305284666309028592351591168984553795848684687489130228868302809451876726201113677188143382251272914500791362305656631990796402236840209822637926302643591684672703495460880978709964291331241444488530906181923688312677382022321583484880596500041236324863223655783113465189801818839374079674169548327074956049968156450663077163640697749050166890174630600367610613691979211708673152974568864775866828168476270047980053576933398845840335176950055470643316053059255145876870640808859744052022510033161709041167397834262052883593259589400879716608566070587078843855972970610834729519395795340424925703625046805510055118753308568398352739680851317038806332538961976366225873048518482100439561933980982072524523659947895968538251098507580830627389849123987843216547019328377504656564965106129490788516301602574939390309506430288519331414774855991231739779697156191272752681890411959691034214847909456437744102162543358313332467797962898132055158626169250160566852176225096328745332966558361921469839954504952680755510961976649942929188631476166318415899601401480742051122444952804390777034565369816391789714299219868122648530507939369800449636825032341751619699328114086190106570259833897020675072829568113941133478246849668795073262216676096387179694543674754070914904562611061324245767051218451878520422069110938244890546760965839626115191732939590725754924559696548202441963469926726036333252657303055336257034735430492017305942313302403463752002707724051007893401719172932028750344677766364579129129952406189911850396957463875541232374989787856358917703032829927437566763137489379525558366081931595820112916950182069212196242563266777874349958221802468225291772893224609123426884894487106782132130343843785229689747496780994839189519506959861689686041293585142915252564558879810426854104270595662864005412615241607244601492748720988529755811776236814366238571797828962250269598350729736591981787418166408832901176674967948785637125356951242188830838035616020570820784223526397721263825757228788475604992264518148385701415140018999905118675077234360564619892099292744558237370414920012169529931831051851481551185058416337403974596720046089353651053620812356338522570899664299823771658502270353020915950509922676706428337336506091080907035905553261393866167629026962594878385435504044430750183104874911737009808963067549404438653660668144560757753108084322826940625566434059390278050365450263546492380328553104471858284629293628193589010232001240070628062711470566293824148399999139379929638724391066675861238993305914456792122413628223002760864561789980663042879114166667926018388615113467921506472093252761471462805134295381836919892612192520551398970700470947640283736938433061705608456813578779075075040618890801567459562026713810785844382581014592883061615578643353706185141123354451887351273486328581723635144833174331781775959940062399614110895215876944525801322622221618566798690839825881109937248034601076500451550247842465107851828309535038088454800542255147607883724813536200263556416209832710410789401939305776829761117302379382685829774236570351786786724763676206238440177287373410702641295267932505568146622573230079134627113898373432682030624153835942675637037559497154536793947802239148647974153571436237753045308833281045191623990195255616936023570779103121279253127358407963323350761827785750744496431934321341770609179222966496871828461684311232373319712585677709597008242155162481385512231223967762043401594426904407333875098137562044291181850423257722954286603052341283894196198323868668558277321134138431848513179956764851538088613603474970035557531492477070783224344452162351094290787380234345891960373706584542497168669332739723099987947568258045396445267340951603232508670346385931270316804731217046089620562576868472155021609639123691613740910273612215583196192198442313329177641434195640673090253879827873125197683257996604730516959857199116126940407700727720672818451647844623536804144630052203463892166860783620075278740495334676930936592824728224645346901859798749894230642873414567609127741004929108415430209369953046249780293512204154324183363153884398236283753463155584162610990160357102070851013791129447312470353307616008245296569376021712543081344401865332667914326575331877134494022562276092472190667931088792670999655300460413659066220885449952455661976197434103621278734219431255181224585418083923173756086893529943992120520508982811363403950386899970395337838443945332665093167488990657159953714242301177354903054868135325451285678112279843031554548142015432870658923571877319051120105696460306894556964470019392341611361549407424250106713275517011220225636666856157974310749024999501680205489167979249640597076621552487575142014859228461230598052462096479695095482329669918103570300325500930779409161258787742700168823846910251385296807382320900858666524623915695431906718938406931272334959997350244921721274860472905727207791430321292690031900082325930287180101088489951848700725686236844037882561885582488858838267579209151006683214912796545228687125635644721476626320779884722638201177680401100382605310253343450901319669723934642901315411348523174706515194516528587036604158564855638868580283436983122108277852859274135953972453601343291809014501768213977206525159847119432593675645911710527962534662706578405108845826528575950978825623212772653716908218873177532531254792483534567974434198563965864141920645829653037710913761428271915346900037412930723263745325911162467304903177285715691899850206657438894996591844588287120042735295935183804468953843566597130272954239297553946204511755017687997584818970146768127231669053876827053026296131397956142222985258168423521897222309463097005893224089206723789543055855911495291722270054612178938042928186519029240536485167351822863259643605836788095544492574091194143379331246932368582387956666724817561606577025674260803149451348169513113451139363180429248432514412893993756753839050740786029053989438091140445297462467635028841810665513156672014501073854886576733726554601430301680957839919189512029677083120106161939710559414960369198497889794559587977155380834464648637561186927587254925112332131336540442252912372418674440653464693798498819990375163663557374213604608791299362996571212996996561038738857374651400427237464716664253787122942080163296326768681988604614948614279700396365679373137588995746739908097674515905970587129667545584240795198148338778918560189339641164258819636874725283059436284625953603760504357773837895037564526622985787736351253551906359842436882150374237309811835982766248734644580983721630091287183947207344885984316098089027300108430659213347234908449784380015994006185499575253082565224579571235248435037560786126444613035250883787137950045302046612852296839011901938993802096695280103412817799540097522434662573444031240929544250003573788856624653095382462918333903135204149931038340333571958432147440447584147078503639708004874685871205042500463513964588074840457662842045309542122275613808390489367641383217420430590098314733676656170413771667751610731857786528678153338282957195915854005043225966392751115923949488509189536136635889569703808508016067379412247835255847275805136041596590372994650229763189992390247400089471884489069923178379903926100771055850288747417222601714483832403056345415240661943807102886213682976533921542801000595916170262664986684372659867213269519784536395219266235828892480153241503627989310387221489258965032977042490917468790974649014815940343506140851382770444330268313921454199068243508411784607447972058204537747625933797085088117151598367359240300836571725011746437122856803217808586197290185773087041728317910213919543499122643165240611029576568955167927872291711271907467579017443148905473678299038299129020284837979034290658306862494466380955444515942195684200729719353515089931702839589746824327429416833242709401430695023183764276036723002881481412912494685643771582381027213400581057012760667575405581180730423786008293832478467508097078946980821809173612267695048143075348119506617251139704811323521699074643673349869724956828806979718714728213908052167585712743359851251585184883292005365123983786118869981192176596510146512894891847830114487473288713202398316740528357808267095879859288108374906756166341535570831237262068266538042003558428688323810481234316400338039017468823127665393942131233597527657640702259113104165009615039096170014108824679007201643560738953416484863680979222222370606048614607551931711931861160614889625751416978942494036294265127318716804780105396698011996720916029538506770328345954181920546594089792821832436760314340211660549589986961348266406652155468769399298255720286898755790697303432207026977788492398995060746624997293197377410218207475410293435239394482956621789195247095728001361963545078881731284577276235841450563980185044613235190357529788350845927957441908191989364574020365592736526036422486779320828411340658505961336308837633227944122846356683585107487856708738588975358641230062821105083871880638729554960185682683058132037849233708987100952239577185000106840056073668231605219381144299028704573856218559681911801017547999720072018508723938609767425563392687758472406050687176362221634193164649906070127224074557041671161876975042524849355109250134430996704527897402334931408731746974617257074066894037922382456175490542143914995700864858834777168447597614556908604058695689190188447496187185723386331921449499469371555911950246990294442989677214451238706935586519940470209531919736989774425190905734125885821891720905101589671422026436744319543650856322235484518236685359701236036217769267785379274996406800455963757754315823377496741370020913240850455346462724190445933394944672039853841909159209543829347384843408877689913987488053607609643719065639408280006779748482834343181800458043062704534705720569849225194877507014157708517189684299163233491261042485652152030216314691014626075738325713163355553933038796592855866425063951084916378385830850705636073874612259434824020739145470465885627440689695791253935051789519322097414310876250040183977064668225635680712067318129695228560115624247149295577243559715185157999731943424425826033649626440852510627123456698965276418256366505284971344393904356896499893468326838188159205279069214907463348356410408226852698781649959684056673257160493139775948116021282857751648690113941610519294167905030404693404557430343522221815791969137485818544292767356728619757739251685251298968430214426662311817650246333722594615940703891467982462632147074318311182280683618950678530141273960404732336895753062227983729364854733792069305168355349535603170560884324481651665023135232189495182447590591648229271027094725458937213115213038842618144599724425245340669653432398631574306370472131719450063103371680573699963705597637090444261871153986252387105712168378812565602233114100254087728434850621122940154604410261519815186658351112338034464711347427597147431260437263430233266969404912054867136277122481704243866227997654162143982169099852604903817741286618532326299084528221441286991137550448808166298316781067649748887773644507359160533316729380808547397946502639791229865430858769445982799040176615249536305475441635089769438624814957779004743452881938545612996126086197570844191086427212752197556494400647610637646687130511036149050834946560539802363386113976534380327750792808063973801813986194795187513066466065302572645711821291389413302424546618429288549545311496108747518129350134346552277198185195324479611237239975239203956349589183738335282322314140150125194150108019676570414492403604933661712782874671159917257676884813241408413399295776727346894751999412492870441204467062802471073538892864143116482903898227671353087526584760736348338567740767451511017474089767840178582110069244494808276182524266318339840002972877702214774293161801430817900026069399183737724571649832357784066083856637301330246000135874569764495628933476388727622943449740725576924848974853603191462435681310236329270896821159716749649366299676339212318731094726739623795163272412580238898812482893392610137948189291957172772948448962744991373996057630520812988878021116457917577534917670846362349754379032196464446104482924086483410662219575050834880288679172347917555255781921115471893763768016698273614556630179781038103416072299785927164019187306643112785716084525166124295455651182280351570407460567401493771595161223735896807389612791470279660022235737974746133803387205251794740287778358269202863215132182454499644875688558909621094285382807674158438922231052494239494781606070125203184032785865011744654385453501394001159041987572281592697340020908851161081660259285425984490534912369267548503480318241806188441141474180670086835048272683525226511826701182976240134407667422848398497217357201503837163846760334455576344554424058502179402577191685587174028694891087190884282034226131735896588252692954292723038148022189028839080788858706999980349146242386213422140993430636963988973930540338776275584706893863268481345880491377435192107924226852380211117821995818976112881420647448140914474575349869663807173052530550697773885300435129607712019631883592860516689093433356700418885545327333837355303915074158616435566530478984371309668058314117641146223535071853222300063742772351906791756402954706793657048972892593005799780899965555149360615440467967902203530438128272346398954817363187546065827071038596930536607873407987912793172431002133700256590879901581343333165352713230055076977528030147206104965528511636009957916330608181274500695776494805145321197474090918421224025462912708817314775842813806172533477273212622254041970159226395102857482556582063368633173047866707891082456310987011583966544349896817959673698400591428449194862829426414439606605469250995787494640735179845323202389018577822325380605115041436284266234559917482740211184346877319797081631254787584819951271371266156554225361004763845414407692550833996801375500933685474967157646077391095942411444233257761500068916288761996212142235841689233782911242693622298993879591773649603226572785039014796003502378144772830857664306746000248923334796305976112455552374811978246602089071377066924955347514536700053010183039813596431080699497838973563414435217403465665021763869877362199708449299143561717870039403120459056330091955781000700423617204382825607975444588075206955794181406110496682182118486400563503597369919730586797215286861049931967294195895987222855850012377292043199412900858151458191280656773292214984033968120153447130849428014592740681245798731941981593393618163391947661709389824486243094202933431901508976359268291137847582780312092456455616557238899654239457453683991942531297676941883109543066087432885291225862604849570702990993895166646830846768810105127610976081010254161379017333415630951087774977830830718879146838631880844994135012534988242700337307069968954040033789478568356120708295436492067894204821564063207843897656811291823621855453657537162676231246735061336185029807891138073312788194835353850498191777334318368323281069916499180383894293273643847793994500412780375776882947306315039711225403157197755029229133262119554677240299425358445536493362303488616970224773656974767987782883679627916617978620449444038001729230128697488285659324337510912867142576034001315996432710802023795805676805336249061462515861175638971244638080897201737146724621459846288536867022719583804779748549166139747575593416299496785587457591818774000537825933602326645938801756604857308932302866405589966389715311241149162639315237166782230602243859817798629116893498208949774040802531404339180193712136035050098893405270903930878331029211983656488349945656243843754774126144050847380501984526452382976761893237025595974385930436765684926281604979593706205723606607912098831619152575205015717859991811391262572750425273159889400396729153160137101524561434054561694575959926035473122580892097814082552735813725146073928906709017604661697475800820950995730219965201914038028873581380641902322516213821664371169683660164044516489439660575749888943809058025814481343942784692429723611689013701595975488683590485429011098518719243775300976766813700704436301921924103778445271729216667775180260046672727682357366021932283156559265637823719576636011123288585136975293342703573761858369762126123042848346081525080875930117226588683442108669420618976944252087102501861196377160945354326424216012908901808504198160424637792049969848904758255569663911757782468134263726647669228023164122316626322855539568761220533904540812672356618314530278613690448164076241925073958371824802837282816289831859568394671761792540524899909673391512089473180068600459781695702353215778339776074866619770052209468201282271105273676766619459102315471827646164217035235058650684040717632720570841913237958047680500281308912234614396971089076093788712569331451341075891560409450404022023127819941611783965345542382354233992096306269640570695412739575246793127999688503283465626672882387599224582095537754999173920749321191364906566771730133681465591475058222289554895374383531808218861837945942496092281297969598167211085916195906136671565360009896033180033318486849505115666303870336322412439557689749936978731497288803858201414398298370883687643751113041819336984983028616352198098456708415536806449755565933999120898018849463882263412714564763040103614387835530713546547202262806936247123788668766733476573231888478252692670557959599474542206091022383422694085230689542949579242482933039260391076413638190362889938867516195151159911209185564941779204053470857995882167323269959694338603977380172956100925141057979921359640184717733112987363333024557050909343080626535807648827092207050866071941067210510476541739684693045252075914596138559101817749214013713642386775594709096009464082540254261850926067581853454395896702870992404106853463042394972445443081082634429457043609276276811001738606259106144566509617323117374775826488294945835082274818014909235005205465908784978489395109299422979865103994529394603079659884996090402862669056223114918138822989338367280171081159834785154276489533017320944274942618255475411866999419160404719237042000732541710845258208666398667772187748564368350518557806177240784556695806400098623560899866312607938658375898694477988028499658850273183780710739505351869586119340471333557083604324384907565737158798318606428907220893319157495506239029594091684899582089109504165818551503057312203692229110761795589012322053074803666080426480731834737665146456253477036683713822292489536988241966492056837194115131675267215921456586899333619595247977007278830407982213380438529000521118555728957377587717872389612304409181853691546294151551616621927913750619584872105491044973042212894808162270136826154647238496617808705559906964815247245661081153672357633551424932076527908055978016004550281398546365218394244258433779671587385091705132672897696163388133944621700633386824327000863142728178256237655413600085143118971120297615305857664014483458132210483782337568309379955844589475952992811888083692159058499494509375179349495763442950804148381025810945858080442193013272779689625798161315171858401120006767229693229999160586838198752413004432203864797869952395604743367694645318059694604231546679077775716174321088831734204241162003881625975204794595748880025055542510496492938696278282793495562284818578095235819293838356620933783438581633258599240711200233297985470493613460517374444974972583886684841374721037885421948709366441858203082692353336055144582590428386304588473665043478573326650366191278783972235952998685508368349509774830163767023042841271322631161665460877809974783705886841357088090600903080911287604969261241541673075016954917933477103477184457149585800989495066273426330380337928023117150875993255782797442761484859821795330503280077117165950827561720198022544343705425681989372068959932440572876290467866708349251315759454842158842871726428437887917495926907073231770394114658302885820690700691657808821479793304264372473505396372178072275692111094418625770637250834989832569958581378600532770649967871840968111462060386572949040656889397656961172634039970452789333205383152715542796903787581394046473486558288154514607752633546724710842404740534775646393837345923056060253123883348815227231116552731318336991676086092437296869561096260043448345048231507824672051227704093197000433493822848743453395442628419173925434307088736627930328747580513046726261197065951423970230393710131901389685456754485829141867542520169217423157478056485897935954534701303341773985215270390695808120206373904987097901857213488289661313462472562338507093647509229748449622854070313174286272422622177584262752737095366647825665449498844015634495707526785476356185719160967753528827483022447618717134375941531478679630149846238310993581373860687531854670096972207675727127375619615056608350776726593485130897255793170613943236130371734101970132850999615650197166644088901490768029793595700088569555491778586537585284281972898585041722201293972827717531910281772289817834300000668738357451751495570296711683380352438279728495400559443606987837444258902747658749679679665219512467657463043370539759353353110701744565537615767057253205255280593016181701201548617152731368845152796059422076156639540218419867988028780452783102926683471148783224499933655172499576191713300806864375792878902233814938579251279854390478696065773302427044020799480982682205090001391900688230170102341823857565566770530390682257425593816375117336680414435063456740167858693822009744999422128998924494118726901184541864967735587022454501128688511308817731298799379266241322370688522067002083286515311042886002199252036357437715191849358492434005325650847410225284985479704040177072741034707621548889019679188199457062246467429695935321427234907087341776631353173418211135493113878701374304318602461075172662307821159553374040144276848431539004052213232413711257500005717580527957009707017491074760082475103858080473539698109317438042810475718213096382192423747587822706489723493856395887888075498615547580084669596214177919376012974091637554778882038894601896662864067395285871004729184748986051115050014802472644804074338246948696504200614973766231831804772576336614564221357371071113540021613723469284718370341702721868112451875043373908476398254549843235354617319187514227978922034720876839860896994962500264223065028484912657005201533422775000853806931434788750059277727622170653145375680786341688368900476728686624375322847135330645633438077020819093213074995101247701598105184050534092667118869468278313141075929865597100554807962859993361596910750189763660794377164989648155378955128822956737559503687714895559137022539826499443706157173776661558080147984195103861677033618620155623254717545354558360465695919210978235664524068076336149540500090616485821353236457413071611502970493586032471238550461185710905654021927778111654066338517907156210354336718949367278058587671690259757613732834127983976789029633011445329731016359147366548923395229153974223374528689951172857413223501608013298129619493572927649953180865951238919602102787445983572581669850656326262341526124939442878673208657345004781620080533204076660403795592515723014941155079492918534920224215565739398025171138643597804068295664972812882445266596091835111714194184485683841856425003063998712069150428510149472223399936887441307764088190859802708133162573474751735890984894642848778545416184744897323171543050734565026193361523620953057786636095775756509373038590103912768678098651011412247045341748228583346270554047062045117533981599196485695846222090962493007654250373703921130784870094237844070614460493981333048892117391637506437880237162617517736019141970640740544422230558448728451192134762338243675671517019119619067500483468637755216414815717615509303191447128196523016469384108687269199023940292173873670111490280134353731914292722892696504266352379177841800783537994908921131011679229561807428646925752233248027956906513270645870390283249971673253134879268161418895613971675101806808915637960630671379235844819939735448200450017005500256742817487631120663468067377409348409134393429439410564589226422046139901081049604576088553902389835272755654913013154091619600069931178049383812295193150948380776332746591618452130995501239964502941088306375929692155389890721718136115123419447978157181362728623818260417773490088220511099018491520911980253925577428070659004785792280714949750862896647618320125005256651093143600900400392746639092798686715477958840340268446034381309448351138488072198162317570632203022533876174757267612836911597426345256549178004661163534902207960578012723538716113347408187574635875302591120025424567239883505939722887957328934993829254932211259361023630442716887795614413881460207218228090912567339518592335088984606448664177608256487161990105009959314752372815210914132973995314774322895888071325631525961185895088387111635149145061251832217847998077047036898264898516760557192640909314442110903834982675898621816209582802229291632614420682053648563750077975497675190494072349665916933420508844893377963074611391592784486563321283887791116200346910845779598962802905272524229164986350813083531106649703158047031442195209352174166918347062914540654029831422627229005429090815279909835968212243965776761718699162131492526681500107704054979973130997721345977016114795309532512723012418005373317665947980093918876195304086152253928022941508085428345596153845521956590541550133789150177603574147475678784197701904055406667507156127915386280244399657860188699682568793323840623001539346476485977322778752614595667233505563171966089702273573447433815005846339485393519319010952716572393380262463877144485434674022146498581669674461053098180636169247733818536397268035216243286944065522141964147310656726307929035959424589811079450927830665541730302907224083380497799726058900579351875975144042420113506948623356738934150093651035956590427013782345186086558291250269384462092541735527817011734658608284417654037222411774456788229210476472307983570361643575743385252751759282341969353407043906870946832618294036887323027673366003610449193642445433901859998697514931664672365555318611094361324358495549884550078113112948873858834396775277602676491319997165777197811968534761116305903971542892902791822122017732238624665784393209437912705228799897870788084824275995017867024429596577258219773238234617188186607748658534350944048488954369337293612640154723558259029597808960432294459735174398955386643534311465326588133880042105017543203580016677600620427582927912960551759734613037182745656431972738099973447226728439034320242367862507318442012097513367025528258676987011094250342883041831058380579059254177929947083233354999185967667706951120006036478947998381890290526504674248036435020328540736839019375550973897661324606973662584314589218292791406770203843810651414348397751939765670600082756868785782278640696266166068648481440256258964133271349059867543222231002582564039822710868937168253239816798809161131446056727181226535917775183808291488841719888446458918572237810060269050231522011132544362713751164951261289238940373818377408463799098427683610640465338350940531974550719632603172600841882469376584717520922903149068808187687184002735340233263927014175477788088351794715922712424897818665581088252223757874817555151582407366447329294232376609836959656460657509748077207568918930245964751930747587119994793318005092201353449127361786869391193744703437586520425494712437381414848311009702067088865348526607093806687724503390618134053122710667977523263606834812191371272887835906316909486223995481889859782716541647466254474112146428641672762683410088799834680870988374871794604446138980466940437243385515561903752792988944822387089604672692547736481843209647817469315357527782814644237727042893283159577875362032748443783562812282863554249936433066371771938988985229422107507020021604243467150208330127956688118841588857106818385733349690311371708451221688740700414750209707167236129930371933825271258057693645737798619817091125641085212340831695702961515467416417720139819107612906028495818071160626834366723568889675688092080008098529335827885151004517728252832684189688523583068816149174958782380707109470539831195329665135379999915165580768939967490668644018791864131341677570972836838649200382311151170117053969590745802155131324414919477649469216731961788220012887363630509090872224948576807822335625956416035983282635700656189810634916581328992733025287676828452053701615966767043230373580824906318679605033699057231475523496611406006285306411229237074157428174662486701473030467469270537140046409803637275187232253804758591578295301748841770825846053203036794250676784935619407636023333467826112864526887350252552889257211952062222990311009699863093230253740559790765050378000534718281880777369042472693012681898839393463206811165623857752624239996210095342650512250055915397212085231212579011690964687732206215519518314727758471007471671084454553634770517078042819557699200497025082364086361824329033935134482516625693248570339395529262261490495197110598510883763037117105937710795261644479209855379449219563803395073908273930434736785154645027819448703024104548468638868825306331753551326323112360728004059765052437217811905484339989089320260839428372262091419482081163665602433735961205876835452776912470806357949720861020161725834672883811887831489361277856778550926105027563075377208838289021978093279200585849146216346506495506676811265178804147450410668379350599984424232807869664840190352466720904989070081433862026303782644735988449245739216800990781888691417691191901084495092217794069602850746146173693631563915261389030357417288757568102288803160696269969383458666771733789651897083102767890747088656619569006688556993616048823862916032927307889806661826734772463663239183759821099299805633953934129623960389135754152595571380001623840977445849380881816083847996443861525238882507275641371343509606131454520499080016151865144184337020666330427615905805862567696871810935232963069831733849906389592756146831560431231080428955460362424135455940028025578481042819199856183802492420655475430631658656548501711045568661598167092012356668922143904191490568273696398592570505583082892282207456239989900956441150827197692587754022391691618318707089509717525631811302906608105409046501653467802979450123008038017511105989613524673791226960130427704356029358276902630355886033131813266566132187309753918963414664981342727782324496841171423253143924089785656569201431725181465151435940457632199788602404227269129453249706076678954971171287122003811598631046839110618360631387097139632210061910236580189985472752952820838395010035869714400229316222823782072167976341246914483187223580326637793370008300461190465499750406010764660695407624050128299188848985511519055827316118373479068117213358936804663276767347697696000899267385458183349525741022252663693558820307936350166847515026041844815375458395297854596404792280233584254379183844847797568405473980072562334841079950902241824340903672524291684251751641567886770792900461875925968309557160013000091233404255684002996576859468729757448880948874307989956375382871948950364686981090021269907287411801799381949443082824513979338785625357834685145688326660255808766195230997641489518277701352801603496689330829100774101556251787228482690435518245727521726869647340435513794915827033419039160038461751188070864649015184547504844959319080245743546184775085302220842268094977832949963893746080509240902463625219324848089437966438055372367156733334421642450493141078492593168701709665306113581005270885847554140905030081236954039268010601531989094402219987413038704972205365738646609378762309949995251027072538409439599071105165035179903478099219300377755803518210978156424870846724050809035680262819691882805478931696149284671943665527882024535405079599947600492937022084269918929603579239810549730705884064288834289536988571407179790311367607031521034283059253106117072296820382795890160600613878846942635533435912853529758721452271199808788689496476096625084437945170539084151582944363590984434616773894329063996534175922519815347977706154951720048438557355935438458891250177751083405056662129668508480313752624919181903486051521528471242122063363096398494062729000148692359824142796345544636664237819410697117516850062689433625156603746670801701762814830869078623033763152340173357309493013456231110679695718873313720674906939014114282234514973565970180959188538835284835785274302338868646841552404884045329396285691233490186467763748645202911531673407981543610542360197752353462085059889816864921308916764537145043945314751086906215958390325061125179833184051843778973275948454322608397648259079824591777428580977430409148857073315305241812041060715522163761615823830514288015436809880854778163571502149056542615921047644119566611973301341786711729311614613315987477418480403916593612337880938662501518419159438634021461994522567783525676437222256098352518336814617307761771194500909904851358253029536585057558337133682309548073451977173104400364712736053955544593728544718830445789013577293679430298693999806498402352898921655135076958735493965135058496100635624784919925492005588264914354022660211426886297057406031211902439668172484699619000285794640980838081744077959405260393056378255878611393522243752220902879194896645079409203746554744604494517355525750278017312462604789705638738592915189931339571651475372301821854322426551368350327870705325340892750749675134166648678879226069269521470857466028086292121984117561149292080274996876227108922610436817570878335773654245453113384796639080860911163387250227516661141164013617189588597878115561587588551201946796647826321788217547996742173923802626768628160620921291816893121261432132445410721408040142278145755598363038548406718833718072968898979005289353841760368297019723154286724659418464470380199094495739429061564204345342632097240081681408220064726883671953195929838158538497811445533511718351101541867965846805598361548958168839048966391956137744309853772051485086678915711852232843977482746819638593290939423036664895426702321356117693277063745897854170630628696647469788169843649772197113825089487324398536932179214249493879545047087663190176949817659262396058987474316107347482134327805307516959395774629576235260181229569233783607303930910089053186099766981813949045876110838672199747829522055886280711205938565988990146475728163801296369544236820864847666131832923314652465081461145116588305623324924107659391816987595115306954550712557619797425768064664439103302724003002968894991345373927825809849832103091429111579811787638002118645518430184033800984834562623520834426792075766437132250047361173415078289044162174591638788513306365379543065812455514223383069817272617871763250521258112215467470430800841332621548607282763478725182903394608987713497692786349628931258679261944025829360251959098520423351944694631343989462645868345183710787756386059278648328211539537737051286105971963680036285330964260174985508341346275879518007083733628625346989952363511685213578916404086415900268470369918756533163528608483622456777454170662144497967133857935222133196801016488672268024246669791066081603165671540745276285893212271763981052154585186132099088583870494193261643452487868849432473381490282619122006854105106221851780794420831166776503909860865698212819451024306411543530849757897255951933146449333605677259342789537750139029447339310542065426751984887183183941504571800445711121669673891999334818562210878316310757646746536742521622203174197001564016958221673079821678203096137666326302332349924166041966236006491854033786726626068041888891310183120141292189996736521769890414417096069712621184690503325548395359611998327709734321499688866228292140539698282859072726203596811813445722328104382544888586962523792842852744221345682533587407902268526629141447265560830254136769510181867710186262864457354904544528442686695808755664936815905588449109901585834582526475804373566825016299309423901422258224118802602997651245828988783651255713971221571166249608946922803027240818606354363940708019186380650327005323456225787397038309472405273532556660419266779659359074868797877672422708743603237351103213244337909641274709830854517571704730500876873753138526531402878308372447684882948702319603859392182965052202538235356482799087818970935456891423162941590931696996264523046470540801176569535168022810783669798902973170899267099322639687057529294115064026565567865087477395095511357970516924665419380025997751038772273736505779703661446480819110650950139774266502131148583919613281124025149579529849527990680522054432533412699091813841585709271391553912258473361082605315617767667485719056202861894800689050331151018211662792200541551004534680649089627750117505046351743198526803145575679169849161260379308956658961371599346235518242182914242674005649129849799002787017965628736113710876355331187793815661879532464308067774369534916976425263203911868395213764126876293114704967461656918988077945504129521687559401833400994346144126705151521259285496717771436619399322673298980151262567868254943181387929267902189497237878508351813865747047145715024162628237704632986773248277615404613400303589280654093796022865064247042158276256478976051833509259882577175646300954656831402978364517624560043408216802867108196934998315043645119016360859294081609975053020640524432526247843481926905487277603501816238427142446870716145767673036194576232807313027415875144585981176049040970862739345735858150362927507659854521508198879779862123741569700995840240259418993466427848213061789812401738065132550459966975033557018917081522635863092580993372866458290865662896728310962994931739377492392600461213753637648481663883314841645584374911877904621621878064052173004823624060436102027186097864990112751599879179736365748165653785922506422299147965288818241585412116082900353965549980314243433365829952708634500687710476854667255410718189052542020011132018623337683952103137850901143030278343480007053706775725550010974808216181386711131304226498325339406854555421490229815615775131332159513322191820441103825969100100461771965659088225963492889633173558061836101632284252004752864299359308047708047599428115785960796535971286682176552259174643553703416780664646935883641968770551115727543301709086415210398785879050023472065231253778815296956074198901517748358924126964745309538686281549686643224746406819186585171909606109618517066977193599113805448334948415370635179218969435772023097583585512647201197188418551236268321455468513827309412603668718433106307371735888462680501275369291795445746879617588804702248331309798247368125647293617541631654252790108984209644208585786365164516908759925799671834928423479592828033350174314049662173961097898724414365080649806999310544945042750801215299442481395779601256445112378195081392356187371660573584518859940787130753443028620976112970141748838764557975196864776818900733021553595278823677158502548398811213783582124007314092358813736883719476219308884983697482999823466405601383962902938517025818528756192253926697147177394647407049952728169209138772209442186271867501501349886768240687884686066182063729558695906602416245364272597429822719320628983587553267238295098740503061871809980988677707211234694477021335251755840964570275751403612413497419499183881171044477632511071431044875078762436099218594308499589594145627456546067214869322184855572235598859253905015330584110473869250853632101186903136153155865299102059829660293854364060680609850890415303057334409054053326442567161467346444314154651905162522914702783182548379837224420351480755810056089815850320107904159951955105276713853027071811980910153883884411106014089159592044748314273382889670895301640627422721523716771628337132187008507338187110343722038812480037625578923629848453037430364212588784497015082609272440903039605885080951935564395066169736896486872572281872133045374403826719288164898027990259326214563099322122746661157318699818543205702174079859134221018695444069290490188228818646420564525880063743293647195379191440909890202543964535039857456060442673485951639444509619558269690482153527491346016550287819968734575826987635379963147990241069798962798209657305306100810648069617389310318758559240458393838071612646041541381996361582401567316535003547172309920864151133773453758014937740531245379472238920341081580439092088321197988593089326370953701022919090374869838238265600559412347965721876088769727816928481496822098261937872223704144479575144162040650879650303270466026507780514778741974505614833167827392427624170307566441162695696991203558335947691644039276410269369815284001515884449043736302820231305571809713349119480385529282089564355627314288485969579578076705188053188754282059671300588553267064717452303273623353152980471757646257878089233443016445203048548437502960042374450668702250482469189834024271053545312924901445844864164231571325910877212907904692084700175074784448918245318608620094398703669736449183354650483253298558793559914117111960838868842559133486755169206889748784236253289760155777442157468814521896670868562648222066249531157579757737431714142693125766251690617657751604498292067479795497067212924036290207060808860978857193852714357774383729803378461122459858470894030826862085455802447050561237662911600111436922894850634784596106413980555438988295429997325533689625140802373949826661009084110067305348736844650726162102793715838813386977370549599346540486790007948076090836228884708006375890450560868854446641719794730254535088302543361840787357285243410570417719605088270247737805212885472879080162132018320863661210212198919124840973479225755150285615249444250770505495460227898390654550569981044036582578450030122153802336796465872972402671762702008629358539769561556467473987411063345991915575482183797662580321048565655690168032914359123457204670821974000765672529136672448743556634174153187984963207653821556757210112398179511862110250229939870977522421317745806054193423288139748812242521766980163752714409488677934265304489350181224419764463880173699641915073157542517596284755939855542609319892936127994445320285051760355126043173814748117812409553619100561682412925615590735812766826325970267057802325187089845564176922828095373047479862651023714764077783843005311016740305453010385290625454320970836849290432607921294945429915273593194989810054779327577696798092148237716840994311891488840665086066656448745491995153366767477102314498829479497369644340621150291081038900452126169505661213000306507453580809457829267192202967984485553764097902722637574727829859010513745294704046854644969461160256921722445396519704178501637067532470021063608302676163207154728557875978512118861804938755665118005432073422101988278206601192256094500900939926327514972299467686940534881267108340264389794831454560480868447605895993577071157477554867779822671216257894944729034228383422568234763984657985762114169148894026371623648007407738639169592119778777191079325988473724895917156173988857915692792802730484998614720725053392359876915924884110773100283377462345882187983351183526220442494800892199147271249225507200946315267284422761277878855959581605321341243214569773632388783180431148869585808216981452688307197424534079719075289623355118797443924123736501283139699786061706087110678706791676018293471875099677849281021034009197182615055978291222621985422701186207847161121455189579932260304371933527411021318169181292218217516189612504921240527125138187684783094290135587966614357820763925586954180496581755184376317853701610506214616782316189761340044331083929622964354807138784544911112082922236668432098237535074829094134839279020077776133922154677778275781344831200578852787080668908900721407819501832934235200679954617321083943041475639584701091792973361758599941051325165039063847285306844137605827021039177722530968802125202193814344715331267397396316243656409187500074186707312817550309513930710114498401643632164124138342156970237929709362607733327482358407947381342532909684139855652894309082807517256765324092904365399894620910482777038386478492351808085658569705942389247367157722562621525041600284415789039918080476012760739441528238240541470875546857435691944026966128194589047583264560617664534943202859768444263106872054921596407635119205157505068188682806019935483044671012576271481204845510365276207771695264716579101830032786954826943995539902578769798121946086503412109716453708574069410303181763831449830593564508379312909665576488562647988399530429567936674086882609187150200982828903340800366240848891186422194759548264495166346099969743101210390722572743034160434674538107789786539711179558178858878034177829198211394526269166060270721573142465252143876451632374028180507839819064854038537851805390941998106346886840784031228076348256749837317200507833463187461950209574344219331431001552974991341228443397467587329382078385970557178586905680745683092217212443652322409281612390190238589423652504509932635949333382955687706100904362029492255580289688386128086697068403872205369902769516007144619207281605093232116831488916455017253408447080063164672346894322340112638783516760285739435636087117899803065137121273597488456682608832947300472516500428730330355154827402815100697100896087597943061266843308006776054600074782634171545935851886861556027759588862590284483546247404827443222185229000991596942086163052549972051744664598439306416431224040573599998231124035037396970201419492754933872728763506602967275431396873674015875737166510527675087399523383051058570330777463384828465298646934118328183948148216852244151479628794259748572080877354373016950433140320910277394247976146968948923482140982355270940065855363159514308274247051775909552231739096447067676506137726103985060314443171289312220774363671637037245994732165410688195391256211430532202892828667941682800172109060263770402913924767131166404327656850559961312059869574539276028290011408369195359813224409019785382961196547674243116699237431034290836046417942287772098581146074585620450851152959511694295185439517528098133360544821054676479588001443257195089883416201259240182064586337912850052271591974916070709492420633928268780419259286523837854093694218313547437819777719883087821658075699353005309422802070262900856528192896495730147876315500752518349026418699544830953866600469395142180766133120273404180789586393698231934061898735969404885898664000734688355654898149461455523339374603341994384964424360322330058820916789024661983228465794497539842710540946156245980236168234134389573220680457546323816126042662054880079351674292121721447453522065516016770368733447439074549120101537126111435937009360085618711293087490227808579912727602627456399227865583410740022068577927169336909518252548236477689329180343874510170705155858012612310068706437060071523595787868300014811098398170689260876797457835840350834238360271881873561070112867052991102184483497604243426137111382147446979186684516475048421845355351780282314933938857475593449739743805919434654168213450198306975617562527503387595101018677336969829897401961901846438577068756623243482641514639474964589239419466421308596984270860175839502774452459181644180041867861185802722704320442810286983415971232418668977188025521810276848246098876248948486199166492537726766057577819924565779395658667776915461828396905320253648634551949061220008065999989991462771366293257140206305558104327013627908438662476403173190169421423598200387966711442134268944082673100163281676448516745025002962114356346396371163757061901791220029068772872866060050861022566567149955315570472430331660446578065897690091033934347333820134668747949943620892213177869587188201452795307070816742691502566963750430089741340774015551932806239649294320068321239159968867526529994337124612864194806013860497166153734932483899274497903633680475507207447441577791554950759004577775220637428637907340202421644904137112666299034377475019002897350509607630034690551450285559345580528077913081337023150964101383470432642595836337788369630301155859815596486146696613476469700613412735153158999357886016810927208528922776128775172342587636795818300644339556010968899230533061544493966381270977132642993514858142017307215760838406448450937874625485599923542212351764162134138649038888826565014458233525284035467897861696044667289114942262246400062510995509218652022889543070909578947642341211586803390589983290577320018362000966961372558902479858263813557477291484881756603082452216037237258999027032057801195801487491285147916645069756337567636004933661557244150197485163134982003662543843270369656617839022159899457616426715459952388118876308146714748346146206946429339850776990750597410051284943423553467290144246844092619702210559707391119573383224593877931935742351060286355922984450687653282707077877655919001323176673933532710421056864825470776784561438024025947297009807263194638137000695673484172930181462484587711361105505664749193677360632577268396610196138730447196409147056217610177558536201844195768093296250116437578726624007082413110487461591899361054456209690437821799238560031392443285607750251285385665407653552797978974902512225133195670103792381969728824194123787620807963862067087663582298069128199654792839170103965869289209493308139927639247797009138058503206521884196116468247705233051443704636498349179575755313829389429733992403704642161841044436925083405045997330086028488041660221137937853332648000597134107574668226967699640728768308608402343989830941290904496042331209513649342974460989048067835791282055905070457680189701629144149043778903125598421879296919163596038962574810248875691119890045759032097598041433205595056073876658442739954456111784405338546074178773925503791333069430744561477647922784062417560388711791401135120529349933785877086917759591332815693508424483897070716511852887590910878575291173637013753492410420363561285026477311972402131982261236181215246147925776166593280834765933397802400456031148980276117307326021679575367667218114821137442535811963299088831653218701181771133294092939795532788468044674748002654776210475986113663997847694854572032269014816181782653816484820096093064085069685142575103352923605468367233408139426829264973394274356499624844187212187046480170741034159734197073233444885006072738840355315580466726172876359268079910749388650994786768615736765914221083856068046450558138906122839260209428896437620304096607412015514708012395083262878069325205629845204174815338105483458091604368086699778808917220037621584593928064452348555231267212568608900277653972122181074768411294154732510549963038069480246722990936951378390277564959955389700138600482715251793317721734033416456936817168148916032431378421998552191962910993593782997898346281608005984803523335339531155219283545298382251936698700783153777310867352327035834563022685824807781044684778213840671561643234665362074046751873997321673498030873627042318705135093862892917459176250468872991276648669492399432635723377547747164321031863698121686582318555982367110888131211184646891138520285161513626594779648686541865547945553292581082822231898223739511656813510579426819335503371180855935622115898940717258479488376280399227088602256888005322938610351888887214054841682440290638401992862228521436367086705221593539062847662077105679872864298608139950291842780216779554500825815444840182534449517677515961022426796589139097382614749106563028206490410379245636616360435128922821232668648144152788867765897682441063588422753898408168902843258065519267792790042582160953095355966901040055458995818743433994860424838995102434330523521315654146010304329203479317845260418407976819064202823006091175228052072228731634169172643003803573970965429056396926600192162999620967618385484111639012326209652804787406302555847460928030936758940746421048511927092912769298241391485063007923784556680815493848693026730185581979178543652736095054449380424631190154735514105333344818952737849987859652341190559600190512631598553587154941793424826467520818112588678514968388154775271524391952364321450437205127858954099098085646809942517140916123564995180081657268892246380499946541124514506225713301245914048194760560887771881567064652111855710130130082222759755741436593328611711910856222514544721923899584689858777103303000940617688175160295435203604772278428233398022953874714619710038984039809019545077477799248300434811849764652382298774220984227741396853084629448276936998826496789839629002972223136058727088748337286858068893423865296875291102924463009279336131449850934658973119879985931621957116703386226107714165429815593384784978090775912986467831679390085910788051684313670091448391961710679665783181201124352747503266293737182475132302051489672343805638663088966923715678958300234668690354596680921957734271519056218162180303020277302861402449244209859039977118670253827748771716183425834946040759988309074176097702513793284856965976182366113660660098803708818140484660666663424187830325755015127717137632685353666576005682758194401586071920552017136697694212383655018666897679066484137369148793308121349276028108111817696723091805604506800137603489867800964394864990824570517698628997817478929765543287903753003916174778301027506309104544726280563582601463371852578807472882863798225679295876224804545144427753244637353520354429799217981581709610037587003241679061770328260816207627902380759159860837529581276660634027640064208242750429914781613890234871431445958512671921329387005923811267038643962771906915836178839635260646708184587758800791503800655735787375244061072870218280338929866219615446842622116956185870521175894157569905497302759817524973024405215580021290327551040637812022403925479588473663367857962021669832017703418340294594095839074736247012801758421696905051394907611156891835602944183511490565014382600553520351731095542751771485918905930439415738822485675400760626750972472000490830020201762158988439998259445774363131002566251432490026049564535146624960891351907954297521473690386037123708485484649049219041897592288669666235593643237389406307443049275246336744277961369925662255625961984594027328012872624389407215914424688980220740823770164634422374841952333329143731543550819884440781192065521875216793100898161192780336092940570869963486123425178894950021397479942557397317905335329823082438963207375449496267077340427814972846724146002163546657348403435442872942810383176818105378515918717791636415457609481309705245829505912397479406376966377268007519752525961885407600676086248134798240162108816194891126052174879162338234257923667346646257315738935260197611386059446689818427361307731528601574050019179148061290551977573617266140484374759472952088889101389700691768081415664823696454474283093754027260943523362079604662201604483225592397751208891195215704182711899080602377844271424373906030338289388765604736544225052830078394521629505091111664917435373363020459830072007893097864247172742700257666642021849399618606086440520732804615591322003511849432188496911839833587685235378438639670178324341156558204923573193545731411033906950298570762957552836840669580917851395271286730064919470549741366172704826522914519821980711659321878669696993631387763949693268030095280915222334903449341392817618127288237023588747624031177519654594751307040991200677785025083576411941246211940569928605551317441206257435080264443069325395212028892019159179129146204047019187015923400915275799618927047654060241184926365025864869784930482326327106352763558864892020335402914449919164479106867025096932939645706818828972595043945307158974006024382584927465552322088502878609255663318467378698237882949302056098083814191617155587139044101007468851021912143418149782985483029996473416256759398444402348604962524223605473330068539574926535495994413277335399820645523063454372909004468433809524574788973701472221767539520260410594456143677708304433136713183078473582286052531760075929760951317866918759741338332431594330371473553296373712561335552006735455645767410915096200850553776570810547833518901095412774282011191571686944727521805433649629956878468495502307507509569667012770251837012305321982199565244603616544100109068011697158528210447511653592248621241559082961830158116015825739494865928515337641739549175259936611762687910828543754962741707808742363435511429511718882203920577371226578953236031947835315040289161334893050819809203563343633928088492715358116033079644620887212311400592296592829682928350353798322175654077007640710083837279762895898738873760587145463133050601795620477881718888382292393360612666668834295495983671656419931664626313028884315447807157557264124349652045683458029624365880540614095118820220811486054888311279015705207717438628415734911901890947781605801423322809940489816911811829062859188329280822373488506744098076462933385815307151563094827242000391552721347894618157438716189121148263724256118429641286082092400870823996157060683479871807059895832844110392787882106027125858014636432598440020012728704911681352186542983975647520426285788523641845272121612705569609434574577143363038947931912355620684943512941325338903565148713077141716657329389586356209879782596555894339310748730478075102448837455742445305003004773149240895319635441865479434179714705699110297408025205048654425567087636621548257017857876255794879464743901356532779896079676347448016513487646074342935841409177137725000565199263163056652193353149031672110700991081838833035462288854896258442873796234534212633679294801547007130423751365109838892647544257808425157001002818638407301988345257518781857507087828192714002857571235744778894807984612782884283751032975794291253711259171254937407227654034235407287493389965035148136152439882952411051360237675464477982607357366057398651906460208047673742557485112241140986958852348605726655908745202144315053688542840281704932180814509547036178512212637948150470017629194973071505557328679533297998162665654771941112588381144290076769324665371325104067360697312636741579379606544700406978950506911608148885257644866928258567489874911479036279333249658497340708937913950525205051551953686925064335276026397594813795122047982115578605398948796083113595190997609608638098133391856440386347221860969348363207812021721564343143404178652818298645528588356124688822944504076553604665528895436689290101870273634373140870210171599754857939247405305405189018888910759761186409215630081863363370026679109027552769853136930142470812469186319289461212291224548659425649630418037547536599507178283955189214197163156799462956917735651137227172802052930112731900224745060016277589914542004553162906319638074406258355239670799651654059914283396363194929429569121643524521879099832813889672308762761795073495807913707395930279803924187835502205307052661531673084670516471881223755374940285865309697651187070385718210240388955681252338655726435178807039427486619341346793403601727337402382110967933457533407606493244600055753628638997312281192283276100176937424086426454269662430343887188243085875139988538816026416496398315436157264197220850561306649949469078068901333276375188033466014454765514623991701795528120223028868087831077707110391210045583143759116756798442056090351613701778702394548948382960207255197612431044017758580261564020076875962077956379551010099192784670052859246119836493609123533667402868900687927694191018770157181348878700920552130879161671255704463631324631871832483642291033041763303934752365736237846678719961726087400740578779073072117861213434781653413286710056054078295298498101988108562655714021683879814703597602909801971827361489425783210079742824839046025775063309487188989878237883699055063777762198075542403526825791992373523940636434077219556085974045535158762648733522274610254584908456955037623697069694772849039362047711917022128084817489149395741383314200610270117718765048392064634635362574364996504815863208452365488744510052889840036979264667831643212726566920469726962863701936022319016019489569147943037197135254916150261846981245830647790450332708223174738081118686777285042675008563617222025711024860039297307607567439600289084333818185193148255343725048883936760611728310318113456267375051731981236619951314888562549430076577041787435874885648970061320321479100477076569903020987925097941826155023666945040966685040337101592673371284185308190224690868068353659263561580267513066207328611580116761900473829367994405069754341953588518952539234908297428236063476525162942816402366184887125359566687701170758919318752858881430554388285155725862945027638601372347989185554208575661489580655708972535133617022410346785189927699051996913415860368018923910370419661029014739337884033388317923537766337705552808217775376434138611779776205341584998818403703929164739598994292388305957943848155884632926761980510033977744522431121222603213876233475108533983913234881089960939695974477639454640101582403897975907804562603899392921449953059674315957488421919369478473684624894177205775129050325880935489121602595341828211164000852973933875334822635895377967968649197650984815757300968321418013924942214159949615293294086633776929400664515836808669189967333571108950029131884595029656252277214082984340193013547633142283148901432533133027962230172971219186413209531336490314828793694441575971175354947197663836324148539222547844385627573195764952008859186536499968812751230196406433422905235692689003747418994898336499887293928963657605071429461463949863240388020189785059344816041699049806631018299045910378856747214495996504814058782308527707195964245046385531052322569528444800667269880732000630824351215130406559793267747670348431327895175458424096751286241253643051546270837151177414886344791056160706949759723435547938112079787532089826011186835210650443133055426964231556627023451700164605600126151918235080065788127839929452810860858668449095882009274987814737881994203181432178885716272650698848318704539756334448345914217355592039634266236622398110536998625258770528534697963544714781879463926904226886167830916356862707401644953713190684564207551536799109188178185600091744183291035767077912912701982375116624621862277275802426955957728738651061161933656426417639795860526421943447204402525046226521802113364737868770589218453429408215072791129337846308174821076283840841865737554550401868607099866236278672506212739588200569210105804791563170645051956338856718033232374137723620995077693170658918153794870272537257481381557005796194611581552587886844800482891195396920869731960242199265274131122491532667720372622293566203409521112860786738993498173688414674913780230690921167674169478441049363216233189272855425387494257653671971588553819582938971148373770881022706669342586287873216279840206960149509294066319661686662867138272150374422092968384049983583133986837341349733503860075377588988727778558706375368712672407047860184083853138347922787674319599597079983415287734495351646167224730009194655235006724627188269443358906551199540233938496275892964294905311844548754140776177660885980864627348016133791572843062972639832269645943304764134172440759064094893637362060978183030126553126717164235744839085272437304430975937795535036007390824441161298564673123142967247728343595457971221497137088471747823203130207154391367956773339998866657337717914274035709657504550956502034241291685899717038274481447326178212592914271585230375052756080094971896879714603606054604420403372779885193547885057984121956037301022389482451476798375277945601493962222135569011916436593500320540638846586269176050525410005536506157426459096635967716673918316235962698926064608737352619162015571186630789533423041665728589163966437373530656910877638046077821623757770349420570388400291675959475528717091459274539717894257904233853235211975601408296414811015553013577629454649404830231228537578026689105013759432500464362162740914411660626219344911122538059060191413633754426985500066157057484270674974174249752200557685985021870878233547036245137562473349413153505426504394535272041148753489304001124106593513935697948392928021291533327132480454493516892287188473670519148780030205604566245825988933257426951935113424909699731599048395084276089443990398446196662870218684938467181861501434226883732638588423050837013987126143593127942779294588578176878487852802647136936240199018028698228098415202282472115375750221050425620352542312337909717983287471111402124530257607739066705221953144280614983924535450360467978074294112337302522513744139720377490552764905763293062630413369274128293553767220956669049772780250072741705169035957002903155174492686292063510424113961612671461395158434110045325815309951313099204688655511224078304148368004632055334729599064925440203061411327647236212970781582147248768980017382566362497021252944940220910681701256842771770475340369696376419264051267822175271136520021271354668152437534650536994666232818249778372676561335234861861005320799173589971064741207078079741659689791467411795572734558484229540044130949286015467546841399489268328028135057870201633788101466786087904847778219252864679817341913980125240172755690064096826418987572314051367674884214518563197703222133635648394243172978705404836597863318802612173005687416582744658727956600606349813784295034623510415149760346175079462521997841599229553953129783628789559231635314014847208849635339038372522339634320226320594145348769086127486735785519959698832574957859181467990970897379189413112920742632617144610227125310970256717055025253195959499631665703448288530799755142636125190505638479098551439511808678715339863644994280917359398777274600319259453286258121129751834149769491921042102461345817906748974986245882375193080233878108628884748788716328422718805192641154269273501625084694062340187716069674755951511799689711750849795162927674374330726318483725478603687872412904875153340563635133938369697159595238405783021923396046803231826924598429352693725063419007188302219789948459487800970822038596749109247582475989191150719943055810227652328237452207128949691863429449379448525272390112937686396573600166399244781469419256511106580259983245881107719136360148471850046323415843815123296357966402833843464328124281201194118520566987481034437839544374607311510082253135466058005214641686870160051436043497587794461216913860463919820878405537394898429032090109736614013747977713382554083691503680265231576785462581105260147949106704973518785924982196645663649814562609544506758343789057144971131488768305508144923828032167282345362045565700643624958144063835461211918961110337019371317911674056516397977354781646410585290812676078696280504910975719485679014870990162323061988856271771356871264319494703132884577625766120276069362958315277573817139029225537175743347811152034790472259999563890680111937735763764090191056289307112166118737270453421955230014032995253507736224494258641450677819500115620179536080433406413611104572704388268821242970913912166712825530121167980758389989717118991589429485065680421313807229441073106539334771192913958144171308118876098027729835177219647410690609633568172409795544719313096684756587985089409092385367448611947131822489938938957730574419726789337538580641991181850375840165238655321063304483954374001631592073836920878003384765817391490489727144044768607630269923253989578137509658892159390748099685437431380986131782522123843023717955500756412864761246759699309323454128182513499329290912610237413130100356008833792297542131346996477617078111737720423214395969535525427365706748533647850318315324454116026782598956993636206826715072914747615719515934032561927316463850929341990271713411537858199770914364611827335768552226434743414068384709294404973378778384365251570553796583212257834673233080984398937993703383114901059517570245245405849301165881690661509870645073093732636990713535695885414227729611856486925478319582489483529214831283693410035322872089606914252024369965931899138438652542447097471736645466140118376866427326715633402208995241826165200440875568838216267374123257293683335528191362454124210068410165029055339237769758027914794333615941565748440478849098709228150644528748037883690411446528055927262158504043021404791032845721749784901893725112609244041963468946732908743009800292645663123080353168859160633245923558933837424131365154982107849712460376989894484528829510816817241452847977671653487338689438182233959633911261060099577421099065238952246113704121545883112297148735504344792562652540262233616190132068379515958585388227938012805844879387393879416924080919468426029094070802071610552128758472912441845608282889354839463830063769559200864787355280045983987687054290868474048781487325272787956119673981832451620139825681251410025371726261107793745578176263648296620425956575821492358471457387863258822899519892983949013915151747075730878147860380966588951987640238344178373882247284415495478093236474756194580431107975370993925634300167360624819039690670268944817067694855477344995950049294753788788792249556375576855083229146187742194741646987326304271500793079334584078085947548907118381638014312866893842782610380283824442841959723284331500816682372472192016899228321079322474580983130591641093226203728843447032432232452590335048066748667522379807962072958939520551614442960657876408782916776717201071503462106858999924254547818765489354515110044174625775270016991592983852411565744698946786448450125653192688862172924974425929344126702458288180209225332957633490256831430417479226227181226050175609929455586966679628024429368315412200075743336308019398765617503248848103340543407393926289554739032336904818779953610734398166204451134590513793948761104819042365056522216685337687322752677915898403697009043818861467535698613861872837613042783050303690162023356145970830240151640721003254979961482982734072341109073631966792954945761488976213567292995690149077844440737903298012472688837248691296166079171620454902972489311175443900517651935797951453078800090857355837968526403481088289893975077398132408037823011983699731583061248228547546371835709577044810391711363213882085551066459255181419648013631582179960248056527342358146803314484421183391971486979692901833508581048034903041722767458645468636840638963630576143902550856712569578897987600298530337916025445216475871781308514741104795084542913561627748855982691670993873791777066682135638637052647700028129601148917102003562063711719425831728147739501458154330057190210421766671351893932304919897110684558969098990380439364106390054465378769087019971835263495534791301830129314797350317394351171582060179749603386656494946344298843509925238886298270295655458880440565186607655903822511936014104741424819906117534589105330561236928289342555390293680370638480948889147356080985013294057901764607877393759322335110017670513664105540247580285581203625744698226406798561766500434637865343449472977635021710207145604486308343191015372272022098312624711650913559336944149857238832331085974579253448433089420662448405552028563949704769131846824900416436721493516444177384622419132940241524665536116397172910184991446007085914524223259860595329035492745921966294925979802369749641093233860029925369455055163877475606631162296103860427825307664682028819887901715658641010018522524270349589279190350966137987696285016956233202658356116712510942379519888735238329223164070470668332284153437642099520117152768321119867794368811760466838464235913588486797644454791796583970346818707236740654907088896041457987036216875409918112710488179505324578539744915751310141373874424995421893696830059267449633452806426434630565314157169524081061424127653483341246189999111829023572452404812304899732209638031147849396750183462728317900838455325974139381178599012187875847960897631241150637101489481649457226568951557286209925843344845943655527412287435782563320099167316269877069604516482087716488375525772155995381279878505403041868120651549945089508430631306189104158753820456591460062301958835645031680972076148529137831511261315915335391479717017191945152928588095097177285902085740354180762200800616919059863239761841031490943370962914053306768654488422304629528400057096903499269739229880005133786689441069084579352370200388632586883713772547187866026718207281177746435310129380328036812266050276307702776307524955128095481026942230652986198345007196695509295207652794051807290342150277620645678229377832332408675930472544086946711697020899495866333983823054297960463899911771748862506283535210089905078344162668147211266212088315620607204216737677087958029602744238410118290715258972921353677309512521854098870828479993131635700709527813415718644677863065109148964909894707806000332083014753623826389313852250241260076074426789503426623192265996154536321995921427677984448258872896157290361217744349448230448283006574824953053402438382285288539089456491179175576492386753544618573162428798668307919726750735313529377967142523955595556856260368244139579330718837320345372975957952457316346725718681700364881351817484358006703672363342866506971826747073416683227693461225868853865729489208251868691832059018964440413675251180831958261541624594292358519398169791152369744302698488001248069160408655256188482647169835510173036625092554648825721191074520110625494440481101890845107695267945513242897153579594867461176518947529801668763064814871724832132530215195964544444992156661117128823000882486234247974816044957891132291803015505945031136665768052212896372876291576271141567718050621836271178500186808969077598541419113777693541379063129930813965158809628292392570240018323572291409562567302210548537451525860758327057653384616862959262695945731857931374717311325677309362820499604201193840184853755153347012750412400025175711685623457022379965102822720952489550806701186430441883144053172161094251785133171054418060248373824695963310989245965700114667580078475933733023292282432989141091411432634357667172321553891129872837158695347333122872373270960079995238756706155480746550256994601580850048953002082843266832532199769166753058447021655783181340135718916385325349534896223209619422447297688910577698865329933191384323696838750847176641924774942969622144833152032611180364874926717302502670476678431148681948702089416481175014879287824069813140002366999544121834610468664970241200341732314744443582782740017311689687480505345173057019853783681941651152076900515804214069875919290374617513369785248535266476820447746873051835844239719282394704082048954920763318128234457735854240911717986011990750758087782740362240042608250276289160233931776921008161563841110177003801464927217508518944228436221461762698462217024210700518077467290271140973752708632699196898412902297810316736624512294147314260170240615835058949202761501651121284072728439476504931743428382813508607447721049114923495090848186151813820313835007763002689706232067714823422383814113404474538814509955063353039207020125673908667608597985756166548595811213208209247409440201507678875198371711312136739006204167400821450734778154468802775380335787385603620354644923243254556039047987556416415874926867797252667751219652644777122465942362808582225941214515583709136982551357473690602476697719552923291207431339645408917734358066900988127948667161701215949245256128978608582708615676937265948503559853713378100596553663951042737490136336065678618633581272670784917832482383135203080369424717627680811798617774604539335582841619470167812030578619314160584610705829104982395889430001217214118043521228848035691833487783488203196129580923523690427557672326558279597633048235941467970686242682236080043233284363679045201561908077976519691365541703127116545934476360127894565835670895471968994852278124287528153396499439996892827764394625434340169231289831751696875602569470384594400476740420281777780933951492119979674016255994102161258958742320334544794606819897415381213993320177420898500107709154370658573653651282389352960466034181656953550163004939299085719954278246805578075902122657978877152081143148859153892069202994230387164171745012066446753299840423790666164120209756970060269848136717647207377919293817732517285086123039824596561128534866162119675231944814964932112712609174702387615012358305181182330847562558406641581077230793018246884257427793145908595441825369904361934378652749135553644285093814856273733436518423581910192053887200763719332486362241905320399033736687804680755025356434456545179650475337586720139411767739367219224756630262004926694284234210785632794687521458465247668825453519566684456189768510334905323757795437619357945115343928177266744114249479220104724007512288858099097917742461515235190682439028474237354477939043126854500740751582909056649621064295792575086233002044921435869474865555660426336841642012678954725506399151322457390227017579741510005808173687958984842672450572378198649546490497281925306830593076050364837246507308283812371124610019162269895106055722443863327346605660234053892543730193106935142415329058443495010236164911196816869665998541773251911695622379923594181310464880579825631189223712944773646523597944009315946950112579039577537550706558693396178830076431241253171861773703517604893215517084276801614406278040949755684693100857044062405678365411976311293741654847413206539139965518955522998091960194069979746735913159488087438983475620911307522733954288252967181331321845692980527835966763531457508722566700481471088809256904070820432119831201835489252750904682695831425898574416847219863657778573717216160067465113834473606927695835335463756923826265557470382393633596549218050514716520103055554185257542528154994681672044580563089220159880532807550022674679194853381449363727331011270975081062967172601582763896854218195812968132293206076076145023330224958152396026873243263637040122403763413677961398611108321754231283105236076012292473571925130293258339338175663352717510323071943644602799745249206829441198913265216433406264618281034565922246289270874624592263528682525598757693744320216038233058977161476642523280015027785805460817578673616491859552695504616760414967551402149914791310487929246428378572182725494575054616040474886267451455965243031771860309178476003052470751798825873778164816972365304583492322096478199857960875260055386084793409282736744293381753525611267478743991461080093659281875031241746550787500551065238493962885505389131020723120063925651189295550074530912878801596255312986639050036996323722531681565329843952998259303587113453615842467721903244402515106376935158502584672876984858156548455230807144244106583982779464690115672503045869507639742137796299073439166432615845658635622712808570210835902968706624728848362080013341608667811962251882573923449789069066271053919012222043991246129195067258080948979029140565686724695604364193591211471510572985539223223164562924912180532687553442273763492424855331257615357253097429849306322409890469932991795320742237654502807783872048269417561230406868725236959155576079221507632528361297375911833508166086383802424684064196025919245056332473682443878259711627905281464917361424628801325348591847624094448710448047031163836300755862022933464269040448957287963710219259112937960941065612266331015086169019928982722580052832569814502975915641524628778466176555684176830938718086490271153780880093131148428672396147191891549401391478770914417914313137355094655436836784763870917590731436812226243405952083907686635636820351884194825703049167050386978855074372042269945814822751859071421254877897205107451453703887651412457212476360634691522538105122764020784615194884194734878424292588748832888907215093371154297280387037017118294205183670646548183205129476185307658961492836641903547070418666522796479483048884811610644875178881579450251288297710444629348129666611304115086420391039241429908698730613780141520988647165754609397872312931988021861084183672323584143302028403614281843317092815508989525738539852110304932085969610610740992828686323102524275064576445484256478796955559855111565598022659679050477457672595108084102185409841783393920056673239375512875951064823375423413841066574491950730452000921857582974214851080632483857794003293252242538389867561289894516546287104530847313522432269932812876226753089365391695748100077446327558118322010226855253097692748401690475961368525394546762245674179724243189072355330554924885896817303121216301699282670692919690863611886467946354717808875786398139826705811634858521645438926997789148520800009544484063133633452141256630481456601086022402083673094401701231344462208612257019229903277503841393913904970760260456612509107190324835634682484323035847998868706241784695756290587395085805597374755655926828856174986563938102198646312532688169966596444340112251501416544704819326360666203314492209385273863669756340177317434176784553612928566923693229373458181996728820279188861803023114834024941596871221152384523029187534699542372119781339948195783961855709399775515698756457840977258219478759876554914995618594213429979644107736986225546952663854940081674800326144520796723900425573110379509590097251518006295465023321281848503010895862461610557794790321162081396325809808666126464240436466342527803703503731584267449991815866586265693113703566683782932496491033610832610938092665373853327889444209528787941850064626770916527352129007670126535530659012128080465954582073495201532065485215909258664317399238007858568129505279617091921328647217821091457612620957148239511524534973142419413609027672245975504544588036695687455520826207763007164508647786166952426106083759655690492656968865810325561648797240949254848218982608174156860770432477930560702340013584481689417340728883941802531188227142193069073768159235762286663081091657619707182358024420412896299733788580654545470412334924165806046968934417772267929102333388900245260331236782673340987102096454718118731355327514323763186349353832799901819198923328306874733134910010221598940760777500630284388640370976051566126272436908203167242063549422827821997534908193169493096857868771616744904091424012549436349428127415597738389370720111718732859670811902823695002563850459131201844222227504457425149004639114024615811744298803619007308840813829272570233299864459576196258411273297544450652195168327369944818659870947765906598804502884777145143245062778512574726973096958622153381995400814816565465289476075079821841173778665135662559152372644390088505233715490755168493799077870545085040583564657593010476195321842721733520442757067582508554831444129317346537625533875074865014376269475113254630242447305109942034153907496058889531441115066822852205100800269177791083669627104735168518506592855011719577155020886524253450706695004548122991694123839772956923393946022669196621495596603119962991137376842884187444660326428905064180922693369980369774910365707644658831258685283113793399314824475275308063391128321036308983776191004892840887269985107826442288434042302799074700431680737671888488118429734743996288311497005729824199249378329774311847010653239072068746302220945247524406803956004213815005182659234340650528796394002885859168828691969147099726181431624428200907556253123217549184141354320474379853985215666871913070916791222740096448311172258688055435928063120199240278982226051851280564787194082098686928075621655715239064818564208995626328785829889871486761451105099849358015273168311046424910584105863281432183070643351545441104494001475221436601197104359955639164030440766409000941218169330100463595969023576444801389732092126455919366605261133457347666450747980621836176713212069732143614972508432945459761513859519482220951741765532374793062535919946696879777082948589052842411760024719278635908330265919835492104303648883896657679163627196641543000316127365602163577902555712488368011930287053976479539468609835470023449729589013165417724804602009076960445755245314677012089883403661211441957170600453030843739997921961651947781150197960887208467588877060244225486741023687687679990061992702879410462812455374008272149621064865857522853355186714851495995356231429088495792498172826097732356503517374858988265898649121970388833373630578553661835282858107760558378535096139122636297188934959948859064646065214393158036004266178356793982394724344879683553887577138302522088862865347114567724577797598358822101132602542081264189272907726953703170740045213656003180949228746356008450665620048615990246273193556564763612427871752349625592511832594261653177903887967541073158855394614704298144661718810277003342844086421711847520558413468477314070433406779073324873320988908363778218029262398233106479592731845009455622970850102104776727843680342409345436498007825503086347973318893227971709298669028200866332355288514662516642740382942485331176443790559754684052998274490138456875769922719079346074788385548222502502683285734155645573551176186453226746345419861068147212245313722929692092114166294804024361795397883045976323826336171733896883328711787180986402560528256971609881176255401178605850177521045959353356321167917469165622306877173803636088099546377583216324195398809277610817764997125317040644054160233732583324054676362307281498963655998817267255166293769634654968101197874391509302743052387118775434889335812851832702971285849458764757437001397517654245123891949710332701109242662216524641761021221913549568346912995472050478819440917691902615910859087018092313489669715026040787608257516823345340780629449934470668935743681878505527533998877128194640903261848897530515303839768802332242920023381423001345793532311741339078113891397225333616940752596102196606613839663172300769977572016915255662409165205130626119457051340398764898283372702764394365040864350284417103708999887756338405637573922520246524888698456075930899919552844688112971723633048886495319053836997388807946179672586823068139817365725513251486466459637154358734205405327657389935203966132892877588297036280732021242962712680698216306035926176409042401110181914832861749722515348235765061913403023940208320598916897637553229244814136518727493634277641588831339329415510242157259308969860675183818216720774998236132119185461744528079868080697901060549668576600430228500461769234484305569805156679586403520548849698691286127521199195047357772874311047609871339882648425105967156551250521743214494201647816902135685280352818347615280669274138357340220399870622761470756809843578504116958076223833473286200058263399464169260465332007850051259911881998412456888916389704105574368372326306614929618795021261871531823051084901057699362957349202632469977214032463804799581068204860842671170655018559983995618120413444215807151978396021256580769760346522678130883934301958056013318217825542398767676088650943137539798328704050932696214173397622335140420524649311485838637322649340681730301992914145665479726384967490024004767374387634787647251118765030365058219710486675225918420039546440687005101082943683747302652473025893895660125250299790251008792240472697073484288867054888000418514154666635074105603167863364025037998279412404564349756658287072276742349953057516034638018815101756855405202105158581204471203492774732560443332349748970053082352891474193917384119406627198575422299223969306528186351655948759150752371265697696874524774154763735037986896388010141196076279975231473167858816534978848061818353905116727528549998682940917605405218318580818010268749609043178060174688769325295189335851732159981635799352476972611801104865023525533115923766156569188394517773037700759757438602373965073860172109157280599355462851331393022571208309282319843918111858476741299677842115228618861645263613535532721361400775522183136992727563367243054835625880197000443913561748282704046917628862815061812082648248894819775179190367982821154616710555507575434672045098164073348470682140174235557723002142482542051041783440272073018459265827239353771858219374943877928460518615520303307136053926519053262546356515359203481561430838867417706121241820213532314505046377343338474464778604536639739212788662218664138061238284678979984886250844141677212397351567173796357262798840350110728402770383846183536371562156387988856773720343503389541428708820352510481698152153660257095546208849002542726160567708185938891639804140503947461064577873526758624370467617419826251923045981475711924885437767522358381826510651379430995814767751230168910527125892876847302061632054016144754203555434772187005430230472445214291694870515309309403669826831101974251581703990827550686845439854253665388736911045919535429755993935117817972346028277951728531362722451832922910855116684600813261886548116473950611297501786146657212945667584304798558020548120136247694701419052905830014528974161882633888019787412145490718868197113272543590104997679551368894687087100172700127402288248306933295809397774477533770859575571384330048807079857735980253326172701707031900268189074644587383420169978792724584703165122697317290883694450186615492493237859464160008932523898961013795953558977535287285179687019795618315660865127531696611844776960065275039804330624655273561623368027507490313379841138115840873017871917675644133179651592063966227410501264262859706995007730374975792918066737891858536835675852509833816484583427019694358040278459498881229257265734421025243427301958698920270222403868161447218603628336811320433041474637635187593184947791381499151939710238881984832286778409613252876284925052057639947874284219262342773098617340751402676520908141654604802726237344057103070121439497280645853843576695742266958938862915301587931911955574899597619100221294480701005816376803233067195440356649377477994388537137628129072885475003764942855078302611271546454632410390900929278986537584314090974346961436883154966069725223318193705314625743476110376596640055619993453750339892434568878202366827396758824177277503042209927968610679486435312596766875227630332289595676488128823798032524802290400276410737959402218358431605412230178343467915568992170313831840779809933016289530360855655308969215580619262556682555110473185740340309222703066552828506414049392310627255406812089002129857482148575005054173887698470840697035195608738025258937312507317201009128881051256439156695680436476498592504028449753306518844187708370156107651841695863783376874908249533101422963379843752605617432043276977794534499177590814702138971351119373224991490134594269508171937977726039635057067719174961641154068319512547260742860821189210150619196717339222520286925987518996993026763591534946011885662891203445361787821644944091477207546771088415411155546143907924415013950539970562714906326376823847307162049518304224890542402688227740379271843923664039784452933012235339480417126326908924578700325225146843347779806473096473845889816122955757273346510705936311492447301493920590764157654760494977514423653718668189182615702614600346543466443319839211851692295434482780856594518976925298446648167615166117170146305202418773874085299775251269977559746086674967862985031312512883498607497607933155923238930810426733728612885270805868677705787403823493549908935337197721645678371960539963762908172247499572828000530105725327622409432017392667273671395534819190596363082540282311221150437661764136499562927804319669018278551579738024571031957410972056632124127974847527554164494160610067061869740325089393916248199749062492461410429597302481222076662884773117793017940581798679899611305243662032056966943916676847897055441749563451301927021614220014364656320424462991807894313988622864346608670749407701945449608645336542151733367395697153064031471660953276241352639794801803832837977383118081301030084170610848435825291905825520905218049253568714683281423909803798834094727174729036552375337712722227127162445260079043297188206681565501667651734183731939122838187282999927456269443677269196516983130460439664272445024972121486310937841476349035808369982843887068476213501345092682190169572603388698695649404010379141085450844432689208331822195271262357584476400961778902521225925044001982548711174666608897439606232177309958823934125006072605559889771545281911161327533526644538039871134711290966336286220979186289199907450506696999256065809673379925087320231149243928483169028151964296295450234897972717125729019569542526400204010369174345022758936258711675596325441058947113510867453646107261532493380106335143378304721229150334682381839977174476876129541810204271733716561747060940694698781555495509835232660695739196636592001654618897258037374862616029311623096813403568269641738170964260171532153153116794952796163765186346085148927664440949033075972257903271412747108419863815791996039483298442824047844888935939910685429760968304343189604139791631875742024785626939768242799278405852717985285553739491738193398453234088961698169043947864685670815706685448557798819739236872795947029428793295306721616765813499888734085422861653232585935083353504453219424899388742042468986680704513588629077545180238199023070995239836613155862635061255975842392647735632647277232316619864933975109260031437044593302854129099140072681407786107120711756491970561006379368672225304960239127137053492081578662282823654041799211813342389089380331986484727892853557394045076589691177738359066052192602907983567798064077137570042387271458890720507721389993405510273716031309558088570576152084809880684513749058382871517992910656017088755541923623152685447319020369653831857793050663170612452629138341569731575244274239457050007323056624316575484248021256963920911905931880752456378638076368290531654953058258832644480290233643074688455304558076519281108680399439049797400647181044724987185047708528135855672884897067132857511821004166979232658942735948249801803683242367331115548876673602178337540100330416789959552679237519802527810164131829939796759180744109297283031223532836579338938867568123381627838296081605721147123880456637942339347120104717597017110117347106379539658906185950536871655307559765406036965508384390191768773413574052966545099365995804463373545715709826298959307193072864676244234895614017062174741159510744652257807457394538741393607717154943743388631122263092862234380491739626751323597287516258824629603996442963557552195939760500865047256965584132800918747780902772170741665215703821501676505916098647751913093072780227996411006985091593076719596737399302622692794775691119884282169860390214789852045954188411144866906477214918971030804150428183219434805948085880015107846914690036838831248876730818790064267576750225449290823694244748425192234050193432428841724581258736734313704439480935162230565581321298963933229517405197222810106380478699751305805284012803164967567825650197629933234658869392639301971360964709194026807581681970934876810872451164015070938715862569695194955130224921891538643608694459857593822525855999212083890961353190442509128582029312449095460792750192813961869421886004363615386504576973165155304683858562723537453399279082443235459430168867269026757489742680649368972332819474776651463784137361152071785777680743170853158146784775316506106905545651383377780241992376526747108024079307785617068666902877484436710419902708558583512602761495565923528493545411998357689628722483338464651811285253019679642437866952609411588704578667864172003467750489598432526502179512951411383598539092166345671739746776959740009774279777705351184052653775353102243014754212672785531366970439282578546898508628951807867165874439525358881180583764842729198090952067771470481160988683605066824387878888912231607171023474053499845197809058964345992196813865491922432566458780736634404350446598822501872012720908118278965838451225915831269150633629081348409633945867408091567605391581458678318694881155372528354189071381538565634144863239636194962217355635200347842663674099391614471545619705519717862010984558576556071132190759961259709497401201922998474537581242132761571860040734545732757011534497694586127093634045731417160723427029040208471013052644483616371001009107186017008723807252030252362205722817273003247278519699025856024215674785150525708924353879168422853946980825897121986657944374904051957839157320348133785342951971318848389430262042229833643856175559903316101426128897057224246695537535953135460578640471883873114277646131625095923713537506959026109495726499061368826086251161743037983497187538755331068216746121661535524749576220911599281717412224790432170648695658441236046642301359558806760842797950441318731499205423083796251094527123611275385576917054618816836067023819058536557113178706031964094076651954310523765360253129552733590345397160329390007075817633545973618690228384260148550026394588111947590321923742862118627031362445455216510049658572793119400279269779733029610152032506847004621337766782568670413091549433435832054609787495324483187934916353357459398152562258129305790752968093170288344355330239143795147418310339335686410623227979107079147248825220606632814985987753137120662273187079736294018882367011747894950636285068788963418972422551547510766758161286631947805867745509039918484612777767525309328905148568795934460639321201240080006005004645014367605147942663170939113290218028164745194890741598066230966729684101137746840879999844625819762498877377954886063633646277483399260981442927229255597790024221187974968100741432202781145169887735400130108367023203800252058339987012241386112508389075172178801191915119327378517557865203721633428081540541576320012020092777555817260151962099865648212009310515229209657482611814613016493459133190092141582021479368363475105903406561247107395417111824614339307630543927344689049283481952473367625754046805900497787203239624827242237783737999942832071645964327381354048835422209802931008923692187806268513036227240799169388594640872417271869328644035858968587524694828317622509635212705354539420827540329903006931164537757526579308686231957959503465865027982793897237635303559399921164746231829556224629882403204826342266267327618147611025406196568436316335727645651036571181415502570816173789263291084456276042090605926842862434874539439277408794798739322843271652173592894774158117114077626308808952305577516627550372759272141058544835489604828550708381839676252702369182978660343020846060848853314100047546645261330677187851323647107884421440339687576498769947490232422006147860106366492876758300385109964492767851840202019623365539730141530959476190021489218709426465567456602865977648720925321835782485071726567537316522479324230648434413939127999726805235617559875641606745908086536022434017810842164900382066309997417864768382243848339352773441978599412338991778768584826685524740501045247809833038348476937835317590635764480894358990096253693934397584306912623523563963550857218980829543942362946866518989948929346817291082423475162672135614266733604237836798907348445006649940656406001652372563367060344597012377651977570403345286939903859721712628707790332768177426023136352200275750095754350634271103529455926559480130783862366972569943822443254759809987923439324055096980809474289864202259028990054803449816779115938253038973612022003031635795008491349136967094052788574143314954152384737309432339995620731689908491842688205003238262945172258430582499582703063828296362539271284609632556738963701997218632754015416809957227653799843354742924617515738316594337960802202038724670392366418829808547155401466648743056176606230001582120017788989546410592593415117693884868101115729830342281925497056451409753419272315560192528733722136356611686755535303608325841420433541102472569794730057321877843848992709657398881628990353811039153447899348527018202118330391401925768210955847147970282754523841060147335059756785820255197731207405584496046696914639030256203897574685756059631945070233012051152720605439081190661452980696645813051939045662453429819609045621937937927277025371805546106094931025469690119400800423994036711091660841932338842868545818551826414076838344731752333279990734313497575162139540781482347026964787900545304590256068193056923868012813099395540524994347359109946996766784240416648106813241689814841068212091955486283060971477976472786853198039929840011132551754282891069658734781093471519351401988336402711617007118158961544055265343680930560168419799451233614122109285731612140223856482712598748677443643814919773203905223755299334473623133505514238855912953829226361349047603828570223188747564077924560096997164533296507382301972111302338796180620033967882906878488179842961624670114432473204613448222109793921251360320842816779206553198339949111941172335552575898582024948597321548832410515347000840279111283304883752492912258770628054568432218828521141275354910966503224444956695523729474577467885392709123889041665167083436281307975321331109787399998865745911130753765933569085231319443929450986531858911838405458492280382075401732310985097291003573375766324891085915054129097424539840538399249979764359668574947659032475026210442122016187638668135689736235606568880792516598848741566724054358960624773332075224693574979563750670115937582287732075067421426074879445325830090556318161292866998564451147508484684586823698942476136472135939553429871402921214234728456142148670232267447145097682181210140704078935597060922725543982151644130200853352682740283986035878979801598886321393338033685275582410470168550202749483860189791720972516284170938802806444755424147613469155962690185864595113636069548737673170859991085281611377811471799506127255737140207097844898207446241724064685508251888062129687186165273377412016080815901644203996681811321759633135723897237156575108230501934338896077393118986048653069214348938344060013620926351076180134813489912577748574340882759425563288483162468940330033501288399881938912091888912267476204747667487142030694622963167462412660106513667472768236367950932617964552784605700892123150260482483350739704008726010499118441855772167715224068715253372833882739036867959569585457948955352509424977982929359899698754563581899369328758535237373675708957380412728451745131946876392603210107248637740807134446361533987640242089251652779252058994132784236014873358040559236072321139816113057440772142188841783687812653882480114333816690347368932045511122526751571941814871766367816115541900617488532577980680188885723742765398342977829758944791108967941970856917532699572475049856653334678840373360718623120932187735280187262389646915741703790865520960746898292453997308517412268963849980300694703348383702039839972879938067588879531502083928336958701467569698973076769991891021277647439285527103422249512891889513031057666314353785579946501479988179127052145281348039221512724798751919312326157402300703621833439352687856535715083181029981901999667230309153266167109013424471829844165142960166285972916418625847543207270130741593678021755047588456767792422815545160210085311554065140535964423897533647885101333919263598139534951584221722097119712090069830667736997323039272931888897683900967158597108213302382810709505847653719180984590607204700142073868497138330405063684366873288870438104346225205155069478045880816348020825767108218893847035141658129517071463573222710238567705625545341485293477797719137414594726847176371300685421965554954163349829801351493108715807866178628646908569538625577136191266184219478437606467821753330949739027612442276503375978103512473356724840002680667411541597375811222464010404004279093122048367701509869682072488578637378952641723105579717818709059674684561132664969693192350443936223841764397702492532599711166027121986824622137714051052447793677374601147956760516291006007242126210037973823453156030315055663472791903649600014106589435895132816516693865172102898982311793673791448632692922683392271395058710958569637232916739653071919113947718332980966388906433977121978001851040413345734837059856391387008491530181379577414119203913839796379381366127217846559329249619969623667742656182975416084027031764314414032690214657261324844616534971265191074897587075211660154955880123701722950916376249918563073916993428092188981195019301608589870028041083203308802461064326080194821207467300080222972832659206820171787277349213454722162779442675659525894463744712442113615579204652657694913955725015758939445418276664546472295736761177804315319045818282286882910032720524764986400579410340363512745548353855762387976179845948960836856149604114243087062042634009577509547516313572216519136425587144317789775075387766358619622648599685028476011972447218837134241599955996164398431336575420306135116936056999653867405982767240878046602391154313226471776645110649069359353833125474550817636038162158468632840610070755399796818858545929616190406890791109947943359938232213421088629902488416000031597338628370744583947414796065189172977039744281695901101128957793030495685443975359211263732210469832385017097710777028245676425564732668155691856063309181722923477372267671973204876364156991709717126671600544184608376873831068213735682154844546002002728622093912725959835504338644614043668974423032137106357892078902196611576480403979221581051701265157138706326798852341241498423560218991813613694030685596673550313232944352357025248664087804528137543635919575401128422805319752434474983887337059696732047434609092148604256914013136770418489814275923787496419606553021469499500179167020581085836815031626957885070770774614139253918450491584428297836116958798579354774165811285896023420898876713516531759993538316618845721628078346656145335958396677150522170432458683522445452602497515171591843448636474891990240015731757113656635778180595970235978277538596064032514211785601061201306800181643262695782843743671704758339762124575626345760310590665652026399221361423779147148708930382128968476670251684600510532720263405045783219768112856661032433915992587891675382456168760722607378675502582969226737980840174916322702905950151321105485157262309167626003490842927270297839603876922065342460479714631002926993284095418070684299234278102688721836613657587463389071206563435325343953529159404942779181753001293078709567492436129281215546098569224523126406931473641559551708207805798995088160787885468455823713661467475232016920611700268174275420870933147809550235163133489256122478916139640515070490792801682046739260941291090817099416154331922662868555295297039107544531985534037557457451421781516246026860960017106469529953156792875248748836676909904246900836220155178822357550052901702063344517153741931745607838127845877929090061844456977630276319768303113248053770918745132452658876565425282432501660718398192122997732218975409997651185448559048571527495125221234156898388446415431051186306444405053900844065880623777050431233575886133833893306844930931974422152981701016087112129731366246093370207073560643022468873597905417726072807262103853516685476903292241168927965698089380649045915160694069603445590798975467058710811069315548780414884458161539823189373563409179983430085840506842911600730053794028649935350208850037459488915349752327283627913395297588921176060064185398198913300224944483478204006558483285987187221332209765065513556821265140154824016718870124866905458273001682935008095144135973846305010236447435619175569527970963096599487191976800929244963091181453019284680333018154601854107738721873283368892824008665604424274848345790592696611568846743889577731467392881426786430338283653978930867942825639577553673132805005280091545222512107531241137825044428377836690717062798978545247970559825982514058554107930760222567557804909250629869736338153691611201024522028291884546805485045745457684315327983560251950753029519732655191649770267819065454306490974809724567880696573884322733039347908636498388161224501994115081627828828945186382745907953946749673954265886105458455556469681824577133671226491113554573125349885600339589648149257320787751506608832297751267775285311815064937641438874706031466834774645760615350036025026822832701283519094272017519694783102890910120206446753824913425141628672891813053044219987174947281180610246731174398995220038816594083492493836545131176733419368335832756334331258645679848248786197480113610313312401915283137886609467214353224528895975989568448595624504111654412543054134554951373096649995252821148960168523627410906487647326504265529102751760916491882909328513945323336768931482900580356688001873285669617326116713200831619132560664021132380050800021018704702684998616123919657740215745454180437578627596598124012060979777560867819138665704449109070035399571802081572685143625407070178310183921638568418875525406442857512738729377141160803143026872090150033903597150989478730731346812898142858771901628067158099856428077217528894441187231120808061247039379258339364151991151454058990596569213839425513323387429668579058907092821516299679148069519639444398143575629357275448430356921390184716570420337165229850218375074601188339777743379987555456427798312968740500553032694094973538161638025763896664752497515648664456758944592387848945271850445879661069539773047755241147415896026474510833167407183033098578013332633223251974658911865224738130395064573799355610976682639965851748062861641309732103187367230128783637232939735638984138225544969005588613448221076992460753880496797435909836975798764568171669701737186332038544614080858124173925254573705178960833453672863311841998974647039089353655323550522976731862966531561915474643363868609514647188119100452671987732219902112461448199749854196446071284010337362001385859970787040004211049207736700209671997847860158636295069219222472712426173436999334434794748800787579115031274954122717153311176712964762186523222593295678262361155708527664943382004011620692369738817669143605681029491906788608339085327959682128511510527004864007984989802146919844774952569712399553595388854309902972545248584497466767288090034708783097332651257178375673301381003741453466611995270075990837572476327352292500169093171014681717060829296968465466631298296332042702265725882060748541176456493164591402819570526410139708085578817599638860250836892080652092021035576310106822864202568500128690454348602570979291290004634223254541030999476413372397320984385767649204087105719282975667613509902181222451135086717054080055410014332912606363832823435575785934785575126789889754729751942208569228946328728874249846635809497546154288029184457385060355117492281313601224251671011028494689454654159481986730498584791729979371895740449389475254058626452660404652863614180548981482592128367973426195936048848697423868104568689313795299424504189592955335315559628295807244862795619279885029177018812175669810398487548323846666741284901472762321352303811843560050919711841965245897255045188206952478866342646259627596621232860252709176164318765763016209140106787531247011400278635657167834766917834053276276848483089203176124524734484454958523446468299096327627342131033870161370157667173200788061796318370403086748230678216212579239720410382978270145058804419767698453991855455554306170084042164341454365374430940671151849866551893909690068497568858426258225895667324202143246731717005582713526868597228069476089167981511574156972729956351469620843735472012328087746312489946889243269453388796016999850015171091741923917628791094674719300449523663631832532100898951563257472477912574239081410274481770648329438124818958928323503642841621089971788655289924553797070830875625417979958555713471801921045325947552111022260701331199872683443500555455223632515359049987907088550420019346089912359689885634433829536468700127917616003005755960808021317910371259629621942258989272974805977247544445473599025104271959389345712531036856625843442752319795845211714509945252030401748691910633163314270668777119538040687583146693885144619331270065014749358953204194988534737505927784297859313397037581097708616970267665442821438940518192920389585084805280897928334483179019813224353988877197326267785584237536891635653620929723898024523330901594554062903008500596192061443898443343009487340085340554575731380051660068150467647316981883216316742700644730883793668387709151392747099328822665552232058314593095104606536594448657627606949943172061785049084573434974747072885384682727827541757764084243556237290316263611018640987126342264713132872882407060378393802768039438176166610962902647698800099790875959792679248782751491711843817583173893589344285619259395009166908517424824403180588257233486686666728781831720609271468211326494820235170182658670299052013575707730602405143627653974532713766249747461548541502154656750347573885871235518234959924815077488174444759805002025500757064898307350443027399449359816270464606278553401189048703618844621321352848961096132995983789502280863996268293522426445420019611112842075420406362010783956025647143032883097666179493496173829106529328201995408537009052921444320585064787831669210180525885886743214279123658817537924371500565827143922114233998085319040879393629485562857130419058846149516551804401445223847994514228871615538263212526142480676531456668696884104404042255126531060678032452337416449434046722209095502602365829310923493928087169789809606369098129550375268432589363246011712853730444531543133954216687329762886551964804641086647039385908386622394720600731554009175994974454731524174910158072120873064892455949658748312382005464984151626964412376737496321616027027305352502853741227862257775543994551355845245360904852536550944968031261993112244013773732924915519661942251614971942499493545513443980711155689341097636943117570912503889817642079227396763565181464421580469211474832518067239576681374392724633765583807633522990042639113486988832858493094815626130378651071108478166216471366922189445638366150700251237943860880025211178237126260225948705773855802641564584709366147937563504375866817110006433792426787942810967146566929909536291127450607122954956963875316950880769929546213846106610388097221885948298758686366978434963121315550022381047945554981789051678677747762338758443866075461395805196181305098364712890970827224548373876971279839930976674338879681073124900926310093733882772140486361116250437760483291524439351642055904587836427958668752410198411443451316155182172009007506498775943182662751127659357385552061303927699222956768019291698410156450004502700996887231656161992402906551275207595185875190888670372239651372941842280393188573194954486882925613428935207954854447352965458064546615844973469699327663800624356785468748962605698459615191354063424164050913704353881245118403295907742358699702983081314720324595284050271071158631393506437350072782941137545995222370961506158198183097505883514666264279353818825513286638671258528094660251147317135492567296895134343020301606872512247158081945830423618410177499244956299091474262657355662779314953802505338021593237775130342059120629294187994807330986846984756910033074372686210334981248540639637289894039920761996589065084617042539731044097632413701082850583856151198318170087530342914311127155045801565160472029472447457175511841230879119135458942340694757647060046363460102328462571365234226506613589068920650528032921881147764867955967724812151666282072037235171026765363751165032560173201751702707198180160059763835054279019622855432321336564909333365472863042628242597035461086957111752459803321057212211170124462077308016246634864532438328951525991289790783824441389061836248326897285081645442967243388849530280234638726745250158525871156980735709448030795268238441235202834081211769110295954185412118368844263826659520494167445183333377545216083707252788972261510752884849734181087838462568953290422171213054443726074171706286623733102897797469386484027397497939505699701879233109054397919563358170875954279404246407693959411299837873222369412300016506004336340494734627380849800816448002746405859864283304540324154250754078706429093245455551908096948820889913291983305870297950735135981213385127633225114244585111571103018264037290265792353803861256337078448113009906507944618470443164512099526795530524549998164599927217292955946798976216522897334954079795224930986607014917030193392484994128886373963829054381919227260888139663010063938825786954671365029979299817345633393708960475995545215932152920726303620978509403776385822707793685528368727662882123483221109171745307563503314194518659287619857385668511037646187890171271331279647448480972153444016094219214324685138455649077141437207360213903647163640074185043692521111750889940333140088495691988237983824617352044869199545627295445247410794029170049404544568504405067332442227884780487934240142013435290938868650319303860772853900682077337648309761678218008705650012913373217703366671445102445601824656343465703493742797253645024760555980451665405284885901527623867282747337384327057957936114666616183382036302612831317890162542879669774500853891070797505458016087925092262786416238918161475694157485728781900395140071496580164549130380809559179179182496454655753037760790439120099373348541786742818917437754896561527464966328433559800571024717458583578757536518502368634728352130578165547434867228001338833176486246114321093743490963665366161359460024465282556117120675737060706091816259541001423675163051975178161389504325825335994505442003576402178093627455505075400281386025723118376634796092470386120411458583503756056943345562051141527127493865464112893053863377214348088742979205089230274454780081609825074737463215996405537527861958569158560744075193716550126538907334399410633477043626357032842992014619339828471208694605757744600450224282093010733814951983434904143108861877704481608677851945912345225096442328703623604252017067202223591282946538236084491581059105515577185862746937145905469882128627366187067514201662651554759937149752317668925304466373631233317677559919551017251160714034628685101479258523158337953370919964365223753549641398088272492764431229123981424580094038138609977690368314295225019912693396667379363586352201915959378899744263999260813127146868461716655769406878552225571957782174843775116295322105247022605178031072484100137565796379257416376449954058695634579388860599702408162044219174786683365273152204623134104356414848684376195347411270376247255386139678524629427644478966277238399972726060166557197276701876011960102802053128189550374055540457675810289388738837153924674353347005247486047619065915242814990959280180494465090834990725660756771587344022095186866680243896879438016197144765025801037612124650662062175798070202607827716324909971355874672911485413496161963547796980656373835899761114371529931100663371098579473096173828164512641034794971935768510672644412672291029234656942965122770011535929543152331094737882681525039274289597573472958313252292179095704307330510946836059962962637397081678648599036023791408970733870076938575658862023642952781001965681281268369457800351000097191054485980210341458022129559761245847864457518798272896255577362017183588160004422993146351210329877727512308635134476755019502256129206982952762506385040954875705043101220274527753617645661840095418967331934677081176927219635643644354810899193568881474004055794298279462799783061392263672851799618058606650699546193808680662632879176729940637943693849805115521550838215202788131012047057392522327297077649083975891656740616568892638295250253735053769519092614805276340117658149020373271329487814996285696832514683829643636207564096195515829172436855623812170393787154901610461895645555795198163903194293886622247852906989676294938229774395139989566315346389853305210735077531258105952925432265958715124614545022667407331179745516609356174779733691619614105621658177877075475510464360603091132826479221430731875903552558795132308465398089434194173956650157099009078222592629630871190494209581126106563477707887004916466372596825877171597445960969417690510815869794418376053191128700952395744128890553004953630669065644124137941644209812420017890504118191114427187380828160734640500801917463645331792384748826448761896844088322407794698581620709568171616950048970583119639720701279103226287957400749789770641589183784207719334456258398037374205143581041801872055698173001173844940954386091454357718738405396233321333939842463995594511998960942290830856559701337927212786047247272213889863213505150644900888685932332900786922975188232233174560337049002540294967944875035301835821893176334422811689382483544919675088963580482384984902961224088879272635425319857234390804413291923750506410268063903528779141944078513464043037157454724355339980864526029837657685536360828573393261243942141648376679393284603588011140828397574317216603060737243042526963156659350005315390480568345494763767122921421903080761787789908092035755230391874443011949995280262897177764671572499696300019885944030583803545427364366198844406137078380138827259201503058709720738098253869221780065129747075645663200959946887389886116595295745591149085566542965007805120631175162440762353945217306673667167848390951162314709354288009595999446741205524013238139920303247639245599364335321316646400295038397828943631502470668740250057461748861486313414448363087929805245458659964553065449762571309789457278958405363129732986702673232700768615972810789831678794125365935618448020129414616891767818426557062739751163229386989485220232612267209869924166974521655285178457186236361714749356438897420184510850822094236895637085655010203180250683028419139208962791474789851240748375034218025986859588811429049677458272658383602445898257002382367847896559540839706006843540046055834199383873715379394782982925573021736552315724841754324410010666329893367574234771631311311558391414497394845768010040120771451093425349315604199670860157421563261300651433643169532610635293956644138779037943846680644328456996545501664106441380384707012823909235976321797828086532711740363402586633349308148574218017368983858699605042152328372918496390794562758185652272714667836201199761136555271083705728707347756963137928100259941340285254906650582090788069923831430041342729142601948993681620556430945689451512069797734106645953210797860426919989290964739990310182305818291038272482234341063473072329388692763341581399353622764211278499448077804310983605377610556172656955944840865345965199115030418829107193642372935965570628284949718838345457518699466186339370419705566024792759228713677334544007533998780033038495604200888962776965831580418027705375802078747767615073525780318925993362224391488063172487932810805353724490337673663762262956489610953674136506224543692749853104975448731725699133057118656845975659796132853538571774464589028415013480096346030065432836433421086675998411933436963756671888769757830217651165151462048930375418458746016879646692433332962066557378616133958613366546489796583738967189050356501730980233502291487443236006728661726169195824973251686786471795923399330705934724914486749863600984005790162813100429171925247672507481511769205774106338406831384119657451581703570074692826245030808260217311192073879057066795155184027981745744458804089909218100776678607490573552428101619524042776967800356577017843401097716058260939918624681126966232313440572042108377540272861143499373925119649736897690262570066443444989761814278549184969514679684921924483321545749113999108209336557087981719993268809335750896057027508083876954314988042078607247066580148940249873126148513211723564065789957180010144666189319702721485007034345702494738952864602705357049648974927447148923262197554779969858385272239696814462614003675317981157932361056289118405715325999115722658857751486254011485577189311819307775721905427720308843969011852080658015529049842753919824439986973065775666906845007183110337548436693774692654451056565236339572343241245742477546546518571765330418617802153293101983799172127421658304149819393391035433680905307377120759705120421493448790724815551852829520913061914225696333254699095860790270272306647293953671130599559622452952401902290606487341790485434171403555866038131512503989501272461135209858484518283631199028032923718216910486015137730875187619287846000568542536286992592706634779617288507281350942370047466488168106400785457593586236145256554749810958071053007165909531321878010803372722357790773022289012333770750786003389320953226136719571973750877689194007541894360946903635430393950258683056461912973524207591759164009721475088235320129425350726736340838400493997340118541285891166136522076412146378085536486565294642872843490959294587355598060585618241418946616114507522849185484031201718507152207919165494767505622144975418886126316928731613460729774784757584549813855069201528543193716599344932332944668479548868653910115879472861118691060747153092075271239082798688646098091449754021447586591851079061029798867181915608088963432168547908325804235094781141442495429998265797618923255589109037801004292868555375018378273688836107846164546195558816370392612213498626739624568560198184237480564495102252848035616111192003856188944546602262503281142818596700411167302112280915439357822655408632543792891646321001776759024788035122288878410085945290953894209011379623662489697568298376445123388082032338246984746756857715583115347394024477422624089625730473991434048581089571898210375440822473566169967357909377331493931523395217856103076761226631216822533858577107460071200749601930648421204289464807805665769888378233428508447394876239589222740111439471667158001824018573499849669542881205306261943585619489637178996187082965622344340319771868249711608784938324390621746919396930096859351526062975459806610312646384527670743098533905180420885620198008447702908955372740042329469657823110038035371233000084194623231311102260535529325471851970616481797077818815457533028035989576732284508614504988319382628228884513250777509537981831248240755788710345077041747000583192095731924618368958299189591503569603835697135613206151196076956112399208271413049949710505442376225391928428461744231476914405473489780746389549579457092515307830895814686184100775260914594446055517404706083099350649280613012564851085107632619538627758058418139623604430005133803408662776277174827643819972458261138422236157263474984721841057605931193838971231164963418616972275344965589045799177134943301250629168342742842275503954950253285490762618603969945600719679130556548992616374449471061898947595554573159402668996093953107560740432237540082530382418679128780564083832340659982271387006986977693837946931766574666506048100067398248945476656274255451341476998030071193462510849902653227615616500289296483102306573945177151100306024604083797203324998937572607365371725876777583348326889362693872839452942139193686541955871939955802836512615448587702221964005788869863857120123290158196571087600479430559584232772441976995037799846939363254900169531586122407939030513501362221931649691704385120672064748062835511099619826295542978565351809305167995934267968950697452981624230418561405915164434226666653176393538055848171165168701444491682597204273780628359554727028750414501819667087777598185710524007215320157503467637216730620891323922097018965909136653756108179419757134654647100114167304134616873887453138257269135656312631358313218964870090995152732836444389059734128778884279122574507999422168597639280318687623390271982890473438920540690555359213865299544245570986178832535525994430223121957991481893847268180202239241797084459678133836612182734546054291426578090215176446071134562420697756412214038645874460904820333876018235413344087917702685992769339309504562248694843817884300055130111307104600703106461829399618164772658296761984385951309724662370786514503854883621158117809812697999843693210319952659380033664319832465683796401575349171487183718288031224994089024228852509367554324125129100781570767507554720358879984893749958225700284144747934251181496415082003638995189800963552095337767243223460003783199668493893594838967739761965639062402042810121152831697776570564441553239473089343531918162408959096920868685426890418531550464922348556371065899177399024972123508014446574249563548806486160043428142688328622586831753384646717638256042699577235197197960134886821048525837564281587098985439394815416221487766998487730787701207472846022923615168159375989424159192509418410514956822362602070056635856846038744089970139114159579141273294064189001561697040254233167622583141258821977855846833214413631644053373068328833866376041311284021171132110662305438545717098516257566542722378393737602509036143223931216644531824277745214915415842429389532670300453204614004601631843408680522413091356712305978778672410791755495222231146214796751601988312997328363913396196645537331721219310969800795795671166489753743644489271573965133909803929482815009371602676836713586297984120188423806708991802578658447167950930180792519470302009992837567316844889215369050768331368642495124921742518550991467805306541027967368963250109225450340891526011992827234267922547596174866344211188116906900634416733291181581813920755690311355125444268076898254894252929122490202956093466409872595950015969278831983542915246158209712006852442947603381775808318707796177347040187889624560773044899431296906982552183312063639831904817300203049344191816709016847995972221250537212377250792058102705320987765771836507637266733056427106727555659556266465584220891752560761141764313103475584016927924009188966165159120425357831476372958684006906335091634921906510538022944546484129780985038114172310967286536153732383831653180327774842265408128465141400418394895139985478601371912783055021795199740373170819891525373033279624022203691968173697761718031332882554930400442839235806599789398246678822268315857852470132101096135682353142927205290436516425507926562827351481640548545555856751162201437567764332534568412152872586770602667957642443493631463802602309163142475064714617093145607367369974354336232423705132970966148649652748082907956178823121270749750485067857566497157089747116928777585465871094244521868156943227028183272841636017043605333894358461400909775315401317776085667669241294878903276953669414974518307919875623674649874370172810166974628633808441619483421201715156251305571945597230663447068351219681063479003374365964773979048367804938729317649245009489676107575939943819571994753148931935995117817778795628650412732222059768183412078320933027397608660298939779252188278517092254645677600456157394050293637869076896456687036180826905839892542805271089224607061727983549389348832786257119350559149343396519001150138846942857304864003170220427305650497642005170154016362398492790825487260489354895439628696207318982613642192894573196212469232886858175773247986268872825303160243805946802108168559289217366699084717925473708690006805276340897627526574834139522699697011758411290261763124436234891088710853331416172708652879663727252499640433341903865622824034663569819589324976084887517102017752669753083712305813913379455133003839619631972424055279018025409962012618411049772066386186559556568642942107382776923101876767131221761851098802801130812104293217001680931756382627529818085361287616370081368326095765102249726220598523987192436636072999859188157811597900834184074186635138003772664012358052434433363472823890751524539816705965536686012260513648302940102555340031599087980340450531282250173419646533921346414350992148144232579111803919511298005470433866353268647221805893273051217798176934690479432809177468183511323105231309351826940482573606322625524492981484535523371383494655226753450362521870333896905729084212609650969295242317735699137712194735285916740088372645362992878632299313495857565744237389282036456015114714443612559008181599956784108901899361642756653560066324433066394501826004034899857740130796654535580838766017683379872215189480603212418460054629542859975575283812118619074113690170324139897979667603595174841741501658235110417445745746449212589086363973938848231798354820059566485929377157189936968327894871825600051184220577931080156841861043989644641662466416661239471847823132246466273966493555609930013675613621058537779372265027775984115439705879699953294926599914509172802797112587330437898203876384960035317171464688088503659385669455500380867643661728197246930531899389536671350266986382074502489560081646796519253712182963708448337970460660720529769868832134082741198182582604546052406942643698953190143673360718927508259359434506812177814055325736423838386699751832354828531300455941021371243721072404100539006391139177442728563519972221138998001053198807372487321771756460402737630278895458531288038645953372110190769679478865321350534441669617677413356121741589546510557445791282246677387151920933307365909981120255783956490597338941599641396250503855812776367506081961058378995681324594531267273639566611388278531603907517584957073610809500155893249216903207059409026298900583333340128903723168010629927546998620082317748150061842225830218299567218393186622201713792405957669032803003577295527295363367461518622265903709561743617736721203818464407235576938953715726708287887520159258855708586645435022275558990694413148301773536185213021995472891373470523271936252018014376427185679009722189662051077563237268284608074830139748622517680329559061965398746849348877626248323526813780568243220356512431708836798616359901869440021463416893734269094552193681980397035443255779063075104455855335354556015185065286665646715140512492363516115288795877831598528659709254233472342360046254591861061057601777088049630681813180321634715225362549047815400509891763716440516251434682847227890235987646863440053316455615478013885865729696274989661419556915450761067969022063010872623099288316271235215494980038668563795774158215193164580154130206057562139495128441058834436827846231813628105510128964567721331052725267011332279088638635527919120993513832140537799374981134556139137047083374552574551099757887730834845631564061326378358287634074889139875980002470970274219674489821006053384889474673064712593516102516990886624618946930720696992571314292004497736248155019275027534180670136058622481371750006768023832188187271736061512446228033831707161544901879109822900865937602103758182059368037514472971546711580632909535203423297250279644232215289625071441554329501387268807867374532555252615131881762951368619476416465691117113683241184027851371484552739026590819548738796762447468158264347694976736974527066323230882235536289695348539324524232237500221214759235621988126878586360297360292377799285736943776871916632333884215878455318672632142061504601792763251229161610003636390120658901231394569096107210800216338641752500356616759329858163162871689763570180726202586066017641845737111991531521163753811862006577834420769767526532274303952218517621384898695913156089022813892811597314813006293615662940399920419884777767772752377207887748079743120396044917935090264600146604237997952168977828846164857198331318197982605698566557885061734524646021690952296510012272311776141577892435535039547208275610896517025772418652926412577270173096161496274182586873832680135174203697934570214362049294411722973794770070297203553682537371603666099236569042152612122146689612006856375129657134568856673560271631485786955733129889683647416609827963667129000470400200069829343200883332405524479688309888113117655965503409059859913551836353272017959758086352399903125566675630855459110446490491569766985400177310190422755807373094083371897600937593204741325555589942364804241408193476854315079132693310069935443912861844651994265838168128963237151183578279519191066576566211886244615710214391657525690358055012991429114138870894336432459452319540725334187313000842373221256821966363355853964438945953634976774510167028116944536832385556186528551369837095926789822103524135150714707618497665650351396907883423149635675653309202168804093202127637030251433738888876149547419358707628498427635086453474679574327160557822194398554892622279279287426080900714121170565103091865681729094152446074581275650139946485931050655335569399446398133972168228562915639086997781465863545639515012340699025755000528614939746444790652251582048130863069933919437700894682666496556431903413809014497121163381863209037347045110489153578034828488961763916015743431692142592100708577906851942768194235346510733290714404769160159738304455975105702420133978181836298464601736082597524239377750426702436994294256274547027160319063604510909158693598276983003097812193575095103908897275684719822346369475966524166264758052358036734807106726094859101946109764881931970430644579652428913666423793450313649571169080872973181457487430908362068361396633754871600363762405529640857453526184576437675284174193142233047059825175790889798744046239219382748328842659753930894175648750442631637708981594018244900217127327586570643353508176021303040808798723040039024653458112576976781260092611360463171220097999641233458649549604095711345741827458412002207240822138682470180952188142464442323574622782162900616364045281486273898262702086761647984182147535284736838274695774796303426406052349420789255479447420492608871386004759193945931924032957414927277449036111364501832531573151741899691226288167665897156769027458955178583499195825237527217505922477357922278658802078093269153280047907435388130551284211886797936228933873182649467846729257062713674267819623874690596654484132362525564140141946387743964338692615029357042017331748413997767802712676907246636804311271455642585122541562157451383544793735595462281588210372516546632235575167321698692329621919225894281578096547477186270231210846052646125799456659923182313147097225990517125112331980260212950226054665325658769018193967268919689760539743628822288967737632678176632742063125318527121468834058515759025808469563430111963045026595968557345828632103860194106312899299820889174099714384799366702764614428305336483941193269497182721050879596019579752637360037558761642196907078294899676337704333190717162788811522782867904834416266097416645464625989708479621559059439840219673757105172987477660247194590383993553938707733872299666962948659479008445407840373305377535037992209800084746643049611612970750673453501668051550662788920396911363042891392615867070400379893232479175540457554011505781420141169503373621855668532278070053221242756923548748983933155750882720807372672884676661607012217009351936938006159587582112010785707467918446152410576711714339163341715506772599372592034895677275188812361342308679611524554429854754701034733787699438294203577320030320149227146641898435010141792051231222535133745930403556487819506064446009187964993533435111477273353525353323501037044334713286844385477070761519804580539246890333606470287545308556949075704442763854842219104261891765350627579848145246774263783528316165167288634822459704469133110049761483718047006546445331134126460686117650027704718258263676046127591020565647965672480981531659640127264605197187244900319554473586862563330860834419634735480856686614586118378211924511282256918606179294261104534649394386178610187474264507181208583584865531147514362240015518742551186674682962243038190723741982340952589094057600380649789036873781128204856286465300347898482955402994655453375364742509488639790916887720973491952468135036248767420235131104802430599004415225780224230125559089771234596698727197473820713221560820756296826164890516706663109380790823050886710817932178914936573892443927935957197728638914595255023932879091384889840203441860189641069321716034854880967961146200409326622813966282823893296083834277825198264778496506996476945139027759580805843972620962208464616580731021377545156424369153739092533803270033478889009896149693385703795459171597262380724597076823503636754663762875740019222414669921182989933705053345447317799106753651024439942122785878605183344682199528307313158001155466037037002241360467254600243647295834583890082111537458271738605886223933222719705531173240624012154798953897022880950202567537485854494904314706752274156215222246257669139384738372243630382429181731136628863899907354383764229030835075435493416408559955573131967732056826557554193173702588540157297467370859373295992440304940688985595209002072511650485331109036444716292650645508399004747368018535905242612557349749800931703972649661374585227293309119135004829306516538344291353058375963066142192512838841767497707298791312647293431711445207684311053669834254737311667732816578584891938953293468954759132410074870797883008734765950269481409768393627311701710494578380086438442306129239870876270703518990518800431173859641133851589594576831712099751019155393914942290674019653568666198598119615940839310886683946079089320112993964104484900446889189071797315216978917380274490838641022076355763998466046519710852167143808309842660185682322112781951190115455914038287338709916622037643705564425925641084683147856400788438400696321122427396820617465352320144897768936283659855809071924300551173201083856586231623982123215499912112610617152649174392912972787877853939481372407714930503319326360222942567836961363507852472421235626756194545068095171820818016122675262021128256367162161360557811620282571428069473391430565913735018116695950260883795383667601636409997520961977432396230953867610332478419556628681970386155917791072285683977250051212740740117787382854685463196794221934828952407087237024503855053273351883546540667334229857244990425762682263045246672107448159497447293249232978083955815736797256653913938875930687866438917404927025247075664573254051400737479732216257627363727553804537177808808967264461995276340692533388224853960703096418869973338697291263108189194521555189947705781877227226140774161085637258423310279375158555134179042804386684752720763288458224699988199625817874265620444351074419208362220372997276775291499429793500453766859265375379461608736498353304974838903744329325116143404155886196850268835808304241225808976157473030533519447149598308558146728383090507443140003050223447972306450850250991108272407867721017580229537586857349396490689687152896009456432415065246799175588301069663597934381951021916578620617038131557342726216008322761911981397166472305499353441304829602905205692043502076559102236117537950837935169543898210413356030517845933359786591019120672991262476718904012935965739161295467642557708836354752138171433376185559379498505808133249999446159687750973878161495271868627801490523020058987073893597097398303173692080605833213644478617852578445665025038141784729799337598146681905382034501260011005142903873388937432767705434293056272339627118682400835845419813452485314964292648225626485049126847851878696455543748449812996094202819871788500371763960615105467473128713117730826212562216688365152884651958273708409116093016775260578030507634234303549799230579219263586648831930099536856159298688416275444984098580170735613252955706764517680958590271348096994668951186565941780927014256413177836217282379364862206802706777089672623539623723832466702528739847824199369210456953247595461878170853894271678913775152754977522260580557048098791130609447730139315381620335681074648740197636219185491938361297669459939838728817507359195991087478028480390322437411522790687786510298923625603471170568733577531815320256215348908693146311478396606229290275731960703004728721089948677279999490141336845761246759602611553062111268620204512341575142109643605276836113748135955993594923113846770825867823952357713214701642884729234205184893297229762170051834790056803479129877447547094644645427214978827704169208198101175776441483941253286555674161826738769317889000396053109670330757547895993550285232755850091395927617859553246537319740608949033298577944091854431108599518077116972668763881530897340835838049915076217820070709147944021203030147185660408115142389390635022386980344908565557665233430305441877808199289139575007936136448882552741607516550582751549241331875701178093768580098600151625287250650061827862258522118657591016027960994137943904990091963244083381975600168985367739930597161325843575830303015914133512687044778233728115548138911780715069336072084683355746416558980524405183601094054950629785495270799216661194033317814947458464146250128503264260329703989016560338994419357362165278138460110766589058293423803708617208299554639003359894977519901431191458810449598717992311872247571624276937796888166366912268126515906521962222361025142775666130533168679937858168857736596347541130339405651641071768422873142276670141686834646918477672087970544594141867908057863178611135149542565360302488415064309182904708185015890852199787778362977893177632433911032695356306930575950401290289150601833636122117447120430219803846945341929893803988887644423369721147147261509415950765573495869179385527622789347904597553387221399728379259914561928924525500871275358177275076426950032600686735995111277075057636169871962832019825170961859193019851881248937664619777815293804725902141386074370396154009102715012583325933645061125069880711243502803097536996418681542440301607833722875080472227431894384418900947046697373075085588052261306895923288963295152414037811456998059472480640266444793037568884174963422692063753320573742495895031158294712019822270125336521027119142667173428918252766885516170338975102990525606453749156978470588576088507328633185653126150401581674309718365652397980115969151619488799257752995557703860711680015023967314033631877177313631963850419718917458930779084515965942077445221674965449994835189097112853720104195043286727249059175542965999474738890445122988198299680739657545520629319806288296348980291385526289848205784676998136412300977608338980910019010081177199006563943812359100221189360461748366846063620052523411060107287137698008986890585300834046944183277294793749843766886180566031392806740646905955333547896424143841261688494782579879886659088967330047006152517902479962600652416892794105981036301387178830193406335184525355801215604203358207574984730834956663426382033019117698181560283267707259895408367124756902715684119561296733405768374157886570829112064116480177709351703053507457117513217791659489719127693411199172514470306024288261221351137432780582237629804559706405697233227131236530364300918322341267549582045848083812188492519908807384907759475173411876410113882894760924392765638191336431614112622564538546457266272299328284551968765830178298860771320630532227159580951021048437173462486060323065798965561284350928653233399385243735339702141428831147770506889225813667530189635312553041942427094584041750238950458777363158363228837131874741873177917379717589971099632965390484478080309747261104764297953967590535148382986646035298471850193007321993487910291264722998908666678111477577990978486548731483535058101734476138797013268463502308498456014204815555282608219833919846458340446511964197403625941902928146454690928226517620708584311616412966635716741724279468828764811436163984239815060617240770329771517370427596378387427338367737230893168897922818333900227880198294322345120482832184374908333069754853878234819957800095622021336198764549940387074732633855539532828239223458142650017696390332197932619459799102029378143136700178709484153072896137006356292610162004632703443882806754152937485616065073532655563394275796921532906632715532459781584039685230960359267889696043732177211310689958074129193039849086541110870163321691276546327372696048622722692689007259065987548053109590333724842609608586560685913666217674412791858507368128802246965064087693128502933291231779804629026802065710867955163304073106510623363191783435605045961666988139889082063634068136405186431766095711467496982631498576039053329306495116447313271100948109638703729900959740899778493467363626814964295432705649873866161432875328047180685812518241973971227619261606264953777047983508524738287534464406780310227869945609033952293556307051490864198448239216511922897615750468936841736899614340927796476678573422866960103851437794725808279041098432372487376500773477059293417024820553171908905313834912170038336088097399050842476899647073023079768899823907730695740239298476620010435936766080423930522865607005311884046409704436878630920783915925389552999565464558488564003510756914416785502435979627741480078925326165056796498502815232765779904582712840455674460701969496239295015251750668087617921692265216541305554459001075067213286911252805108986327047217604110652656342990782893920193670391692555769084786504446934429666748282467094347326576100853300606287450777985201078798245004990327168309685329320678635781282344858305111043072432410558702292112938935491189384152262049672679873853751677809975582603598292717536500133399626078431709759454503104167337031840687625540214042515386704215926856892083109235421147223003962220380327588142828927851350672109216314658050818033232174502494677737314657079133859054780707230942353066613761708661019106034507730437637163436771923012374027803089081117246212462115748418915072678134116756513453044900302375373669440407650543908433041937507520640671685819667077609739723530798216829638920238177471307376452190319261794039187007060181429457121771756841514005469051105274731443440874182139950641981082493950475107246993120164961121308957835353850120682079569472304939855944246939350694920184584726179993657898008558086864093278986801774793769904816646411779246597684688707268447907558406268615904953203697781233092333523390581653340832323204983140500198405624395410863290452427105603050959536656847233015085505522569944815394987423552930655494503312400948591524699076479400925520461309233741566240618956867722083453441956618477162055489630027599673586864138400981395650271783877735319011150327326972959334675963504775830695316184151419136185354729375054009681568987846125882720953133576093421284943427819216139017655702055484971072083561659099577626527705375301031182786118531052086149300107973758970193427498489213481742847389813822143288817355434617290078316462481957189269558696625468856012388623373420799123926977053255802852704396109073196464490773295823924586826111063274311014867376603188452945201436544109039035849403253337635994586763352581536255902614088106860929025323918721210586951843320134789056726174198858737774075967239567670891640302279631032083670260621496854538143529484468149616560941122950379144913853784198992393479265563897795000647183995275356403285757410651069660504375331842738832924306343360522395825445882140896578962502439142093005225072042976453873108405426351937359472467519935881414735072680573607423812697216625878150830205031963695477860667037721002907137815377099789525413413437106802039777904366175227493722152362181699294973167591324447930766892462594787370210771416965246673676918420179764322478926276938525817159872756741719045312542484664127890336219759092989259602995973485414312350370643919440442597503706201226135399226065067425498727171569012955173710870358580522466064050177720005079389772809670455375064670036246236689352133585901184744375636118025144137179855882931816131380366874288597128283142929888538068952630960988083143907728871934005106964188012285821906802848227504523132705563027588086978642033844842508664187362873208542579113328271833432438775705240439749181033463535596720284591029558959873545422553257709175665888302763496388962937380199564828664022517256536132199693066393077346240200388161966037953960369614052684206366395396621378946952860524032985150962686710066595153396121179277362601293968499126719043889528652350603708633360515251662810411227883989265513883841807474717228579787150719171712999678127062268760734114572699416322800363520345440491309807374912408583765903788461760801740229838113769896779710233876449247604305376165766700122387998742588494688860410370923106112174316435739870854191930073950268254060904636317953887603312903817608448427640384103052768454288906060481695076185755179541832039921666818016691920239356780380090073277281944612759360732070344934120053813758631244305151972682419246414758710078770641631204596782222722573509899313182275170429049537271879057147587095643476085783734470129636758568701205705998443038676007520816906350976155846465701454358709234437101664917742203255713280252866254382628968944552415331904413593204467968963287824796766723299527318749374768373672558422008772605080258330080533355038454165827885125390953382772132996890114413386243897593942910400199599983506499079866473944525928417225175733569543499061406594530564070002139973128858767141341605886695454942841543480334430054845633569218929302762357700673388072363341255057153444546576664496533471170853587791511336001887643877652503729623690490222620103043724819940645327379069451740548512433745945164825916271628343036802969278374507561148181327124949637110038422734582153301593611211311358681515595640885069448383411401987561648770725730249192315157759740374663854381168225183882875509813330534176543938763453427526333715744985613444251757326943206396500300281935221322709882608386995258802545452265280163750772977968182305687987120715894529826768664525753659603800332822061696049477072465539199627612094018935194237425420459549958332208780765996358960164917638455435437175209502165906180848488764318926705931000086863326124251437761765095831184077069524759977506144843046373582218734465457756350195377812431222549666466940194919732659807520768922184384506320480204673733303759865680631494830547075500365872111153874077924869125446652245100770709703053567466792712978883515916928080381977048849216912964352880263288082904793888043079030630588780730412398175695098411294243921934132380210909706451449011321774328912703306659792114405955034392950297979749576825458582504630831282299960589695582960207343378287795260296661587581355100666245346660229515010675606135534232085327642056692268322551268928920812486196539155675312397303710981149808753096545224864190197988161285181724683074750828265112298797687029641752124412819848121984306024113233204447496700087919515078840529765822906521304424774154825716322105595612320097915731120352023400186595707904477092630170688638066737922408077269933011429868396200301137694733097596268027243463024930471535014920207712553045315384401272266063075827058907291238796377449444150308161762706611825205954728891342266852512521541976339094190415318376390453924726947349026378568081617269742121616807773250915799187418915243024212081823935843192736279486239684611951200350552507767302631438824460077239988834674246776963975491014036167447379403660339976375629626088777724683102056656956609202120127235652899098407144727375646654946982397982984439508165297735657888012133344792561346267851103059336253963264721956463163920394921384352177229605289157258186232211434520384520668506550839947502736077309513239138791867194269908812522360980370476465127924513453876525444592760010876931392255313099016405177453043898866238437064841345125283977946907921457977766899077102213027249296639489147454365797387137973399194053830325108861477202182895634136057623767840486833754687130533337056344076229738056692826066250495866109554454661143790766611039283002943203044353283699304736644668899116160261669810722442788092817883647450139684912124747104511887529081558331935934065638060836727565178075328286447409206505127922513061655226343227743512675641574021220981153706999973910239546630897596403386239069578477766908469523410295626479958971693545312192136858375492268995888940584848598035020251012380168656075576269821281900918114020430276915920806623749439900227518849252960969669139787735760171097245243049644373869134871217485865479644466882938242353286361680448056978467835819450790691182502563771171953990309286167035326208753703464959398700937962566173303555094372962082884015646869718818436937125263639703730749902653103649073960720166254987305553529701106244495671694676770704915771396560185674734315000489589420497420511259761438706527879691517884786047767160326500335557020529275264492292671651026387330297217758504622784595936236211946589521675383988229121478753309825780535241737118109499415103562828507577952397072073716688279700712766378910047248206966816930992479946803203744860934289169552413430178208464186655117590075047627980566281267287721658448804691015124245702919770687475009514821986263821323037392677117998059258361447581891599406339765377369653412453839515992858734581850502458167131395491243564263846962547776043553810590839263224365420857538698370512989728726365262846363609597564312983197354741321387049252956982103799832885317785429905314236917972392841463019092384278970968326350128957388670309420062944004071691783605820949019292070297278477489604365532172952722980725469169757653382155858569144791783091025693086331537406189466068891458676671155895933178330929305238910025263357421848358508023985391342268703705932841952802111571360120249771060582067556274787368296425355170436533681183123742903307099970249810862271641769478440989006115688810241028921491867197471751045839563099479180805031990743582068285867102209797638530999725991501759825108817035985956155558265787459253378589172279653976433560942961665823090352978867934237618436763136904410010865431648907730056946846619942056673310870376802203875451867637621759873604229550017066145902228121116256033311985947907321741785299739828224426997621076423455733675346802639783624066646194823146778887112617186246308716842490553862094386506819858932178175960479629910055910662366873417791022749098678700492136080139068780465741653727525205856958730174919648328977880097528921698104719072323701321209557219445051590952990843228125878296700196313593401053289136441904599249721984594419510536113871431991977916768834070792069366641286644077453080792402030595168844933583185353575569872451407475795949402483452353242042565793881309606926459654215252660467872296899044367131112483978322117397359111748381974096826840718996541177941523154466057182706599135840876528918535081618350262741879037353644094169480294026811557973984150920417243520214049660365937129943587546087100860114662134490024401516759746724858318185611019327112950793281117564340852034706707145275585377779520377746406111852866123954401285540607197356558914423474855433855358620523076119147188153413893944642496518278334519216464896409668026899128027930873325205337979165332961660074344693903740905842754746864773722911587071030431171666125008761500202360760863371060411820263649600362516221221016306291928978485710061738457814480499022392072799227917657615607515155064240812197451405887239362071817071128440156038800469304003400436901318741424213547116359027841927727081042083446073464439320049735651106565573814145663307407480138817850550083382245022113077296603722208263928678505541381360848765773625653476907255119626161122148550095987618698337062754571065439773913749312368447628003413615833547745908103674936285477952999764770188588718410531472104525496726762784085413765047792518539573717768533698006835329664127193415934343796367687829873387801340653998992183917226726654076075253693542723478443088541190233921786382058270860581844761831551668574496391116768645139575694539510906545659159013702961749329269562748998163256003078218083979136248476160654801044460147894735882711249829552744593856029394605876645964961784500933337066417623358970063095918324556528514162675439054252917594821901196031152287706417348981602288595928706291884494841263167681682115602524453236646247038239655246719673044113735502493481500542947367041799270388100895108707978792538755789519893251347864762282340976401450604472020543742298913558050668865535526074951208877509075826227637044637570835186446004710620515243090686700085334566729125483549843222378338424475839423884148632754431915049868056834672671638686353566007817475914321693940789914192949468602353390998390913441261906871468455229608962967358815512457729569212623795138947287821524702627211836643903586828767150705038155242675545276645880819926089128637294644596862111032879600850608522901209240948376004577544544054509899298252733339285685736892663705711429870993429273447405726075397245056921653247069208534365828464469628312381858213794159113466388574180519625967863869731464026048969664586259349290565133031674348693576389746650968044995626746157228888237210913391670888466428603314342285071929839615753211753151165951780606700240193918782705368989612188736158163351953835697239599821089439381013108956054788653825826095814628467672170807397995093793593947455166924707051881831386365606749529587250140942222463402834447619897389962139320530558668384049631934812534778846097060497149366572337134568877420737592654672171054011300963736818762931418481648302439119583535408279010756409902868250649384417489297041083399502476351205555821511559929529339946018198714582754843544672238878265232466664563392357275557625484260739894643130722978711622264012996326684817121739419767938972478348696682769390324264090768190571668448567260066273627521184551855795487910592641724529468019475609017607629454914125879199461294145222083109973281825959407072993714885873328567082801427422674993134312446487193289125649716373596318454457333887091198601739122664764842082175448796564801544675305949933323085741089620546257861635954702607575366129570091873324187406606513634868723274448411189686219765541225594256329509657537211291322024090174863726870228391558633288381940178718702447439699933918443736112934998788067958992560091378380672128695657260102850002446821204340825827756855265730514354493179071484444502886367815971090012076621141802635948186374381240088070254177161517423607245019413712280619703602124374658639833359294914756840296649918227212177092398423683965137665172838677829468166971193029124663878064268517137717101899016081275073366553258093410666440117905192379106627722837552382726657135736327312713897807578988701951054482557114915440099307400979222657390969056015243539754655970368192348957428584171067463372276019618536848976600574445932906519524426865779328521021003978774714867022256733822248393509701650714250295185697019172168575156641821907445067946668962707948556987826988132882335948550967472904383213015244455297486275779269239990121724477299177552027145216771080273899643274836899217250687900881507053794854035497031806776533896651601468616919703394860911852311690003400507210018465043310412021735203978120301732229741411717667834028894429335692061873229797908939974364505426953077663811900407648924712665255198596401565868179548204983533108467651961471842420429048588038257448859959775827109307610090944850556222162880072785246815380713960950137762415564934288315253933433763460563375463724516010361663832074339784264582446891534248038239184333581650704080653360671663776873803864457009138766848069017375709105233080400704126799080872259847454441318566271920443949140575587003811769721596213965031037552455944770751508178878523732319439276620208129135003663599354026048778973911607642549596905415018339761964107363715084908385415385356165406596300235470516743026567366277760362647100113274262038007262554283451727224152129578166552803995064106740609200242823339714237671049173202184699066066956465120135787045608794611596518248992262410013494770919056187559635238233692197922102300456200237568672244318344791260388000041926279634391279206841255674677194415073867792692020544089164804217223707639833233158487117521523714179538426857757330927016162996548816651682146960012092464976982189594791200647946932394342247055577903423929804802686719520192460031737449760027390760921327796850266601882885820637248613915918636956678361454392492009374732137773985185252111510234455711412101168804313258818325074270856974353371685456121745439736103201479924098178022254242214810091670108264175859198951965083789554950484895625325740991701459955564002301668557642711095815426378161603065235300743641112026590053392212264265834151599088708051940820420450661490656240826878494035440173018934398991510157862101489404161598058079999596719724098832740390251305436007455178006093853173649235290292618569915284192982740123065122691326996241053437243226549362067929647372108322552591614993840538920165043014526696170862223317765757603256067842451711867337169520364638364631201535509141118389299929857740614153477923458358077775633904739647346971746332864221327977354307476981669598970026168128782227697541138061087354450087434692885012615079770643866108227525257933872914899163772403391890395980344529334736479909784511711793312630580077597276850045710850876238395598692445989813469592124995583424451187602084686379461881230945972497722578292626610760611513586116712799195833101927838123308186200080690608640214556296028194595935307037727374373853735401357157170922926680165832043858158715322088024692681742331758487778184935157286933631934876814512883339839308182949743225108146851256330538530345436440712126305983941797605886391049704635518338341481077890310021492116943806549439858860097076611279465407262546386889608178752271260393896487049207677354403727368108449416410911339307818373947407967920998671408785441075899507834868010287403239784158560178360460381681378795137191572202741888617405640882983956083466426663984782133290237576237407916297340363273483025934062157457071699557124658226195957924583438438897591482927055465627618720367886034274904201091988939627440656587664641300332871721675918968626339879010115219425255645455959931317042430003415025872802578235314350175429024778835092773393309969459359688390078479850853670518329611363428138996669937604498428769461940847348539885236645862651947828989172366932374220851275995689394116481461056140452135548417647358031984763980927723026763512556670948343140771529591916987215344536436669021448613135657249226598764737554883830988805621636447311714461963414583180382484827741455340179088311523564972936937798070185104429120469648790910484624003517294545685757094609005145127304174318356203799635403401361906155315430325661747699159111248855238044932798000796387427941508747121268263273552268827177997433771432242793253488632722850717237619857289082899152726152305587053622866687854435159566404332843047232780677460029858523153036488228087099477731661066195799531962373780729507634186894910113684636210118624375101846922020153140247487837464676279659456955368229326484131264774257738574602264375233374603457803522320144979855714238850722834540877338329396274447911671861095383743533840113151045559238818992053129518286639172694508998832096333955861352189438627752906474999574339730924755835420509166205441545237873795082786574106546264147416046553687408157397036161290898218244190918670447966853297252613499688865706470041333116084279257348908715460618398877373150805220931597328152240463369464043894778824229489935197040303124452519841825626999078224766337629190044279581236378148948257382778039455666490801424697324838221663835208122218987035238978614432125069904116311466664467293403090734892396548355709013960849302020238026063284392556319837921401684474064057393940376289368360779553563074854508866117913233038198089202147492169803815371138719585226201513030302362939526801535643151541499648250059607009140583948449058139866391366390942653829179929943756739115608365061293777649436983000988003775948600020038460979449415622148543470076451550235521038826935700690186242195962138654629680140070655727531031026663319731989391266166581098588913388372640025203323626660474184515870987046259619625454715274145822631082415899484586485058358798081053379374175141056793926416583028267523811880897065122792619855006037553036701399895513774959501709398449814494782134639960148451924718749336507048374684280066065116562829561160023139409180671041937357733490969368979848048403318127613510560392535386643182690805041932766957048697893784939964127447687596683356961974255316383728128779569183078897584426433838213099144198147787204105301121191860922644975714486807184074705733642562857840516433859867852632231506642650363216288860569263635159787714125969366866979741332087680892140789949058041579335140780073973002723308538963778788973216481360967455995627068348649068972720037411803970328455125823181717790890314926784375027690774843961700652788741334047061788102831598185642219104999442521604788029315409046435100406943036390056819260941742713500605364368318776591280746210536945177073208060060304248750880807314379254718847838851486677132606686761351083468618351612285495561104730176858917257223000763630036576633985085935474031255552380093677522745215522599469293543725173716024168925846331444585171976570645333722262353324721225108215971164282180208687269007320377822584168886283124671913648149787635131029979059520129002307155151141881659895646609789324031251832809025581364313359160648190018137231181654199458120947639944791346175091786219572656978875762124335475871077732848903847782236808723834623960816555335094076612944859734411376607380720153535308328552182243354137870295233280748206797841625957819551930719532388823446536860923057458271532077729334457701530485189033762430077326213948430036879463892302878566428767267220830814847944962958480202705404960416988982247558896771752852547387953316820716561418344900425812523617199281439704023118533722959008633120423783867011020125713558814688514733987572153396507565593824257804048585664493031577583561755724183536692450497707351324051040875735835772479925397545850530395005632217098823970142600148537191476017252673531774353445771253425991224013401181154728076720134591405712491876204592478146831911126571498112800505838241433904124802519124643501520789066443356143385420469261463798376673809101786704065833948592018362796858737977438817770541395344673132023071491719087824069215599698098306974865851050928350926003556659623330240083052077820279530414585734910132280123286635487070952703230769368291507029238323561045158475548484371634649502461880689194457159117317445237040161419678294979081914556307703310686681692105972183778850512619883161247090193289954165825996441288954222512890844950172331955132822288414140646583289076632434719105538315521249343186112817823560605631754563297201778372372534859578248915135413076096308810421039848094512145017694771169465772621958346136538930432888960720461409452223377685446162865672975046701544783866710406686300503073724535789357088758957268972992024426200551645881882588980336453071075225641035392547383835344537401007369580864547663574938381552606679372901457461002550120518043502920241436247592824542843658801788484134070313585376230068140823891772361768463723755223727220342831029777345937381661202334526242007582563426509609272701238193440700725326821574504229049521498306837866437395458967771524379242724344680051126550911863816511587634914690802688956475809630106896561999632157344291429170487878994187855356747396923671437974590664305223823438566517267898254158877505659943966134635640523745806942006704143165635888514695840250064000778464092294942170509950567334492649887262140154782618011253678616039318961477125092107251498473728486233151757687670908498920740743549956577752692518885340967899690981531780637840475201696542899848982689035531791244875362686551379906910905327593765339081429131862578407725581081208294883926132854927236399821779014033222900764658283232197192248063950529757117656231150185076851419930972713974888893939852070032665878543376667072299626836471635898658241596310808252543809687556330890763997014015121229606284788278671908804237605684561205334385198246479471386278585953980359023451605341348718510193818249019282262514240907449375680602679436296560319901141769361568290682914209432766173218588810931309505136381757005384728679106166680032562663563588982595195163862392267965060717485783542431761664314074147402834577842485189337031739389756864647074040092992689396374661229032062289153102357136648429922830514895491774320986991277036503177279372322702572750998512348019487789528290192532598083741826934774249503102928064600966676510380119443345864264718354336909228732003602624231318347309314917514242081274937327847576052766712277182297685589054110706472138551969993801534529504211449256927341058222584543177567164962156951541851744389394546307329299189878690808656341734925097678203983142914986625182767562986568240310853030403765978217692174688329077037126647952922862033594133971129507423575629645547844752787049342769294670602071023890355438022098066590073319274212308268770576526992906975402709959930594530929827713492264226189788317599170666143465843388793164798564934160415548797729509646549842175434428013651153258392459266815085228931229456478804554640775543109004629712448343292348880456207937268928016259269926594691433506034051601714539383936370255605443852528305842196297925772677187153506087744343717054914163330128379128545230999678132979621038361973031282549599560184971420765563773610019342494843133017508354984284749186314773964459493467243936338295445968589290012497636403457437787771610288750164709906859566011477281937484239486265563496074465208724078225991864650325876074191088861169191105819267588221546428472149996052184792469956980735662372499158852273363604849435271698028964087421746089111039980170379430944751501537357454072154893103787413289712900154199425687389501207555795790000940120008785153728777706789361313668034633503357464425036965313907920713351489783633839576301402876306497079811697725880716751195905674148212086178253502970563155001325129720531546183215557659486402449781523002536418792029090197075286833511068746071087065728552388356845209109114477999743656072248723342028889395913824764720128410729085907092426094309519835592055400944034648887015692520152197681995425850008890612838378567707909339211810960291507372112204674448359428818273815628047022509097035925553947267916965420358508538300313410594223766119170192116330900305799435775924181412140736860737489237333089699286534731538940929624964586722651783241310628164998676172563959452332667545944366646773975255263221523243217630673541679448369833904822598607257195957105494165364986712266863499170294219457579558252305347109258948061668146227581843793017884880984653006249098945569328285404142398178535239032899224695940458931939044012322800511634215039381374078647007616679400628342088896268762992871303303709724730729847805856561019667781972957940738858606205441623300960548871531948826260704496865332745106636433566644866972366565807819278223061077327847423899799652960707370015023026430519761114100675134607727672629197724667016112394781045729859282852497980899176143998810286951468952827863833060149868057527956350887352718749180861515607853217333263053003689879199849178044381834243125793090824000809144828699125285610987091220126708114800291066393292956981321184018151082955603663398294414251997290586870716141114194411876240162585249932204961417994581166237858203877218940647478564867246019679792354973603240627321024412784888925283573884525789673718142842227276709731758071888942921930991646751630808944049975010103681314131942524003984350513719981091565897793151373498786757469197769115435054319154142300240808858292385590173552898522205663101052852585101422181215610298012009813068186255979624912067798713191388335455472085255117335595073002002792786915881673926026148442332990464373287764423555355064801423764565717326633353726516551729411447522617975621949370635701434994966589253597873278285024115370211352515058592132994302963591582090524868989053504148460068101627978897702524187260522881128059826419840986756120533322436356277689686071509925999757410706877259053247962320342652415051377175189954435446439494143540122933544406875821446185087894256160994428316631217453199730425043395184888809229418803089592979186892489296465952601935451086140619191585109088408888947580867807891115687598171669889246199737083295062910854596266866147620167886052657629466768739692315179957132440527703172280653373080315561535608017343375382964949638356739302133979328806449589507243172645000807118096659724719786202132696470025859989247481158458471276141794011765911963557566520246254129821892308315474118511997304640449824601739470146520693584994737080257892746324155111150439625635129744392267952362579739087634967408664717413435404271736681763147434198542327300707632946324408628075893082564458665281755117025925157663057844756992610633716660350194337822125009642373501981024504525745292612936013842412591563368024106844987276076443663767783948778179137185120068865330202947074806626248419929679633277694805231939556106553469957503419702368661859480479192461772271841475630277295803737434423545542516753319432976355597155280732489305444575729466126276761646747763681838526030074570386404291164336630508020278194157920415547219134438477134798507479261210380905049937681710880505894268857497818398550241018778631069819699186597037419068418863117194688519044226557098772463337354299164203755919145451534518744893768398053055161204036018838169307003248029001049334253686196601133364486799568842784811119189107649270021279086112782097876018664553231195181241078780544349376488660919195687721929321815927380880454802415004202888286906481845506869821748097921077785869512823690852823649276340195020257239366107931047952025949001706820313655443244576731094147412557914028226143833766223628766133223665750116359711337814414385505482676851391062735285532525676550158012711022879528926304746828176018443761458544282909926718559875309395949635810705981580799676369640668135819199770661819862284569665368004099662646561577319479221009125520621126613648827362027491732124144963979872113384290222515643612988320850888454714848227838727155857793314673986404422738542251305901885447231812476432010289152449402791855181655947124124680304371607809439426489679117612262855890717299995694701109843311145928693924899929938220811641914278936338544439658400723152783025131662445443905382037196200035869478149826597058653039399332719972600038142810162118101130036308622069683729682884961124014589088617835005304434788994842642766357281858542168207710108354709138545628285698631568331456251909827928538890353470523618462534517863543658749489985978453666573927080396991830853228319359128032771989678968230634181112745891634584259730262263192648627889418627392851894733384632920700590124622920361167043300883905213999131374273009194811497592027966561842726943271891494409184675520847562152241132775912473080407570904035661847959168470623026149366088260202175569821298185592208295279389552006835370773416928064522383134512932316678762912308242285964547653856838114115156218078122423536801187644805183877889024213735234397507758281461024953685011521484937277293390417200094797622900101724205226485102001924765656709477061722326223545050090964379166081554136021746003027668398708116276221970146282031455961753170837243898338926062810480425827984838259450500695867665498135301218184962430143650115481815178844934926333126285481008824479262640926530943065932875679697994665805207616684528838129572783360508474758290605741465269046762527631511413595900243726591215102637491762134690989306816818517125167266513619348993669485192995094450723081937729576683709689393984444499293005652148947443826894162696185721962622422792820111080815264903422223388530388549620260777438699321076473487351256800283806369515163694605009764181025562421082675247242194297883151232158426905257522500551437632007484597987367581238263205436285074825566715643645435028989867443537432421436161079157836346659478647254526302644987967092652674681113204404150487957641198365409466875037355279480410327419646452757974096820134018972383498446861103261294981686152118441845048711553820708343822070392964508610166659944945942392744781503379212910439337179405422058513813903080381633994717181232792558636141710566980719434603629527813861892132964686349488145199314966686993321127947385906226798620187956848923155959798146472073929554727384020546037228486129589317917222881391654127978381598045428817897168370300998472125975806972509068668680146287708977602181614539562981017877765743545854398763105670244087553101035844477689509324750602596201558240593461685955780899427092598668099665953367924288754873083429203996998500593976576128013844720601579882349689009665440431583187727506097334942728807610703119361334913779210647316118163413535907921461729483201704553617532023760264541059180745347905987755354894985550270470761501900108318005283359328682222519295329697852855349323424525082956206730612194622190993750701071941036630729121184287197778552299820660754380604302276557185728113655960393367339534493962630311472367035636519291025191279738470933902782910255390977256321654241911054445625438088161381152295545291518007612390813868166602955909746675082142100027167744823054821178475478620360374188315685777609194451678502468252645324864627142401941756930936164943625266382468362611064148108918986462684451989046952148975348205986513830718701631124420854486768155318389499762773091774177546666887059598079872701096098878407785823850408681218686463738867245993976136421676039217707225633007410903891186382567967116254014646106020862546287034125155464898132776019931585164876356346013907401490947425467429234978013713729410638161466690071928914823363824228320872873293479029251862116031124418174477084061534868861480456885439443387687708876089981683562751737244839711436046683407685038384823982965200798328839433031348350732815676784819347963406364650604340100590877693183224602713456404404756347932609997466257153246792533189519231640227664560113530048871114690395544154143577153568404658908542671239087392296978044803135659768943342097846464671401256674921701140578036298732055540964123151340412455833874422463991371537840494547723297606080733155251441114014695705509548460967252045293368568326970529603263119754470801144044631245791629900812825851667397490532761574054055492764227606942380491383140520405729389924526687454380646013860704143043616272378417885133139448427417887639077372982734594856306889035458415261214884065583220249911803278611868053351284750707011650462414615968957604353141497588515153423305268850544330829602888355198338456837112800830689701519980093231589409422582278903173802570745922692049073848676522782675978531550769796954837452781949092088284297464092474047016792110976243005545340001298648064744992919290599365961080012858167721392369986673341337752550575778672415836506088970855125949677856853594546743994312995337326872220479817908068873538236000519662533596971527927448015760505077672057235249814645489351138737460022137374895915133723663442796712806504802155474110407683007054441186566013537225958565995211912085639614107467529907138327814408610138142392772017891358599589492680887232011804667278855797260849810884876785087455343124536633691275844517708026513103336729913903654619882327281830716131239137191836688055797366841673044461492624770590688839044739382653041837879158807313051935501854764178144151988594756456117842595635526205351877444178287173957762193258508468455307839127930380260233686398495942734862263625013093461020526554952720637063701326084031893756330865499652390409319048215933100226741937558274718559173889249035423031392916161046005333890041102843383177391165804293439633235558775201846340946776648312972736705878218310894004045458550560117553026405711027711470670565542024240706756870491869153705522823294861570467272931052429979575797032251077036020708526942167382388978385617181471876579127546121649163097550616156808002642892466059875743786401212691006368360179299699523902153845652705710509022096408356629122474270544516775543455272002186696506124970001238958905215564227578813447448966852117453248220739541039245194333591402285204892269015324640259547756452120788276626633634238014068898559395750045951803794187021386302145130011242177934852397403154932321469001826263731370731557453546922645371521117207001634377549103422631605351839268347534629633357188436902457012292223237505843022115175020328995872273302223861110652746635529111271261415745918467562400324936762341547188194835792339078682156905935618241685054071222309285243706465813056209749684745134692806892915667320399935341133561167425428107902998095750659174672721310888621901292731209785175194726727776262518623285427101129955627558181556788604121660196414152257760381656153700172179176166094468181626498763681422795204258132524772525211143455531805132176757144772152026454819969142568630052041233708844710067947484336054636745311529070177691347731772866216990818756154096490558421741861673338064790353883537111876110032382247866038085930333862714475636574845385385097471101963090448426575015650753642630075339156946562508784537105263847967072952786307450952208348772322936316717163184008266731778356349317424380593225347765713876219473986520847337798119957032849780694640509255295022439717367258943702673690207689003564176942636900965318943160849191430509363665583404485481500299422119181782937970270220796852384585925096135383083750985091458643703497134054022277670942583550973756205031929876483096734332315841069047709203411723462092866795208708347282353865139129838170612796416475788727827563236330600179329721233949682411268101471060835674207861233384891845558376941828900975433835058341898043799378170043089248960690527192615562924288777473386650654119809136034697706641002911818667279677888046237481227083707458504360596702554918419947067549893469383177351112260838826382982606794866923764100931598581042601633074982567891845174674367726194295744266539102023629480871069027009307554115470792383778679037200511725130306152277833007148253282553414587279428591357450559933502515391367174070467219403929919378634643883028526227285744301444159477787619314898090956496910877338139086706484954096273905385614007379737965538251319967104763124174909728859969125981313905098962670176355879584569451176795023880873477147008145478231114458033946078309973585709777733361752084985671609389028114218803539492959983305918799788640391884937043425899731135639182832154013162641633335613348859618933105093520140201602384302141723401484412697584081318303948346386880971432441563051690018309728524808226552569810023989507954072150133365316256474981799865238238609307065405617311905813794035897880520004694355452310853855574299769530990140427436804384931322308743104888391414015234854058659413275670380418216538166481388591896848066862019237077943658213533174430317076781433623119660740318507541641705717862351507003264729421440667901189620482338065661813746943687358150209560939680316297687517074437176996237334360351337443137929107048207578529293095267913827380100606718076133050613381487939338299514975381360420201530883217699479349070546956287973355057755051761413382436255677574048583366741574172205440754883619602236028662707687523523966960279501177965985176127667532146840019424044195795813020730611498230867851156851118341147011895882676889936576522466303628851189859752695364284062521958226001438317121807917193511419801921323152652609095918584590674577512203550301726977779097765314493021257275947457569596911243011843042438642645354680225288270375855134237761740796990404915340584856512005368437316691117565778707706666205794626183072983302262694679328226547875731409573257608755914644042714781671159382288347456719198231972356489692444027413780126596194393875325500470648124207352187806087879321724846511134195299411012725756820439060303182805741876134455295126052200028812212610153706039510226367292258826332088795906671580927098035753860620040311276359461330904663186832592706424583832849593411796895392778212265204202399742164673036183818180009755200089814127562923461835594558996789118749086994007454047278391321364870864313150301854055747321970677488407808782811539078037602656688098721584953816283908402395181116404508894081020066444646658063865557094769054463830563619177847630173932858539654323677300194759706843041416123341881416170194190955393541750948904680761029441765229787140155234217637255322733130527918744543588676555035436215492012463402958618767240767903839731464449637634827753395555474729045526972679358554336427716576185552072757745990691092425995376953428907487124294697955964427367417669809951002041159684739660256177570861565573684013074751932777419322604737754583140332234937969412338006358568891544626811281566433077753405781610522746648733323906547200917013613085828365631614538397837922106526611457062704838668070979216175780320057905720080790591385669674511314704417452914356573018383638816082346298204644850443251113339597871856208267173613368468178505862534826167298759954662328293768614218242911928664908386739893554592672118582378856537733740119984896461840640355578736544570815956742509423394895000498700920570734646276778584346699107979531458466668562225676990731479363675633653971124666928712998858981434886547917237630332388022275087716806158743342450360157657705230517610252729987505794923525858831882100611780410571269559156088998539332792187035059898673703827926865523390709596966382767847918800119071002353181169165000558038601805218638040812584415684208267634028900528825077590890469657476751963346636951413316839631656420195038086730786957944699207930850451264200602808608872825715366752122206307514588944211161972375315148117649791633493532051354266040587417159373314942760258527541072288073187951000902255624886718562238950176764790844188830507418083136388562488103750142844107442686537139273023715198893818831212489233028725344424627853765693579741884610429123168362125126208691419472907478165226164974085750174827428108066649308929815714612537494242713882788077911779599644950770547783096235408341810793766764309545088184356872945948111658518883604595751444544174519743363647144129203653233405317849253377962221884435161865866405643046585038871837132083169062805529866427651702800553082800216143934599911822204821638808923864067700393839890583866379540926571082745054024568570716902486790418186759186899066690938055201459684375258613051112237569636138626771962809196494369272461591556800701735304833629934037826351216626310451570951089036535543477341203012677068640936491363724938461260059482379656918732287326965718114340095675380919790693488908488746805472330216744030057371734814676761621276062545933183172970651816301296253714014152844459271546099013010075586648362576409348465428685669169760219774136740647163128365759470293794639229848811590982902565712191159044777265457616661181436551485948360661845397721786487752231904104530158203228926428311648934603740343973355530178646776973373303500060166849632728261864269141171667816276448051703567699278688203162175244810978320100329024952345519700755820985993451003929617923331750819231772319554003955856116406778899722791781013848396798478513808210794591984094185496789943199733185440158576497585261278128826093566724779922700963788580867829196944094462618658328805987018659341276291458420761453925929914736397770940942574512138944895574903515377405485950956166716149877098065387330775361847229233580181756750717202885698929547371018941435859333965407541283530841248432590440519826802430150774260392176988147213607911554079933043005456418405346189718618229781576990842152340958585236276645494615747030588325222849857014172520593225890616663650329327929453819326386418617033507316030674970568558534850808149753377013194090205187700585210089165097158913759479118074483001865482520275006794014264817581299888347218771387388285526081813323097249351186661438363820681336606496830680353024383162057378218298416142549343414642536697838390089403618214088922664267200496688058776163632310729813391643549767214849887950299248724327784315495413564632540800559354666263026771491380060029312553805713495152270242422986120088941892332139647827749862633604320648475161927607674606572188965536556971892007944267153549051484157658055804488205083185452030354884190368980796138220201558302470788513376512077810865814806898475731657144027599438155289414571437743493589477167600482558531636372350433604526336168531121532544930481607695202134344466299300235762938749465122840583894382705781848920555769708702189239271129077048492971331464733076011171222476516011341036259472985486893271599321368606361037343191861806983991721958161421689190563206871678822787348681749886425248566995483623028524618436454574386668013806431966898831784114447301622418593313298339310369820572309190654353279680645333601448208569871756983030283674380523225153988397019888338336536267763985476031210731290993328739338185893482462515653525751795637573357667622286027101953321092820745500780261721446667067636914106638219184699080560463363622870924135409631837247207086407182160645829405394280220651226697809917860424014314760986204644790472399944216210257138442910965864354930393936745294756070038784713665748394022124182517911528795822006403532184550425930788165834952354087115800664329837907046011342767710885116019064271435323924186482913697289165079662258153382465216987679012279198529400974569810750599726532430360417623724591874531730251467456406666641458736440579576000034911782120092047339205285195745927265048752742795001001260371042388494932390374285066847103086776797689941968314855222493773927044497696360490857782275859578463958033081852988026115271968793770837825502766277651839498344935178744283931302662941074460327653898330154531813793390647617904746963049607026790133307974688147040953884115496157479262515085706000996461991961698717162591687326181524087085298773465939942845949044260256613512647277299305966276522577685489734363337048808667376234671653705660306897734295603906848820586794212859419212285869013452922874540963186039766826304712844261075676656106967041469958196418189308225424452000183432331748247676924392270921525867146506369149698413239311379227205494625622369596840955577668659602535639441159479237453214506491629147755321163979855717850076228679290020133896244539453098015930676412610194773016220007755989659419751140596403459100562717068284574105628799833813836148692629548455213375783337527329057146006855780988353524032927779162483307242309785169636508539571477725185106377649485637899449042261149796724681931691793801293345487151213828045556914366338437198209096147110732718080799293306759542931114418159710235538188375904673483528110388903470987357389754357345922202233125552892294525927028061688125702456518271014132152874840358764130246576768272008948599903455823634143943411803786740041319548126533347786861910414997446300574706245379290355342271090598826970238151240133035606844303057566611370642353159186057680843886823027994015103401187081335998412376366406125518099269557905581184509484580428834946748241784008662166312102745143119597305915904795631766642952318168092991128050346829328829971222035406434229778260114104015237260464353952344549005486449607024060569543580009161584485874951645930914676723900034890273413551143728548249406641839415403717707264110783179765646205514968768527288715684473877755953827923162733746249609051191769229816019519286540542984877751490810028236621703762159998358165645362628837914352321102607819122290685999186175847269719215435074156934006041518193797107873662685067527234050620877052444266510586931174457185407061804078066782773730276171760474342212933881106047952427907676288267577664566740422393213489889197382948945389970375354952685408995248108831917724983650762523641919561093987157364211985066813748404450203236757285052799418283699746418224906195973304509216173330221933648865803969493789852829114276548619047987258798681911247851233634125750305016235863069266144594833705306539312104093315975211622637796286051807606285238104627659834785540329320272456529584649785551865978623532377291408004592967752822572205280495718393075162902942824686372998688139641746482027216946069035298069401504483291035097792243244701075393430360659090735763878055038269260681729659975789306145270692227178878151888824127483776270622743551934728245486579278028014036495236410690927670760403966168472811456287400962091414598186887364701843733962735305920341567995070214361663203485172094068557726027034576394929449326458151717175944353553279471365014783710693601820697916448055086615721895848487493798193200587903737491800635228159961791468129301610387170591313626051659924487130509770687988828305162546790221689752305151130855261038691607757129930299180528223768799531983508384945968942550423424728577156801099336719462093690311848514210003002879911190643666266480463621759961186228984816798251481689870695719222677142775826149694697044485312148246739279237804583155676413775833914307416220713153104687278313902282562001807222546848225447801082273167195266568787476842535725997508274380286871052953263918739108970451522092822958004395048651086275739679049696094551318540231139764448038185124346772353938284658195986636223551548737375705328400653134682856525470740204979887927086504428583552827632659834123560155836665305708495267229329062064756790140123877091045045642552403480552126187121142221150676514539189138634958758036394840548502300883660780265734272997412293886580746927251456659335141569093803861871106578153677684732745322326633292034194286809605150534962346704670430804625812770136714854142570879005527104203038435060444772251238625324671768627251321807054024384006315069233088788426555151274105928132053888714220369511245085784722557424537468031419771058928010892432450591310210409667264094997449932964915354281893308027992896541580587462603790849907938036267949387726015375098245474005089189339019207589894398359615862451095553052504781722000466905370810898743971371097075768341664977231653126857356918754497130689664185530416843605150928691135784968463369053871052599111954741330631032440898592994554998926538974477950044854408038309257291046202963989377652906537544445806170834777301925582924513479456138758116985953520043908792583827766121602256038703227465982099472592626730948732907630171508596049720262341778803903708098036347534587540403530124154456524988866164776413634153725516627620143294786397708374336228936847090222602397600546482102371390067517173602598957317733589309527211463141351094989536811088773400707974300949354901955383383172293957588151557566316368247283791350550216694056049857672889979536699253364796816954820141136115944027166499772273234242152014453449321189724588991191340976802235633528204819862831763415436823962334524698571343413330222201444364360536731915701483965988403501757360455743215391659807987235728689402233923548482561850579929918480607901861427381656788959793767730422705132842887132584282749623160508129785715725039534321983548766798016198639807890951572479476521367918178123268823187680919751492305198037532752097329230377431844298639113161856866042886927961448255483232099497037759327698458229024077792147098457341853201104070272391381742407834328670439880639415574522487037891233522436900677788006811720761386296429911929269946793833455003133199789653606387573716533061186685573657686619614722828184940931309850179823659664648011801340577695602618715424220984685988897028982768326613297007461201071786250353355921619314136297840634957882380818869264894280422811025782772896054374097182739217593591075989629704012136306901738931633916843025670160001833052676826267399937677429444020556839099762559092208430797208096899340457033054669053098305044093946472084347496584301108277415647990362782156829059965103306258177615470484086906510235223682275555120313563539327945669929866470858689705503427890200458483505830720860008988499420959062987740954636241337689780184881011118080302734679234668236869926015120623122352960765424736888886726332723478961483049583431676420460767851862962983018180260882827658307644854513602169073702973923020245635770358342713258999553640571084389470780027143639336316462964711192209357164258122921507520465949758081509677866686916862209291018453106915184639100575544379212742540043066081843954912909811139146291323921357063330282990310857193706592496178676975271566186505769747506141575016186890030276133444972114525077768978449254506560193426813414834374769627210602694846493746438006769554189889465700197628287496698811799082579362134506571002885347862289191868598096757457457341995558951268429775637455431517425540572057018396678809508777422784918397671352013627017325409937239335594811515774214514591399530026028939227307651662575241685944801813225608387702080381162295545605298992432512051749542795004449323146472982772617276795072590854949036061169662825184353348757106202942442502161998081920037582795790173084637437846013924116650246065861032691533268556914542928246253839193039336371826341429157339476550445003111117616911578465642655028836979511668599667075648200806864181834027826553172434099856715885306302564062229476399022132185073977528955782158718154514732246508936819217202072306338349402502623540525498806600781159897621366076465510342260613880501412104845594527516263998473963479094464296200810182459310461077425405381183596707568318235217778191693754459670144518856455483183396765900866728650534038052466315181777726603717522481372496985601559733055470556644572113079602961430177811758337524666227098939050167954304188427758119692940260247659201539862476578311599933951962231559943311272338071579211251879372356095909779810396922826435450751067005182632311627234155191892904241761742061639201194128123003972200145366962890747974538556852155989232058932623675358872477051698591595010320094140074522262346704238149534160265915565180411414362853296011184217041522854462660714783735275414659280475667339752874062142122781647690534223334848198902153020989544358452133869423214692634608732969095562276845349838416753659160037950739896867401599672957221540421800742668069911195026399247116941946271857591300613197091733376524701274960638873368906920608283644153444649842494816731718250224871235457499331536865145704380852756391259058962154608577975235956112757935203314104561821287411783621530379389107646227874117257735015416615766247682388248723830339574291373659313659519436358723532590825232845931582260711936334563374690151422056125872044005262820405766161440430070292330020576880967556494031925008410572222683504752984147805879766747514853309798561478761312833300219031745878578190435389430338584727084405207191273505916296003705908448855361016381626814654900988688185792245054933479681955111533562301149706378212672456075211080955700739006796001325372228187313979458272292603031401117237983166247640618547311171770397546577768677864664519677767817157208966852227615600478492217710261296683083932183957140493537854853885141167000176554412821523832846245079967195353695348466139973919092462517056082258548946074194443443581435807189744412006779185596829108602656586849880002238092337359025243597391643382531531012918739947132018502948473668021182418558145754555470600306550038989048972556667999950877877670312116119924769820010407778271243966937137875085777067243462964491360343079308398687325136224403916305265948923466122460471548169224070906207711222732839021018669333022280850556138729527631410181241932732687456995196082260250737577735133117594428174748395765899284499542412561118096038739872234588475720013415494851693374520079076168394913105780890336392896634849213455295899709051248065160288568274728040123926718892484375313635878310450415169340275732227083097297013081533451314556282247065678088547858546074181221611240838064062366194474714639102611899325683067970584445531721450532361344131351862281046936737829661288947217526289846689986564477199001080784559329703085194942643979325927636982933141160210510107361251304629508312754819736265862001655515863832607114362051656107038423852709274511665782313989299247617235081738011753986028607979137003186143737812941119767959890072750222329890775117697393589303428541930230252900461121496894177986523575335064745163341116088009957459716993215586657378383160293380836042570645034920920569304764198305536785914815493320455533566675604897976080417826331635304084112030551821996696748310646981195850833807604582067513182351367554694872143826282018240703711754532357101368627949956675538629897477967881041443813961619381425391585148039617958529703587614984289317320632840751091144032915788268565906897716027520192934893581239358901795396582733407353856743123668887606729226914703726816347432492603517476706693157128829294842215195715956618742055415462577718090994365616871675879908314049097459466555647486315722899853481538495794869363734672937313513910042028146496065375758642006795603002342220845533793939989175661451976304867130393286500606305352174082367670338401132049478236618766218330310069745520201735829945906451864740843656735679473184858452947919714496074129884166399546299399378035372679192047785474483685262451619207638946053620354560469944951573536334049554063358282901663237599453185413287905963565240232924546878836466393047517772270853295787856634867820088921444123304786883979858903477880223995810581263377576276517846304631211355922946717400398950983912392074393512487460802394187179417600811057222114640965541468000494947935478855676645956204991943216795929186499939367266483499622244688001368469876342410156137108794613598243636217268175170689412073462183614256598302077505459824113316443265957841553209046331640776385969880341684510283480448819913918993367490815438088524442895047817968805480620183153175510095531946928569420198480149259261209335549631502366513760516139121114838409298578075615731147535559679961971468688306761179321184858229319396491479218935726435662984975704967011355978680115044999452872546310610073006642417667496563506087187711003402833485697760457200332929099438794955255132974923069211530989903230395630247270961761638723189810453163304264482811879205161930267727214446374331512819635227242884375578943262602855173421169804663507160835518558030963765369532512299216085479794621288802256655372246558887328073960886215854011208734346498842291223714041094839553785581378082772193914550762424858527063331650881374922310882290802407998418747371325318366647452690773022033775127395392051258958638883458371735518457224733156739786604538638838143513998661977766007118263786708062605177103922352257998279562091907891742635506119036572888290616444047797988663356356509607312976337888948600321440301754896702149142872143766136058690762032675487784215640676863335543231727625845083162822531551382457854586392281450334761721359021407098642206597690461618655333047306770576466928419601340152745924685271238456369516961396566812672630523075128391377051269520012306201697310007533088470667679384451548579265847823449927154957996947383375620462661482833196792729731456116556180091451399896964674118544328087234953026368202281981071163169142712393385306460772971526401425037502605067643844502185057392827361795898323665541440408746575156947491123199798127866727208431677003734302201674284485889540127999806441144218386769486425759413700424724100789304104120682790259731453037331651486916097134267286347895338243793115174998922440010164429300223521481151060056332395485631224505569924578278604031731759777582034051698794225983676573598001958868838424364561963925927442533604436452508738888889618064390053414982661466507083607864872094875881364529040047692114174341074568576993893449487383820499569808359103971136325420634672095253382078856207648841380280587186078085333928050644241491616252517007707942492840867597993077985020259378007128149948248532486261263026017412543881639592052907327774417167744366436314830203677371319234368513102625179854918417520084061960966030701982098633099252025539431502647437519001147585445544051978337995096957217450967716275540650640025433264953045718330049633832433852332037610237801016780603838124450874216479593860965727316788679698521989588462774888577869898548041135113050231360331569917173562289084538585428545753926500459667788362941623054908514488042460709671626492614052647946460316160241725463360713147778323619542374553531521036686001261774185145405693148675725879164801465237555577718399698704428701299585092421725882102732585021926954737979902397615785743240510003610472586908313517172435083612416781807741057079241168251600335994315818311419326834753598389684915491045746440202425362207527495033528882557962335206045473695004013036669671804151665321534844201480905517084498378323219965509804062858452732499199274884529964689931598051190122518661162869144176669968790704410665800475419911149967547122585617899004110545949488110416749753836980718864443038158961624111329729389527528965634066884349343444830409115242385510798801227369075806580803396787746123066665149502612599117196233609446913011415236593288146595432079896304320772699551204979813911506413507564180602085717166230231895452691982347643866459934822904234681140778248281990954809479294045451539662126778857908092933804237592734121738043707956590749249569380491709890335282624325622682790577718010539494365537743512579190174767315407460730181634968679817028693396307177979196326667033330567571556478721582081999732173093500998086130581238090508802076279685700265650816505500206916467765977438308674136233691824200829519741681240407037697190678943657307210987403827368660786079623761402795588456825332979590384581444979606886412284608642054479604178430385409612951011826498240313493458430794049331867054500103123693397847336799581908636640986353718686930204794946016428346447455419947775039428591646923870915133836368875091083170652655497597152384116443279477074882921374048382689351935579006443289070009061081381116982851992517364738553801356033212132502285834397111981268782203959570212631075546530687069483230657660641164336493204123429304356575830954569355996264279155468224254948751359846541516261188672005879600794778830524727192055606250895447024749265256497258012446480637028785253036830524580528311609032178780312738610044638980300625061434793810081644765134365670522840920883340366022007392895147835392751812273511417040744008743737825252463821716589309235718335880227678676585888750633848048185577924274028609320357005778053532361184987159115055209502720007782866825997394385977442661428682265344260828375806112180557898686458292361649574202465208330451803522762226059338892573831974982953721739060722288392113456690784045389064613939669953845382325042865929830722833587571371411003304332918805564925168740757041659546964097762337218037373426663927152834080520104993739916289707849153521640353686125875365149571873788014013233758304726364664864284993469937269996860976417308137753315204129658771812654008690078379481168138753726724283983983413985973864584067766850905791126852931120399964486228456762492599840906020579076451727162782766589035206948570215326622930235092397153958499149715663979230130253147407350082216900218697344200147316905510915545366769710366679209555685038452551050353420206427050130781953187022411177047608455669169658718820278080677118664867637387185112951391878191514624288358952830745621344787421555926679465048043532516603391977581806107987338079779778856954260080226122478152099753449539988458483129028230943632230619130913346280926089617915820898282902164571830817192229847100152453185389444491316549615239534503649655414167965310590164636877491051246325059282479741925541643374408166673054633936918037537877969442669066672006981229186970259512294538543990816300244369716668066373712585453290225921005490850504711678658514586430855629046089913693766019227812971749794529739698997559887267517862460827089643649869829581870718964619501400457770375899757602073651714070697594501533558407348740639589503201792415312523958468505489546377028118638656335681819680716463846562526746055216188292884350761748116319718297931428863497080440454040862738437812483289267649617911157259462122028716667242613120249270289138814769199503820273852921490726779716521993428666600548880991083810863857905299754938238777201015742856371382714897937732788366451355013566155023206362274535645139669351148990894267077476901980896094371259369071262258775739362362536580958992360580038167510868682136592119534998462880561068828145836464521632191264727768882799316014050903379714499818069778798233162988877381782458585067665636541724258295342060991459676840000614029550743023309472092510514645719215077518169929495621125220581378394991421868151966848522846495881378364775726128531516758583987459602287064365609897988558094329880809597016552726293431455685775365832232049422649977487515454014355167808400982828008282688510182111637644754691995726904227082790076396120585441521467731620819264943833554392252935683814209007971337154314184750191198603685524858299195061031190581903840050603984384884495250183267855762324577610104502411778022816852274079292942103701186699158068087153342900350993752678539084692899668798929749281274864533653577756829010951875164682722217643460118362845345586047489204992824387790575202414529535206591562755861590322044500719748783538235993115140814007962658183447139270696326990477071376417765510284845035399460586292858817032063029560262105443473767099617790192196148114746073543827882200506662785114180698233872663439617645561855503061327079263324383353770564048449555521300685168315888532284484932820696064062197662106968120720581785710591815408869191757858232604365904096090747745022960970500119049798771550788543850697174442644163541836680743035094445195246801817808247289276063410440371000735120157688834800100805239163658724167940328334686321019111337081616449702216122765603874581718292154757892989325367938784100731501978513578352313934463609017867109607119287385408580396475959248073242167298257292780020820851036358818060497036371183751845976072623129154686251516568712085486800353236688226079633351924150325171399967214130804005296837515937438668782233693295389259018315004965803384834310453647170035713926650897830707836517368598970091157223456650246575838865642423117960408416785415871975297795157670215631782787956063956434991265491898037338882614741897851725955410725499631204159702171813487625196675417324082734780382039009178002144633531264530030210097192000264173512560624084938048700036244402136471389536860085948380933145105325032330830798769881963860456950096934943871561387305499497746560551659653094238292379803802919193513361232295358039491493896967907925564415523706378090340703161176586046895467894893415974475841004762091370917538491036018071602148312365622640512176002609962488993922537611838670971048030957163425088990891618620801701572099474924298554989323265617798036974251777030015912127468492965873275536571073739362795850302411132387786973993697352032269977569820592514188664943241205419489406052139174001182531805407347540554917412836934610662749248208356644494966593046116348213300051395417649957190117139555169822096513771929696013701627032448706530954310123598851644206730597111104575372339116287347163713467117023650829444220345716586082610218972232049663515481814272456603975832862209062974546820354083726039787486674594743895561838549885232935728054126048585767603026706374854697977618415688906183260136607912613211090743673170949732002346213759389799806111316050188602483584829220476070600882245395106307542548365869180479481493911603445251173846065022302765453238206124269941013441618878111439819280051105073679635696596197816641726388147369924799449225857533195509158213302427909724971565742833906467440818237689260314672769198439111048880796108618172926953530734084750097166710086029095328067596686612199562071865482231877546019661661617456095111348676553893370374225723644191682562453859321956760642772233946164014729694933266883084476910455652309614201889095622029366160932063519010445891638366134696786858199546163236675788964148832628941091275529002953862962030740205949479047271625018853339824133567259346111808630705654097887228333733424310908622432361631610734412175430675015333507279212323549872119355627093602003202285612402616037188840594743779789756381298855059436430169672979568142562604005420192286730593785228834949824078143308979470739767296626985750862825900258957296883560023931863547461003566848395534372843089005607434740695823931715037735340348829109055390861938346559607883737765084030756281630394441179853025688433025141820737613731971707924213476259515721270736350533814488675832226302464549903833079845612868731040952822281708169195673632752280586656493030961740044204554715849661466934041350862772901481811039122777099919739284112115369286208624787103031394395032381676692730760420132923153721055448914536980536028968518965014027038941829968672149843326035707803238923934981166526995115611422839952063071602125919964442728165839587714837995498140946878849716002130330718520280575192621118924664204477798107304249734870041547257834892856444176246101954338488774083018204074494413804425791490619668697526821492679711097174242685046595732739441979248524480061670657108522871295866667101911714900326256428818849205198058681190101152447226666434957850381938208049240176373091615770133158287407560363097410548120618734134616866909202375643486557081651789177943539302222353945801376204987821085585925452714816756574882801964963517664719743047423937155697956580830777550034973686364519912252825323950355577349205150179655504642715236009179421524389725236872986500810369536090715027218387666603418842760485713058082550529965082104642938622526148205465471390387148482793688236611755942483129270857444984501319237110254332019737334239585647129055208140684677294069200850435997879954776519976649910516716004760848234545749058008800485695358921937613884238824657789568818132073261056592190428560427104945872308129434538096698821242086611776981307468483231408709072613181061157281668535959925589216327187179376376845381294657518456860910095708977298828342298265446665428317725386043576843103103946209572780329695348805042100464705267763095638864551643753805629115106555910909647588489841437297542460450846188283748250167127476393853368689202167276835689034284578808138546582315548360486809036653773166229592101485681463983130880488462825190428408420284635158657063348668175973632188348680996359233621387133622736652951348818162591645618716883897769441918798905004073083582901695763065184197816176731759085045408674643336835237117071399366720160946759806735282721554687552207173532876232474444473933886427302104727390097827613127170747596769654590349014588117745220958103017235011976428272538549397991789877603590953126808215951091321983001987963485340546017280586977977512540888370361423185233818619080255097039786450823647890331143221951158639907109521764028212828306481542144568184749389436979885317988979451692255143858531911594909774685297402367580957741531666858645917802724821577789523296105665753438133952966342811652598514648813623282406796004439508146661512746664136461299295323190091142170235329809889183972545304547263021683731534827810211105440543653143990325078935544868873878422651765072597528054679808130701110785666216558435609029324753329596877174993574468948413904102819461777172745477240519887541403284185344463840056601061214955269858620629812407961346903573006019921090953088306480172326332909783113212030139183399256195678181139870662139769555169934251040235201639033221029677729499118144184752631870726881298855228676159500716366855550151867913749509233045131183242617520075331750990309241737040252569951782600728739788865208884897346102072930443875566534071231855354573857587772274339336594501049841213846978003877815551649517602391770532198828013365530750448197101206798618696194846370363494480640439741216936173075176374744970075165760833819788583054263885426464704288809993918896104065999365587405731186198938933413595409237565777723305472641560984253985370735792065227383444576259402836681309264464640840573967497810366600382341326176512545776315497968208092468117093202635202499205301527438413122526941829324905688029671123180224573967335073381993316662436656609123394662342276879662612084668460579686612481402410056145113747859560452484937267570693573725488184618709294498342024092851137430585413114021110326062249543553136361902715181811647574101211042750869484080599314734509213818105885128339619603337764696856786960731307610337411846983724102913051574264804499586665927213673347204792992466822971303950029272928711772010695550568245215167235445520760761630237478245387432360508792363277523602825455670872760397974771834971256980900480087854259168910404447736158636881606560558075969130161567076353119402497743885655926941323321995258572485919665779429422546678349447611296909693425032795844696050374275568855274841086068399195755661758137116906190868494739785522603607187533313252594948180942976708022609376367091621472713084154257640440649943218211983262293788809188302037657354570658606933492063458489078101625710006734143071720186397207751521622434207053755878515809572995479352151077585955172375085185810871740287051185180661456614509728042917149612303138438546790073227251468027597808929184362146172797575313664274022605975959619716879024302778296023476237015589962272374180615809879847460916762964301789587182770338461490700577514281371266741750782190888966678034310844786624657145857309786933605716694676277785080566310505655507915413358251101462237100749391269893807613565572686617807507250011428757992419121731225840461639168049201911884855815179443008995015628390343330793169460780138666431664716087009916475551514301280570993779069726640469640039411199363440558812706593988339361424586226375147081092925566276327222188482251540239861190433233720657127518802646503525481664543644646907830168800515303685191878885655781683285144745393194921981981284137987871385595880545758477827946758663552032575130318064663184831736647278506601211388745254223491720848837925562475788097442927503026525070940645035770646110965138697984158369519928759441383718665320359477032226790939460105959290716012394642593944501728121575605895943310820965606520936684979396231164418331267421353249059801814964505622282720967653502982773364520607345976748470138758270338417648128915997484483971951460059152542014283868158260361654233886380172055501714429656130843387940145236866293617202867336986864089876245625164652565031187186094828568478519465482582614443074850041350594088998428248316816147848439521199150933981298113650967453265397340074010537699467325763140523031667304059207964267686444001021637254591093281676622044338137784390771583107086374353691177502200918432934071395718348816100378391098996955733787172953791714594002996074176629574505290958934366575497676121123261440534116815703497855874252250238484590684961937208434648121709115691424064374734670888477886636213322550582140083691234664854920890499176835745668931790977384838767659784325675621260394619052674802162266522062351003002861425592619636372927879073013125267752652737515411227925461819158809643418137572947383081729204187704029792765680207456389386895922933781625371390773498643699057735997296913798581298737728029858934817596208602919744938299078879778644142433818564137535374280122907342698507649913165265188070663459479125638552794773025537562372966093230036976542309312032662264372405034046894801316285697402089808427236615164060165280075437001393233605305622233017771743669737376225777628534946216540546250613722936468705263161952397037091118915737003161346490349022791209975657214673785140542197419532369369452334919632496988604949134574138142170174874789627215687618273575782745164348979533545298564010421171412285927650574272584247040054866249368185496413060994387739540457885811739108971891872736169608452632527038351147713415245687147563482444095876099439074803106609321837677196950565674409176128816710252926851956238200739167731248696969925534741133883484957881987190825808143683683839578216884519517985851448208235816016345094129767173094515465233993001633030520958494610832170421143390712208389490933955283132743629028835534085832718371626794027134520518778357916645632255487242016902346811494822242886982428981730691088887622679079968239333797350162210461219278041904458486824468263881106478592335323507323131190605981583027105777913194744577482256014470287749188795845442867354365825472671828926152752088956766078345478283860279902625301017470253228461550012081239193410468606998862535380429346576118981289219417646246699980441210696603669752598132018907746664740851228955181637224516885415445626696658405214721593471020223146533825351628826123638656108524196919074831079455668525988245297732120044120554838258595172048493645663416317078114320171658706868047726705620272356464438068594363828535280900970914917082047814882261630311893567684661168671296887348682249937051214392804843701696873477923623540190274598673945158356404290424115691372653185978567268899781320413277461682142462863202462858407211105968055654442712145424607728616084751231538902965995372815312343419235193105468825878208881247654748634004242244931654978029899308976270372867838028126202742779138233870725955419278056188602916177175335567068280252688818028729598673464064503113543907829813293547383721530714735703347357504938903189135518160710548115587017460022090679271229802094453661668972788229777538832352243470530505785191832843915672925651592417358278650242202211925663411026373539298262694572841365810399069348415365327119342309954862397944215692893490870381459274411421685421589350237551698222338166375444052828341866098487790237683783128331060974175048474282234025002443135958748845129637271835391599160673983754799042368366671403530367572008849582815757862603140090943918094230476740268357813513494715126767838975208547937271382259794254924252226810585777094599396087076918043923660050376601001127422865400053329147693374380645067835154109191317472541040127693945757466402949693032510684747416338021958809165312233905322429595418849413834773112635468220707533325474306707008591463696215396614043322073570673301660621301475698845420177499494809049300743715232321491198713472434876904937453108691816299155097789446859594794827659570716433107797777333228946435202460258467139800112252530226494423242426964599982041867677735014954800173874889859565732782998933282848925823601625218038224389576425022742919428091904061875461138626749126505472859970493953017173583673881550662617194579020510153031394871143095643021162514819767898667968215080678025323307026491465550552723116771962932596139336544892705810477154481778025247527970445727686325229266599380183495132866701016213926950997195481588996814757794295817207786040873978070789932253326385942467169639356051535081494205972529160885569450561757171705744742965766162097937624521384470273189310146310858120833203689377441887255151484733320432944061015330923365099344819120949883142929542257472085506469593497426750886815179157482954492504963661849198928884725172995668244968000895372839601330180726019790274797570870811396193599898962605503224779775687828989795865028391590589556713048211281101073349244976318507517021329449712980264758334261242381615139241987169751764057569326793565538407857742763478420837927649397611074479139260720290596128946792942402195929388394175497804118908637580480320663829712536195612647438729442715309158582934370888056521135854961256776730750228538490404655599467598879560918636954217900418780348391214664016416997297415819308498013232283524742871597940133896475213371424081275448975415086375319950851237641133503821682228905782879003889020334673118985003549354264233006957920542238275346133489434585711818956761189735668932376891427411062401637526139376049860772727039674079265770338287301904817736673135432454830010510357937320980757222210311403705440106047116065268962645191903061539482798168540569659470221010988957686932520099534373122329459904545845106585455818831364274220633686981268209283107868267698936624791672537253613986018853160062986710381283305287058264127989982856041429112018502238645911083841396967802923710868553780630078119724612404342246709046952194585399647314077314407023274070602650988307131368750505581177327159292133295807632769165954959541044337711182217895816013280947422338991751081369360220460289667567157083077887999005170463844065499752067954404710283284348297119002443257110506887696404950854290914763788061271164575801207094220054470642397259826255140488959478500109488489220254940214482607354721272847977449073095421781353757387802945512121392013025246073002513584206282508255167148322475320512341745025970158552968640578470704905179473194918832342638266540815021028795534886143932789442289720538049311171875984024722554607403109483186108390741382414104194093009904736803767732937383904664421745942433520030846588819618408956083248532653583708852333360710462117385561699277867117985215155327196306334729114040701372218147776148720214236482293942188554576757267657499678830237442900526321012762848935334763984500683030321485897724096536637485902657662046034497201828536336483942849828996990735196959001783049761155959481571648371452537715575865994722930753845315381594773869033273617335870757714021838178333315865633336729454840166861019396991719400928961129054847012706637020175135209725651921313905249735756784539141304772767989735082421665280898019645874788346967206110855243580764863526183047436371664019114147475913275871169585787367193838983384519647714221749087646782731154458584873726881350434846235341497429748272745934621219804794500249728172599603811657768818294349159962328434833083431238616360151383619196920604537275333583675362858697032044245651173371297913546141984939196025945285742650336144646175650919633002423489322696857869647290595340481296630000362441102177617942923905855233298672696744841401381622333379301232222603806508280511885985310454764875200378277542630915882532068307136261071763611647065769139151753562853777315091596275756793041563580536926930436683263528166447942664732909597007098119205967220244188933343659587157195805117096652756161963513981671147272413999683579685833444686157336971942194243557678000825678891057428527705192140924649415363988072542254822153758212454923272439758235921362355267723308337773495122898537842434217230635204768158135006215489610557990190393472141732666328900182401242822239904345342825364720110349127379366624080136285449745324136790187831897772084082613741777893324323401389061785496862253888353233598314196725752091787220757277390420625022209627085546346619284316806382033248371032136838767468571877041807368264186879941669102061917768006927075928880793408540904754787517451863872793396992770329275847725588092164799838062942746147812114081363398565884630219701629680780852003297540914323901989475628166074343055289014202011346539771293438575377870283014636011275921346967341384449650208970332022205094566299457402832977469386691941935255372700783605977562860614879356439426750169257483051923874079361001665105120040797929757466956311652569154545460692716651110511588987443796844347306960018687559323935058666724566020978718789694310637116301501478056330794481358154305408563480870054421610541289744640603159535438237527591774210182175725483521087316009863261133328518905949771895893621579388556967738281939877071474187830153778312558769545359486300795973294760541886442938553592082563522255709427765350612760928557251571530069282045961248814134712227004030068163831991149721525142647255000812391120615238312721216257183444292921669493035132193289305460242249134204761947955641412339976006614498738167478649836175502482696390550400733150479280125183638496804636399172825081839138313300510732340725183100132513643400815370116838073413453658631378319555709728369369029791180053245506886297704096935084539497151709550767935356977027951520961288502949671337122920581862633160327247965075734934955407412412179652897922207057631944561202632723762788709388908006435834673802582945416202969924299836818825697801463614760843337996203512052910121949429185947304470843124928018602963708061383577224289190241241706552918220634460173452911223577898015986851862844654443756537585077686205609147128370781951446134473708820392317301961084064092866148413937913737267303481865630655214498346261172164120387306152560168495570786226758406564314578601895476821556024944761793991226350504213398613213650593222123890703866427967332917806775100769874601136545080445196224840045945775354174405032170606632335992814357954306227676566021970048453043697035908553762196266402883972004338633161669453247218211191835391843477340752146069414002488096235314301857227081277663505160509222604489450461876161543648520712291784910412884940333028860752952449712878404672786895840097934499486194083965408361362497969099723994417038175221930071712448814256889957138339384859930123819585693088437755393600998796628085546746802506155291407352104987502405452919669156726835711546762619585775923095218417972728502490991334754770801530211797291454016954346488737088963456078699819983376215393951554681320384546980178247437967099957781992936997228571712239353296400976755126936884591579734371193255965739359737549855537109303794675741088703104132302149633669264855218924650194112708445396942549157065232944848828128796078320563709191838995213971156396292032712776678504624453677956228958074889672189791657360324442883777568020107206691384914865776923338147628489117595475807741496594368441387182084160076730472594682287597514943340257126399448440843081278703738835233298377801140186881380210193179968512361101380575598560556345319740868020453162418168401021833965536440034909605358516741620503231451368333971074995480520772477877937694920796121020973663171287760444789705332967682694980992882272535856963153288987389852505266850857722737756450330604106559191801010516473453605840404221344995972913314121837287649092254724732682128680976763886573513355104551287286069080189604541736390495784701106505397395739485414575278789556005585586436864845276473586321268004966256397442173192466036160144443598134262212799084915943457831717852344930390473631081497625561805479099217818776875197590261632858019578650995118689747089444289566441117745415377457986721829148492266039903946891000873215413378958208184033996371162393066115525425375645532652424745976728746456580334868348686853613925854443022648807204164750102177456753465703816634870590113254620485858608095373044039022553671862345995517813282879937814612377543130790514207096154928318358957931810197176426978307536951797302294443665998071714892122319726259875782796190392647858181331310723776698142103017279508197568039703143439920124285659046555565696345375291707770746182343017246021496100445468326072872305066946597449848518089920962197439003407053831768596737800606826776425032767251952772084247905995803763377442367783461297063558932468485899433848650308058966386229017425301728098839846505060815820196279296980904761697648236434375504506884365127552412690556737163206895964859969078348560921879718765368462169965958467434134500577566524226217500862129282836902384528224427818584465681493027592810520114132021002004479584542547943797809771134623934464335524420992905190073187763678970479196155436408441751341916820019268885045056791341506330177468013415768627370026296195858535324648433031264651550944911013567390805947111865364906762310408536267386052779370837086333198974430525641443525833761792075458919940872944566274037865030977027908315334551217730482101860793828188321054864755162678056886572875624801178992897376550979426175722407455903524604004088627622808412927420105797953055369734824120185355035183526672273399610074399247884122559580171200024856824931969655326757343973569140913383468612267205105591983007710455755069700332902949872203270294348075992863350647846262889316073844586428489864999970055274751968595203086600285730295341677770378359616108521901597851678228300644027595766060675046580282304479202195635500478558989683408048018829997978739340719377484824738970340132078518292294477058381901397533445373017754892264954832264609894975842796683568094715459136833451598397962853661727215494120102973194283000040409685622234384593172137643308174947905204576784564270778091536038081695697150283547472661838524095310652760818723020383952007965040624401769799718153952443108130813147516032080806806820264181704703940555873122083282478783041194993474552310068815280868492229444037418267298218078692191713110589139016423661341070266896682381033702406801910919412037601844420052181622948747192760144574920762597769701388977444677195580499004123160954724841637900632048832933159362338354725928177528745426705179134138897165156502548930735201342046621410209415183776494587277888551492870340414187614139103436943655705750967909532407749661516473443666680010486695724769075554582465008701461605052888945257501593405750208383086648751698050648917037961871116352121584486784780641844510475617655515472012503066117140294668749117309301059727432287719227609929813042247813092829690011816092722839234162110206792381121070592176285909718203665358125599385621270228193427460403312631906639240416332985497851510007199455988385763200730046803767004097087152774760625648453214777998173350105285394183951482231724101656794997613471816510621495069081690921285651623539896054352726509341050638434741884702483845231021221218998588969787080207319902604954785377296625564401595620270160890757314557892431462556330560920464658710922267600167532497827288496336824498369159187304191113121902360815841111983065414068335309616413548158072006435666047646732464498841211076399407106290312095671923137528388723914517633332938069385389960105167953619948970655655160359681436487932398381958551121912404157610950961837839848732021903854004315236822051917166228679893535731411296711585857810144127590437667716565138355102763421835377178173825003930921705109678976002095205485173615251031295847204887100369413871815188211885604432960807785060005068742477600836045157860438707043176868408105944831636539010287260076688529818083922632757198557178819805238764238014614901845924777639131831664366954347632702876852648507369151271250515753220413492200533466103969962041755376104177282271881882509465176376275481741526042969208655146796070951443535235815573501814556772708208043821732665413802521002643899813933917600420928911035506836391453430214908881532313439818989643363803414765416542064730513416714482536075953593809868676602272842732279291944767585140974065064252733880675190475467679888997281227108893971133270020729653278544933342097265945240943031050584638619440175264484665698836712318626088601000007667736681537375422722248869167825682886785026393238532312377237631295698834362314777515841086858901217259301573534497802353411735282099517535798350072727612913164196621882976006064724722486295943812604200683091567424825202622136925706915198311616224629639941074457347488692665015741492511021784714535884836152853777676034595906883766774176659488855295211748982962803172078869971419986419085869620046827899268834884936068124783564871234672904832355079065456499699699376934719634190623115215573569496090456703913072357858507505008907048570047364434451029209783714843441441117415036199417107696844584273213810986372856702388411559749222663062350846825801486727647820126501788249772254746933347908254134151707867861323895769629820875435991218743876553551096185824407477961407410891629885704359855279655897391611022491233684502041974599740371355352318442213747716987037952668665550471869373691908292571880412434236354994604245505707986245233852731526512066486190796412480329870872379963684518218082370996651063300686203984745128227065154818743494062872442973132772290744151934976680913790520068714327111895100690395392301954083823303110062702477147221405150808372873739670321389244461538030949737658395129702657661886153081024689579611632980497625839885357998429868190431821081691001111474570860954443228988989716967823389244630404117361489922958562519836278595333373333736468425357894012391738603780505992660474129880985084358295753713804853880431337448765203797157846344890019525938264618481706478489034646380654048284530637178055291100758649380525610327708852700451691736873336853792472005192457747806500067011992129659441856088849681282802840404875165383610189792356762511512429393348429166011614838918573151146400034024258999663687628468840936934217307534702033109006820085292341731346246015805982556329433093210426343100031063644445607459902763112645142530833189850824416051149693960942336928881069503937115996732536748321375712343555158211666234677387031152761495823597185196084979109258688941577826427681719601355074970258306323573194744265303118501918543473986370668818451522065852919363947412888108736486286022228700210784305347408096974595054772705352617545303416426635421137439435078082572071670949879616105242678557182062233592716884088556402944929477223041387400090610036089223041749547296913199093407490677899362532380109339796030366325272877082378983973791662653830311723343361483881582032802340013043325455762483074020802402156119070888958961282106489457912097992995303212883529303309027556764842471977087531476745290945279969735905254105611110956304450046268700270861299175705510387449956530785921124552268397261102943687661145408598704996790373388323237331308025714419431625478335813125401641266831137811950685741618533846516018520923902075411651503236439401660720080622037273172647728939551997012975946319148840595412310852326838081275011499904323420882963536506239079951833342692126879890498613833117877060317555623112890576528497587450338668791778296662495955035779531614367700379216628241368310656304601766788045889520725553852622848734604092563659536022127063401170621953036866726483547196823735207490192590266762582298131072596785794761447477005972175589475650356287540318879088493342227147704056627381071150928056165647055223067438660764068356992230814858036329773724897210962471726205179592234377240509578820052851294959649076332511353226147822974409899005076705831090142188738192169277422860912004001253388342256830954006283020881307248034908782354364435939669616543492373045962080893695446160056300053221444973575122395189466285974525110670829565087593288324214054575241722780337126618775372243361942924492378620624190232074713259309307105267677153603676783698499960553656118217710717035617583400954619790199608309414744769559049169322292885388809173373522505815882286650980883972478689912758052163785233839514173862806164166664047806658593191600187212489690597517727123752577221603802658395248809456611543196996668623612703279901904240012142733651533264709266929510807068751397481893663979427635189908412442437266389658418741786507438432179711640922330546988948023597025492798094518603826263199578163056959851132829252336456712347419202594380602973698631699141526111641195252656561916131284259059776413990775646859034746104192230335095768164771797216141789273556690771261382876582884674725408005099761859593858745084272496644184984949340886019115063228799239794991403176354449840095137532300829787642959602731225178834876392649909138048352272159884953429093100598553336774574316539656066288101191526251212960722295052520457929598955849215633939982883182336578035135081794409756648497872469147687077361556607146595075473083985545990072678827561628725462072910910809468477070293254643696241761017924201935841746814425135593722855439807738430665731026114637850917345972678704235176928908242880750344486962054621293456410485406956040335846102699675134281933931147298352718586352840262586914050222066257674519566147211627637952854635800569599559760938524101577278484185177944650931505886610856296708152875683859896438506971165134265922390316726590940882903664827249637610696372234843134049790536028801341652490194266045373600045396952382455242963065208324910112562389339112804209687935999272094356253943397163676779460293173521916632958549629209022977261663152949578287535429452120443663302656557991054470372935808005577922625065872746338275617479504309409594953896823479443419799592910658478860498799799769047748329077516990192017659157355533891097505810648809682991761087782281686719289572151058388405602707665782704968156507022823662888460584508089016268883743651880722424841765773147808876965480344504364805383935739127345497372205598494047388859089143364853309168027078974720594152655336696134515084296786755723824778378058849406106916530628632693126728424871389021748620100886280309075523080764975036999144810495574669156990825675881537669388485641763653402860858754647849515633881604823629475482269778088762249653506734245885867462720977963938940140944427503713261055067824196563072913849058862153360402885248464152188681940984306323892078738556889981887114667366829012969311334795473413909102959087829762180403264680877079517186659179229068048945570224626587823530970324440904683379343235784379554130524936791811908252169337420053779564871711676819661223090357100591580769446340974926160604639863496776825445651402954576929991502473361447532005020209075405604623354264877770534278311774060039655962653908461371396854446487045318766726715217431802459209076841339270950889869157877651839280510796571354899428082334128316764780144399679926615531529190065928057838934959754622435134214692432538739984063615205792129052534896983104125472282072333638371593335320683807500545447791711999490062690336138565739774668158689663507599979140235503051360203483228796087880331281211353443755582357937843661025477969293371014503023365788497687474898198558621679740935212819837525061068275945683209075421183810919135569465568226544777204799105592668125166427405205145427877738134774705037014825470325757876801512856790642303669617919154969051052451583556250003307679823384108589863875653379254236595485131460942638018084880475933826409384179240833063482717287144000437875123845926367237297704533365935204262705885084382037185160387111225970649735389199980881922198290275054442918230648033674572756045001044985043992227059865882865795368043005467619074436574622266411402059160523141369236908675451993127730339329567392522829177685270510964038281623548447415501373388847850769723039144517403114018044270294114845669242851238324427289494249070056004469348251487852757821566076891741429406466941662547082261079619115036483811164265847264051740213421217545747193329501906304178694515180884297923441940065099111708913822356676709184671484025779485143533386186359076526457074340644771785458264812582128767918637203112481554180033050757265327159069861288659055718522868762629663899484543731781414544195468427097706227411732216124724699969470257449838568195673477116120567820102537104362156713913388471478190001597398581453700113749660014626436057895253831600331319668062469141489831904354744731508485487124568404760947834269830761343643961569077777595091668160576113909995687521810416321458276397505322684163501816480120975506396888083824890641462845607422995129437761515886422986051372799392085296074001887414508539424612616382957312238547113349618234583014512296855279884320029652422787691225730395733414730320479545587685084951008401554778104272483351224131648369416584025331491526322867708763482723845988346356216507920046599723333836431976835391840999127186240618903375730899545281372238609467480681472730668200399992673412898903288487980004141545193846163995358507121843539669251475594196812285634734642423201023735543326785704404504520672136309777888876482857004888449691823957245422740827258845848258877690530302462658190639308849994601608236272981321439667961622830016148382486237382084822963444707748907068063301658161555139711508647228826937540522423728403303588259573281686660517942920791840422156381627517552895392342652833394194173150132053127721525087834636034192869224448048111910610852288411054107672416829828574303112098379596434601460547212243795564343806843780077674708634078720104302124292261452826990807980183988250428368826281351747780539348019140852022376563009379432163363847178805531543033598257257999353422146346979814130286642453893836107120096004113262403615659518530905627696458657851702046802467626875461288957285645178176714997087321462540528366563878398590704349387177981439205757717436901532384248651038751355948390759401795559941126642772646736833653206224774698275342048447938337800236826980837745883141086981833732320142933188312875709842017988560712704348171756617718993554872503820757531942208543913072513893721627102953818529596774338072747430621971868234684545088790742139835455219320317716254402887232473858835421387967604366523365743581816353880227614288792611355048943271316478928179244400059329900815723921137953115889954161801328089509062253298670116129995170836149146281736979088539519876852396726123139976814831159658189220018314842023715761785111034731450072074583482337186808450327725423050708525313383487338642108583380074651837144516507748338890651988673977651910718097920568335116723861664674346085142489934531805584845556774741208327672821880416147507834874712842680049471282776289047909797027495761991522659309886408896154972763300014918007252348468464317425609815096956387856406820704998158361324089164195098586852144841421151666692471097722710393238631822610810429951424865080290097591070600251690509870569882148675692908015196820432724949006467606236553009805714820825294335058835762230831793774373759914643277327483554290468653942146990430358495532295118964562848008712881361802793156940952044534410349328848420321734217538198799861557875020537611728086665736211455258072603044585808419240554380641365504135036379246388969215131728707497223157936157152875392473765319369397307096458510048388906000646700174147302524611316936492649264291323940102488275204438036765775458471357133976190674178507593430332736093700738636097494473476205443681159403673534379327575948770078122514209509787604666445014326750743365781774346878502054619513297821260240624989663654979590626822536021602061296882093773334060264959761122000362100534436375737350431637522679147300890602007190384349799002743087944684295435496622383362903852694395450191861838829842396735719394816947209616411468065809197809592156309602418731215779838429793993157523288282301557736829547670150647121379059370700676853697418774513676813724995238696390423823726464895082070322199059233804832552894147886761304019910161442867208035273668315771505924536919703877322226526610443379991988687363959830946831010303492271136822849110120283090277777476489098732088671542270186545377721163893159809533848660283453346702306667788795231718369046714651596300329897813352638517484713816593149746560245006415705323260087989209226765774638317512460477922037116036540061621275205066069276490631007124853474817666325359984156174462325277293162743721852376772262116585695680697444469029187810106195207204040859377681265761116247913047505184069503550745046015712917795202032567422947868183333949199261111018589514439384730930513507338715063169826140722631216085769822453105181671997937167887819435771377285956338501490643080583647798690678615685254449433354618823774907031762302314008763908844017246391362329088118948483204040992944098644069051466485751164891669480437781295156310514996327919494903923053543453961170034666917053674030304203761280625926786624704003298524121620924295046939391227990522961840278755609711696262849312847033762163442618905789290863104217750685639721942159769993140826299899609879140608671664690330916827258865221557134267520274997337289462946485891050781737638038949321572293501608361641443614042781751549396763033601883094746866374946549676220253487473284512075770182212320947045776680895512161359744312496052431292353271332314411517770896745331210478752307211388504056669328005508482517247372105906708340161765326992101501389265580622132480228318587473949188801389271164170251029585822095488356600166453886059853201877573485007873491553404209942031682798627422015288895877398595054045183560004833131041987012363195647623619616546319013663218921886177372256513533284561803923477403596428192467035548380864476753361619360861266389441379221752208077726716551883033682008904968354366432970788321482875522013945980953083341811358226707441274741740421516906217045385099954539704242446529751550799077497229102215071835030450695334112369039225820553914276484435421177427611479821378666351096805733303281613807226017089531452644794221708329527554249622623310165160815794544168556781911447612195703370788326198138200839156368984205732819310461000534582094743072507440657330311348461021388316572902361831276929746208517459255131532114147932658768739653204690839120597382607143559848449970742299753699019794421613428963665685906236527775628558687232540002084889866483852054245188051066847248379305080137073208908095491151366642110729130467339945380775802265839392230201974355736851326745886661859514401314973441533859383020553852512587394331613369539736485142913585432234418373968799856834567579826758250957310200687109772018416171027630559479596744262732200352248870390690292402467617813127788532571363056994208606915153347582085680527481389395476273697231541546477935127464680182786124918329315193062650954395430872263416490287226443321947587511980008204474025829650714350448651449150743127926808661179862270101686618980471545487613562198569861139902793315921939031831647394494978027861231019647959077629521771724272301402767613510183767331479808329738693977887763772135451838488291830934195592828206844612446837078693260625746112759058909978415630900652420011706723124925866222300198124829051405054305143341520401776714814167773566283888759995426258380191425023317916255918109393442567468620623388932616260281395713014177651163587733781237248187703945608633569130717020861843558055191062159101851767240601115435633028370454090457790080156266993980046062927830106268950011705972503745803802336311339374363924832764810179962885550851280047213360928152161454583729817484768123321834183322169514278195606985661222335880454362675212058428581270151104920396867187552971104386698593381829947908868917022499243226421969426123933195498837829894454954312465745352878204284304852489187018019277465290717547245685499232905531170277435914000846499038953346899064155224550233480583834636757836821336932833226768293030277261044614596912495843201362524324835567245869169221260820973837372348639778271560058612523410974388858912159824140657526859654257472124818456967270016676358121763082557706435999759325719171165348485785074391907461708207906563928440681438751310492603229381022678282692261422753547225940209577220751089603065624959013326757193888014929943274986111242310365774215743942257916979223502856610397680770541943429491832242226804947488259558648592823955740697371299855059297574417007944956371077735178433935635887996153691115935011711438381811132298140050184013804435309078520674306937499433868501192182085716987363842060562047870451579019497784622285294098425245194894188987089707586326338343008616741026941892105190149799454770839317345354428050580273056245338328428021702423758067909505622591867007777332044468213700216827265767985160447171096530003393286188560286203204503178928827184672575627871598160588588250415347978347188052352682759378575478065343321265263966194459175314129862216110282650539380117863464723879956510628590641609895857831915695696424402940587007587518622381515519183923203399255791844489765791706644380764889985786053748521973661665212837692486676466237207575598714748387915616310684593129995396117008368923874757371621011403809210627997507070966199528903261269812232451702737633269522946115572516580752912548690722616264146452987898788937310863315747880442826981731666526984661000985587805510399978024904823729434419528342861526123034608090926621045619096789400616520954627393261847747158636376914865166697821211934478026680812390357120657378754066583332918687020076410600681601385330216948817315474924382179107070840784775238501631719338970724430099131245182129688278121026662866500918476025265212953559530268341445387967017116071089047859855905829881293189818742692598297112003115316580979855225776357649280728832607532253360353152454864413088338328080255940937933850064668913233905428152537293551783792768875203258496608208134340857996414476419807859520208389550845088969085722842898717554661211003819798756400678607543302968964156394458864704728776666411124329016245179901828869430741730326214694462750435168267253123201227223879915354856970009473160322646637236393106913904437969965873113197448618378139168372380423928586871311185464728587543342003411671171830580215577340964627456493021176249686871226556269964397186847611757986848600257390521721697632919246403250612373953672752110933829361569246540356497382383948278336921500163886731916557616381598089132770949121719364988310545851293439443058544208002953908265519010433242821975890964629591089844526082411187916189739601457969667989902936225973295636741884520144918816306723392957844150654459205744389198366773193153313775523820729626008557101614098928502637454056831801098669979055900630832001930130134014164965543103454428608454789033703362212296399103377919296450252994435051137507614145579790588527210757836170281589985230863758888114727281949450449479438412273237345634535594414808188964695938510640384598350636800528419455095380379747805443506802211955002674470338221478104184956114756452962043901428620938453450797757460993551734636380222880955269978885866161502615419598355749211147211595624781415356848165788237914684672881195788744139074020119292267842861599931728116153109246538821142782243037606188467443707350605384775069750739074789862611448820840322484770533730748036626362540981300021902718129251107505693542568989128133995754414663637581412123482859610558020534089893727186410727554744506692914310293397543387156367286517005925336162006492851964102013439577104281811109975046677051714703119206398969876959693433319134985352090818292565191044655120428456499363470821565160271889000749116552050440130943237739530007071790827931512471249696510541184178961540587845998665354547113178341046568824342646742084805987772802660365555338264317976907510636778106127504879181734911325982791027440732449157709601588347183564840077979148556796305283241307621596154859542351936749528290548651945147560064247635954856677215131541508359846094797513081528168863671064150593702546861697540229546810395503844900580499757637721632066814098906337393576410981568928305649143769078254773246982514845620360607897963633417521913307978924457379302953400014344795420578938809148959774174532620655174931231003131814487175843362899294039202261618989727053766061266421830580727228577404063653529237495061031361225793610083111997704029525120456480960467332924145802939347797427984436635203261809995008502851914188065279120780907819119020055699970965429047893380959598514924841766316863768272647400019509672675502106836850593276989185636487119867342638035401218188821133997767936308016512248816584741476220670557403083850198436052912398995401842155852773734707169266586889319379843703925809328168834927687766796223649172265688720402526604099681236156162947508575215532099737525016142238534377040177916248182192235773953006312230329561550888744787739647041493115804605892141656251228563470977027838104579820644479302529228544610837343364987034969780853682986115142318143853287872161296734333017879792220723811115743114571649745462487004430414473212282505111392141020045095875798998631660608997511240865145591103314796965257936616548368022156808764677588995320404993429547437644659264755286636692274284221143185789177288648001635075192731642398157819340881463228316602085107787701550618622877837165829918995003832697430319243374382722307233249914729358592392737404522781967448426547250935084897466336726083664023794261992113905975382743712799528347761056318357505066825570475023314648985972753444188030841973200108935012119084831813724184839373796925903019415785622008733214539928661988779500920708918250845813272322666288399175197588164119711306356325028720731048909582030343240308647809801019749157084489642050047370392557955238481426200647882963303810082481147123173422598866501450070666295718863415853623281335409992964274249451042553347720245042838861652696212426138691872034482256013781180791259105694531990504128575658501960918321244526628902765968584782260264540246054158680832244948802498947889593876481930909186872652268093129362132530551924322225462506978493200271633929043527756358530716122145596620029847391334450584473352644807552756954839694923925813625751623403913360715022384457286701226495997084934687330595938188310228878102564734070353859933845991805112474248951756041648619389522873220857473575311550559017284269242774685875678379175519749535818754698755481951544335666042838926777522626257013173720137279417834693119440903880009973759833666575879802982854770204876249409725940448279930016550958735551525324804673725198002453226122825050279211821194338805062526842761787813010371918405671909244597071399103755766142467062203728856532949023860950679883534169988044513558427590910569506603058442682612776322683270061162282361692759516193824730110839045704442356058387802920317077839829806678521467691995572501731613960617481450660026124384773601867625886915391634177188342163659839766336874026509901765041705918966302387111348477726659505677568678378207623159981953653638187986873275296976683561804551554934422771908647594747911619457926425531445418010653937816477831605810255135712026239115562098739121879769680544678191212625376433056042150745369260340458129461387952588120646737971294926938786054411561551703226052030167419651824991245679280763041832711398735297366324016059830193848501335835862269037847487282671111658035701438708915246586934736135249659288392894891561218175773279667763958877343134976799550262113451241761422044703137642245298907779564762524782801258233230016831304022423367849612724433789753320074881572586713493256322713936355123654144914842828703919646654467257769443201317532134947239586801685414261649118827146599237375153199747058147155055534397271497643284447583096364796222037752558894457901162716383551184690238706075714369334431766348908799798383884928754945859021846293712689544390566586629909252474616733698980659408548747166005984291249027770783308373198561152684932172877446036441652734729648066317490421361137657337164416212139075717734436835887243384675820391963311332186811957391300055016443368715678227025732989156398146694981648705883462365922932115164616940274437138793894156861705492062532128426695350097251001256068508604309199805753994185720096403848767859205648126171656426034405915899866708974655364102665683079788896211237268175704783251178668791544737627562800884819788328651313120978928611748981205915371076323304006394568117005814804812971503914770772640434705072191103361424728637047890683076999298664285865813127499621985704761743798355420328158916698187929647023687873754594102938582227846704911928860670108412357967282940232546660637945014912738883503633227608867618311925155406496844281400054926366653446305624544247239471168199627963420588192179312258620645519418104332129452078576604214947213692683029202412192022879464470320004653033176482279628861393813957600962494677816204226895031115156867051829218525512235692770283297229603001069893911169093356668798353216055764942585340374307460765594269812189046645735031853146215183610012308665169699938781483844597399470281718589091228261695416152602525174229325395486734403586688770557720455629740276290184796068990877334228546507404649093833227309425442493035415698057607667740514937028237824556353448912179119677291454969490028494657521644574580193144115916466175801569663190731324160743517392581256689883619659449959184175646863560965073356009704061352767453328476627315011351552446961248654664687729857182793014285372693083778501192280277306696062163741329933851187145641523095678370237645894328337348480268271655637368563410829110527008065555260118633332401936234612916466604539153091236523722286160057250765586153522272858807217316417059165694986779169388363581721273976233325662162962461128975968422757620510242980704636046285764551744322921600109374300912395582518988624678762194852063654797894128532748892796464843739880216656487378347422622341309258287027162549733733041180035124406630623843948027490985459256273578714624830884080027004442133213943044176936371378915112916772334805391240502204717998722572410962956692065837332914647051494218062661671624384096479990495727851239058462701883546689937971799655637915122598480812989919234754630699588958411540413314831196099800429915232132055278262173214828469687333356273617257688006210037012763872283738113753226572114697110073701459003216754305303021612640857190881133459117305818305510581814329800064742989325701846368988760355052403694259765816491617777628516950502347873864036159545291119098436832930127282190246518003522134312040679419306532989516429896878776365375386819251626987585437082262052361674498213464829824231863614867101805335110656773155967456346189608561692118652104931073961102095008687637627535570170556140372313704070050457321091370383443403139319547284908888617058418346385263684995488609887922079961567794712525672134738333103855457805008701214797920742175452003241073066315901933175762919128908884830903879344248648662553272922908741200810610527011437361122489517987594079018063788949663310458200960171975460628463836936137709827981458921417152502619798659092402134150128116085441879898977554676398981479062179084486365330271229606182154880363756696069362932548781157205527971625648274125558121848433981802399134398185696604922840552145988679359786242521277563957321802797662186959625501291048702727205792839578305114153646232746507425867698819847604064903366039606142677498512602226224436909367660657337279581232186235059254563228155165744975827369911138067118969663550502532572733801655743788781504734985765190595377078051951869756015061199491661483205366569588318050172151153003966942039924711942551975713840695349572878640260793637409406980531969593271285148567557620547642986443990306839171078450743530207235309783651718366274904816069479474489521651920049134075197112832256743169677387053001683940338144586018488233493997058613732865089094600233031885736881569085098967715148729890818120878833558280900964347567190007122121001733969522766648136404453090984826356429790223633245211282027254469038076932982273886685773701190320731593776963895283914920162994788130237339153559037113929185174188277197347781550606145566496742396265531768428695274982714207602482455132946412648220668852336449443776686749059531708257906708698753570514297256448258647106833277836074558113261563199811774417869342868093545017847675743136774588447125446713294848716071331125090265572770492152390774953672631758749074786571404832503095282709837637820090853358117479517215352105310649716684922516882244209673428114797204343952953363888283103728348549086298511029801054348001142813223895053126266049014281210943300416878192610837869197866427674403224405973688037254681602476944282015027360865158698002628853935268826121294418760484768210471319042221149777240973228842702138229765903624098666098190373484644100659754748465465565014015467749192039415440364613573520413070368516693718051848868881672795195845183126103441837853488910114006070266774593694736740613029854020310207515241155915699134801213932525030145595257625829471574944578687822768831961943421663482488892507290958929493880347474014529279975077522446036003497845494590299209665273647687280466659736155400832794313816505048419631592980710885946068396696838932448256262420848743259422946857102923633280754277153289032426283651972657912438844428531968161303665273932342997509004766484371855270482568287494185924790031161213713218793370913618374737470557855200972484447297037445079422750640854831198003628570016436231520229396579704290100994707223807231902867226087346617044247393076984177542383357389702386147715887998893607415566066567481650487220003150627410309416304038013737784111031187359046266209518872606691134380464554404310781292656273742428149493572674398683788586687244406047420839329790272344576381150221682717533463571988325780670538129884092311252233553302310022518333231294197734444602130182831564813557609765672979061603852675275380527130116635377998975789420607677164501149751795756478023781688398887422419369422473943139333092898739397144422246633307695052715230203240898639585056633016962997462527869595580002459693252622640013156504689939111270819924477122887197382677710267113476864274373690151198297183880408616005991738120052844636861666230213902608258044762943238072055557789439377419551234460519451224636640175539408005167956800220411731507028122798291744813028934016690486665620882867917042746470928053570629711066410911849228102530855013116104342609590890442408265831866360619260282474397754751769111249098505169107499680462854839402286104989786727290974770536688053956104134053758618099414108779427687157005982789063846840914700644717508284579939877829498955266424202185879058221937184089242571028677557678730633269162698793647611223315731070360806055131787535768196652932330856836687335663121972799553602713115915053853249880039615215225588531032815477923787061033115827197510649651485182036517999154648425382454395928230749429409462564614021179456831142062254064464463347043631952945341878831673339452673603874987312226163329127269441416550178922672927987706548351914037394032600926355766531773377743714623075535210504446753261244418008873226392005745976876203421731701108924143664117262777421734520265660868711379629916622983845185425045925673641595801900362029930637800123215356609461069770563200743117936195917174895790966864151259328110859370159966252189854498584351263331761010313193548795458099472072074291888952592171347690347771417059241430133464325524531972264320655824522048767379457119156913697432491277338603449330461828231513536494067798454399640327788937165763946379379716482982922458753355184135753702865535116141046448535816922747726066558380092142424324964362647265019819088094343752895473317201747842067647979355924734447706663750596735114150886333417816473137567995585476092721418712633644195538121809094922204280271684759818914316301070217362509368785426756856073191924776119311552427896780248843176647940077408336000379488649069978917470276337385215815668337765339669282558812818110000627079633568275960350483493756611533916355434679961234375862154613400434490898814178790124609924514859004328608093077992325368972842280550653834247761483467738993325877119392369767739754124042684773118622602007870293621577495111511537397840174882883396192307444004199036674320899652627457370416273091706990677086420512016517950046665389405779593410945141314350344389295277872829849793706917306346150299471250670618861987341428058319306799425949613665677044792302832078998907182889536276891993155501148747464313239517834674165887250856621729770445879831518082783330210132673292290339504723762309649576397674307806858208813984748480472808534403139295651876400440702485325796647657084728796892539726731025933279810316463410431800771174571921384602639509767656879852088678884544818633629808234135737200678017787268999037274787546015976183596922635476199545633045332489528705884332198578491567128968538953566713450732990864441218695455640190581347381239622137468530099924026625334791247233711824649983736326167427348169924264979549354194537456923854092201081386936684190118867328777962448820736250907700343700717559931468609712559727819974132357808623681165794074890487674940151462239080128016759464339096291953842836676386633282779584766544372137194155544273253079911426623054939681824828280594175229923385802643571061571288629973320846988517752041021987148171275142737155140393142178588431217251305215797058779766394046736078702617085317314370729192693731160595334027339115820089751139471836701786088811094422402046084068373015456347162324298112046157530447678520417189148368866319983873691458633019057348809550340066002308571298149203258597829161087762569276887560749970046647222505501536126043697268658765894126924714644716023262245444658328576890190061713411771840752867863998882826271842784848521502412987545098836456331264392221926163055509116100719618745927262850109666283654847847318626087703809852480873014800898656544684353232942535560105717671331449284228006985436886057249906502082131910098963265489986666041173932105388266904035318791995382618215987485185923318770176335772016454882075027802025476159200468242117238020402332041727884929196860022280650746646461186891159177769766259213699682353912483705336973059712194631690866318550482123077809206309642212046381956741212042220000404237344765962602963523393059853453309768381458469765959847982537531317956609788648432800294134203504184311779059822795100317591336930820847992030454660889696612884252034274567916730681131670649463794814372441150682674292425722583619831069912523472578337269412848066534621564848391364982485555880164713315913079649244126543775696469018707630655093696493256479724032697892425945108562349807274987233439359869340213149754640021985153348503898616492636600225746366708263965982874402246395020614322756489822095420965429332390637112028173317610603843273770042594118405623576717398822479918099216368220768724536226491847165445087957694752026694531062570357663172569289417050373712507091982104830529418360841854284689883914361319844637145015229111236798517947396289610066542345964432753232728767121750105506347378809816084776346614740142284636847337068037239859576172514969357660087555478316607836658374447029492149785319996124180409153956694875860481824653292784046304813644751161295391873776800077560617969523608849807170988392557236785657485821706125069538507370202152201103383479858348886516498569828751901256739073441439839212042835377064955678694778552803288217907387741989147369765387673312526889592545008366559230493681200971522357851282609046472712477267712282404929385364958289759962133597934748809696887083459689901787949003643136602137465075042105032108641124504998134011320144970541757524501565147580126912211780627799024283966646166361300874737136395671852468313811688216086416180289632068822739689901278480726524746693900474218189433970241248780374672891483643482246788815572837999836538355204771789101319671010854837945486388475470179662140924831097202456676443636973700775104258966754605568470956085872256697105159150547395139701420014651361783130200083424955932556816513464501237046044591039856503611338992829169868957367979541445471626452445343025914403979521666061650288748566792410705983403759746967946691267502329241791992468044852233722319814554312517607241638344241747821884055055778084217515538182538079370418486571933332388419881889603540599098563665498627295676755445889644505306993648891673721806824309944886109207376279802778420272004110613936947769698382221972574085173340883559508926696700504159245984297007514376947754686494395662566368458389832700859361844611420658584201920435055663473057446773309737039986823377070845070349157529441630710202038461563657801713672376483695379029521146744934649084493312236727052560707275277972497539020477731221523883237769555927843030062777017853985671044482585564694513223585687101218413903187275297765744592067704739548455524355444042414140395621210941266801225683690869336826854086282156425016816895537098687259517998444410866915874380318982976873944964132242278704016059378238001372517999435534832469508064285717577259784261552311847908022802906707997976151141376937689712659488249551008371674723761203368761459643027030333148356514137886126463357997813481020736938897562805577445129629056191414673161324802436213342864470049312380152861840552995395199565584634546375738298156929928296583271911376481260286318340605037050247106329966552872342990838589392333859675905839464596516471636311498848184217212974703966133998975655386295768649990425059330662701622906081558352971115937867235919255636302485963076698532325320119096574244797797855894216610307218196571644787931570491094461443102041501372671940788652515185477971659601695369156186034899125307152921556731827619136198642023211262710777107636812429483591054302225029109140891887855307409951835769502050755115523829028390169225719802406830441525265506212817596690439206049430550789872126269941883791521307654172103327704852110067270038014033404937038825745171051798257572565020752310498022430953696185049936814579035487810467262609536246437167914399978361798397849663955230798221181612974507029177614217388029179775203953345758915546577599541345310403526106834492416104984203363790194189628219254178128253308778608490028271038571457677902531651338639873029092948673807303805618559923460167628618666877264934761011134685438302783554993179868323449670760414754744211136169903282452248500861166271593564180807557599521764569794868697226558378674777976235401223688006774349426795528948727174840399239300438964678634353109345561105492340700208674166419958916373647354352541656447048039457035211459816877140456403739063646091258490170979158115927682182555562318740557780417602046379910217712099542912193394177644021623292159962865554965214883063680625330519877032225127838062670957979981173520128408887496986667581179761251824777022147512572499024326513468064770372140981724978962479822069235424246246642765958405456533811331950789216021284613738191009606358464449029441717933533480750916772843220887452559179139446010173356367882811208708446486662157533487284346440862645639097790325162460950676876706708528784104464677683295174288708017086794555124032957585967115972091128429158677200831516623106987484876218390651670851269171820613348969753680080995421354596329564550670403091231857166054408420029076541226656625176609689245519859102214421761697468082444507147156064401533941869838399478648498859348445935404589829292279046268899900352357020679317234672424696827520167606059406355458478563198307264482514270647422311353769423735523048209355198348254053550994040366652671220398367126793317856548244992707866175269668076687892658704051046817179558198889093578734011705973239212646884507926117012506897347138986350864863084957559092168245342848969311444496288449517102664345753236241061615339666268383397915785680005701578051730047049492418534532205901237573583705883889907176887990298501011383165096711937839590519641198395047510573078213973161613718045814302021348820309513618766276441321731570573655343252628682865038604309558863638646323908888315489102703825097962625498859969149026648045056676968548769497871049763289051407033313318384054141183877424393608079233075874448738924850310038592606112271688782571096877845969525612523781682426955868573856652553091657752312664381429845327747662000242037841071168805825114794603473221938346149529113778401581197028213536853858553995224296013193003105696575973597773584439417124215799973350539249577817044134922389835527748623135145489936644205322405803154825404174972302625268694071162982317619932998083513516926119323327738837658593080747500867568244645530495274571812425502669869057903653130506598629427410260257691910382251824437583090874285561511954069124154091692998428074814573433521708848514142287652385747154197375149299369514524379774434909925036761984497677343227963906703683712766925951949229776026757216028851815819072899454222109063515040106765822507173491906996402242851160044142668575656384700237954131049513525784589411925835960578973256140940384448427187139540786101494319777819663806398434738408296552407585954252639234052230576470515821824663938574367547528563129075297382286450746416588557520567091266860656005313270801505782523672176828139710756930568786074173570529561560702252875308581225163217136414248595603414027728238518414254644295270680476688279566845328176866158577352923112685575400083050484043769685845804634501010598975102632721759782745300576384726154012980429639376341127427369139571820500649842568589974068973961917483668848991661914883337553642949977616104486461680550410092868412339392068207316801389472650090210090170858736309787291372907746877292735564177076372110259105191603451054982001868267819706747891362518494060982506801328527952087941942065329462958280260472889120679671622940709820214730611726022302830746584087002689937414672183283319066312728571854445135108520805912412810250758425982077045574451707720412262689729663556246245839293335636084196858346636892304828669550825264775985244484846141550994311233889239750193975430140984050734314482836271281774126179639171106717570975015691323031340442696278759239109520782186682894665134923087941803605053997767403090663769580140972172788089856023613443001243515758480117720253496335266726839744535951088205351433111217348795276610931779811892866895460167624133643649754536730785381331482280073251029446941966475413638337038052396858501294451588526595129702151768429602805271047364901097176671663603494775553843793317411655630827815682184943274677012616470041050909346895819114987215693525333383357527364729864923520705994910388855124484570680546225606310907985805702855391315832808096482362709546207768110135052584091635642330815831768852803477941625480519112396547128122586259670845318401870073946568650351132684596439158751260524044640450287845845258602730986818302411434799105471569272280262025071086162911576481692494451103682156234075222393711944644687996671072648116024155961407301456252817729673470291197132186745017647248435453640201020833615316642565527867381046490152903521868769763062593028064823086484284667564976097601301763711264260955235744992712918722743287927932944432386503116282799831523029845959551806817142435770531415680391295769689104123030916209915439569580706787611927977808714464121983285413957185316381358635559051154496121648962292233254872725917682602987471311748322739510894235644361309506856034289239534907563710646294108610137729275568597649997986517375711279559429146889079435915301413627318917839125422914445647801739305561181398708580630124107684274819544474054844651336925211780147437872460512995114625514799746602535397664547189309806251901572833666657005564626056570387223820016110359154621805583146152546699978477411655506792261543421254169006828439714840790356329873094459660975241496666287009774336802523780988558140028555169454401108392622215404942941990080952848935844987968649311697866581957256095751217201683317809458876533993621870696807278284131822389288372834399858352535335434731531592031580622358758493925440151261179820964806928154701114836411413585177981303952697745056529579690093370306112167634714289396852796787468212140001716676033184452827171785032463816365942277184153777171061064440126969459807148057918983862104484730424066963448121323705584836481979120159453694967481724530840752129637953922451936862426687853246577073148089436987990237352956485755824806528046547597589110513137379402668891151456661782049452838475717636284506208424969425172136576301857237023881439898232215136145145459115584926107561185096337855802420034259565478856175530492292620450131739717050019828245986191743332971987902742823968580474430781284832594886321960637705640531662466010114450553067119349547598940433768812835050285814517802208629106994128363503292561808303170562519291188497500336529747547256243608930198245800344840063368302658790486078138917540355059598458950368727711764543834269166335298571941560357938478274573789365540820924170833730967974928388881489031372347221247126052191768375994711973222371057420706930780792150625426482081078126781758556062614657953666089723884779254462107178527226764248821745300476391703412267562917789212146883208583292324632951089578485258971083584617255500135995235288322693340513009692492352495679466289461053029605699644475888995676965136889638822206180387631174406189517118354378980341937052374369581449466942079522293066987552792204175376854379323013727085130862140042009912867837149680795030547391012106458807883011943186733186568183570784608045297653247818011414277257289847774397097545114750327189768023357459264016088091623985791661888063514099433335242118075259601458928877847141867570694006269822811666958956899675698464467461839420871549089839767161364911511368807009651465767383907084506576736853046558782638983354191873134306640503718735755978101177764091278853251696364856852547171062749659881127434252283155435996239198075165662974910777151308282418869232907021772255931995867778331659237358358867557683282333203439792187917866963862761493933009780390147445093495060714638508922584705817146991668785122538862045906129112873936228483254955625713645354934259870948102002896761157299893101749626866250516816786289133664051517210028366645918401762359943227096558855281966654114517527207736142660653823368447696370376604703521638195025341736285609527186178114581065461222144897188175181985129084876340288646873491386686783693703777034428848024915051693264470308658939301754603630308756919174474044859885561466680648298295098133723810696574417834506839929226646598391747041165844250282842613604178999473203305557971965913742892635293513426163795663057606178540386785851595671891043027943093750658448677784377606187254831819335705929416419087188716863047260944028230088359523612631085808186347359143473767922854305367472806440490160334901369133946707040273013123080634612536691694075167926938755219228804721378612556691081360145633998753376039207479573613385789293486764600246712468154989458959845676472723786895580617436226709085929566580895156016354871710641723419698837123093341609663182404577977844386023319238922591505713921842250460505125909904012053299871367098725957821841681612058595741427669028431234492270358599873812600683932406210405727372253783460219586755329160672581999213793253939789979400823340411456740662575112782436534507684809247452320867870194413850623400762860628570413032192701292169342701027666080688075421882185404494372216470157763561844500376340964932100534866859256497523806246409832982543858642339453991523419302340845804403467992828995854291516895523833636045709645456640327214500176261366971410666063439241095496216904422491106104405626226086486178708532596647298562983407439889739793071307152846763629050835651123068797672884704495052087546159863687452559974095969485349483171667423391455950545419071721476416897802482071630187611406482625024941953898052421395956908645480502491602273944261617722450015410523937916909693385663293717274673036624001873042366076751464151112787666826051024645009984172800071548817435858436735661260953645667481478016056354684423105490893333548544163350685017972895834821855788984717445441005951396639585963682449098016112436234905527136891471958806032097377892877997517092001138214767963783339377311270019429474622130841960045728430612717745186286868872035178901962103439945809610074431359169423183756080288194064104810806968103276175520218654603012900361719189273996785482165992226026401309998970700047808661098599689878511925393998798250933464651279507491281346940210819142828051974657066218275789283514264839598691636747504385052364685842590764613901027367654340164635481554229412335214536038043362379821049015485090537483192619290659551649846753064406218204173214500764141687335223327834558428441487283487645109843766336747154701669648765807475188498624351071920941977168446618682682212861373833716416786548962294126374124209107613731551864184024228414336488840394606088566714113031417076308725593627886112980270302483240478226120462873901619957196605673830727134954577820645882821866245226604002730003970915466282078974816766238211052723335819148548183949303250831928739179370495586576486007597872128108228690732384276559986760855843644005790199240846403017004641006752622276667024529426194991658097949641264960624935408589455939701592365919840284773485483299918251966297344933656393222280726663946846151374103625895008383701709517953115647503704683275781613534324321413388265419039722979662374193930699691908554214963681230845190751325724761792059662592531149340038013534620812131340422951679473039770815214140531312680821080831971502642248089491987199442003911783372073491972060279995050496175410327039844879257594650185722552117270340950822489667417025947027939256323724386090857670993041493567447270331454093806259767187793270265507457716718028173564260903203266670913501569348925855428284954979515887902658683592082274054747796677962238270609974897467089833542490828488741825246664342376802358902538706614135659035014999497156912477240655069734114263317052502813266168483463457236162769980202756928910770684508006039734139946814787748236325712867416588485114867603050721241349143523797826683329716095304717175130740142350653275329324159974175859837524412088204071468834025639045880470025892594224997970003565400417141648962377906749014979770684136004013743167979351664914326493848195156010970928260648620783889688054612146149458580766608704993709685434841214007329650038273345812905985480935583897881386888887583961299912549705828934313211582444241721269775473744442818340497341524511815594937416900330967222943133916197872801631549553105685262300832937737180771512547381709919896009696900425092375676282646638835585757659782157479151872178485456144358152707491477575130088604706004135661927134126863984703281001627271097096740968717554911302457684712749652923700875710023688429429021950738926399982988262369002194146426683440691477841353468150640476606203309454886843582366397328971420399803895592054033493393364765865551966141185682000076081817944257147852782621500831863999605659728211834417810200523068615551253635207024278099024386083074121000444399164443543961476572055131174239205241328429817569583483240014767014599676866069181221461298998314545246815047962309158486604407395395758454820329538094583517149195390335843131963279816198841212921271317125301639331672054183166668680170855474397907544359155401116936944152991254372775950244702410376587362314119500279321555887386920473962792867495485315384493936026318939134351090613923322535997900732953847100116023702251229607449366941758506793807374321243182334267610987483970245434348505210663445087758797200088937617349836578502824805204493118534803285165701382329791829747914334436067571505070281050116878256790817430897005540000460977475707145160586708828374981796399681100403895085632341357988610608024162401467303804053246114769420710584688566389976096391402833231584235354917512025043588327188799866784478710931241545029888207264581943196597642748356393089058536871607798240183647724222143151016645286793093476475975759794557907161274483202953973959957387959407482189137101882428086620778068012650987906430509328502197353072640655562505948600924756083106344048554496175045028934691379012704488540323603812519224678962748659902221907566573481802045449762755603070670195503739009041693245803477966503289199493756014223259306609929284980591719313404117233157541504194213217510838379712346025404273484751488452358701159125228478108503380091799515363359532257218096307639811799841067807210299671340895145397912303782094456450031433062387145348841752122464239934236518108979090098208320460152817966722543464147364026763647412799297024940636680323160798763362269511652591783695346655991722932336530160847743493970314416267012687257266495971460899528900697309831941824153685369085508670075962748698113000874629136345511934488358612043599974629583671691887624095062893928238655984035232598984013712720883346948326313710771505958768858495463962382744048615786024881045514638635210278245454964924291687247494242798560534858572541425233357610494108651678621325262194988285101780447249067248575130802331031771863203163844160486668470254744971632468515637757669291810637935396417374936081693839353135806297541444077757426940614421767307724010298207603730053525186945407872894705862378289333872361104418920793504072815337560855145808861801838922303731474023058320967722511802212800166638307324983067583837491479360028639076937088705448408341045944681567274373803383152930068164178217947853955660701052668421554519186663492608175624906947696098123550003352051681031622945507011760028780627178722112596878472023042962866894673548450839294469098220380954697261900779366425835718436615450198094238879417930893402643494384343785066333015527285649232785943659639793495538842963724044860952359580178817927472466664740244433196254815505243223159612648915183638891713467280495385885833408080499217165818181539101533831979731123532447786074299757366810287772319351437249369575804094087483813561416109860424117103527408162494592367846895330827662162383247650355127072450561269634894702711695585871839113860021223856083817838105955175818300693439924286847526490946744664878264024339156353814995779722555177687957149006575186921632190315154420948057329215793477577857067090344612525319408791734547875768333224280820918976450423809791788177818035686412170117757631435722566735903516371471781381923442362617018311441696040649654045511272951738535017772922675157103971783432579112937368261433149891849716361051845976022472251396870280602507627374273741093071853528152152176463894780438571531750459631514488608020742320028291272072170548874745498917814789384898841515189156425413557453287847172481174403088293042233767907912699058784589830791847415931029887262791729136332252592754042842071299515813927980339165056457998850150509703529618859737252721475401456763458019696750995704907924096198547730781776255378075489971919157027262434402224156190758590021684704776804324932598629906596691931223537842457787128339908528554154430708290083189614751723327395460334247188787478810188500455818648248995454860881995225340530482368354568755334728872889315061430284940886603054690155248890263827595704640111581046528135115011386328056524529868545451589173995539530720494031937403178687694450225176625859628652648920493310494434882106716999432541107489559570999024379315465562503128302609945323625143099429640162421172616795720634997346334052169193148443285037153829167215123643253594231632989807903204528400957897254665548867313331542300451824686149639425350877655352119471068043194288983675411436655256010748037003711545809919130863328682308619456960404179945132170070446080626290293781883976737522481151568815521385234489614399114160244736602234193303766482494234512895299683299296792621464463213363239492410783771652403513102687511520180328420594398437212381806498643037036924574008428019095763287019400569084278850451468424656746643525717017986706851455382383918368265096801218213782332706415874281095356944073345231492576573545863856793819307216206105607194808184360636039597429881153541126914585849635628079994685725635137660984526046586106011654046351930323722552780343471067620694848701171456025215363847693484973038238454188326906372339496191500844521709044237906904661026407074191758009538505386333980426443922012209198456512332969922712676144031779057964024902055616846715578744046718303441971085068078469601843944756911175371326054249090239003066957774164748954698143106899837101184327057506248258086367107415232870062544728877201654592338725356524462378596553430611380097652399726830537377739545485671050872385797757561289423274757201535803697556647222390247264085717997152056285848471818240342171084244557352364998264986685366724247552637594421314775855469640675945001366372403083298598294259796893558190738211843422908291766184818152520540072251761344358803926793470178252461906982414302397247678646390283781670625621185988075596965469871272273940843895818158966752633621399516927187182519067431420404604011958415251935280982576223132565455779728639312573059425917119023084028522489339288527342104940876433565493573089478573545261408968517301458634358464305182774332195354871209771088794799491031328622573050346567582472947446222505136679368762112921819849366969243980024384988506345353355737372966367826623312733497649796830346234737514070202675558149332226663171226106161127654403170342405682660705762193359207554312548048938069768453180600117153098595743895250862805789276545138045727348487459643156864770951966064515079476777298531833319761140144580216911652082614441736722052503331089741796329684821746563415930197747008626856938771938856594137194060414826843194857127990724212238977363882015020390307092090804124092733942285147934468537826481055688895899712997786020131306742460089004289921556632212307747145740505883989441134076956027431638621311643893483523108289290058709696453349117784929613079557211067891830363143531176780609023671116215074845858133943895737684040297550635349065044872684487836917692083315228310379642004413041141493247972556557629452567112460205813749223236305595352929676928500315884472504392836279948340379058533632007994207299819106916750067785954943096419854497450469208816408486092786706734787320079231372431820143242084322390174285352991351238984766185307239116268036866437280733169068440198074618601916651833717969582678438516611592236289550482320436144257531947674555552018575946660493183580248256103402833223490612659895145954001100442605418077676523142010704754794322145230786523906339352105201065278144246733711629949906086360499990666208622914362189369104752541046536946934710940039846755912720358215616710449885877468100994508447047583165662870220334053912198110707521012161239837138043157999402597659993962161121966790060001055439163350474467498542609242021992618879714098754674408134791650780265907573003776643219526651232177124345833837159436632320404241360876104771930900630120305837943223975375513678306576429075543993759541797799440053988572897704930327583547686596404878128389399089629552383532581145523733711237668161676677338208361975922972021376544537750441557430274587545602598664587790779177149055424664172460754575807503265423022804025047289004993203103174301661855409951506173817172861559415766068519122487099305523250722795536748996972403832475904647501638100227003488781371331607781502248329770871021111130811775703830529751940066451518917321968357630171693341266502906843005280029754050522322733707032695912244048513269501077304639546085622486517611111107278724795880234724469387400616839829551842670777758643718913175500731537900217158838046599111653971833526088969655098642010747583566430448973866706235992506915238520395948791324288997247914691082220377293227084652596562352597644454410573209946595063564113956531674082587192319453981700317030180201062084593619939232715756844360381286959994713049273130708079223339358110450127254363696380719229698323588228980859643322152716520862536016022151891068995746918381768321699045778138859514434831023907493457988288502753417323874614501519281243928324645975934258243161307792157064786879785806609141159169700096494163585697510607745297094613357960458414663853898841484785469743864178847202608836058866416976007127721141526127840042118940477137803019372509652192859838367008128761563581137904388429187797942195535880736037076217153177016035553505775498886203093737163434588744549845784133328777862776357607750165404157554115257431082033068607738090736736074818764642918501852252329264798063418926859010444752338709473703902778935681222029337313258700665189822842072221384759896624293329049110841824132292452197012897347964981393999639261779157299914471044954630513402099769906853263170528803114736103051216572224002264658603995250822656882018280894151528683801768116518700729041359402090415228846963357978990706199453270360433918252096835266155164836645816851102987105273552528138721887551029311042426860683005069937385902018520279186779684461868842844776561734052614090698424639926958633880554797410762882864411328159546163692911323246002126846861562722498876623283484461320864418776407278805093392459811897309270312277220331467046295348357081833051527485918860043662607823527276425472423427074772334281944668947379894336501261201303615136850096891072553916100336440131338357456127408450207057310927720488300753819198911429644939891268804373792475709883124943695199072770409235023068309232506491270750338170754720903106130151592955758342408338093987360530950529470478559002991017512818891163357525430987523141106317109273658697514399739438362884108703108828655222744527834689690407224215102151120470610652530809030232401678492591671888288221210831609221542605736630752059761194394465662526559358102992542622321892762368371295207683357514615583585590538353201571198969238120583145181259023591856756423229028452685834300297221972392482160893532302555379619897783889595201324653493961011189396699833291986161333980259135890311938152111936516735360833180039216106795481404535568543476741781805964920619802657745162944820034318997716564024892405523239929886319717441273474560232135533744391947051522529590350630653362363829028221107669510785544264105575171673374886745800893953292919654582559076988017669694145841387803751814323740455114732578944433641648432889299087225686289945417891372161762257600794450114010961250175579099962900965380597526225164802077722156482806126834069549376332782988310923519931878588407714973321281721238104243853476448507404428659062163860379451455837647577907334248807925875660809707733502122058236308007638140181602565422251165332527188403545790295330313276731780246187016386635691553685107880012838759042346602062956229204075548101361234313843461908137487555013457607561216965726265783329318145799408524271453022322197795695211863010621389593204045147547255143797676995089140141548590206726370125274063558447407024552869968840049502215312479865015032541674878467362824587818979618012137663075044679033475122162270946559387268283740346300940110856719962285102661136686049431080522941616169739459484419623937932405151059803518165559514039545883360902087707594288731297813978138861343711396532645044220165252549966803608399321697707025499572388224393510913105116329985511574661319891363984579832909917175976104134638988739250793503342184243779639004611148273381652730397852220816370879688061100538393053809114743306625881134098222123363370061092767678587656374024217564109603285396813868644043300596593377962013748896302982981488273046957417855675795444003429211730253605504911892781421533267600679760935778122487390252552757605390928438252936593036989762355817430181804617817235803604391880097488198212353293429168631191746566389471013863949361719202974641094372516667801950247085724404324226844420885459158461136556613956753375396312224695238876516671568675276952115230249228559129781913997976281633554728581725202706868726089191347265348862865471242744208895280441632250043056260912345632436352714045997889783871643089249307313891743031195684676349775042241376815850283459489479684735420629219844043853089283187899204695925130528163742607618537497780586129703847087122489384602443508254681225071349094457691377799990660009332272686914112591553729891084665826161649894203910888698167575956634886360686519613611062160254903784402477828218057514896290911400570162374756117259776465540122927634846842035318319533809874257528378451846044773509645817114553518902393670937146093731874668022823282195568542222352268168531236059753530550012813336700171959854025392007319488139004288374065776589659305237924507635164810650155335503360149817797119675400292841093455320136153687757306862917369317472036129019055015520825249287496390335464736245884422267724313641324983890751306816109698351809060681171323434477850207093630323520648253693941823054925499768379419364899193804433274525614831702187541937525728898791356066610467508026057664642247380058589218874965394371395668607488416594326981139921290151931731526390424203163831047047469122403418267205412123890473680288978842609085850592298760271889689015783158966925588029480531467946031738591237645166140872846403387375132575042435186477289532758442926334561185007551119231162692647392982409756989156707972275581752658917042661322989607520085825297366907540164373170380436040004333611953106287009400139617597074849133782867938338961754466428254763119310798016020882683339952570058400794725707187852514656719697357283259274339992784964907519220753298095512769137311539535041419025251495230365168378684838501204875186196000602816862458728824912860840141474649881000155709579706618311558706842864933212978919863468524974368694333679023553678232861099882554477432635423827421305952405976477410121725666383957378308502476299328340222291868594271060188139286229125743346175753351585192045817983831902870087603537781802268553611327150818942167279448431528568809514151813033037935926578403419143255913179391803429017921027015710337024723630166788939360938901773990595604895479119518463183470479365397539857579011800471202452845565051479121809920412367909272798453748445973405182633947377494555285571697420024709506038497561589371916050174433948970029032357202985345003924976663039949965617569681800389709540684438452669226626163234162921790386857215014546390350336118203032150810271625795594077863984641308522851096387283431271539464756967865241181907611282588778227613687665746607590790293566012803230919663396433639566501144750090127564512927323722690115689099372182409464096578892073158480364133263415436494296600715479903233629345694728453220839988138951762974277814659580463246132201043249271111266326871653965658529793517273963629639051059004191479643066893558876238089517076067352672990968263880208533498529643555798418022026395508654833071525837742392908806593109764736264210416799669265574590007563361147629182486551640634165142770890521656579830410788934972422730889495000600237461177337750640555351637498704516855389483455320536904680452376010479343516073269022032358699202530117288733352140478973246462956505438839303865943571149417995578999670473024931214050301283519616109802563769121932658243008081924884602828658874290950881378121136978327657819720916864685648395526235672637446944313740721494670171408523746566677135208678305210795379236245902310018545820857018736494564229761640317352407187592794583651109326983003997000196921038718569890305235134605703463039800741297806629742924008945850497466126515131760327353147884819925909266125310465277077747778190895713055109359864803516158165220185763322649002716756718026110838795326716248016624665955439657352627628981697272502368336338516684242630190501891787240703422564522156077162190668082965545677681578851963529367343311343413239012218884420524105413527266553862369549190083625993139693308392350489054347202954144110262656403016057801756653106037442619182087810809224576600526099989430995888400419231238200911434904780666930750338101462111461508027233453365774490219095928940876838582375267940773812878598501801739948181773524781155258557754167816662236834068929364102333868584795564414172299443864588784964527399511445046876369052548697341282219687054420157832012645491227104478477246315165930844809550153942885020040422732892987248088091376330386216452613470804914356405041212298023712716499380727179722092303317587872278563109646742727591639594901098857856522134709021748372574650779905228017013317832632718462862216814939639166385359575370437927698604161097443809775159311846754765395356488035683062639645627043337520018416857402773889683920195917185448523510568367666421862336690422691859252204301369907351510300846397389130412352840681306308160893462798692542119551166854091759266702266005329974113622467079075580968069278292149379281542260435296416046225149547022587451727075323878737854666164632884895232563598707586315516528176246059835984730611773356629076356634017224022656228284593466081307569230104355749925264128400736608995243319920542964572095892973274143072224110530739182192275638551075777645134022549510070550749286522524828551834731698987023581676492421860800552897283209747906512238916527175404446147519896349904903392305307703176440440589157854497071601514594521782784668815171643571108442758734428052957918102555728243795211240785101023317982993880211060368966023620311632295832485087172284576321557277912513643674664531013844040423475526917042056069254932620726908871818033438863016550710458334468853711669995881978325863609061316102413474240507717157445915125615614159925015227380251368718883995122182451006481403853423961245473181512786700915820097917983832820759695131979124930404145630149944034143300193857587366574608429916001790357420538312599029185664304866914249674321367387934351213182986834786048917591300536088611047469433143711213051144288060928009418688647020098004701040842597757213448813103800073649015622396152669970564783811956135871072867534139140614471966727263918739213858440459355513155231840920933713148719747756195505386640911777642032392408636252647518629981375921382637017787907863413550835266681559939223942609793969983616681082091003732139997617532291526861573668739599157978322699501177971245597033770784999229007215087377587532760168926709048034950143743872738107627701351572049921376522454545914400053940075577641439522090409160839737639365593926881814730057059238206260700639067991737559217515164859689983396989112966126817530365643052239236479909527617390679794744965930705173350434941291273944356634006426449969897037722199729357213728834390505387946515116971776783005198713486159724916975910600060128557341678056262003763253089868188555245882650564427414675912276497629309268441960856496024701982738111509823915897874594024487963140635932005822236580032590211056106502101344609369115028876977686858620035366189045296518252673810841407607579874636630662696124064355878876557129055350866661463186851849470472186624159715028114472176497764159040013626934232177581319625362338760779969623136140035142939371517152860643747303292953696577174281921394571701000003020362584697106017913070233909351062803043863273515900832139956139983118926893091504202153548924298935341827871293525126519169134639317175192261642297393056752897407486055398857683402427857112336762378434103778560669008265353157837920577823157648149961054181016584263711904226894862443768406175581358669705475853729040869323177326343166678980930562467413033272672307212867756712895840075902752259656389983563310371081149446382307849701566070014228077440826669678312938718898282395100817180063583227427338792903169383975315780250232524425541477854895485976470620384723448918206442620603662257501559054317015798209878283276521812343761997173899760959876564716565618243793965734860137870411217948418165263950769096764827110180438556979178343740667272354836791432004499212120496165700842042655180010539567484498225434554934735765346757935544434632493505858942995416966032552431488257896666297412268026748887298513735990295218741621199349265860543813379724406571615829659281295602889273322820906790596244690878631146830231562656513920056663912529131983359694235583144608075578151930171724126790367012495785110893911963707256304716891576435442409652986292417394745695919659935736656086298708820350887415487578149574342641646447525617182967536450886957362971039863366513230305509667385516796580762747170884596621384943486920261335055718684388166519344750787725917440790547592219204394187823797802423089969329773104640943499713069579361368828519440732865892630258315102879515723611283674841588731621614771760241118245515000247988246789045341027607552362244864588699254287561099464625526234685810192526064558624103138318113126873419176125200697448265828700977399651409723831876204494329090067521967177690553826803497014220914290908305248038149960870883534104694873751239547378377032405250310686564822824375772086291714172906852607921166050777966809409885681230394552431249662414333832461845039005752149161663789392823096091800376564162165602730637848525675051033754948390461293053909481630475831274257126276632057510914090386328052007337604975764893311907151190600771878102352438254960941012974505357111998189127965736173287091024767777408230784796621112867569067672967330264214197197018804013608916688178652452682837203675577043609595643431704323909755423350483187532450294814862376416263290532148841268605700365995264081384501158639313118230441901146888221102553973887681310301773841320805996089981897146740366046862526850665132924790826414009972153004366213214074475106651310575074033988992347599192018023787807912223921264105697239152261173267605147941689955680589218720481805298850584001855951198782636730001686484146410977985783389033493898398853309236396210827376423875171392981141271272631737155072727837230600793152182326772306810596324604306788997530167666977188303080091160783740061713887525110696644089177907133981900323015998818499665684354351538651046970293013904365477283555403306499712689077092757437571130287474423971405566343888121136194084760650307397612988798552833357113047017865812200445477242776323643569106867991090442609172024934697200320401583411884515470874470441611261294054784310104305971823478078934336291781842107043039220123636773477381972199282191181345659413597018389169273133754905530511689288861408675144901555064686264999704503174190223793707437524534989936160780399547912310426262720148184540895267567343533363575336004292219777577453310551812987183985536693975936346072912055552349095519101592735166711828434609958550922532164147131331661839748610661215923455683165689484651341249105711233161060959219954177521658993145014808560345349069363788996732792378681703805342507693466801891430963774502947194423596085828885916011258699751115834134147369152815345081429168318951429781268687869519032717705933835422883487919913486222074638297108747159074077051531143632081722546726057107356715904999806890977255952217920833190757722290842037003471451189954809167189004799951293706205977132657929292122058591050371479573090070769759191222134265861633677554700278437047608190859567499503263950458596088734468709127271429133737698315417254587051283087882174382528796945465004396880355579017924670921716357144019324788282787247333439794191314014807481608110039816679613130031216715217100550885465777643347201135670524483134121708148143461978573545767653028957322498073893051424613795555656988744829224502212884378976543767335780739607005121434812867209531165797242744197695145377035393730672671960722573044477055764689372659356550855000091072510249067701696034904782094223239488980698014449619139860388753972556553496988382051953118516847551695526911498507920009469368375402239067727749464377602034568031504534256578357683031594436166462041631426954132208246774446439494021659736763959587479846721846403126393784757383902032923052360683529136076313485645694383870919560990294221431428372923633904735046646382225323615431672651296536943968629831641465112081169616174005951731448194870136514922517205408102227677026462328001793454421744128828481507329764135775529879818684982102618119850692542914094532370422792333593907088191760025688194997905895850870708151101171975971113986347944219777199581289717394992105893476050461708469744966170306935228088303959438236347799943610123477156613288314331005216856580154242945838295358301616182625673996087778146029374746761454383930858830862085733432233016337385840965447298138834324005807139555273136443684841608486117392331177154009585330774694223028544281805033092052361799107385071220787353816787008326357498915106411375117804677584816736886607228411514599592390611566768223770541162844579623960248764834922321099131368954346836793317339802584039426676676672388747840233408685566341226204539835061080027272494171725292253953261090309566777063530733975355775421094633211517582092632181155612438081177861336894393231338700530745579760743658290214194485010806090775493956980298518755440885347512773217923337462847109382592671112783249047920315402230588063809391411603564085629915866447344444132059765182566788631893563016375920018869830882506153952956450286355859327235718458722371993241535322918571306808982231217766450360356199919761151548093906724339756820725611500695905256887141934832576917286916420132677703094371944725220341788323951073703814398699662977360537746535305598725995686830370844891017542586975348280625398453433260871203632528601341634119637913794793367051152635207055025562133566932229521449784910665662694173953632090353143985193387793807619781967028734046213557439933233743211063961618006314937267508764930441796392300748645562847659207032224103002058186544232288674248345935632247136023143126534321560677761336232124691323678663926940098328346968458583129233081706054398050093795786896424852469972442292978240328462658023572945978317278639433882664337221298027269122744531942435125549002654141005973264187780697594345753840414471069134340252076447708923960741747228648479598083855018313459809078434866914182772673340591008810745214088973657923491566343487029772409978716398567194145607309595561039306680390052256992822650993826550446919304922604607678659280930588770772170186279796767170981144478552734756082088045964606027779315750506389261696989302732823482410250030827334110442586855786564626207186510786868177920750463907487880381634301362666961666959960260225062360535443612865964660071238689977762464758153714702710450885380795510810387334090203900807704240164948374129172962911197662233509547250314840192814587463016252574467637899239867297329141890430684816336627954117739021121376740604432472377529969596717109636067844121144776015582903301012688234081884590437121696262067034941873009224052918809605858354364624022186957986721893466936574669547250152118269841442721385013057361736983596343356790183226180208214877449267273597350573288883002022433230214011710926899840302118437936174293543944251615659294504945166514754517184629756626426487840659392555249990159427765231086729140031899081345165647594725103898033823859507937837421362969554779694880782703439055674349971516089212983996433866190323834655361948372197080485528224632738321509311878687793888183933297475710542009160149620197455267896596870814220537195315349042375511213052925409513854170132970404664224789971480750874389011424428982404644322118533313110085277583489156945027033616256836312356398688460130331841428328834289984729909641748982886692188098493451928912514882638415266715038627223593394881025638280128117203695217414214317818288456844767766861071335885519847291197539542135414108045305424140869735687423908386949385093467199011505265707309626703684132012546042212704751243145721490106498923197218954158606868616807329692622365345210428586584644060438380084881083325170831392767211491137303914582189539927541925329210632764651445135313439851696808245499001080450006434738655355195142666267967934886582188390970098414152946709490239435430748688432557472352539758963462361677712390683895894483560378070044489302383278754295619790637663634247548434292525730692236368950713795418628864959564092852279146124114057727886809762427735502667547811463108071561790326883910034837237701741265528761745497908202596239186475379805713510390311898439422762960412387805401305046796197423959817006508995095823891293493791078990874855981064070171870210128142758804329277612281420422593126179743822146018400098002610372138040246040386734942723578117120581141312926531527777956674891282551611779878249325704529323138413209379764363633730859597525002071365020767691723404007131922182944800196977068045451132305795359855575914451989772972793013614938687905306567482461666047516393510189812141044507805628358514313963085870794631430066951793859606175690165506465326095997076419721804530804367966691090143827699480362209325986552671405678549159759323246780700222258442404031799254673216106144801899644925336074000350599342665346160565019036159515948062574327654622795066912928796481808279675913028761747220338053331743500008354095318892846793680713190334202805469361862800431006287572880156654752914098695465866168454653093378546335340362820726826268578579593056778716603555948578040392917816376939317391215885408965831198196271864045765324037361635094307943753756527044050683993432021729433887179624490972917395689228696949894207873081565859161635898181894442776836830946993401292203741411422084263250288847563717551227344023697798585509310707091966889206830897501008848945620006710742303266406106896436959661141117723698386929311337976015300436005828322828616894038410398963745501492993561543452680421138101896438845404118189841380771822644121826014449005391371119782982454222457010671543054375813140406809153238736039531531360276544924687033099779362163329049728569358545380055454026223750607119243105823177675903372733590937823897450837057429209062189025567110881802576844042173915151922386452758627885410438130463695709313306684246881228423973264428705620259898014350513293087171197328964901163127462184234764831142236091712953681209638858546697053549201443625706267524787585984433910425050239520820693620974563379016357504574160983025274240482383109805242978503594172402615755554119775867300376697415077886906809638190542502948146227917586056648164241140637104823901091887963347882575422886278773483682770559291426565604354619597598953054221252991000053437386819197361358781780991875106718366717183158266423238686244335965180222544480958076120879010300143730577880217395067015771171350471553760622557668600995136487824675403718939868847793426611541860242708154087131862723037388663751208800976395254494443202859908325320819888817047607454667969402804666123833901137092175255382390028007079246086028743799217288849309899913133964910491447544565334869736644658318003385134310716694832197297171277616003031748163151520041301605238132593751605823440517566923805026247657983653092765648288960714506993790883246017578447520875880490674313571694690758108087779359264779109400485078021808820123776049325053316203115765448479511109671392713742251460102201734703117507370409426684143449370904650025802235166790843540696358266656171259177398428517326710776539485826788736103333441990466408386839234121869680486598297606164849169861364628441255323619952124337596741671941237110290523402271144195966157525554966056302978190317726066817344072880193223921243116852058472888982209198089374371282259140019572893013121462210096593038671814500846817251768487657594028846819495438187589024144158829195281416476367384893411137706413796021476624582022363412261742109899273341929987684164302954534869412563737718771525160719550442342417191440230563347430169272043902411985070389600184277933605139031691972892545996562569860703328203048690561866348060370355413019901262220104809918121312047180702526042169847852277076930920067009952542732700681925847482015472091871388272882980251138130196501958545889118518276415880401180426998982103124871224537300972533934570633633811486733956891160534466751235383905420955163933018686587944894785460219865492406010959413000188900104827500154772155071049907632557631518039789596171288605549311005767193778194730189051284814286360464283676592978331887773896113511780151957807188644127687776400288323173094847019310394182422763906515143321597311272891728793585079714022716218900322988405743394005440739079839897229949547439237749566804198219153209259661823285439672924278554336476999444947143558315942320042799933310165569130200347915428230423913521331102645890590261673780069220828533888170737733705381856143007754961609175535433106556281730186948177887841018844293006672414724666607090392248730171065061627561698392394043331143669711838828258170451738581206012353212767983203311786158198959361695811524751542324616111101957527060124996848984283097002250366182548714419552633993263113618183739698007639847068016928064405553507368399702495555583406466195633244277085144924855850958222229707707881228726887808138877177423909002950296518623346928709531392910914431272655965719363366176882217067111841135435256496654041385193798285966011772104218467339189533884732526114733369617149415569430336177043816086275793867071380013530041297029279308929495407760532693081093629106359979594310079149521819902057510404246150616120774800425982631606364101511227228403289305059873789907939788427604175080643674398852373241937799004437576623070301135177988459868326021021630537939567331046652422761222394419513395764259308581671028287502413354476540398260153328953638874422660793389926166212604364348048008843971997848524641358323835237568251355003958727126456288889074053582091145713368693122977360035753655717340733414977507646716621277244904587082809146123456293282927308483287645872399403992807503922225361370143249218684318364757981970559213175767243976101745926752580574515995470016450188002760396796851920402821153105407094067640173121331052752729571888769194877213728467866898051116893412828213306713474323010805476833572931149924679402196651356899460170110620492889321741339927277636489782145127388249674171265683840140392180332733834926010331859911514147436609233557983205710877398533945777173423776196636424370449804377800723605148367160613086345552683728590431836863252026037396641342299229615540214885715095290401257196695558551351007004335059958853966501075604457153591093584938687910876850038698226292301610128699380155534973524397742206007597884903042838785295042563211991187460669553744715464159103434155485481564069028654851022463573747651567055618676658142176000321801014803979635935783810723932741950684337440982954210089416335825402009165488417930958688443900266284696695194971423143947286355308591619876870065576012111514394674069296639789923642105307389291948663215691853428343610128789328420740286779158821243555857994197183011078364766497248338593337059150306969315831734978463064838995253055802761605193894772077605823554153703477132373284131357225151278715576581525407269883851711527136426305459955496828884740381885144629129755725287837562001726550301272119475392939411389399660151842923543097456346348023226410453158832900539735907287237904131305354652446703339968600274782029178501553543241011934289744079352557605342290559315911036204987539014870325952508657850911743053857043701938110154672196779171950814131761576069880065070745269071519554559263393744219610370013012991300484169609649864277564581815491011507156310265398848941156555333603015944535724746097574558160297673566375682135385835986262962464103541029469639151137537131238590300814378836696447339725825822949510509773996876144434870098910036276365873053568505602887994573840901800034985072644766627170510791976128851624441524419235195823637315215496259831337074084035876871149455275782582265825077820990635421220065849921306678052346337479453904888424492919770448632534212711156612922438133561450590279357697673648918890304550986790624407584092372574521466072411062894000278743151570159007985098037045432471299603717655356475965150032190519844397217109048011785524365674547930869712957306442765288473746027676780916694941812138387544024056482631482537227484414435912432490214694546395980202185399686629667920197199380201446003162114113463858503348230447774734972966787051569142754226812528347530423580724683934885587625101389229841749167184008749827731976218532904155843407403770936275500886978213422700656275290580738993577925208616786234854729374258279657703482551226113461159804666878889194784787509876743008784553017483730797942276556022102534639600473855965530070708557355923298509587052656522043240754023319640317022950338746987354729259311697469684019989080642970143258595651645142908256714284023145744023046151940068627154146934174906830471219057582405154552794835663389556686546910827149511084869806520311890821236716278666696939756187504818370384748151091703921961320222764994513369749486310488873048182124685169913072754220917615272391185150956224032360148788998203393121847891274418058441214415356743778803383060262150725090528323408453530627376350259139317255144300220246298403713845046846366609228688941490716829058571103575756134672789590881588052689636951966237701222194817241029283112595002872525690565026822778130044513131643264510865603291925928495048482684548605742908966598295392746286736063032226868105771321476563526371684846798339551219443452147625086466456755444305347881692185056474943380075832944883988852050920010271878530631041982985728809349133194352544627689691024471720802032216369862099765744499149407508426905515083535239506016986674003906626219038988724195073923981264149697475704697579273076579853872622357042116563964454347292746589423518786220774870879964391363833083562952341955382200851318574696091094157883884281029753063827102894231077735733226819899499821069108400811269357964714921730889994167266618485946744634214164713036507634984427659295692130114076038401341660989918973893653593548124727203290435854673499195673196742505751157954031104178676661673097519026558642063675178686915083282262170701749238735632504964408108286693023456347993001558040539142367790957641313992616882284583920901444968163528109610618863033119019916045703651514107947945516955758801352044785655260819967654914705160071820199109620183283953435048542123892079646892273131007245581581566935604889603998523621707329616104610340702524661118105251682886906714967641527595985693735148908436713554685637595575841559560553565960898570357520020108637842969646462618738408638346142914057415322448775155097513659165901442884715572527607529594509998315565658758211593758337827115944534465586626493966056888541273214047950905415074253364278024531440281729186563668280450534497192312908355109517147336624140872133333862811811740976540718890983296993487270170474415646103780310823244451191212232944493535894547298437650572793280411748676048313140596229316208393509730846030607867427069181542344028046267325244943036496186709624916328833564634938441191400190841774013833341645055130495041205298752621523254683493450319348682347623915298585526565834910978367545248446368255737558946043857383730079527885728223472024510161059593291277405696052781126319243320040097689716841160046040533732758213429691407324729755729106196281705362312390527172156380255513438931234566685928816463318238959029896272162169066095851192353954361820378583811226366580206172974951241689636636792121190673439005173839556083999237809001033158161566894427753467370614275680476806351219250153925427287798123310193940831729397469533142182950728513827255103452631138044464165207637245726673764069673255134616204651146487528009706778747924194347181640428266194861396590973635387166707821688001368721720667538923762024307543319830850126164827431672698782988722929471128314526384581815197484152119210761106913649250409508599665570510950443106796652122028188402447892309742307879220162881930875853304909646798378693562564880947549954017573171659137054805456825969640788792952366499798018746077666898813909684216731396667453074424845075710478965857454597470318437440155499042174105338754365146930979083267816623747536000458920975236159003186940373092776285727693044073577134597970855806633636359299765927960046119024537281885776326529422155723874885170654934454786508606968469472732677833570380171805663540856678578334295039338237816859988445726742169846099447873748582284325466547505612996146788245830214711543072468917104697508693921631381619923000147742826587246213456501717841535480505887999007729597988663825864314614171651618946089885403332544962640681332708499811845057202938199324701588410534358488456228545980419040474199965663432817017755943987859413274442979129267915243626794459968516043623833657486769670065874420469066988607382462720737768467853476784595790770090406793965742050406084414831164940818665739405814668360854693808515558038700345610015509161371029391637374164296352094590429890752449237048429294004054055031717298874516215206746170521375156988914365985333113422982902242466258816079040711438197993478362844528557554739192186630765117863683039457020950915468442167304875837085698754853760411460371734151116886591480998192723194603907459193621675894701026422782087686305821437793403039786274851519764337979157415387101786279551559851725582596036278460453668006241811076811930094959608241657478339837452294510535128813498922145265619813896561239908577376286933593805151618784004703690868693920327477027776988378753252359437647211348229712937459381131184882871907611286743874685150047188728551122289842082340759364947228656945914396645630088421654670142126787536794151635103649857587538836962296571875760684789353678404687453098624487015624802630070439273552205217469580572261540631454819297173794361572630900122830147604398299850866050506419801703178210794969967739304239330195449150632188415378838530156909877452027984514869337599589796009580027254225285128081440666467990786194687162353903833879651441428037595738104638752889927735176691183129993312836915685697539924381107734011884558686468567335861729792197332630226221519021100852042836222153791938193608513912657698483368953275341919915483145954824464593931918867358747430770342154941268473592107245634065688549070017170475510495359938471406565038522764095585923018416951698079362430537692253503201365176664655277260763556761234807173799182847614100584880850126456231777545911647710981180951115424858624356775121942541629227742537946868849822923974613859662631136549173549369142996375469710437554132367482787969647662447734109702774081350581448914918060824269270837295876404005395233298307369557030288941809774494445255289512702818187368660239955651978636230398205350131666305138164582352015312572658012566393565341778243316411921204926339188206278706033550690736110565544768516336193835358047062034936891181516671106232062259418261040303068546545140133897219790993971739567801118554763777986371276752997548171436299875470008392228650139160832966958787836180288943290348603978751560544609060949681598841384534534584676391034002741951497486009867946876117911469256887460321685547487205364209366144365498918039555483772304083565150931232449731428040055999126212549822559469319627939782725892586633715140900969612670538395484768355821595212447867681030813443437952915689069685138222118292420158222584562868461553596713168179770957266994261956955142457551881884301335352908033999571097000428658661622048492550134187435897964781830090186396160870822670445815270245131496216851939005734271687318178643384330150899074955891734911117276400056417790118148047214834626265427803285423327929919852515506649095727720921364220090159209668152477471410253269541574444654888848154318978191453944113099521109554671969063042651276867023124721824340281136603352403548038788469988631436479242810873381156981586715372525792236229410708539067793905047952518323446469725702485287862803685426324367840447506828857689088534526177204864857945170609439687885168844366555335442407568891222967415485806902252908909555351323528428423385582549491442976639793784883333587244195663426333267203137186630298292797346246533985727221006585672099143322882405770921673774155220057254495660114234897504838681139050523044140770558899014271752906804112078202887607332991660064148026358291726379974602215781374066409905106936438343562640174358827708580139955303646146961107606408455883027888321426181629901517032093090128811745710632248527747229156134032113309156007475843414613191319003877312014123773860625899741149535102146795519141313936055735154150302743744816162527261814329917523765426965728020481765815605629486875373166209356204590781958528902010784779012272062233981349378706901210014574636399123624475994190024786044135929853095035519039393135691332675783798798235448328960135457239698667589402624583548860463369907937154941915848336690114945179356582205658960139747779404406131083931610960960228987254651557737162459308652269561943507731083370766505390284132839411462076956715323859412120509571946820658018647713241168158870297533424436456425742706741895693706588630627698755619555694738954807462969921861454755344159063687390405341043732311136909740954756974307532010541552035248720106784057216479480477816681247408814514030493766898706522731461564099669746057911051327281146155498033802096489927001278664327388353911926589483829512563575127008939508071760727358220135983708211477572656491545370276118579209510598819329104821289240771019885877023085494551820884047851082220800042055263070393236724622159471144804817687861626967236688985113103232413116201867151811825505633679211272583565851627872888449270292812995180582268563914057062913868256663441104525306655772169955452600270224793586152461514357307832543219562848958918516939136830262182916696159026797483875765679393357301866917133575085215029117946070828498834075039195778629751241291915496755720395713462222904864580129908579510587113154653814496271950053757845045129906377987585532653837487417631896999915974872172750515741497007197877247358735370626786378497027730068043293839755854408480760084833163755825070983554582047732560426364617043203079501698689389148192591519844386425292714436120982538766052218674144298610166077725262894340337582056121489665601226882801167449111677340296199287393441078149466853280599522330608417602938710346670322625468296364286719325925446409217929702725617760532854223074042090079347523687632378642920463056827683989796533135030285629869300078416703853030430517421048425699041154943076119255026250887798644845189253239360033446500565139289086604892037872889758032000508904980957769555087081330080386503162185336703821181212523275747456219487275420271935973280885502544350199740751334797129141265329510190886664517368562242874022148329233302586396752781015143433834550550525797737563154621083767643129085883340026190957728164113324305561956311292322398150869627066159276382604206091673961131059836780067589724847029975486345649520688635998294628683749842417345182736030992383084655828605439686993636931429680922940012220159479824579482213093990825595024051088386262654345640361425887067806523370394538238701587518898089331866735571733230928104526326505410431246368763260694977431779134639182703765828381595873023928831889389828512682380151761433856704128361455242463541841841300066505672305435330300352071985782587622196134897494921959513983443490291088503787971035992710320235678556272868524611794121921569483288762568151339781528181079545829136904977521903282620263045875102323566671160690756638248611845894422578359460083123581250948609280057093483275552888660789795277266463637518384220390543183072138662170120885633762952190467485979484626402034270028801155421059799315529341216651310946170554438572125558938484594096955205680621615820258020070156209689469131868691570063247868963051813455558636165984033732620200506811334622400802055031377570809800148859720493646893770948029517859668836666260539841454357486724469496726619295760014733597107855162017982999987654775473014520794297485811983069356831968035448243951308219622512108872942817514399157652220204038061906456179521250238423763436131186982853957760565326328225776042949017243665078427444866718485114922535253574542237235260073563539141184681897732997110315966697628708147606563443216694813098544685057115724699999142022238592141319348930513835987096227704153643604268161853960833141893147536752286316823515830169705285920661915967336767105770151172561112332735876819069375095128335320266206590725700882905198531674858206162879887088212472740208219485422253141459633338509707451322039984416203507350137755947453183162014053196654650438361719812959162050596440241929414310737923862584517416610130917091521669008557405103896987234183419052074070776007801851479144595498481778958500825294659868701308292991236750845958686156716692759121561249834766938744500892722301049950301516751603318488158229448558348388522382594436064811425580921877539799316788405016500597670722899332840103710771971765339360059500270247016877464632160225566338296998573374414141328381633838359093384222375881135032690724042964678640330151451770183742717134640889099780630008192162915701776796554369401772534987122965074790342528693406591353487601278945145961558450629473178245713168525772935770976511025182261607494070189418882451238154747464147324161646885265274973171436242883408697665076814220741122366813055802952775654374974057009443234211165288310027463699337204340612708998676874597209126701164482810366949805964022414926868129363666486037819506548321650644877507224467474424903425467842434312367439821521360462978879976906345530755433950885551539085888766182086752902714591043231290806017665259167301531376253112312303053105201649618869840424644558157195103918214470692577379845158190751155673727988395832619090389142764031525733878937621727899255773563340818215644674539186808372150911717010039093073381262109991412978178953558210421953522555490254420871268449165907284322656276529337495923591797139607744907481051579274722340864572086190836912920444520637588816112218531260801896378861162375533764707062320968937592354491079657182284175698126480875463551419853105268546465405501814550435885193982193213514638632808064867963524279039580035730232565606571897031749216149781596685305306589188880345749129406106489034713183974498159547406912240894985635966229728553680250556879109696847040698635005496714400900053119305908729526556708387377848889362010777330940831654340594098964754282215837656730264534585817989948477254208577043455752771405083882678939552897359264614887671099742342931783024336891179852836472909274100908978828958369794091958074399932677250854859501573058535529910803656729311286546267693417160406395007745936082351649558143423188566257182315217361030402012893733084770526827843710895570398084468033131386461729199505121590786858783773429467153209555206044179120764902885612970828623337725813608716393492567429155235317467510739642717967091837287108430276385720071272682609516361523072440267437735819851125484233189650055156760027622144116950256701731136773127158735915267939981235657138495057577036702932978005586680965077515696864959579763079920538085000144138862772824774627016932926688559791629684869351437182156899925519772458127990612094294569465065006750812648259745853340344090235589051325229412627892029507859843170284882448678036326819997174091370231693385871593170502264398543829658616697486536838992784357464654046534580752642320275212570928992880087101713095409328652761312412840846426063623561393492865120950969054208803152946622289009946106367664849149550170663523851305999797948414990504079910302513442538541700660700251695841487221761607690738959624079503512059811440701616294961565858476649437837658622756917429439156273572967416611208893117494377426960275299881543636885251764807384500740172276711971478471627143736919941726649801331175591195066971479795808507029762495671068795827609123490065621608078899318662773723646831668483228968756870041959719825230244962238325847578588938284942890390557460295111939923344057133211618088974672992061080133289565944097920991629197610327028346486465302883868251336556376932387460677959632141323221479494922034513121433507638172918792287638127633790232674416378414184873722932516139545871971382408578969253391951853566070781207981922058949219193085274048919494143849226064929821854441133401973294554967539486578436623398120033587874397587102532832403343721934567911152033976887036199328320498060230948756946124258571075113691648220341838586087570059067805168022005485262197597834653017503748654502240927514383296975330326347106976627763719835167715738609127092729007200947588800119435809517276433141234038689065604786729688779010342698262797523682315536617447478698208667736807773643637864173595994385309599657861082373449218165602354383941741567824429190218320520762771021469609909992563191276489400845332828357795023451894053825010668306823263451110287425503074992177498853408795937375917842735712658549616132786793336160360923380000668593909729887038524746958158287620121285702420846733434858395329250014383413977981660559868224291746389720524878183061888710804016785654853523012696434055505926089813456270120891358423995628189577604586031895953616757236530641671039523322506589307641520993859417999962405319146383526815315195614127573410259147630936783306746415655868611132801465357210004929189752488437810078464808044254737602645562697817137380700195710813766337396573007053442454809060542834881781383852637107515511992795632898852486463319933916134539723442211326428492186199343204624376018797909670239705722553932648885925341598181340193284883312986604275754689007007469297206219211177200599978508075616081787989751528032130131349769474811098930484956875667902591109717605579488727866467386458385797010367332776845526134640758274959732621015213538197037935469077306721388292917302353160340649602962487017481534638595483706374237449247282597884393566084509942647544618580290589061248600941612422790927728081319514359570453357837302955542171178889266275963493831506368793794123407735572208276344330943976997210009875076676378636611635004409739719075389940209814838864816250712969937935065121133421371592401885111855098284591007102486539582003959790507896831419623177705357386101168475245068167984987294406363323673076008967036509086195375111010463817372546652207500255198683117220304809672742918615027275057690681002279170335820806736893962663487553930232249539852345022146147398865238720498794755134494496049998047245728428595662947513524508445140033166899223334864830210159772229218638696874774343574574126671339996488854730192467753650364941168616340532009151807848986793403719547238761446977058010276436094285615959198822903158493366607098504598275202077791531032063438631911521386933329389519664397566693318721011465902641803608077964403411591409312159274207625669541462183740011922806123855394199964026323782082021055099532053619263343655081312482903411890652882450027948953719306376805915530785142143147087552626887130337623409703191640062162320143319644584809300504177624856386391447852732699026805557831229880445559684114683673056481254490427740446250124605844979222417060835523448993879530572694904895465723552675364768886818761549282744698296147482313901071119053593212487708271405531726344666972529160119845393315488111085675930129355806825021787138081739034100751633084749315496508646788926271171438843357252925686352007107287716987718231621319494125658692483566846789325475325273074534078241251549094510134293678701411464228828946425957042321138639505518119692621551555092357963214438743300398942968327951902512439566838701736953950085215240475768293925286287378658297400076798196833629508538426696308773671679197334603404481334649854472457315578949060962572145062405859997065953285565241563130995789599832820179564422713003222797121780643067010385709570925737920328328215732523120118409904061899980599857639882395458592606195202347556428389028488733425507912918224599448128006171404442350933893871693369561673253060175663896393959499506486827429008216693468124440027144008839544026464787018758383562968892290848874403343464735415372644604415221247013034640238942707979251154351813088420792517350745123415198620803797437189204734525270961799605007778674111470610184790226029614950503191293872468726243000700852173580051718008583799760899702882616364639263463506746650858618338643022756358147319711588490894018846925098846126574241836150351402065049703675028274982059875714585057624849420862458894714549459649295458244747451303533080702377811667462249869506026150655517373516946678985390861500979769495457210619196488131681893591151951225529671499672584172905409159710014864815920614726514793374236555931488320456501266267785376304809050296994747847459435010790384665103257214811067433525183811692957258750737310754514196321714668209371660631137356464565243443560715304257372000044402889951593579957348386254166020260429642037443713184459948086218087591585501537550519262183004051344906267587478356106727370429167792191926860131185999458481948929063971613002204344873375755637430004367934426396621064781630046693801879644046343701248015577086654620910482938507946342918495942473508068766494122850790096835301924185577702871976110766555278354809840583167458132121214831280999450922512818390751486170900305658976899356076724954965339237066659310072941005674167425254653946026475466888809287734451735429755252102868230597034566451652986004722765767970136169899838151509284939355280519551574210713046521535582728112442433884206421715094039228100412471408137204244045038993137135125842403577414773639406373655822607068808171226627897264923079542628726057701042760546590854361612466679602114352637455487177571651591925928430835893227557757131031412539955684280879889909684570571428337855623113917797552671665236395437976551417287888232524860062132869153966471774545915295099694552195144041756357878194418741548526776784338086060930473717661136364081426281259699579635431719397086604848497970364252807029694707432556774312477939276663849203512158112867313998919938458789881374438473176206330629799898393423313985498594936785357534450185124399897812969912751230142101354874870787708974891189267549418729958632389895453438377545049476318092156897833929412972438615607573423635428655200586370335229241341300859841801571481271921321394008295503398396678604378634943436895795850704437262965608351893542307428803778134235373208235026467944548078935342516241605193200432266649850944397844400634989932892963407821762662875518851201583817463013850938810949568335183562840459557596650332061676482115562459310199205517236031547568989768759826911093810764236875131148680802979716688756553576494978706044812027765262619454167280357271966492826196265966572216712691869911824665138649605631719035335290618037882409081312112983698620738686033647386721098422953178287698289292927392068620732499877200151245419963573647409740367109104961329723770749110430668993428882968592207375173845177988318510688892334352553821460751289341496906011539680490591655919835967426774557886105335418201351386974817663723842302062817243085778356018514114256088779157982921804389742648050875059399414544429785121113775776139587963654984866847584332286937125370786296850320621056058187525760335129017079484224335210529750232163237757279192863806490663768214021947437718381296620447155435728471657416550795490819645165184371055267345286955216784451391414263355444405756009281472471718077704798866693261365745343503765702635487292591874705287431083527171877198819949285507364146204878710874483043743350710185162021600964900974723555240121671964229465862339029696941421940794966681208429736519323866037144969372906066365049098793337076644637055061070606933543480876845643221504597313842485733135287247769069378048975684532168178505400599921391323859125730700249626728215936486900108171028215748582311470970398547377498958746661851678886084332092278880577046921560242261690230787862450821379545242826853761024379006250904960551587005437476682364252670727874952023190891629934986342625828113157076863875687737153325529989682036692443643429472933495599218937525333386773188572607948526096304266740792524243017733231244574709856961600910576236880075885316973032959292210984046686506320965377717803876424511408382933258975894432820706951938503068351948829685911582821729165479700943481204105746219906535061292132128996246494568604974018344685899845243181840416860204658728218757592947074613014218249221162524670896570620992932297701665402861944139298542252798955176282948115352302581053064509129529160564858749761063025424256319470053851779941687612667977117821084517472330731403263506465036107689162909320968907033369718306578420569047290699991307095569612745305448162026436357935624038498144810834782433384008132668317503175701058470423982948556632026379794965426475829897435537089648477852863195225251855992953871332379466231022033420769320671066816733522054848218697264177861802284340127770517044305481996935265448881857975921828081172670791725488912200341908734631320811325495279751654543246328855494013454715978537513170282919121623466107051247777463872555594591206574046204204234690967543008232965640513722492122563925936787968282385147106331748957684922502033976539327422001673950929634126676241244537724576055680071603000898639555685770064152571881327888797298014426613468158239078852507654893926499963857644065311247188779888856762812237288431875678229009578793803758878551686721976599039496581488179198452300382309925129823854535669715869291456479580443158009970182371756081534057984580111057983376525240410507625719441015932677325962060078974239396337222633580889213674326979959439031165155300427007808485294192309588050229001810916456450917634338342636318802302001892514333184457953013746417385318072559498972422891161209695449987305647743722343902170756993143283946541430731446676246298758072555071477792507533228862379370174106676053939392670994970890963074892690631997333635426941325664666486674884313392478391043071493680341400404655695974636098935427697930922406615917627643190023273126773505548646215018241137056956821255922218767967593035710113247100050859120855590771742236201959867414345680901311763916590580779326848520952967972166580139044904763222175781599082792897361566834779908808723978433322127222038236718350619549743343989046405400940972594598881570866988937918982776648514415717122084499882266613240957651374868158185867285531434697316311083098614255402302198771705942328893448011333449066014986187700709304785807101572931568471654636364820364128587484446063313006945120729593119389536153688514469962705473320263065851092871767661415545441271002440907521973094526748525612228049143822850386527478577603153807993763364071230928901355052099321576745261668765825496919116599993148004164315707944308723440492603938619368356578989710776982293547786692520910710748572806456392264006481845974457601302795219042647435016496238594980889412773740732819448054572089044619868067397027709962992432813405008707572740715709580772046756574038602506539739160826046714438584957197857732151835429172640636721495720200531421192863498242188677567933498680213875508489752969373478050535138740673481325699190669250335473520273490037840909306458117790705788489752858073197222417038868817493491927176892663852122423130913641694881367912577987424123367033410572584378490712112091809235949074703737389854500548045841013205878685677079223719649849984473689572772964348634177795039311308716045553942787667631754130625991156502634214013754807739135140628010195542780359549126116460250418579908330061217209375919324817539979715211631016906573944176343792537034163109236806249832073418674335237360494408325367139035765662407743018132214603648242164829815720841513661398279189664873671563343826252866068958082974092713839868190641269198134130873425494083548798508616552126696183747904002878449725037190416517151420121245532774303432590369709496056179568369795314067226469432032689433347702365699742208935385564863436708273400899116972306624941556875760012248116818566183894519684997586226686400263518450448973511247484472614619731863754855128588365712746710513679996836540510824157235920379173959032239231004229078820029691264796206155217205312374205865095265357468397959991788652808911530060672122534934257243952319748662657160706282299416761353486636620882988290470194487053442723110813903270971840000837039322740711188055548606537598705231240116593031140116378402016897966756412511452302731872470381801528482006643768280053677621060482458077800986607542049977152742769918797056221107643139137359200686017454838752634340543852182960982635076637924884464554140704201270869966911082359458800453565893130834546892137649852368484208773926197943001102389098272230753882611163222092509288840936120516967201866404327785921271964070670588116218798803630559714587839414667901520814811084717114933095058283794861107092424836816732987274112824247803781229620683783531714852481112752451028188039440944517346422598276792176514784335757736916206265214924479744994900355211644402040250091657706748903318857693796387822636270917133703010208666932735234675193549320194753216081031888618630233970985000156607350414291082310441959209183570629521181803561863177975265123683079777174131601412207003615286065163139119276146084628517970351355336389702391504861735471523432041961292841223809085638215282365227537869859266051057786514643076470967758546362038807165374960815431889177277473613175114120456063664003394285762185261686595419856074372172070950027432047505592507970945101653576468080411130640062014506694465871172206360366517930372134228901199453639510886032265812089693343543741539050429384504725168397233557218133822274001060087059094295257385793179074278857595798775905938959833050910487462101617662067754641857770333959815342437121916273922657558211568149038248393190877930538253896019937753207806505975473984238042607262130129992654239104402982009005371907946218949731345049923501351705527326995421197416024694455199575719478276795651428997584843063484967415027524063590547950575065199019637541729551764304804354136782882874644699998911155237884528014721761548984991416820053379023144300001020192545221678192069718849085443007898139097398942226461166939398353790777195464634016913126214940204830802685806263384613234550723839135437855442208092156008836429476036731091039481027663940701805759626717337281548497447311524177791315626221831234685127447486805573967908473287186721718883564779818170862198140985397134876723890860984274951346016168601549888302563597917088985898039685938744271499905723849773150818423953263394031144679952415313186694148917534166490076868838568055119827974875265987071270564528790199104286352756975292377609115454489311197621316021402121744190429476490583683129655043562324997212016454450717848754385868568808044222833147568232424677781440570317456933697493912562310804485636671459983619006214254029594380438233225508674155774982451911071996575419938412317611159707236918800647353538043471656453049080154713742461966235773442828098249311820062996140907272644853468417286913563826486868909634296138148217296963250314593196858372422708755721914491237373650896421865215170456643349950955746150008237370445584403150024291457310361219560865497786978196913370387142006679672909269350021200742241574352520758688757660966475915876913798094993325222637117489835008214348416286191450522998494787541989356034131081255978007246917491148457425377867582581919645742263994167740941709341606174832495842047582905481981686972137380804016542316394115772595769894602232912328096213596078741281163691720137223045135782098618400089989691516586929392720928551114862860494033282702975953415010482274753950482975431975040132314611801799600334644020096213609405804210868329460698117103055729426701605122909771956667438785188923483699098307400049038512893994243946725988837653141138827459562660173078218744527656277455819749942583487738773792966545335916506637089622355370036241517904941391140732952627971900281911245134202623115598948946047069381601589521341142639176053636388250075114201138623621516888553652850903188329738067053751302848921522366560271359116192875713831255789029102625805219581946297933240201308336671430470383837624566630639101560790100631577844246713794902858208555006985801679063203330510109967015162856678337759675428681067502154899506044015390967189674818463982582231463338606804203315199976602420895518324206425959149265029565153939534045165550397995374865499959511511779911399415478003214188595401358692061671511268962859464501741954398470734014829810826960019390852810884370470815108050104161190374374405301474646268853254333066613564065943216565308077876656985888471991845063011641449459576450994962408152585369589240480672006424820434628740444945058055416593024581536668836282533483340028216301199610219455792978549438842613948653221888925111382646452306763514082406237900108470309958275790642515309359055669580709883807488608763396162945229256757838929696304679641310131637444167153193010819594779191709176819201771675921995085536669606942696173834235824733083832604794092236394354963840000102472522301303986589936087384568265258817467768825242351894472480865081706854056401571712542070320971478281238530550558636631599322352358740078447694923188023773397088311534783849581602138041049664202292814702941800544776420873594200552741893709650447880279162043550572529025285448441806452444373268645591552410797860479240510682767066139583747563180129099001234560296448545432990028365689203739509993129644573744530461825314801119329914295788945134236227148249654266992623375769664882798457299398475816920084751386509963441248809396748756392188401316019168861000340581561894038008027739278275419082607234923821791080249373942271669454550578312019790863562291950386097478284679420330443785879864146022008001233065787105928902819717953638914029348660952206355917541542009742468828967344661405400920822106445682299315904449340910491588743147389830797937334837326776687596827293656949940854192298488747782911671765150079554764701179995699129018316930095654849936156582182344206542314067639687596815987161575796688664746773819837605230390032244704360304516411224665198989140677589278524616782585091286743084044936590226053592996259715190222362972427027055652371477440204204546222053693945007913137390337451941944004713326970186339060288240389475249410166670915646246455853151401084844369211265472119771166199983065074579407613558237470696955801667534508897180623454000990519706634757187175999525401728781756741811083249452903836931843842930342994990148975509510121964393376315281916949291018460405526219956599948862155503466359240477774021331716976977165102329869922340186299140286536695675983724233427694787262737562568619010893476866206418302428755177477414493591415613613934678679082023155179924065546714423076791039905363502027884901384457833791883411086989716445810988530321672196389318646662811643459768031608085614968197448502108837759868346615542780992067880310983792838800162489170014929197280979259443501813835632725410771615799614235845630841142547019541263984890378041239634413906115001667390417547407205995905820003768476725357072287949045665064482167176119935253902988033394748730849111417355492424923048730990625044804612500651330007568999965322663694197414164463158188934109616241346101780589349523724293367015869423909865366521639454644393410610035620031609823012493118562150836831760349480019656385451173358256393601782924958626604793539220233197477080154349408233992906480671266301578041484553916593910072127573443451794359401091969816655170733355435600036785306660838864296225178864264135267946126791901320858335449053051744183763100333409476607370792977266579464246442233404663273516208668540864784214216346368749539185106623074617811894658510791361110182972258588395353115647645733065049029098333317632706361598348725104247368803713565070090170960338597143810084295248258811331356767802563256104404712456220402056966470958515139046641379968937256593279999749440647184872648003046829262112668824255329581197027986431642923539042869698081216933186144965338480732279178257353271837921642237791299942246794809165009283120846197547001399781540722583551718288529442712352547941129219969794156905352076697921032763917822756877534065666996617458617029299120551354334419219037514330941620962619842629071553538641608519948871307517599188947555499996548341383635105294130382163503055656643733436686162170680006047772892162718619555036353262556744275333820230208553829833543975532234781223302431910307879077896384725433017111229203348195596797923042547240172270335625335979435799038485144650628491263946426576168894675067938486733797591285620302395214525386447911884451890942979757487617378371307578655170403967273427502665443052873862235825001606289145954431967155881443415039270241747323340689119881015787485139998102655964036999227242747969982267082538489148558291553079896035287647892582891544411784650383700587458501764514871902813427439383953146564749860389857428621979623068760912410451043105951241162505616959150731793538440728580896706924846935458548737951260518834863790314450393135838574046596222775918344173781817340326490403760906083269884707465939113991965982087483370455553701240272180974116643664970744689229468899408597255792688805091750783520467108516251662801031122193911385474975283794004806375041951672359650447781204181057050480897194569648936243786763722512664107930073580693367418234811923749005704224057339053044253781145087353727785085667521998300008326344863626851229168917231599759021564605183391538910842938682765963623938111461628862437394411574643666996632678158089525815429005665699853092859239423754736476858441442063489652625949630477606555147972512725985332277379078489394844339324374319928515840164775840880552451403825523594176416562420083118704146085978381026696580426168281396138529527252261602874708108487201907881440768870794820786296584280052492651557711576399179472042118860609619477484062564542839405248344977864484595252278549542596544386684314949714185523342561335836492384433171376325874699312212322963450594115123596229532614770097660928691966846823024053771952393627498031556367182049535447139971309246512245946985399822573064456300233555963343902879975209587052348777085848145858836215946208586246730982357889003194505574458867031110808624657398123549917013040675402025972969183922709391649880450506692385855235163312348488296932269971107430789335378031962108154315662196988236079652997751804519700101778664215695893447095851977205588187150998208089294124112834872144322064825340480190456372888009915841402373424692993742296255981779012081488988673420818486848409014707535232458048672619447607467680687144397619858041471328877063347664297002017400164874166319247212158339172225025629671076019937321510645608736303636191303014513102305394365104653534048884600684195450284284775820005336946480000146865447785797962624435139221107443785189174869289508914508623502344978254827245332798668281775444335282383519860909395844315705398338893755141597345253805774672123987715444707847238929061460697466965997002030972196342459690678116609918504282312140027487381940072679739999486933351339169801142993552008949846566472751782386386805582947005012374304418196959719394855134043940454008409080006196011127728369878776446315435220002328696312645565316731777461150538951721023481222804946671889661179516198135514004538142540868616106148363964445043165806293950050311725821977414531841278634928366584137791889498968012845741741346900586285544451996621081257169255647723360706075309088531367443259094300892877813229955974199997667812007231448424270170208237819238227732220508930828895764616670164189611029627335504104245730099465415581415416721843134631270497043379175630329416295684453877840601029012286749226823883087491437700416053132674575284281774070521196297069299675291136459077395963855138238899105200778515718065585103719716556932180662897956881375768784211766266722193284169985919108402620488310460607446480494794243391633730261823222331016101630769516587575779528517926593379445285666176692107610926849692022650747233121917897912824926157953401259504677515340684755930895280031491139843772456540153224850056285893642707827203925738147407998067370090106405322667169393840028625564320004391512803798452210921340564018728613562606959645444878494602094585786421667677300244308123744464593657821574336592873988354176919425162654395824676856887148903964594128029732860528511642285524613580585472295288842785972053937866253227658735558373716439385067480666484405649975214410066082027991687927003614143207498028845651827591082913997676764737204607827134447534543183737092547206621113316090251865797588618155223096805227926136661434916478174358366685532932488395024176732007209182333001147999021566253090710978551992021176393646679762787500459977762165114687359080895357955992002207491935380889344186554196650669655286599252151431063776495782168762851989641066712147899986334033708885796129854911366058031574914705060788096932289993732294982083455070209478730539750603607770373915697009138729862859904507334564138336306903209507082345119893773433972935936766621690690948288678147246293584752084530657841815650306784518063129178640932401782494538239850631001271524859364746055089185665570876648060136396970596495694123342875934499206166672827352626790049022528040824385375686804914613808956404737029563582641584949502756734689840440896530075503316721729256028573852222014176846365752021281933590098872275710920774115877893966812459586464037478325667155854961756396847377953353218009513034298833376427286512072560020888529583249416897223544824711358103435169318839604190735911839350286039324799058414709056660048223234851697698507834897407968379619693291053490305252647270366850778411318248154233520139858032032762401492616677311204049283478867840940415253395928197704384501018755037176915803826245748142143593382678829941038944797184770028049194394460556909008056553529830040054847058885408700535002974216567550219643938599036109600326633550846927373034504007850199863546396620048565144687254456834099942286208704983347930497150733739220107112622683098739716831760463279927901916819360330814421473750409541152437154346137575805454115831122387882220925518845199222704727974157177586657448306874791395372778950375288506456968008998522135780133259017326852300387700105142651475101705453310947536396750090576264896430225802512752680220195107276513282836539977889676188630034790794501245982094023653112058112875603290632780550166592314697114929851262144523830404715670604200024664451943847160291050502749321967531999720800074273751119015450084182861412670529432793556165875655298954089968782086508428911364630911078596396850087753709183027419540914590258164453103765305583973760842015427762362841916047433036521352327193712507933166179136555893479986409870173992972581958692635570288312854805907498748488520024383889656126968805835913826093865435537157375476210802355185369396079349366885862758614697603285318217028145311782638266484284318366693004051505264810921720775623445087005816151789324012782521457055625779863139627804658663806412287313717690121824428033290158474819181764636724424833227271950696141839770470662755571790536751641049409001360225598579134671697451530924153487609756926182539806813658752967544914667760302911270735305060019737856423992885692581920077337132250787390895055858589133887048800703822896627780656905058484151911393511468816445985665179805139770222065979150593848780724492975158742947647104731907141672065732693312503814578214325769831938640259322034365956962976978742414614162918082617760611378670538608969763028896954239797019045560629074007382192379954329606462710571773168947747916570753041323803430289293716535425188729835912735722025438120459573528620075941477463836795469138058696871555150823765312290643141438494161556420870580535980863495923822874504892406479616979645893195089763923718599305766438189250600162661069026850644568630031329666051160133878223124190645795035440308512019774349259952328822976213829237561418553674100201622401240447363101809738785252315453055435337152057593228550296142650651906460303161279799770998701436346285766255930684536854340613913493560540785426789190896498030312645045134189827530153380222153001091470220410834432999839553267041441275157091442026703588833355971903712432510433053768579846272067338487966986520697563811383184546107086380951065055647646353400208900853912776248032765936349490914242503746657542229310340648471957974837959752483472578675440291849560069116966452397939872377871264268022512871764881361911184153625846761613918274863832215146082719032497115070136287812684031185795459576001223299546733073022169693279322918209234705433457121357868718558294326204566828372585961786043128978461636462283534436234557902991799381398709599605245446523514271048161310519297932417077328928033891768862895885545127884536109686895858087463503329614654999506471466469438259154989109917743540113679766444196897723320750444078658878547115224293566611407135383877685749978305418675562054923577214473049830281091447625812674078063303025176497243184152061636186686233480144307488030553666373897581653389828170802812777893151264756464465019066927212599717466854247410199631826002527047544588022114799505942242544303520005694322332759854985246865101555851690145056499861047828164356177949630916489072992663614648313370624714734537468068332276263199359245468367480961923103099258692028182083067746020140181125495320113535005078461996012996459211023138757501392431426290241960378203766623374239081265976383777451245302693942906123017531899595646728099171924360251570976487817554870047736702730092311030522189898166247153249041911417433664412786054207269245694050090976607229577968261061962353414405777567270487814481985036819153105831360972552290558326754766801721195210099274833870510631382068468898140480122661918279099319748855897163334382832178172591686051291658843507155481359312147006471904024425533825969056789293444739569702994698493991991947030764548820630605747382243218255861686097303743712510066246829453129529308365807628466608040971456838187525892065085756387987265559083528966157570403349178395585691395422744755549831317644837771119389757202778971604512326844314697190205065064060731951657891149033479309406411914801098673526251908962710128100284071431414814232940876675614566098252812003548758700299604118915742664348977674501982399665268093254549107441945368799354526183604944644710505358816993668942785259692554081583824232988522422526539612495068029504482682066506047551295624411627768129827774738139795538608260718691975720383464104599556369888206124806713073577855998789017604478886446145885479572506299331415841050684453309762744933690462718591199578469243920440323835297674158682862246125451906240730361095103690925977580349672727579117356894990706146099111100663833019091557813485902790431944143345420939844042498079031174822552990033197105060562217049122069035027745452718672639633008151687078008162164795520111748722953324139093839197828073765181588776477905999456363861656556774571980294250863460348215766100904109403660620342254601076305117475176299702554172287697633071296237066107713656296642153129068267080045556160154847908149105723962773724686748675717467205727647068924240505192550822954215142410691089324089775753071855309428947193153666036604916882465612202589381777171496683301150609458161139467133656720668506774070619725344625632788662961763477926373424048647866485362595583339127181151924126537816947107397942339238240101624625843051134442159208385912805222752203201479383048761053145325719396736602634495298279942996892211978666177544219738335214120254697898875778013089720265909827510816332438596609943787572683258433449677069216960444951320080256011915493273753691091727300132287840118800700425031034164082297673399959195820508560936817442606279158974702549767442393753470356559958936389237062535298882207365823521582858835587461665819130571075891258494213312669966747001876943719782574928646956255833905714129534242032028546602860805509120860737903583352069324383993876727870560068374962965981178902238232653277604160474564296875384769870713135671715640566835183380772658316102902464064436713184130641171890424199158848417599436900678497212194286192846722245932585890124155401078674990226598865319508564089062294155025851959992371655133481304486072712693979411504197783329615621337387786382489917122625080142072042946776826552363805371958908190050480050435993794330243453018225169871153160850242836189399343084242792203729542107104727157040013090820777583214040631089732161999064619476802460657645641624640632886448393463387920687054961197875771399500301534169987103428171785024407391803844597956285358413359019347865694959842293628621960125544929958809255952011808809387490409076612015816593693746069940304872913668117320387597454809855363386165744295391568890551192476654760993421800782906974582127412249769169641552354235561662619430782666013790409667375599424830458391163359185051513239107710715413727465177729018938947406846519218010415840394824359897624293071079342767687175434593142611760366060473253209190191301435659563001002944499560367949177091928249256148734000966727960663033811677089133915744922114246759652243818649812844776485650889640680234444268365606423055766652964752527582713963274021848189565482217720643541439481223527055616208007551949199386395932075325517448663082768595178441975446796756626132718973730844457465101228907820030893641763756485885116114509579779893219624881389446494386488908290928270538604501349188945057437116352634878145141998199605642103208150061184375613013973037651364840546796058848026377347676507577863306596827358611717275267310540137201457496183414399848652318025052891972080478470304373452963678868641169470754129298214717551391791920951892138519053056711142158989643878689280776301187177101407109552540944984810241933544903720142796840620819043719760184888712434134025370026021483472398587918052942090332643612717243201527957857281204723321152762861115961349031142770958216092143129767833870425623329212163557322962381482187527770787224558248190094533496847806211612527021695334781440489717873423098537822150546246831266036510001028425632074451813372222344587466425380390788802298079342084012507031619468632965541035052154749390649179877535638822337236260793500954141706406563924989730108722663984922384552619487486124546012465491231084629629015533413175468199789198895678176804174432540955607532579279738173519563689357810931191785217122176889442571756607495552353139209522848719463190305915558371980365155209253248855426800734004856256756157254212901895523421826252936960313868022261800737720433832326211383756690999901649171853106787824143484326081818432302999924190896272033351861657504529945827298042239481455813664878092871435346255763165483323003050642582825514512875713700538139482963010242622473593302537045370062973310237416269453946646025154965558682741942585617788467159154924459908899116459455747066066191107001267569518898015185035495983193857269056911805635384845936023456565559303791773578042688955295997593438387138762090001717613862758465114921846146457322678308527366694924734416655623898532341899643943549974510466023925978895929024568354105233752282270807533506647076280293626059744329456093230975127603770603723895789360713409789785434190945645099310716458454166996094322174383302393365698592311865205981041709703346852520474321394699713747284539718863026622726566123725957912741375846775764247820995354068688542610423928407878279827682346045766951670495958763740109135620069548551889121971086998034149369594635752097645931007451967021894380182310156152354884626222585165033026711791051551280424026422166597235002617536422835950740954153312997846008503915166394742982809116631463744792975904778485904146444935670762254188608518243644934321602913196913171371690153254498106397425450190881814241615609553196862510267170633228596590923688339019381087207778822987336649233011039703784035229105198541330386531596539062904224785319136890822618366425570634987287173966282410020368157137442350404428685757483882953764919033246665549971676204716766581745930616702301320776479179089534105426718387357037156274933478715619461776970746153096072764632226078307550989981907540356672919359602665347533841628422723385340049621207394214588126938577771298266711948502842867214940763352883277195619632894056395435284397322192870530856151669415817976076008192347881692603921324666516295265353561742120147107594776477161045948109542943294192350867568492758717672002851046940871380431411752747446911378867657985115480755521786024894733750769788593788436644856223210141073406169283897665200755742729347658875985483325841731006814376927337750369608130232727065941441229325454473438139042136174126214335501608694213000955960561586618482047593303604199895957089744674716066773640951038122646234204137215425343219377714191302446018677571978986042317640642547516358147783082869170871229634326123052069870633953827374297015859136994106350517283369317521100566228137873668954189404689438218689360126277331225230928949252095148761491627163946197743702109180740572983880328332090651977865550511403722906999482703954343001276636946942802391333626341731633189984948399135407578676558408315800079418268669188103074999407287638809389487264656913276079565652094224066022171252417543564609395130495965496362376848646426164713966823182704985009355883957933630665471809972485322506994518895908991821060043233210377275641999931068251008716795313937176594493788737710732271208918888309837267719459467739200227753258501819179560072019936503204047290393793125533739592244636798531140681184580426571803639253353186470069517487589241412816546536717897255586474877465696003442882957560483499315395721839303587592682768467527534858602531042318520519430244825534002966225051057883425276089396132151970344261757401650571238852811730291300265437685259460003770929289199343652626893420969338051009164176167981647521828815335021187587482546137253750450857622079352092616954665580563082002835174310103055405590148518171802355116431437185011506573103376309059193371410729705732418671862288795198961061475075269215841462284820257340782364860022924048146838593941554650805534886725425559842060230331362908968118573760299610734614565078265463922187331752668632083276264910504182262223448828385753208329170405998426780328132634065261998293282689762235196932559910272972194637090432526144898386285418610651265904067638097315642398522423577798894771273045670774364513582976553333771010029324974333203386024761028396794153960316753925809830835684809344459523891264337013309677039603920734237117391491778265009862522076113370492248367731067696957527903460158678311778122132678570383816424805788573830721740043912544424837701838299456701033181594182998482475549417494737718925629852040167309594969426908448818751278650130305035963861299007851533438862641048404058709950834345161597701805898430258339736639920168926825498590805315023407762986372249109290983707113957829449035836050713879615662536444676406702825650050803289183616018198715594839420409242467374652450048282590312097643419799860693407251200503848698193001448110494473318251117602875449654484354059507466482088012968118840169302553244513715488823580029532554294053267766731501026160912223141188685855590053563348759959819917569501798112222290079264697817498980223573407227369541854600451241490450975071001359941614274739131914881806173699296435623125390727517928748145798450708038429388414873670825372012057513995998417109855057463776123709369030468521303174959473487262818966230811526232779334210224211977273658003772739963986816793721463541558927208840385850262639139197293054867558268002158913041271009052450310521285508941170709354024038005470335123462324971161986543489256528444690342153013601547725118553912493044668190326557029253327997430879954043089080436539313357495555806618436836109315369987162927843313620515479298707454599058236116226914339273191139479993712937014621918665683674844383562106281045014985169214820753712699426829231849892478530866492182558362178353228232629245341486164411818116070184852946047667197786286954105842429006370767563806856860355371104991268545926609701989720217408241760058702466539840956310363075245336464154253763318437231578564842146493772089919769905957682865698878987827685467979866910860546805539763851402368516419978623814509583891673115093590338602862545566396424535532002443448689648404599039086668927517582740673636251149272731784225746537459849068479118825063140753426470924225655610191686770605501886452176084833629298353912308310866245141407729920652384914461769383111078946387823949142797605440976880666329086777884485278420588169712632965991948708209630513244437833860329228210424036775321451677409276857519970935281159996359227993147250717604053741354168197645711317331534516176364429040137636342530113061458060616983104294396966613010285181982707261985922987560440242178341515136011746953641480047504287942726176488225223722714038813136727892752657581991173943783575943597727075124255824703515953195567610750429339687839326277478644579117261336789675461703784382063652943546717972083237913999910904739454996776331481517484990499026535330190314700554688943110413199706552901555948963167214617180889036534782398514807222168451594200607751086439910656112001486704804583406226172927585207887040976477335153420415422532014156318953431300415971747207808513586376731659259152654742260471673657708138654272002130196919487955574355485284090165244311601632340513800419917759043255130259887972371451325791402651175729697231821605429723436026429720168835770012869691115957771758033434769868078571256798027546507278888155795771958216960460175104587481614353419848707388999999273205133001281106553022089347953451011192790449999582079827373388169030695112287254650469907484796376422207805651508562355594335010321929131086516328683967825071027427831650156422172996242679747650345349155355649032196471464966997100862311463457149062626156818969818110112470776865037768839795798065407091171463608838701486959578313223709973336537909653050567429287908354377455114673850149858252294851256743898503236330461125613178730915379752836010439091310608942308681494378634286364157356919879467785305832360857521257137790878876551895722096543999762273524443705668692882864344765052537076033926868970445618139839834538028140330619749168691300027382755570307890445955339339647681890758307043098203502074888791609768748266276666061338909212921987760037771631963161407536202996895197481908479554197729851241644738873667793217401042286221411521306581376022593844319797267599581285164247306136314722496123865959562672239255618247701818027210744441134423367756899465282804335949811604287573978718063640218953809920897815675151836833683553626928821718438634062130843182637906863470023736017337422284086599846782926485331192902432282399320347816659129631554036293421047741285720557128120241170954989731990147239092915043320170831511030461259114141798671943169584636414550608613734201972088036795869705078473518643320224246476305337357073654826053112388151546131265851213552639002691272627146401412680061357869216654541863647953084189353656217520212635378440503415412675255140215640301964043234104425685630429393989187382023717391139724183627521363540782059031313738586081433407409313109003132227388803414505421180870998998774481847230039579846249332861402836521304930639998229413549926019110822495565911605522707994903477257695299864464697935578440834692580854446623755168876669298014311695506607703326942013150185513080473419723541408245739977142180923046358292230140181781589187620106222070708516945514686796329301554276670557369037446451732953305923086129676033218572704949039351172952735386155195979567531193783205269169509222702041145108525707222099991859502842145775355068623480839308507624865462242913764598070310453660211568561306442651400649130781398279540611739028688252653361108653030875277449298712745393875940551557685722850787765058222057492546315946197292675217476880564218364525923326170038676178409033479603133868695723272545703175094955579540460173337235162872495912255590955961011693146582014964962101459707655963251068598142279430938967861734749264901429426924757930920144463088457167485133975314035754835771902823681874689297256333706363377062498225440760723996298423512461983204894378366773938978994355379623437863471742350671669641208966611662562686742369879272133822962856312397324540263018019370965141830706510460798555599157546325217141444670565432734866239086726809563253548820915492136253806957675794776100836284015621700965076589714851647024232182730885893309768967109315212090561163161810482723692546582447874337439110351459778892304391875563849188653847890991227998828131133071500269007139940346177007639741242424849828373336804356330433327844326861944429148854712628602173625104461207973659971830265728157715747871673859421211826432034052455276642332349978731273679993411805691471947942642408682535193999444577025926595044760282055450383704428211989564321742154018271018602317773968838519462400997822280281734624082017281100145957401456969288485791205661600145435737953689110155822507054042448420448354820105173906515263822907543365131446360705511686948340750302480727951993195813240520002929841676451361774852516237929252880643647348597001945699055866708972761191737159683303363360439284304244311409970852420289152393956382939822637676544962510421962818545512967867170367148575066202547735343913967462851959505784629542961006683184801625471009886186926431947756104117099738268845991022978052529639222051755815658818723665232264945294992346142600745803554890805526130605685000336415909604629938536075709420886899077582935088755095919323974772716047779049293956229588550536236002431616807907426281772496346912970018740168590489861362273740557300603687687428976805692689754199961170429947056006421459083059518993712906137944665508586996015364894856213295717385656456742009676435967798830739526700157589855966020889935164346420216670815138161525389159416007103488995420114562872820535894298273104748552674715302376258262266895460804028590268489962361039246981076266271620862570922152616365681958110166793952662410998999425333195455967355965709917645385922641912933976660589786932842432867483868614493319052824856800640209914543198420983465596934669304076530293076573092701921716929832824352418034632206581761246589301702811023347546670601334002670179773240546208822852770312605698493373056475507740766187337765370760233381067899219317687757415850593658777417683364765795187650996803494035996873454611806483078053724824948138313230536026903265484728855019326125029819521908670979858152487355339928601110876064701571074956140643727150061807023008241431088816145875619503677535305748862587190021302567905612129507615347007654520722793581851539060297309599029957604926207939173517449689191997545343430772306702184122717513433830291054686201830466823744681589864490835468946353067916499622141919448358846720436644400300942938139513289770455181268101375120393365540217482475444450877097785235634482774587929030598786454614238352145673619570488274439979547022624324164818125300057172063493559277417217378727475104535281557844317016367967335397223269844844854697403249457284426542553571786066697583765329083042567216879339159069539148587310631409021008077128575137632578718188562589386046799938132134115718437399883130672537992947351124776623024287153833307754895213398520255709494396325375508593045332065934843352389355997344772715281652827054541524809593864559018610659965883370338889438567213096960550309291629124594445619126990695802267334303319879724554454414819759057426132969336236097937236190369427277390749444549520910007918666523208935644375195687679204872077868622039606807487960896328781063816416220994748990549363084706590796064823128533220038670921953039930653396957535732390021999887295441982988638613117866132528654227983480178186350840739787600739556409221065688323340124854562483127350064741199052335443629433518093139522153428420341335328218467637295596799084107016397427929429242219078103855327291362198833187520099016406154213227773748309708510950869963550653590720934496462448151121497811883455493019681148462936199607165662940531387475224713274938251799179009497458191199522048831061887729936418719012369311712721015290273813162789156499880566665396003638262746142839505597913208825441584553744532988225905063931061026761011078796958228104751328573094420678903642057170509437722898971190184542853439132194446046644756686041889553672118482889657399502991601795061706936907278454030723089892600679967388565112160387681802009700885817951255526270369337958046713449020603006728293533977622653463261311498595999042836508376780311279413261817228243514106421884115716984027869401220071895403629914952214974895615597839274526202917791897831788917342972423666003467064515886328194017907806704990003622989526950313587220161561031970656318356360536879764475388929728977499291680145785316422695024985689959285136263137040914047423074371235882557925376628847968401474746724274116227625951649638454417038133489034077078325798294653888758270403058295904707042202690675062180050341696681541737232751928493092507941131573297464087122712489873769661534817708283358571339935310309705812723885881438915624379542365871175061374754961451159710006683425370796793929363046122899038190187889557957484381196895336821926749380714714465951880782029209361972705479596429572864795890063729254986186461033499553194333811029666645931107720687550812117402218290267076430242189672359324751368986924066555845539163990075548134074755417484073000171657169608479945660036521891613881711594664603179024881608105600523842343996917347065300524800732735939671306352503174872081931027608178138461541666114928609203666522551665673780584610067739670293646645255730975539155066770363780601358675435564111647067259604686609937635658166015810052267870250055086984602486951763455260207983156120259276284410149507149073885463680069996379410742608411968512964180856096218742769468427550481516365044435275969306506707816521255404812792161390023277202041600423822513843096842294152389819408939655666675271800090712287184210568717757927995477845750574478053495372079310644429926398499794033632805507010631540366158125922493844947560286110225656009999338165886386631541991156560914477598756347607278387472825952451996134954121988548155474444592543341191828072975995254099022104516764768953271769268787882104095362923167231153330134796554083936329170946511780598057454170225997451511644384041348177082214922967067397629641207319697071812154917327416421319715995536203887918373410682817545303832171795512963066836564026425710649172700783811916307478814486810406779941890022272290829598371965483097484803035370174560185647043744085814897625605850905796417223596001881840805544158792985847564198044337659847431829329681472652519248346289298766539062095340654106549849825943983428807994298746561067921496603719601249072578267651501973764826205422826566797313915388407929828276280670897587672573884416133210297555884582694008725990011774505376957175651050761758258044602901295101133477248416383220152718698969507510532438126295887148428260763115179732420896862108461460903322476516113944608309507001693939754868165403686731108929857439589851002744863772651411597549830601227076565787662574197780243761830031128299383321897900660096934185790519438400062691816605987418230329126359660140366068016740390881170557976603662288058264371493455247094555103003048363570875188297349449551951305929912510007550056393772849711090606159372798855331056968189771545973257586796691160851566492099013190897980703043221738677348634703721188338038295163327253526960486775319760517340388685193467271287123645319361374901521150592964006587334466703319545456976874772674209956422103012235299225017678038452540825386450963481136183471206100894804414368895870484061033662310293472587429287183622925561977843036333656253924570425793012090769806944125195669369357952177269390248396551035160607415135091343110737594445290462461662193190835636374152702107283081959811591177576211666044956785255364525948439392627513851268953443909866333305229315774532538187419517303347171530833844247123786810200797597417783092819328996625152691289114066832756012539073243335499805675808263850265605128489572772627499945335903044339118986619976018919114037329131902226340832142692203471251135345568919277124709967637976470800443920594325264699851215005071482968466484891653951831836889288091571181288616210387702823986039171288056416591994714006797037335210201900194520429851666949792445274786967745047756020497706752375862784736886989487493163014320367275275284706265153041254437265371798690562577045224867752073183698236970156013096450616223201496185838371141059526838404263009974488016817026653639405523170849175414124058788999650639384661443368983628469080406229464561610337419456683474741305220687259291609126678674247719560863410776167229843517612127943784042466134918693827857016843375338473444289297190246869561923697301726333697028826174116883208635122091879132891972314289429319190223090362855146713634664394157703391598510223860702322259023225173495885203626753103382657876271637713330180823364149634858080130885665193499818069667548905200573550214322398429178007910048615971164479562016038442485949430607925216288962051573049212244955142735334759376026835058966885425749796592722035501520268476342762392835099648215164873186297925702720326342698478953259473382220703337708660248088195365403979969119453338748031485990270795232139572771393825962399036899664503640159551916829687725255052086777482290390029582267434047943734930989290447754788131006165364260406199430481769665732564372702798802882815267911373818170790064209211008246202496574270717816034394315020669576899897997115828899573378450003342491179023611206069178215993075658605961391651562343136204010886119636565150910431731774546652711699272935687453988836103870588669227925907692465505419635199293469090140660121609702250929721831630590723582313395741036160675869612590597222121797166143956416603797456932091406858342156599769445410823860127054413874792291492460466593210308904007220916752516740324607946274066470009372948995695498513291737881674446483956684112308230912425054873368279311353297851364719490734150945216902485772636955401349061514197568512808149345909700285170065824924795169668886605987610140014021934555665220283256234587976966800286684387531537355816975593490222051357915483302292051096460050910653928031949579803993079050668543722801105044566966044945018211969367932804176745269722454206013879711381202825706569712500226604880777370480627489609855342367714164580699320561254238123024700523892603331835477048650629213327648204718905149454166791321574336309899743034234110774265739571802409315936604777241427202960446083908726959666607870973327394212062599023898739222979058137338601156290187611066664260725204496108020601013958680283234442429985390189374262617679682697729917722662150479575897779501252182146186321612973556259602863711722953161851332639951060753546112512286497197126957333170996498190918437621829321636431636736313869167576075526634640283942104662259775883273684566826796489160870517686906102258690876664029468513228182945017570850141222354753538398246772626891521193498618828100780666469251577344452114696724794284210512028370924835098243394012961677431982932214659517107447109495749699025684409456717050298349585281418343582534351733792190644845487311175994462863533481985109976486168189804002039497778995050991407077676425633817441119813527827946231939173709294814399258361100595953049517576328454518381988828187437328621503159400874085103973563801079285490244883715725891277259275342546599369115304359624742278115973372588846044395391267086625261174100090123562537429774825317876282785618821842664587404316148785891545670960270260252093987180221960352368105299205944684200861718506756378845033067196499266935313977284821016006405695470898192231842131313661031706268152769903391806016351011911402133317590266352901234992097600097192370895591109463744686974867517546643403599522634793497183725202812920034803574819163398221969186124302572592215364783694980986055229261051454972591159672544669063995455634146979911308392656775578674400627910295338766274467338466533441134602578514375775636319961600552600673592810181945904014307852756026648264008699085733377060703900673149226931231955191212134374739216068252528096573623496545866320839669828146632787641409319164394702720956065307600688602294737548907798247251862371532546918509617238674117708831327417654176295519457834687759462820080453561715026409943581184436260836165715666707182479477826465330756859198703689462619647886892552790169338739645352190477344153090146643300589107415016261931464282196674828086256916106496582839700945440363121070516431099321173533828593141962102686905109319460675432058994349563271798254402890693466135553405177988448935210841562184307965219076009680889054489246271244632943248467400452857108034932731637997634583902519203524051849958346998295972057352073203140296541190738261105587652084832292145061946716991631421995623137055827326229676272601087809124939761984549349857301879084756729387423093491468670933717300130557560795846900620769484174694921315961159014113935120213127288876448343310197928068110145673894487457899131913986678623403435463633806990230947727657591129654255704163862022855156072856317001523421444411631145796688500807123805102781729504645191252174087782394056286430836762007786797010552770585901371425211686558222131432411970483786114837678091618697345954847101307248242504448513526276781291502966317683178942155436994219090034758866338909914729989374569727761968141090727502368836785051400628627312058710953945527700778406477180440679522800653061269099075006997881553315046178687935105982390578180629926521617760191226541422236848780399130924320316194423494240424388404622559207578634503609873661324409231520755725494115859543684517877321271200299931207253840233475824527908768369831603350581224127328829947475742297104570457396141616842250197953073121392781625228829663872775659202179991365088131732917434047699826900818670592283766639051447827402125490645814099152944980285299755933286507036557721924097925522464365633742812324050253114512015821387515122848554488489619805850592730269840560299115968405891415161679322609018721065948638953837920583912914049302181653830675490545334943085826965268893282080512575626228474750378523105516189956363631966466317842007619670470110802610549110988889723036334222614115960106056144807960687520979488024779826444334267874948430871531733497179119768806852068477563710934995391550337999169508338523075015005304743990149130911990201995866866040454424948727794583188486958811006189191917434415057583311509941298997913862178702938220113150447985288152093409172841193897961874401561176604316843780711702267385031358207481362580259353394706662479627609623171938498302562237823610283030782016365273481603510743062189662894951486397263175611618806668433227170677751300067967394992901737017741105393971475091050154755461245749239699528188132096077986943630232030765448767599985786902109188730457888767247912376611914753847054712994796881614005236006173185778150188626763553583323023421161740196917192088350402034103905734619729756814445777498588895192337851168958020815498088641010770672945281688201459854275091577647230923806503480992372895085735891662633017359681555291043683569956940284202990474285546870411724401243853638699359685706843041814115570301103796980893001119482061410951264200316435756922456029034819306101132803086108151841931780830746408499930445591367462650381571140883055782589439251542372787816778364099541544156774003796079275813891986944787735500401225908457294993296514603788451847932919013547229240234381613689066210401165710890661568826387802267995549975987616402693887836085159669123284221302625628026042860187724125179705617779554379244978825113888860491118785717300971370041825363855971876805555373702438422379660752389989049385670091340339212048938692949868689073639549293737178116725395394496522505474956082029880519800335117799388901817684887045006383668343397949131835273201912135592834167878398908432881079853171434741059214932793420845465150129388791588409360584933242657377850494341183183006072304137954916921682080714794316721307456394622229377402015262196734863015207225641271602918544254985946561337364160617265760484769535093140519497027944349741065597269988474285022236370434322700918525679661939080703539818508685561763836214119873578660824519361783839110898930617446607153469980707357277376494216472357830985206156211748342505958736381147397905417998802805588448082552604934959033590753703728182772833167826629630553656778443232515549370765081816131794376264630112720408678373772783863108549522668629914224182108104376185659209253655971059243356738055254819991632918667151260953142981417720819852838806375407998969331501311358354591671930669335712258581366462097376150040976424117212342997814733686511026915002925308733355342423999081033982715251474701322124660741710572798758042523778433760078868125257204360665546589114153345841845923710832876105381093927901779605973793256318007423117086324692317289042152711930642321235947922593250397222705594983996581105384396098720188735228336886403003420597728121239008128084739906829690271800422477687373325114041211294343488438206637738702576796157970767341457319666962243045620526130736749054650486426839218175733354356688446912666096930023032633636949208953344178182290606821012062652400995947929087127950065150632866267444210493304546643556208597981289094447462798384271726428152134311866404125591492163633630848017207182958523838297936780095349865177762237568370363896799774191002935862422004734541059589217739442066317102683164203332579623935806041206551557395797643215792957336932694050401856763943362977635406968439023352995335848250445558122686393935699465227361769564150799199041809468293278369172538931174808750371380549082883246521219450939526065014462498329630552138246176800367752191095061456867638705484011403084257313966944912690205119650535483061901299134752038590806895014105104587257363769421002260485523310720302632597356662825851550846135297672815194893632042798766681898497701416220785570322306344957031221803176875729003836825581778865512508954437997828091653871243449185781487318628072288413965236490609379561867378144631297143151816121854970528311053795979552135182400879755223997708092632403380878804072314583026568395876916138838627736803331237652139323815697594202811012283556636930809555866135620038185555650668472117129627218808342005639211561574345708123066313866759971316305239724584316406006057412453608492428228245216242612239815818911376212211223043091584864647993606332618608102149860228136549228155242907767571196456870284612617624009909891336718588538734865554971565078509707135981375437773840737354751599907525369612916482535145430119830829253714540250472771475343434753215583937128619960879704687331828621154693761759163422988117634070583469498544574176413690601983552410693160197695674231810874367833346070198642465206889871155728474208850574505332766715393751068171688394914981664278977734749633295107322660802320299386698646747725251241533300850683056412576997398459196679003940812788723435876150700257917840354457225678989047417795616278940062642956906468639830838073338753621080107857987602932905624745333238468896630114919480156820670201588713809435706712692598030083397411308232229223070165928608683946007698048697773209464094491148809206309419764465558971320003321824523695946838839680252648319077751260963769716477444287352143541905380345731753512155473337782259775759884591192245282531963838836980283397188594636470359988020307993825297844060333440818530226299947245578308547355522027554971420680106892141704533393931108398223736369582562640367726558140697396328459710433159946152358994037806847986530767323752686088569286935255241079267940872196172838444103023316306254758955080196612652299392383348294891944614897586635184237837614557530435330949344827173282136249558091499872981822253576764475218302672276091262749227564860998574575530328554980807136864158237120621915768702265192612815785755933121962970355542921025170378538040961274951014244680919050667496500637136408130349827649167757202009672882499201410947477449659166132963424962197702289378453494487310258509331877037538682978243690082068613727009833136217774729939894819587329148150302991970337983101337790261340631388741509186532933492156696947581548885604847651900882687913828193092576826672582666359300216551107462906682617418660087511264118551076111662196427931280071475215997762148620879837719013508680020048890965156945646334301802301365969296301977606430058581310888264416380688178319166144246600377482849045200019403824159899290721949663467196135560405310874932852423433726618595766284331384492124797284819266423121169018140195103891503858682230199015255656542866720392860035656599953255012402652702280564226354304275496029479329614158744905420949638047225054917020698038694840227508641323562929840896542358124016676789547180215325977081207216219387704616974433171143126455165010700392989122149040683645787414964214280658598731669524447805413209146810479353838347265282571209459237499647514956529263106382457915265422654115823839042446096703025677095353731188471960072250906988017258990478397928972682180352208670567163527315712275337545873718613325880134854887313963142237623273564527576975548099422138525367338828584995046556225525005638223162475351897489660097588959240391530119019031349235653966076244402753005974575660673992483840068477359275830608500912591848909840472279248086163828582938023802076081072357645596531268993537752765717323683343638902891116540937879485449135592160319208855016791732830134676652386229317888105248548808273380318179406370262989729027183983813003959138653659538090730504967360145902761008549560196398527578793341136701146024371689786186954435562167973525181649024644921131872779241426273372499524914650304628567495575879292389695948527508706401257245122029576246647099768186123074779213396532634153827778819798415620693187929947311321269546736300022636628646492596897925185579937708646728565714728073943453215629941547451425662818434552160793313954239841696658937645989041963846595553507188487296378206936836576629337664547152492175989812511079017813941177046230108655997852949065634310213921369786321787558233246973762259058183241411322700767743511212010331339489087981061253768752643870912555892371859701403577193133142784638008103723746494508951096620278337283470078190652726053487886663165008494212863990015106363431605304397875792357230247857566675589304241741863766938059123371203772023439082353480987881102412029433205227496658768098753526430592020943669590905435916366863777166759513081728200507195070161805663528009272751270656981366752772137185555074602335033173179680568932903877104302992465322770449377681786051682475686157731025365388240827822408995567109440931124919619759605484178610907483190335650701817767084540749181535809610414503161384988050109447121843108942692212610193991242878196786972817431873946725462209140416224996277516410098058835955508977735051746923545455575436478146897900715319156239342293483893953946974311303801277804267705832804140753239517747793357375830737710516568039984292507258538253745066994648771108110518311011116650948228536919583283047476780117163982652616763662950001951842351300928545468939176285206503755809071351569173956171810314272018369235630611650146899500721077191521953166964495527497673436239581858188698452278539936139547654010335804154438160301479322976492248146372124611068668761089795866862946543517723355188228316382975112130433484436395084864454912616034728247631489827878161257178865069304999089437514655006001340024849028021897375361959805166375718500891012938241313189263766085991000004777600402515190485130204976110458716215701812529719086954325309929304647568996173463911925601292624865131629281377923571011637158011750780778775750294651071050090970860030052593907878083283614520775886086547350802992493985161541462672076676006183889288942855254604269627569886544831929981180448948979619237739035192758424135130218924213765023982824611594370481647642304761295323683641616839423265681709301325673584404074798261472672618882672031725077537386379929369595227244602884535784365530969846027503627922798358240203191563926095630329777252775032211790079690691141214403119509217914371902809769083824270155580278106946703711537987903581101338802756027926969530894319276599867038568334781761579777755299736228863017869235114224101108892621018653434049444637153963961044320490600213130348982937752416980618796849649393831035283253239361576102149784909413591245335711378281487608478634521035581236300636674151246321096738486792472972240206727825862457966937471123901394412413575709795334266221192418812240186155479609078709719598142871526527116689389871025002434757355722139234935055237680963835098219062180353888321747907409136235076870794738670217703642628067128370558531146038745125041789367341165935985966805865040139763153911305349592524765815406302891841134862138415565030407156663825802728257805007384997739288506306558777296078100490279421646966477003212437285960225226590084204158946398481960355230521714669166990322507670952258174064325276065098908927283224833208352443205403321982006434030258815626052784000608180138019783526083761315993312387094474023805730728430196453782120645159905468246126357030241527704682351760454328635056588957081483930537040062749031265005827239620683372900905774910353910161310752466293958786025042712182970032524767171197572542431816114295045217378110820013446995247851707519820111598914751341393008138299580508665764041925639277477717166580806745140630483905406132561115423687570686739148087779438592066820948074978242379838187449670216833364956772087787081283443220704294646987202650708401030563991458370259870603267632038648387034099160034399961169053435483740473101073043829457892083725209954587977736066215596414935168943331008777110700990577434146904548710260786594991989109992539424411851944503790376375291553403977998584330028488838482213130461733311254573924037656444319293384112220989412172116314620690833766964467646953876603781769411108528221926151249468066647412339457441490884536901783650768443521222833802561831736842341846036326155385513753531034572921358715675865451569017810466565103964751714240126264747316564316968888251682572904681704989008308334438276956870137869159153851109058366501169984536899375157291846105648503058288935100393854321189417039459500745351005593285749486806003940915991618731316292353875552526006965587869248119204155195013324967390008567560825890823987126726821639249794525922518125237364196248812276032249232524907312719420772727894538801354244928030285348647942286304543767492261983228343299863676188290977228551240354609734938657979044653673249688343737075015400856259853199362548808346494421957866962644706879142207737135857539929090184566058479741928690199944770243791714187502130845483757029991848136198164926798012232434281548175695550993505895072823695635102001029943325870942419543487797850379766738268880621231470215003670807746239259123256392444069716225236290880923200999950133839364581275118878372140217559977696475595898333301961636610374343268696930751804897574546358755825202382603574696114243146074912016906583675780451547808626383342883625905690925416557766114698175628696552397025502458034897820784101656654582239291191311463740478860542827883476239664161045808609113351282676047108807023670636429726618557175406452331693376107249190731911315842839175067946591021046712779357943979278230258927108190937663448280454481704885760042105392028595863982831993759868556372753751410224883666248500477496652764724576033911031998935562290373565450674949191813853190248136870613771588866665434847116381035939925029596958086420533505634116985987991031189189386482060939200801076718526027981173226722641196720368895835790484500552824799884193121256037418650915668991707530586468754944309665978897536188807372104305366097048332838842365736108741694083916319059239141582866315883374985977855085737673292815670260391733551788703956872813165593703600303863558503317918086944727281164806528762823152271535412574079374847774794640652849876440326018563649136642773681248733744266115673517041223990029997355366918091497255644454171265363922506019511041757596460238930742799206531183501923134174293467159095465293456837779806488204891532645436154238070616371305571826276672049082583965908387137227076486708591306612075637943193050302311115316862029486905223134162818448397866856028833436164821970432203630774235241320644305706983317947044518637309012499342805913007503139449362530718077138647958556603336278234736656340043116118331639459305448315618466716162683388140880265599243687084748269523013306319852605481272580195331181617674299008909009646237368703826512686473157679539635487324696456185242569856391843216311343520596598049255481756471640109895664322962557442985578936757568322645385616815759767064624489496994176049035869499903551465663919695692621004695250995374568250684063312020718000677364123002396125414655947014447075474718745164059675389222838265392494883683522116788190743081449398785936409970194937115199994095534644581272511065523362016104479534326003978906927101945385302777055087512963968385540222546128745033450249169303262679637339982465198004594107183004128567425794540822800430498506989514571816745392172578840840142448963163845618722273044845226250961801210436096988931061129031905782765296609262497340630233348893786355090836081369965893855639463676322312703175696523061143631176334682217785771008869604022200821185491591999297151084537369426540944448031954514708172921370222179482087409883964946295325293360572520305368048215025199033706821901811125700113986959411110986417640645124902964982254492427153089582190075041096401715502630315580005229688350347339930415958561266359010365629043570555683588406221591790909073515582726969236017365806210260556737697842461888210716412438341437749971669178054900013585088051521333286432694632981026926264802263746022640256836394540809951362436840448144750363049688050606852177349404381918868251120307537521992100419883020020848265641506232874959062867932273314412512695179341844410913816333882949670025475768180637317442634739695395070087524671275032578969952049551626035120293563130747148603440356221589759041468333390284137708005610378656053119784228592549807724907254051066689201073550296287688503250230668476531788657865567260952463130601717150163239511193553113264194561972772721757306797094541567594518858435097284594811721807155301407774978062269933476843835595275563357109904164133562224701471948896312713496512078927193422976891131285480994084748392400070403098047856357405749938620184383764447156825391666196175065169503724350445460284421348941910678089407449609188926802588247168014645786665564469113794806610643810584650018866974492662591539907467862589890537647786545102024466063673866231277682283780149287061900441752505289726043592930464432748339284322814607208625225825732208036835266013394023617959198137252980205622172099390111806691142574821671404106283980041089785720652025114254974867468758246844229184929998143115094245700821445945449200880069164404496819124776387921503558672744547873261768698191253381372674584595761937028048264918370195164651953241376231775921056536445858585146595766341455776708466402250612808404729535043347553165723283546080273960177523552985616915977296877868033811869481908538978534513848620743608612513977264464958109839856543717005226035028589663039384369820537690118563867478741114174610433321337863286289924055610692886906780249300251844273046366662379040676820902249544603807764598330162627103738181570989932726469965119960895279844924468269979847936796884578647821106193215755096540358956747545771033644948578262121828195613131908908328377822154982571294025204030420005035667607057906704826329567828188085411162716765268727494793821045586195783667221458684058484528199874631145803687096801296560823617185735151965384385830708324445900267877199491183011332145327695841860838897074110474470221499409849693633083855855303845754758843333004344573534985160224022036679629029764467015971141627533826923963198026891056886084227891085239587674135296391206917163373114666715569358165732279394843538788844694462546445311641266308776407224855152044178147858077929221120314162034274508946920277940031017597536336511123836511639092443622703919629527444709105419136332890235336227522759083798255850949611162912582233851827952794588164938783809465627164855439705809196777261863935337753284390509130318011646873975381267587621343000988130426597335167082288958732821373713411566341402049532477094669829360512864377777658545165573479804480702824034142469987127726117271414920126972860101519760421444164884313019732318223796702588604484226089045514928864216822647033597650583040982955775422154303769461975103673264000292872482020736376837365625543211777803883336280004191053274114092930475522069160839334716162462162303417027472401512045323190404788006221371446998796499377849697605487540774359637436713525241715319814944334627225197262370257341351838120547313850355031119254204035190776328330679491332390600674030613988607379107788001825071834445318507593202257591398665027769826530017900340151869513062639944454083608502130855576336364078700738191990455902415333542636342005887228216099682972561235794512637811472763892556449179853764247511523316325945251636297455900293957398381440725940137577652202646013200523681252396786208095230879629950547286720694969494312419770390055180291897820349430953707953446821530411213041510815374133186444227453271750486529451618490679828213618094270797884292326148632109774455944665232248169371277579106278826454344777264142250596689662013451277360315158494522979182439231200673801867090585879653518739004457338688035900677202134787593219501695667415346692417332684681362979310997369162622653742907217322566814234627467420636532109284149384932960874202519265036085969327034434272210320028515851224079136497388281523753453043943222064162816152585690465989397398418119801041068133030017218870451591537600389384817535304471662456575237351617629037451843476557781031259767081080790997835715212266565095099572550452717926081208769444286786892582028300628002796671140808255746289776329374524675463032091537345153480033646688803437098785296628012297521962024376680413302989514795586331239799246545659278274321399912227902045391316221954743648700391152142942241823275388297170757535423493244028768058775987674416164011507438166194494526716038577078115312782188260988698386818217899301342602251126423044308159715743568277594631655762902087810579814066158441548599634447142237786932981912861914327774415088499596010640271477691337044010511007071505899662318659692653908461483818660365890497706961067184130948717403136426930100425218851996734904481474757591321288577109162490596651254545820258295353124753506278318121859807742609309325749286977113223922114135314382146380379768373968042187946223621736990677856395319822027962830855892553735962416297513359894772763882191616982753015952779431973502589544475950845801585718048878948739245442007100083103142697625639676090345964544110718778597517175564324066588133226116235254733278757284404770930204055406928096896376643823370512704407952693481733264409826034231650076009573224743970058150014708455092721391077658835924138410360828627630946124260263928698729554070682414411650988828327336073247269201761949865804510740230956094027221428738216546333077405035465200792702681120202493203319408942500862829179962551099234417366203015549817202860056839910474062398761495248199179453737103447651737872508440046621310706163061731966593504382659780231807344754051546124243362185445599327735754919556707775620827861889429414060697979980903230437843574747131774595932906151922824196322226496672310285191858495976954583708660889607238358981924359095342039688651631579848947612695450225643833213198892247164411301204867190263625071501954968750060241822951093881500537514575101745660735797334424905522100822781884292800302781606364700752217279940166856131834903089628759177209096920798070625377895116739383068211672536593703474749942211067874939499215659308454766577614318139014968143577882773838354634028440245023852500634095721197845862588467520018719841400672043750351910325673521144915263948964440315774627795170526414322627523292500604295536255654033675502461078702989878867312713018580743624251937759851028887136918063701901776900763464511145643198692577026007728072563531253566640552385739872185035208922313256016860140811803116562538429386429295082279084387078362477994080636701508079366231678916619002796138220923835903216501913309568838187205387311165677557752357727243924096809005387283139556520905254004001973615553956743749269802312825400142754192546472360005954294926157231639510717979747213339466118225201236058572075085130616078817905162438002874372965790560981984485446473077512104868527475720374242036250927683047657128947976299393829870640204235789970175621103907400228668074676186453683134434723587688201860781151006967105405962523000009209937808503334882969729432934991201862900626874637697704868950839051327516680292845875074042108378529259797408530564219163966561950057855378708435719869619836837663992353705133851123053825480263438609818480524599592415781951292032545167519581757515901937618146426656977804006017634053926731025630632121757206662497303835552019051450361728400949860539843213734482585605078781188521583741483877701815994221546895000385990428899517727476307122182418203364892372627008812144872584013164312522951110308418967263333707547954582469913592336086265799588681799778935126028667043488221645344330155752435073565052126514386657254692718133896754703686623327420349436449829126384821960824628495513288252462823034861135043992361999805347187201967199566506013191317499306502031808928686788508873033683112588540934409616662332426585618220092257083917126766874712350010531331368318883144017420581063592830993389332360687961486988072616228789802094164955591602844469636719261908476689588468532610669156744728745099176549357163141667767075364039971735140185708327026366363060556531196989060727092985017915432305166668444823223909590718284732665681728404210319065352738552991139533159371243259020074925177634606862760675938147543193614128780940288121407575172475808299892320761472435936469382354698974283119954462311351865620988914975197882866955160109895891433988576069151534835819387638621805666707907042448033190303197246530154179435976730209039049283353201065455542126166413988066622148709681499311765616720169216060542997003739913161604584663897154900732867674637688871960259704192241935102611567656734538054270455274335964970886105151291103221219046721240240700132867626965372569872044248578806394869184004706888386022304206508970654800013951610370000812055869644999556959877259851699228675640445281127589759921284050482770205357587007029419480652814576770937984290619395667784944435154235446394325637951562071118230868284098834811622399142372343345066819294017266530609817785255295698631689368170763798371022560635724649726447087622165187980407156806936170007999440043182453091776318468283214117679355588561895343498019206327308450548734668688089932846972787801465496467208219590728061810969800032303303450920890062853815099379573945660829925382587341765197508005260166868637656102373751874526889055533579737500392005325970055358684081390662062378871998493506927239473862482479182512979676737189533146683211824204135656441113497489137214275666303549990178197608378332203703271024231888370812311840680093603774069455123560543519451226186775469517611485373655709880328612506233384143849290187240449193081778129880021741914456195626112227771666064497419691772183346886382949968843069960549104301098261277449112955681324530613106226228448743884307732311160965639223138199227467519048067426539208545336942276629387625149814567719919594186666662286777480469035326657660290428328090798668134353251137894262022725062722279204562393667373911389703965233534732191468996538517105463864551766744407919933109785212010174925442420701713683257657784266260976312182794608004082174973143279435760778384852801046132939754536146317794811387420027430851233974677765577746700497094250157041622491894983414505438362335717277423386801247916861300233675836830733718975992131904475707269200576096673764355769247980234034558424695712512697532048741637430585960089768537720266769963993212989189102720395202205770693716108004879833335918198997409350748801233641269506610861582345525177836049796311177841709577205498552190503564607563500038518196066401302905131014147535053019293431229212351614806430075382968896310018330861974586776264305931443897951736441934574949898320314025696817627091320151556789906845680153523444121645835204626688622813506993195621351032790042012809985612163413097921587234678873680333990993006016866447264661089122170652840471902000073577124055202461005028195437533681211676154899428149062609929562477781219661726373286108700965945706053544779047781796837189821281868969548470412102897001435076725328312301113567382355799573817819010348803778397137072911833260850914746227029958248614671381953594222919049558070895223788414586131330039721827048501489209577837661107053837595065391372517203581084160844534046552186087638982748113225970472546102949297216076738502046232599990839361794096725635096403069401995944573190709751534815653876106728524076612753342911672588765861513961825739939844870905755926048105424261121739738836789153327495679232898826164541881743716306794719775966290097950950659321997852290957448338631857431602024101512362898698761406604336383228642185581720137050047555310895039579849136369419483492828848553759537241694622556253709269080678636501009837770231764992823870175068936101621773847025437554557565034680005090365854110198474458007711344158300073333216768646044762688513550705932971405334556208079698338051123634065916463057205647391594877290353561860507405166119739402935856364889719886039843990847949762921917406952048518106637192805432091785385544852638678822575393555656149083232199457575506539527414607288347189727583853970689074836802575497318786699249053669362903124902305735242966672839660645152591327736395011785410990154184973710909976278330287304389248223875897434021986913699035828172069503241835970285271968938340847184288139560161711291459800609931627917806063734757213968177163592097445361901915338302820062522189260599598311363492274410059847338186494846074767686185501895299110842614782944883863738866246730170963543004331956894259990872268157529975110276496277690532424312009551454802294260744563192046683564939682843626170450501697651766769308690502890117355981828349470374359925042817363250232534682428762350439145103306870440250570586173387038702410108970850287975043062923151015207742998039815591272680251867316673919362249465409340646265704302447823119165652837962271721326551661913602535961215429979687229386852431912117317774819913735554378451278647752894983101870022085261323103713454249370899471980184757528162507283559641023260692428361171362148415216420513698075241245539167909915007366905804010481889083407097462316715201443155593591238444400660689127261955924927377126832679637518277245428727057512086513621092193408682965430446037493803869833155078202486692639125550843900709625681761635395494609867841866523122172597880053316273453888821392214731437828348499179733384545307113678016124989146501295639796230758178777999415526584591844390355961696899452539212277929449156061423038290977654378220510562203139395907817762895933266388561983310648988737297999961268006996390400588756955088325128173739864024407649360730351060028685445267906876465468956799838438881172054102618961488809910824479425520203382823228763179346215438776303443584402796149544119791905349195858490253790077797267042309799296029267949489943317864454940265101126884424774538511387749635454623097003075564486491103676683172840401168222816529869135450495579159355518501977942323278114047807362281925618399670858801232450466461094297661485685990777475449967295919027641528423495635734642550657904507537511162140638670202979092837194719255319144672973255149526852569457800228765441894631236511176568836793431876272214546870814548996381648466134871042849553098221561213506904499544844708756090697116751787441119024196866904028403790369988117318008610268060742972391584271860955721773537085645293887786612089369252900378232991758285474896333560787630917159533468671284972818912953366135188637728144625893547877576100228934196370129787698806377832906954706687440728538104538891739800346893785855686299910080468664200823445566006910670684226242959433066980442634439573818329222566050626456761904602485828391930369998580978795110408067058071597220113533284426034546691824574975501992875920031029414343579345212244051636946976853209759398726419586460269357724426203644655120527196134426163335840116364809240261750681985903123320538715779134812215866355814370478385723286717293213517837468284912997000678177524529149994826168077628685004178530701584579047130579411185237384325139711709222459807332911816282511218047423542355470911137006875147438910874525376503421860153182241778240529936694561803581030379150346149697672681134679174924112175416596301032784911827055691945042822380624749372691170080136199365834033882499463292523761373041996377463073068214863886996141105132490749077307975754722209074634907760258575171481912159440539440400881356668135953602191464942823189738175545975173856128766777389370734664483916481827561416341135660098676807106468413185402422368869557324911084963547096000603691022637266398163372615079188294649617744730837962287410301630811955349624018929467670224084536675534791386196138074703063125368183783083850038945321026343287717970594522044164429459915584698242550730376497816255286951940567767013382360840058212164617504294218353127188302710695022596238015632636318652050138251638530739583094638044967264435395119086322436643120761337332550921048828361850331006236134145367071825351769494447824685742632451449198619588204205061483607011718121674305464871200279197646547983091605499383478662879290378535464798957731236445507859646476443321258433010698434148885404839446667673887756296828484977132907495590989974201138881399196214237724416163710596393106863201109788254003060486590652446078821422883867630687768509878372115356556383587665961960456133913200828705504576046907790767038888329750266632992467713504488443129771671328715616620166410063459099512608316592640089042038904555486779504503048981022900223602718068566225091259514672880465723977680201077804366760097310461997287591133929153112514804138210710896813549716526211573090949837665594535903619633728819149781939540233736370553410954451680864128962397817682847553135008704776921059338269051439671589353472294729163538073063297052417764622786212010391361668707833360666578464396123810163201091032519241462423243975934217214134695820070425126765548135904444355814237624358886673069121623431843616127238299297412905696878721805800164597282754402603460984279415535254187784496441807185319939348134136815640820311342745757373159659346756529945489007202224606496000538041011388982246238933959973198718809177481607771977609071281372392193776609077362613185671786187247151932836807639099374900306723159499515218132429592286061973827476595738333925804791695934398180182767258399916762372435209360624925716279422516096060279057088799219707249948903079829139586077002352388332878977340710604157257353211156107015380908504377451074125031698109886198461658596338330728970371456864392085225836860806732515467758569588877692693002224831155621024370562821677681997833218134594868665641511264184352845885891144142806647770713122768432147177311992014440525567069299151864721231340969902878844718813592926172610783032668820987878707988122223295565600589330099803571296342600657868277338861663548292121760009568097078991049748000172340718759918393581390705401413344126454970313498951163865614830373358965877336496642626514066201432747726159852774054105689688149274697463754961512884909036223583725829576261193098220622498968835253887491939408029318484456685594660852378141480011318925064656600832343819552815611857714390658509471633284464497943762386833352784999211861717965314543865415513884440367199948485548257347102409588192170845689593701683796674284429732490574132235174823507935831632448497732832201994457119868776342355179358701355229066093460747386788221889193587663124535773108371290416593585178442514858699253960353463308675617063711627726832953772817593229585089688020536292110769030152213873585082556650467752885013023002689998311423202010346987150981085116696249386840202998198923321067775710693631994806215526670564354279100122614036492274068658244136478781527565990334605990463611132639095258142070020604520116806712885380173750323087796489361853115570965722726787487373816972791575718469145210918109629043204377474092384394240658172542328536559521592765240633673706705457776201103413040995626117217404322675205751689071946760664986462158853821984977942909993542669915201520026231740344064372136467461296808261716980077265867132326911372124889605218586972707686049173307490906155440167758365513596993517677951756310786792505279075542109839089862755279337904891943576873742472679570553180823787504228269075398654990973667882029922591372122148390914530004966360937911047015431768199896084091297792734519142713508932621107895434418191211827472310354492916493859783335696943009230559556662049285468526257247704268409209452210414168169613809819501920612885753195624817591613923438126882381334422361476470561091749285742170059528081171670924626499191103227201000413211338567515043010223540244130440535594507150274979320843664054781071397105390312352053434871910538512226264782524270053297909581734605751614122382631931025580939237189143838411428005135744521856650169737705125468296897784481943829451372460920452130390568977311984629935108871843861911270667282346785543560574733738353981986899319762860092618018171242830252406385800482584500338611675896026809649139568958143724037781782068170342692835933371791613671661248199191558839898565628668731602501931338969174999111338715372117806625410789936012574956284310730719372524984834451904219712917107918330407598982170416941704451043518297251591729040629388324575294909637823019690397059615085920808945052094659662239408078166562222394732320204341664779465715221226063860996991255350201741506978029330092341497523647688965605473443553638238264959083851122189342931776441439658702885689695899210226414728872648047137133680994046404257026416338635205266290839484438745367206892850410383026576819053847127526140383684176988436732132614083664800746444096278808524911009762438535920442414535563480532294434787986119721816254004823299129584916623596405269658645841727936932854229557409696035714371826096297053228599396196650466596025578933308693212118556691489460466893555869716694329633812216810915145719245669922668159497075200593281138694635655420593557459359682151285874398538234225352248646204858150913127574891418762925496408046644333112624788046093911666479470182362802476061393949767916540984145960761091041711314719444553937048049625506400914100634185179012849352570649179418544037192813317771424912841006125560200179871726175922642694557241350400019103404135735167018437041162290118854247524785558154931972087554725216352456024218903392564438248552999582341393289476088883232931195277618112170168083711034259198450029356193162178070047552298969719985443480764775866952082059893163928418024959292142621892022994254719120560086260416456037471083565567133289848446038591057226287475315482726559972935981192515908574063630764614374962798039275952680035813227460228964182362030912047181501065741019555901402250649823155012794386318013724378061757399651571941786502914856685476802454494140903465567884215710148538263067064294170282935906058754759327492135807929041591853834563792368619360352634323295760079698088426481110976012726305009807461430445012187131881243658408545611113538041862476613849311167329903904004573504801858541793978317788347706356115452182850150461359461383703574247087567479116857575206048607441138070593155372928670630682055214095860847352617298544063026440863001810832671885373566406709376475409433122163370199235995663298170419271709997630398181780874307929688074727294058416239882946725896052167182364654319799374044095969453901878124989253690834609109208697303849494458769698008342822953551346424241140903973350956198849843553474321450857905858767474764862616900433819599714979881378745238076943860149511724868382994557161248896230185011465109151411213218458885283019175866650041156452794532434421485101852730598042388357940129264965495119421438035652543218751311028888843135427208989077390196908845243825759080021090970865294714529840014552359862569469692000945027109581546601908335589138585947192105630284372284057713702511204413046079630354261093545360697612135311572397984709017646740278522646035826921585297327754462589880687895934171729356078658099124905927527075555980190112528165095935856689011575829657898000434824098256691100004545959829881082040589260667710333228004474815588212758724726004949499240049049615759010939797301687733927876480977937813676313831168349905886351359994352436764431486813464312426816183540879263177507160964786435464627955859134354118341803853765496950507966625255769961167248576404243997156064428443423964107301072328406619360214038081485766136809727857000002343424334441659582132733004281255263031821125441944492911979740425769593998194781110883411446708474074157305739521958585689971318299447306966756132290577915954189607303604109367297749263354363159734774222982984185896294599816577795729785247190244077574234761943012979457286192362393301299715742121501332689563031562834895437619222482297294973364458039003066591247210987671298768823723977400024836632076654274917259018422099217058605207549970542780701725545420117157198616765516186669092081339635492944718153119759111662792384009002352661746091064820102703383166175076072424247473858910913545792722788530998065622026760059767589443052834253967450233040616951387148697309301199838239577893126424853323036421457627223757682600066776528901841455006927007755464694064844204315948879231114737693583003043070270752580058288659734960753704409533659776329248966872230693914039212837506725138116572430579753909637164274776031105584781610400369459676819456558105045274104538472501449805879664801573956768162665376537842738043143249175156548339566327328738059963169238148666535212136963091436528533929245278743704862052801617680578402285654854366635768214949991885889076228927482027624316593824690765935592673768476365250604757461876008330910649227058272615931385827018031420673621433964701615663247542113703821574930372369781531282381775280190130684656308859520797282981773967279746370018709155483528461413603147326940895116255938382367795444762100822656805457955603597107442930505267878309364125408434633114604250085855821939132457866994577329403160100809257611275812014790019729408035532134087892531824170372645981725683643406445404612161130963741823566793879464951605089152793264851465518956941004348549535309228440213829530253964143102643864682942019122465610812168963844248046763974276563286393622906111354804674002556615285887625724903736176838864469474184672462483904897242714145607584200391567344314705925233631563970195725984323399275384854742120033460689740138491755777564355880225289020418668168408478997848063812681491781759512641321695530600053842956487794268640089145651850609150950095972270976461004782504693744108253224343213426017325887464503784648912954121361182512956929727023818924247345873012681963762731851676463030234348725435475143293882557880035586186473021015755328201593737809530807158592325090390733728071768416461702213837088531383236915980150524601173439577133939060715979442630054263398990213927995728474998126118562311860617869192012114917318767168678079260235468214204910301118631119321728557574834818714306525996441038178296633889878716696297787854018502817439950696162179549406558325911521435600860935679527018573145424880089159043680832737327273477698982087058191156567568855880884726326821544885186484799346556961915682232481006594532971830095479620469523230428534150529100973891910086073486801905422694568427142561728968454499376276003495387503331406649323141670751474371162397233925593118792659877714774837843512823492834671374952106997966724927113877943219494688114086379081850995123426274968433215034625022989978490584500417496852892284716137160705641501042254230841424412915987070051532861819539605445452300109227654737414156933308825380309829910686831528706891506419509737952261575584185582246130750144220914759130720704112683234914869576363117115378569694885287314361810747586299430160731091722623950111608714030315143570345065090409612837141097148357320688052031203850659637052910161528603549873742885136541309811037209708222846344885545128278784570531427499873087539185366723127700167188221719581970720734091089900381536918005799488946774073604129386374174584299930999927263877772373133381617113314559305551155083401145306405670038591261595980245264851867493201071501983401693606183985435693836110202873572149919778633813215438247425957549975671831987858858149209017983496855083784948868012594715507945592338435285142647529982960396659103116557057094383802684653950560973920923000442020215193728578974642679459899080890386378344618335988829820000001697686313553380200998345853257592308501092601847082722879202869815717098633898118341414191712810257262434392027190187571951497231476369043605356022355147958668514791661113143976223313970323247783777931654539412430709897641898468973187264283793833590657696700084551841249896309824577045638295124158001275753350929136547172302941583287975213727185040548878258861138193970925347174952142373542264464794573737117274660014663845018838163496618370326136655683691284474898469653212307795812861317843700946187641677511742112870083900096757303291648010487658255678350664762594666772761181242603072173274122868618232353285647978818044009474725788917127254998912429984029580279047355079103675350409933618967719825826836441266538589440271465962838351274862151844926676729453763471993161054717661212547545360408159137278435329754382422606167337730447039904038715462136696918620191905301908022240057317221121607921991281820867754415485702125647110450440157045607332798812464269199263666759523194820879131698982256336827581122677687919911076113836699986360477470303316702293677867851908108490942344625075605495620491849273486174077712377352304298448610587746812996681928161836070029523823590461162369970601416824561941744595631352824290011110186505415960255116165183006884138120397877377766462845900065360871150324710390418356811515148184738483813332678021180458529288184602469329254137427373896517951151724019962656116993357437466394929280004971668097513177947244880209549104313722604429873891351974835877295672072812321175979275974402239236685032767023311961439521115544850829876586077120449862483574916519595916395641224249309484546632846604546009837610581045266789221785246380316273539079268888778332347560104474925476842463456942818992642542682648108765609613515587293677452396296142517113767844792698434862617790847250980462936905492702974227494546696082418486334952793992865042034917653358100927647120266308967640668663034762672909442465637391794125019880659384908757747788928380226529256181072586739865472975734941553770563159367971196182800470701482200340286014326248235622019149444531535010654101228099960707307401775956814470227351098183707482713309718924585583114267601815483161103211578073493489078058684026924178184337848658910991085638121935855020045180814309023174116264409493901723499151038916013570346162466915182730601423030627889547149473247667196191910917175794974136977845668907835021876036798494951996011463083106445687835497850362753003878440321259074020024449504794069971359026224943780766370384323322409608552724376287400888198860722356330929422280986720505264735714700757359969220199583529689424595303702961216467533078235044978880750021125519610103069324055423299420853962682303671891932723907051787223303449353904291923841457475104884123078242260063847967470653082269392796828919705629260116495206429813040294486554507378666084703310354719393598312946863345472787960199464162201649756245342447480687353082633175335918740597952837947185964612488507192272102148367881853488549001051122056868829670961048027976350461810503566840105792496125893862293037224232262607541041545236516705052179384308360054669886775582681816927745363358593147645150290190421629714266783678272506466319451550529686363311593724592523647142829987087516383158814816488160546272385137989201432421173269182791580671706750482766334762940753657787119688139112874040794971716921059911194351896014506911642465038438401431548469499809210267319652025251794481418182388263037854125838455071377560554351755581499993768323866638417787190535082881164483042042232172181511813005919128213321207504255377592301101979070573599060221616385447141490960525542859254151600995670346150952755160485967461475951152236598752870053833700594394492877813415165978269070078731283969640153799517353253806160306830586124023953846055803850336939540880678038998076868281299774576235687426417142785695305774169025691811600484544791590918107238354752498793973709864268027031516636073800001146723252135219616067430689721884455794478735595510798705698452455631025573927293413307899945197353057292060409966921912121185455062843527367464279903599177385695692078499925415998300301696676886671869408996755324957537619677919928610936710877400835539345462924709120444958741581566344393764800619588963803914646535011437057054081975144689988935623143476082080639927196010489080179890523781476740073648028203051556782625503225351627342535829814340846855129253113103603837587016893103446040293145482773738489561436570820423262750895158299209881868533457368639030021099849991451325119226849967030150459957830768294987174404765160701903167585923504490379905456024320800416258854489867334257140893468354967510107460195214178195945985379218097890905647087731540668017056037543284394668285162478523424865942747668145492417557062401851151664212141905118472985167624223541828790681122951481730608599153927658657664415214894828561853809925739515410304824573377850296618569405399099024094130722536234799749674204038388874769724868498178785983310276191260516046351350036868676757420728418970112587310153281577901302324918909896160347169833807465544469480162545243873350198435265146994796304796250337165162141557928590132261293489449521251675943588694918698220178312114730460035470495007629005750256968579680479673914343792612516726488590985114942397455285201259426248843461624764485313939675904895413672709536463073544257790688314826177256817591668603463548730488359218863864894270478865758563114460615747614264538583173952971682421515632060300965892619581305060739198524631161519169004227250153025926342068128215886957576794134534498449143686848887621935542397363041481481368347965514004864600692763702551876137567891158523010433914775644699167049980615275682263119714870879164428564767540332939079503065807352738750890156460285662116554323650042890368501231871117049432174304644565145122641281106781411495540741634904255213864954257475864250150102233296712893023530704642204600693459312440474483480462032453611809722408064780245472823445856235703825544479782593297637357960698262069931615972955037629078904688974008661437230213238634062745022142335162097773799958208045408516073125400306650765749216592448546604889162943959394246761957978248536398906557155940290246654254367462998714833648503122064371852404964615898521770987650675748321846255894131216941614878551731473982994170286668079685940900538246590486739016327963386481893943574089656451221362450921751855671715800498745008769943264712421853424677644289138664345388919848388804648018763116416890942390566534730234133381689313654617185189855824020148126623567092766323389161884220262136720674775483770141158288440042945213979410978054045998624141803815758341668430610197069594699388527219258570350199626503126432614722202893364148548865284291754678993214010726497608835615473191848974894202455033176970687221932943056443050004200019996627428930449150348422851982587593669214764341604866416225183690975251857674836011650416968795807176445820238619753993791060956935560883208940869101579427827051187245687644449621497442689430373194782155379799350287053047254333980627268998694282933605459432187870453516177525620472225463660840583659333797492325139116785338382123370371827149293479156093509938305574385999505821525106031727354015688172348185859242426575630665916371474870930086172073168653205153118195146858263995319052821909165190976658129164857851328149197696961206363661237534174125986925511242143770602341629266989999819365393759004957725374987417053577822607696992532664345223487808033457204156458697364204190538210307389188732968765765694208745919233683634535197751523559897165713456755727749185966068063364780306615230319938941395822559814583014931826037923529186596062035151537316416261567035886991647317098119180681368875049813833131397930339948978505271132420518818342294129513349718369039927301306097610129174913736884088179449615674848873710318996672050397493784475301480753018933590714619352967451215418502437769311005653137798619244077247661709118002115714797509552590565265834673474652870870168581385762427662291123995392046472615456903531152152493470416733344749434111097397274996367097359058361254558860681859290350853101385024317763917843533839234548590456585426357818797265364848285348097155286329953238969627398011194592287824085351253963040517199480626305133048912137513929201144070986561306501986257991573011264461546388119582860521724133406143816659915642250792710696712878768322109786381695372016058733458895575259767563571674608295972269034176796655259431514239177855845575331865283478783486618022315622182221437669461967315309106862024704734770329732966610533684975235934139350568990375393246715033924220587450515346219217484372515288663448223003782542423167932805958413394780362002962603337216896363270540037039887406105577809653956590399552081051292101000537146283440192160535969345143612868594932256790353553735561225321338721756197443826313119737124484974616055020232438092877843428464011488368784920714417550533021834312623448306761726231907603872419633816692428623585500840734709617211927697697622870757690980937343203842582906175159034456061750918972390767663754927201864962490851486338368517962305842224491370802902186053640916699796207462131011914834836482154889619643140489741017718120686547610520801224787056968525251363194245379283278300055040050134836508251082765268190782340434669505825093128192029607550345178619996591986966288684753673741153611775380998278279023937066606468638173143369650735957893578175166704318460941475745866083448040440033380631917343173525918978105546163052832057397738196305121555036929566838417739421572425690534496319287679112894072267816296605426241459985511667640351577888539032555390592275512583475068889665651122136180325081847020168702621160286608422910333231643821181424778912003714467365770807881057065962502855022755303860346661111048963579793551904661822739645374451092319164230497000958090580266338436415176805430303883437620260467392993885388269522502166778164488555489961291273165343397097625276545534328169961069712625844424919608240973495586481418309280210572107221959700481100799706000551709111675050291789589233637754460016835558992498203481492249998304245405602541708856620042662932967930706727200742911601604924831512640341221045361236461387110712171697879425482382515003245651754267716391478258427940282218782608431038125716538405985215985985139678402544592338518812884695399720443431680446202199444225887350596327582449219420251721200571916347580563474308924345829480724024072253120891349857440005125262627747500593859774211836350780470495642433968330477400834048549683296349245720860423670552639546739020305950640409579928981330933036724940202241365024594910469235451325051852278701004608898641864601321518177101740211679053034660626537912214549959632550083972423324329019130950200136416097626885887654225897161985629895270688954790388749438558552370841748335666572222434473920574327179395669479102849152468591118479285958187285005137705472712864029180300833818411469449358230219401530295037244793621509154908758808893603030688586231385690642174044821801126677955884465765681011613115534371128064697828118383083702359584185084403465182521125947363764889171411827922446993850819160645262641567207657246751591293339353704044662757915775925729162375879955366040888946883482104610661328875140878588841590184532368612465281333371749590739336998075318732874300501953498442226955441353913202722135630155518551228868699616148484839141218758854666605123930850615312133614058048644096655367631411619892842450784641716383278287232674788052665655437915649942177814156001410980925879221441727721802768007579712383312349841234538377994478647031716157792308691142475053376535419210681661427887024174811793546061788329320103732383486808781694435264354020649768464690837686565911148125415320157608505173528748576268531953971120819916893675305475230282706145830865929751191319475165879664717162933297729043349982399534671255698424591512376381486782356680386254511943073837749663131494289043049090010759803186403575311783874371871278203574745969902376777489239888582487122791031145246216759984188452286095985369330928541413926780511577464411687509547634026439097376899442741461022969762003794300057289410002344591847874416772079839591323073063255671869259585453056730007260764881897351799149165615876805629501640166469577184417062691446401579288706453887187388911211981489178275404448734509201893161154606495497419006122540658490140639222417479346709961211756149869194675397752855594498480004461434505687938349912334557191157050158860407965982908243665132945516529694895032316273114660197017857076848680617905368322871511853486943360790213765067495713037981187831790781057572954418632157692663864977965423039116183644775582233163565266574283413911831313203983674667491876228394672278858386609770949796152472540280008326406775887447436291421415121259383195869882321956144488261759531366929718200245420417978965343513666454508337666514676155209062655569820495421572752017666535119567136788252314556183105347240940617671316743621789283423561150677433602176251028770047804137649387571870380840845012999296526403532483957604745816953737484648101249659320801443237092949679466800943918616635990179953100085770693775512682671052924312153018577242995024714793470790808883263196673622203064383645883702176841497096193851323334450856944120732315623108316292223879042198544332211712353877137911825388708419227225535260253173341955924220961037871180025640609470080269222150730087223873961569326243983246246526234804607649376485056364453389006821832032833040747572454053099008334666939830308995054321799650839151160792046177538425040466273063337509603480593069839353259190388542984846173216771169606034371051230676233486774917169863916474331632691012563928490776562100969791669671675732214204657571585769712589947407653393200301204828021321936583832872947043679500549516218415001216327107652167233140767697374054279582457460330773948688286401383951230749307932928711228833016156051743487157568579576712447349365104692493473501832452318788124857754338290764257997742325087952307313802576469371672943644892093139534215338973528631281553819459338984388731105899958089163178556771909337164407370956844564623592475847986334528149795265179451578072287264428389988931581401818918509708452134218455298284839716590482076792759770538218639160622635360955645314114283453005674638989829566960570957763858177359291736444510258819369074286052383142331437854776877525417528436422785043599693891783183180901237096840036314296227591689926020353648146719782618170450796978147344377964008141984659555587215865460966855917116847186738943790460950384191663663681065812728274743953262941126876200993767261424498930608795111564538734636074313456188587271539207126348066753901037515739941000503767896751184569803024368575749034125495496446482277058705505560856758597038234542101670855618070026369170821640628500874768930398953878983756062031850075071658192312660615501001094257109877780506956183800301304498267210893095766365022617577796031948685220278022411309126962867393454078388261593994103859299602796429203057862962982303801991106513821001348299010845863753418574208395978620946201930030554706508815048329798192370486517566360393254868592728593174992246889513641212086562171024197413358073633790528421240290805507449249023309994853341965017492520318587045234504360431950418115218806119274572956412452890324769901356716682325342647447521132731962943513135254360310838639012961518172393337726266133130264181127803761817808626772505599719541779838118047021389013264067729359017026991399771837627942937769257982423316038990501780770376222444166643134554706037592186900117208998033578298806532450050806210042105999710303698852251594272627780277536405633197061935136192539660023810009181022938633419692662322867742386040809853302141242526720300887273183754282895415387055377448423203452403586163190910488226972642463379184656244564542915963817718294582998178229408830975543726397735562466088799163085113402272490606256118593307851931680635371416894115535905504412283412763241373798979322916347727219316490225204739096720880629718422774332462625518453226670760439927382531900861672093391251140418136190499921676191629362168555909447556831807919364856412486321213437312175556496073389490739353616284776749164223914509221812043770420037462035305045387942160625603110464917353591734570175902332910005171099195968823294713710646425653839581285723404812715293753931466929157916289747862757267058352632641997299248945272716904420280872244889015902840605916766862993415479925488387994494144532875112519260015975975292752419728135784012423590802408697023868612779579912774837392443005258064476266040633528412101226757829119937963359068987074156879986355282061204262628727343051908967101113564949995980503692423828732977683656564010763427073544547903516835783300954838162477415083025569452777149122151750795639447099533046789293855212725407446402811746527622357247208301534178347440242204035006711704646092569351169360945840860790350021002772361607452381452511488044254583236794323563056883259587297225704587253650910695637504035585347636890674536211181887587434013124579534131967235213511966820556770672556858105547551682358793373979652435274814249960304276068222134715699131482418045746310706449703943395663321355266739984346790639125669712497216978436980814897726072501504714862508006028960890749945843559205855070431954989973375868491061236729882371367652858138327458290323666337734353842549040598076738075848951286308979070750074125204093287106966759950599147554698441541283038629873772820308619825012883902759300179995254008629048739947214348544450916033533761557656048526526445174596463796969297349170372220263032922557678766363540178512889631399950600298231254669160183005358726950927808941814529364688256955752403654547437757534277854151277282409373457917009385775066290504119906277289631235126990657726080957835419804220863464292561619831869195476826152247302859392946330266145036482552430513655902448552579969301896487839116946333143248480015188210467940129118197696959492726432903824451606291865983715580219190499178305790990209161462535358506275386864125645263068046959297731605960833970744431758593212660906465382751982896397356207368667302494173496952806515624884835250610613062640672297376042511451212180263796410730165951440130504019334637046428362095316912843495416676610269458183108631802158892510946274959097019908519161677134607339402299868980956396346827304163575092827368746861797977377070407517921492476495399018876921172407594625882142766781372912066958493980179866591254191786547835899815692455528317309160889314192841886958950747383935226768231188065793047696322831863711127069152656016193223229665250296825537421835246397059527957961518809426366283210730698464245251816523284625137969488901055552926759801022908995850852205026071794577682957629165846486188644934705776711645909961375924990885547736517736236080014712320652049279932843236683780542000777445473549730943889946389996309353324205954858073717073268855651038473077951633312817340100010111831981273310876831479460733798711604159809396672930270437765000385999242812058161955846143870034910507109154823337496734992492840518345329630056012737071760867552809465035721413037970128972975172792777108716652769235455901343712375590938639211295906727399824108655997555941243146183237381412566717623815929689607966545135630187554951888736775948427119553301750198466891852425045928722069775724565473074522205896254106311745661301199872146146221184035780616579638490121950450329494205780759830973651904266447659380783955090959594053094609882162695363055521267870913037175703418499654628429102293543928891610636483911367542447087115120623622838472639566541212539160650382200262942491482424347963908950401992637046845658542214982968146306169943499520610632182633058884941952599808859974203690948930623203952925371555259259806505406509350559308606402183379012889431202257507422713369982496494566764895775876839785003896962806574066815521453404042108094279220175670150717743124760597497828527645101794634793899830627535335334830578707959553466845934008138213631623102659158094290828368170813785883781341169212033328760490358063331136262551675121104519958228309880634677017359043396290316365701714191285758467783476145932095666766560604711716372275375310446431020092771459366895383983914915864687896437154455398892598247507947492269755329199508565129539168056333544304295286872743694600593697826599092854902452676464624373436289969292306468719913701710881819932562683493400870824346448583808186594235246962235844257961679807710014774643818870522415667894706354827234465570991107720828297066660907526748633605988181896437321333787897187404212060534622048307034697860928075781788177900550528647695653746224787681496089565284757736662736332832074893901838618689288660638411727186047590020813853679845302458927350596031157486051709018677243809642165421562324296284152731285318752770751487634166967297197584672527319890906385485488348139963555865250778215305513765128534929682540083627211811343520392901971759119306802097211720907990374346360627909037291503405146373118465938552082763235370426913493013874891986414315373468969765481263751079011754624217685783802262272128110763543352812906150652643008076175620199748745665663910044906238406964208418464010523214000641031984578634210177572290297239254109737066132091482023425917637238816903692817504782448436042733987925794365152314602233411961859749870237524022739797794036673533168202602068589127593658789030648461635820244221286872271299903423435085269679275008479894256798985586702937432070334749609970252542769676423640349497636913754393467268658685109184074004627428275008152482924735090741430161569739131414665888565532987104149738897522165052255410364109164384275353163836107224599980958596784522951048422479488782346920255105016897326770204131831316850707991090253893593013378974239883696992100303244385840884007127371612465618250728511492203838649120988761886444857403546704506346857584320329470442874426562218861150889366964409317031338114566557844030399299601093426083168818926002795571190722318475182458635752744618477833186494275729715703346368516558697470429289171299491972802366783134740406876391954566011082417847748993003754529336975128145185429929346771629459545474036080508308605381803884957296224085599761638174222692823065580395437899412902896827948230328999133231781350460586318081984800048700767031470665101713525505198764688163968110880030720210815499963013807401944329862593391250254988060101673204149518498897437947084410197365372521439451326061240171331319831463500023069107150110000200327477045524090185166567926624332136925764488898047019784327721183940108658748415430401153588383862925553826809230208218902189258964122089200639190050680913446357382844361066880665375027466513267064660898111910978534454161571019063931451567335317661744238544704195150293987662708833923362501930953165564070308051823778366408207814392587007167912692251234926646161979111638556791166394287045044258797460651803662258669096352966670441628734677948783352835436864570299124511418246495709345936255433264469923531395580057921737711175303065724622548697508449160234837996294008988730950582335019466269968716674847539267798698091624673075652813772250073206874734729656812379413476400734934294631024816959773473121057102288252916546409416559418455954405508245600924675625845564073037990947054638930226541503900445014099749273062646162076850454154720773133786172631199117209588920114095939593584127390886946855135251705913409103595418098642056006768536749433288211982581933465657585506036284151664361250567067467864271332983238079892460785311761898159214496167896490488313749994253794258750050220739264712554891858904900543566447105721646883653382855194874213281510414181520592313154377214344829893559382532133431025779518286432291890612577724819421648981866747903617820802687997343122655083506988756053510526926498965581203859747426086476236877653514054874404232248974591448824099786544254115690483792835775570274994176311210394637481598540303409567712628547181295490754068286669135138853577359660455533620939539183252942483297992698769546882288498543282091238272699192955353951198497945742758325322798093476284606357153229098046866815763681697016022717438120317694841783150920137112371497128270695605580436412731415284890043680933027261889589324699286949587461141772780935683123010852882334152936367956262630492775164122928394470627267733238064277013434195528466900710304805026368867670645793507425568442206289410042042304480327354823784078485395763898907549593043982589924349110037936688196674733118042757494985004963154381934828705422798424769207540841517637616822587828858866344525935067218178952405698463508603862855608760533248273747510992680763317291798417846199036912998110411742335425686627764039864141737964624426427596822711535365601080486901197487516251959296845302377176768516229022237645920823007506822835733965063866150155403645633698801087293792088906468129221068068937395087103353643037348566995562178673059862178960461521517106671883764682099660521325553051447395294503368346034727130063224687036400533916084692114313243354745966640864871587787774379537421364306369656762955081213684011790239711373789094184156366893431417279980542711495916078909012535714364705660837794789420589332808409240901971240374868124164584285594382616973000249805154181024480726511625514383838887367901308557795509425292937340188040130233586210642118090458141610375240295853914375173601788031421732305832708987173960233355872706743876888308631947448089751429009085905580172004403813500507930875527543718693171939532393995125317062773390678475250190169506579163991254703630270410623863539668707175387372176380633302798019344550955193622496045420746835328046668804417784351845478757374015548032864921814795794172065861401891070401977739796389876763334684182732287466075635581380597638029041034614985181508435879990159356336687085735448707901265601785820663027144644962320561252907775646462141343689268344311998235025777005562067755208233740178961061362513502490590123161697061812379609618625642452446675440624027668833246401563612106945170832487613470131605869733314788859326411689827649138605672295016278554852478917961830486923688816560579291937533899826950269878025546318294697292277026414199436490101782500133138590482486767867685173325438224991426668365961992022976692903091161389154343768943212462555815697693824626342172539144849372714110475585313833694576970769660116430450577467295988904951818511545419553933292825070850305745886646304856890408839125803238398327805811506233803956629146881470671568735316998574038065511707621882085720868748156941983747205053535673562036768802233672695344398968637839385370441964027659306520007604822053559627066900467890438169582573585183251474541845802800519046674932184278646648737410491975325284172679024836970447966635371663949290478299000673937255596707726192768442377276716428357620393036434638184223962827607020758320508134714118530614794662186313909681626941985904761213273206854851224320546250355220585366994429713493659307760851894233516417981978257053779827922602303869778401872223882949915151372156323432094198107006846491776068829188971444447681287311312545788261179043368963364627381747380309037674076166527352278509738691405032580431354532111359680013487407353566838750402894864315203643522125162157184952325440651030634093739506691072581988175927866962987153729733363633660484321425049244065591287814641618948372764017773522655630420877168825063224770134231207960641032663866222562848208417786260818033329223665529273596804727340401978132204467409936904817815223236304743700031620118256306735345888572547626463485193100540026599287912212929982506261617195640659993655120782861909717095315818731976679945110467071565517670284923402453797322650329746667775408363360945876673885318163251371377793229836956847996495093528993758658895591293245089570566250003338435585912132394977429426103129531894379655777252860613583353707651199139622086620849019189570983148406408501799437340149743417586040290698419078902236518972099568305106562374695377683523328175426557692846711692444451205843918621801344471992559389023563443893772676183749209578786703064589983456249706310809127473777232900147686059723825862362820600001297770752269273878893021829906407014632173005141852866399791899338028517752306989791181327433344793189389378817112116023601992413441907305346454324396271151550159052408343593166544275135668183898798475882782289279310566705980116946203710445731095408971784994709849293499724776011630155611301205182716388048607780506703096913906185304999884253055077409981018027696008838879951333270909891547995589252962799526492317828531680235798444106393717895349346977243243012341518205342440153196628580870789997616099932936595758722776916486252654125534332526513955615968560514001869536992962913763633281939943401142702904831608472612689799171563268317983463665684277391011355869459719225210068509601411642655660015363262259962609502420244850533224151909849675493077762152770188944138209086223018291328228593517219861056639174087049749794876307872026291196759338028074271007306597465770709847293468338966297329340268426255008420111852992225266251600714535269158087155056698633079325864958768441053271641104387423385988256343700867379632073277048435584512238444982081988390500083993651989040088259560387799574277918187006970300311700371709987092018412333998422364602137923645068353232646912194758007333892190264218530186262259735348626502685014149440371613549595006245290734155164291569073174637866234299564911439628866765061435358271882648056390097539547899617762776253760988090236195121231323945988279311265758036676831993510960187702968043213725340833418331620934646210218859515863567260027331033471637251307012282378094261998908351983602713542340372376302427627573590633797215394830087158302248696449929726096767901243086313216590595711977811407287764621734973002072741773111542528248096832257533870658550680559269052837964164138171632439645033242162245626538044984047467657576672006132840497451508557839194764943750462873028625472442482697096500663237956295556941108494685904781787373214265432794952541578983692626406662465886204452560427128154061558639482495279338553997586643640640303617757277448030401136812165081494194408731021773301764147753089845406487410815253338769851839409439141173111220550541247073093639609616750208267210831194850010702376202720295286707058512909682246398260755960743586988875100847832433337730320156993609585433327158698970761571902986422445142964824397730366893218903038375453427882500691028814753362882288567063934602604405601239478043730108677858704429055504710977470709883165066927880612110826367441098893471445438326058067525040492141758734837612695427584334440257856359812681214462850318112455945575344323285432763695180374423969382618671612758087298302708665481349365673214205643678710334455639032588877666580518027022271385534948131859363685574774692981814549554776600381876914134597882406851661518963183399467766038811613630063676833846353731981038134216867766183857469809275654584719991359376333896286631049057145651650136708612297739153480785595422124708302112004344317358158153473991073408211756307962858432282691322386333738433723255873195545226099386467537596440327316551873181594494611798312002983811283792322261460161610620922988063363048815540082376113639451544472682813215024001793995432705085324632618879242664239550091022348773489692256628717408543732498879839738837313629313575919653597301570687810601566610157014443792474004441636350573386237830521038201588663115382244258411327796939825421819720684284364581198797160469306985085849047275814217657727497662968009623361211307362210158151827049659130535256184154426333061414465473103223339895361594901979443712902514784913093037436585065197309588779968032468727267349738823068090451099298371287304033936300682889801319136981064083239919895261091653005693816698531308070300762102813470226741151593933030016256913435752120266622209522429282208023392774701064428535717167879133253621260250102471683623742755396352500224173876838792397055240535219642861407283148309826476555811180060412187792933959683005702308905780818119111681498542633042445366089855882557887771512355812089056097685990983309404358714276691130816927578365715661794606110400698015047145077813515159918201621893131625478425717114104608528834298893442679493908413023581333011936264362004005163679388715896473214485254217980884948554926477617529798569104812519249351691288158307278541950031808949020548986944417869853056243882931705728940010277082099032043069526064345063785471460496129117475422839324624263278605965350985360877524958916468138491113948731243970560029634742725794024315395934182699867622367050337233727583223992933094568350760292923183690242845498830746842675671796163067624681827206778815900160253869816066401445076336893468515473249942132016046832579582644551476502371129317678283588821864199439179193106731652135975566643525931845682180723723733929236214665699398134337578176330681982858681840462565378554819573077880954660387750665189550692798491830791340132189873439328267930908374596268099427977457385375200486460546995294590540246649355108471561286874805061071948305738195410199648140748724895046224160733593401847199633676940074473891117072479205339937870346024943953450734239160548047947274670921324719754264523406679621823531987006599200695438110090449723386495154349077282656935581463438733840799342062162495077538448264988831000981066996434763142459607474286466340547297001195977347955430622165858191474696415959118812466335629891436847733606960105112766379394142096378974544246981640335013963865651876093752439772241539207626426678059566492454098908334701916901826071070308021425710209929231693410477415513920943385768354334815877796938165385359437746769332799965643254028985675702517362143450398707341417988192490794530892049755801208002695243143588851844230026954271803775202762579698742508023463282408770767415488838097149607322011829133126439344198177322981006359593874220758143953850856575816931353387894051023775448105245128001682938019312097756386087874834844660766266354737751814029080243334480067292169486943618616467089265766252451272800944091776226353622309760091455948942635685596854926477300789193420572647552694856156697562991886718088122946144677088777865383866024450044621689616699573575900897596739273085517395157722840461656935092488053050417002942221511466709950496284176147309769142567073185289529303358395925963368068488529010486777476704661509836678439272020715028487095646467610070070576468626189993082011037096358315403112167816881090363608173301144372339693122093592407186990186727324404521362064450404267295287682308132802186176334384835588646910585717222697973411005284199707936365458291070066988552415558112323859576012090504656333914332830707419098811163094658260095665451854003660475341824522429067627347228294444269218814473382418299749154900512242844852027707829983533015617875072520000557444732928579187576501589923966621018731744205305090555381180055763337431161765774463337385980182512972560032045107783597378792272880713855577560872695347077062449700091015725536051144259034502782528756062951131718070652735721418597997409748045880543350529280084423767194436476610245573975472755053706792885665213946239261140988263531343952283470007234364094817510016466715888323229368401520445709025332485955642466602416511044424886197883293185665431160240309323655393538009415889970506257163252241486319318523884676720125319554848839635405274365826292563930916141835390907168484856028483551700176151472668540425358892558025484418746128248869214827019543061881935443640557554687452106034794466030551165414534828081740455207546235183673972586711814261487508306784322172902178260207398033415421638006391668782364767926104557437883790728248559816681855655933097603278001353629072075018803609742178391738930347853896774973823736097129991951946445481994726563121233879427785425270008565170227060695324544367357979372784509087214952827972120672660230676624684304157178784727989410810761177151602143816936771234975141033356221519587426369022469532793746780060185586752844913815036786729804681569314911126951920594842180452337668014850728181272073522447716152715975752445865146199063791266170815455594252456812924352051162496489894802792068743890691040333000567946453800149497624640562509303291038399186553552008621575907851849720445203246904031869795052952702715708833579213332711326748327281551939762451392829028120453520786180999213017309397580796647597967789525071960393440358339820472779168668210520782509361805794927614612219562245203948526936202825518468356881950999991819561896613199242310076726836895382868071282189905992325824626146567218671377246787167518934789065910930281573430236430872504366826860757005594997302258097617566071231357703614808245001030586484754725906871036027478872668544871529105856824032887022370303221799499945256634726454266756230757446806999052512205650819362794041233571714019893368390051386424603120837123245492113461935459564433258555324908671477478318978121821622821281342736273632288376079362449237670974648235237947366745412431983054729052644508001108689810908025861115492289749551662336383342089050592819865148637902306599148481715332339984992865787011402368002148822213526887065418156909982771816253994670103217787396231121238985168373491314906699101008673896276888234993471748717415982878431963509025245062344204148890985741517960949423628247316889140930312856108244224463624909582626608620023183349655657214269815674946872435433323824586722672823076641847767354519716366453434345745643315791431107202862299489920125744436871539618063759562579736710379162400781454632349877243891099303277760664403114859723337399834031418072252556600570751620702292