14416975548755453948343967465346748456523268366563714298415232343943395192737348472724334579591846156731491753975214285434363896454838782191731911919752694612424523616668524423589813384738261151477536126278265387757498183983517611339382594147879946232285219361156933234457122412996542417488669341112831921162741186359176377216599856864994547955271478312615831841411761565161158867246161592715423616624313647658482254964423925652398441447384462961928749992989982836651445317537554496744343364935676958883823526659723665235551884399115135516414312379982591971656458723358678769212334226315828138142322779143238453342312733252685935872928679942923488354359795489924293692931835664867348341476241941247286947589155343444221999438423818271651673599628664393651854194515691279188948577844699496414727454899292443349975738842181356776196452273596615869851984852416115915865913353922876499339991646221511234314577162451543129696198242638459338351187364554647515479565775763996458498467593481866417445366665282476871972875953889347374635256172651458995163916483549398877926969835521918542636295353933644352531177285664158616462958324283482826624969412475332544447631754764573564166882665461474337778339664575231419275586382334944618475181936471526452321128483751734789734628599155648212768232175161764926278172342453523931345621923872677995426266755498441114898247532325586714674318376269932468337734176367391536682611253853541957135919395446586692147188247732923816733883725632236526477677969147398193827429958975977979993241365959659856794852259384264645582894922678768868713947135465114125372166822223726147645895972421224899733327435121846585599579292866311533152115943811295239715259164925652797379332437323795711816428374471651633535922568945291384195624531917149473831238751763975311822844485955415941159324415586424323368783444115312479811134294868558198276116339829774381717167436471652761177894337484398898335618719383997573668456218132113742865443784355916376144538728662428354972684741865769811292337597329998731761518196838554178283937434862168451993946141417955747673473335822287547426337532229349953964424872232381987468382332392817471691512514274446368635553975427647129985446526934953249376221592618742693366335617522417586745481363194768562197752867624382722915128649353857834163574854291941114772782284176451479659615973584711788342316498393757165468951567679471467672972588173656594844296831494636694561458238914343478383864223135789648174684246677754269812169923785356219377983197744531917284579833194661183826346238539387454715672528512745212381984458458738133941894329723979145326944152165594616483441843183629419145292562976364175977436258221886322738979254673349625752158618477527926565764443773727743838241478721334554671188193795536723277748535276699316173845833516714512712636172417228226666259917137599994813277623782336429192565157921255728889917552778561568842127648573735856731985333587793571734181414151558691941544159355881843681676326136733595144136832966522785818321171541611944767932645291922816261279356576947846745614549672199478519665511181534661752854915591399351677131351223391238773552125992931571142561866362729832418993122718238362763656561898121625589543279136669918247891782514958776849447282997667393578594971318614821217961423859819682791863221331829425118219248254588785784564649152778492473741534845658381625954932325139351122943368936612387156651579668891374632989821682783396827844683592223947868762361167873727223963518643179737148827518773946432413158788421251167723925842698193231763238544811143818116378648762158519412372391926957312769926996375542625695939745158523942559913932119123171347123414924488243125354342673156712843472833942843532182413134229372226541492434247284889983422156375315423283546598414123763141721881427916767934196265459491175347132785882742834842933669388345625161598669834288469639653621173626828471891398448278669545379685968465928628437816438361826387128739374188584351161216352611813521627582992132216473759422224678133616755832223661682736429945595543313463882532231917288171565248433121961761731312212666769475394882244812652176464759924223517465198467985465696688571193229242484932412344425625952148859535418544691975891953681963729444391413286619149589794121756131544732452366594429998195375183651231528492928789994216736192262324245348412528652235216217176394683796115413421774157654397531298297216277117687638687465438247243974221677237273629183359154245845495626794318249685318535891681436388992562241293957484768821446834755742994557155216518724384925719389276646733597997613453257167445871532265626973286678525784932252411237843359446797937386139629549635182652486415477865117442413447348852226637353994957574234212116515826463497137375253345811486666833411625144787674173919323286527982937675139592332382452912449762631417986925128353848914651817548674613429548562213218286229154632773257958634391721621639493824461164545761542237211887523672764541679931576765284184215398955335862567128461381133696516575854778935412864192225346413134633149126651919516456962852981337558612858458157121338857763934272745744361941788363157392921337411446973472752175122813688256346965455924241956816711134965152146376173131161344495147874451594173593492975511456146236166199522966937441923788278951293328222967878497953365482235918798187512618237352272181972124436111621133648645475272743984111151967347916986365941611831465384348879759427119217926512286454477386235495969248315677137292724622141833152147176396364586516629497515817861298264518557152971495367272317157332437411885676329991696542922941568815956336245354811272492692528823275686159682639591761255466976379875333784618251965915782716482294174398976996774178899967525361963145444297596857298345521233615948446882375645881294813715426548181191264116445152416277274764658918461376395951638778427539565595762121335111429628336446677982537116973761582448164788879776577111173282613853395924367422559581527511162533645967926493799647279724861368819521752617179589355868821472111771111597119327373126424893577136279618944977434719679711762898161856411727449366332126115537723674324173558372439996289643196184941164541319297122323862492913584561731651561657239278735919166728114397139698789574297652421435241464545916545452193284863763691447664454787666628515934539921919323963517312131542333644282279341344915125312625439199715933889475298194581127855124662313265187181932249415512266766798936457262893771718756339152547323268378183448326331421524414185793362993448438285646122177926165783841827812565246159715831871931239151435131546616326623882387674186579962476371345189579399381548787614723891261134143691254463483424276276531364976558664278249456879463573621989676583449965686791353959674455414494986592769266814794166543393389829352623187697756253136437859884897138326432174973846297367377724554259229613532349988898338632471846141445125769232615762642795265836233421194957192454242177255368737794683397746783743848447179972613527437428763997481919768213879516139992223944879242769877849127715899264376995497938216111226377543486136324182975189429399552669189974877732553269469538844524123851258233159282537371564854393243351817543347152841966186533594415196815812822331488928131154433983397851482397621938314795597519629867461313855237896351393257713815721179426441115271621361253285484423365377884545921998819954947414281966719579799413952585117531967214975144911455159162875233575191289672576751825383873293422939859885437749461432176515182772996314137743254259678229666375371961332162395215876689115433935677196227272143689169831965454392233345397532449459957429848414792446233893214423991951218758572552157648472411215526455181562383723154764726612566867844993488959187381963559134785934968427569767789348315851732856431445553348322959844323418596894138196147255545964783359629988871237765894234431269457842318288529338457841392188995251697253395633525417894164787192941141833711475813424231696612692319821566666499784436971111368212326651531227156538457784365146377162888952189757229769856248172351672196827946491826624756977931473798734788493636961799511343512817445177113278745396461939152857798751687554965758812646151689758351914118581746432737442826698664184229983685224524374114541176546498868777256228694928349552935975138169837652635622781196369252172525339353243979744741484249132781978347389934198342151797773524493275166138522873698455723172183157642778246129436949776832139621721969434644119619544346835553641997712326642755694458413225398151637532114442181641621544241684283669823162263953628128784625878628114311569337184142685379582732673239459926694611815994981418935135692183323235181625153931363469114393445696387871889156778341313541397964224551465254142262113995499728236959517673544283822853559727425352939648968357753614382872223791643114887875143131814391197743986828628292885698943351559231459125756153462346186632612486383427919522326924591691317834827783745612961622911138973725532528624528396314474329129716967155919579665962352211953223811738746746794699568157341596342675819549219679342917987862198582412559319579547217293428495734817546872843711983138391797233461127277673762811173944884454498995519317454549158811285952776874851521136423636511147481349224868558741983932175917795462244747677336291286291367782914593467138914339695656976992718535513461635432441879955166952441258641169435461461584691947789217531844193769364117495475953133625565127365476322535452291159791366875332613682983439653914547217547757392932652581456588343392827348487378846136241331323291292537257492428184282395132943388535737131685572493454413863212124136915283988311217883659179994631543756932441312818212144176363825595478799659252344273657851528386592463213359128254287716218795392145594595166774296726119859275713165222516428198239627243256849364185448435238323347297569824322695975539675311361943188399568737924544971237398894313281555847835143779782231829166737139677665578926149632731282389541153813331611246844594341978113942368132836489153474763813444354178229469841738785727673712213865491674916451252661325131926782648251548262697278681736299462178553425684636154226261166671358423331637942481811694819593175394787419618655325853942632618515357855248631491512154945458951721836953365312585333262194263848415695777751466965653181311965899413648731322567374363559695878212647112686127669514281799222764267281147714663551718395571983719977521781519715266458483869798714441417417414612462532363341152825147418558892745422127318292341993133142755651237926632253692328385185869993652654332173499949287486234471981678817717489298692985134431484153191163579291955475483625797976857724517713977172515642817562739135631597814145715879756872672787818444843895571459518342597533297123419218813489841956732312252355538516118233529987167954136574191724351554568264159428745423472832465347363276353494623561956199689529813723156693883834847937134956987548477493512345757967559783288558897186296268266317552843756483377784235947328475656634879929365119443156255118642218981374593569624895145753551528676535694834656591341661489565486858163187873199473825479434995845997283895949831361392685698119374252235318862946643419741225793253693474344451214326543826353721141132122335447923825733644772721312347436731475963963718244129743862242556662911639348134247984145457215553468375566867228665122154825267968193293532861416342593932284241997353629334238416847379232512776168312883831488256778156123479263633646977938548553813366115485769846423492731697949746765357287874455659541679138614889777786633532125947975322723168724915548367586238624678742575821485876834656356178616172582637648181993969675351637684598911912396321133141516119269414227326233497127328421441896468478471526643375979668895245788669349566392381714292632229972227345131122115276223222339412447873897935916635117496891526727674882313637757966231196162232417261892235231588713417212411834189571163399917719841976424128336471151912633957226214741312264686363951934447916191318395534752355846581344417354882848994639459533329245284218688517989264524521882959456184238416873217696395946531115564115663935219297139956539762958713345641818139376615889562113313222552341416294958784349929132533154883787147343931548585379115743952184416418411828926671359658864546397513698255661612641122147315812885217497386612819421787135978394442867499978183371866416443631344426367776496918295641935499368734513589945362992754348716292315137376219238758893343511253776983455962493129122743538112189276151675966676964417377781393128826348417177385624568487758162882415959181841724948813989513816258527144229416393937977265199119956697121375446268649353156417642332939461159347281689779847473418478917446262253561781313655917488472994296346278194964846346845123213371135598461616544385621582691262885914227124725944262384823465157121299493416795422931776364328213992651784133725872882522283876676492326119723753669316324228817349156195232633551432287625212619493598323947828418416417335484217616312987988219918534112949516572141789139496394221495422885587558378351619217868122823262531595319282562481791328969649417226291695271724293192871755649817132245866419395851783932242171175743475882337889317824411857511374476325428166227283598646257579882467776438492856972953836598242419475344945347282482569594843451582351741795875577629664121961285335682178977117567298618195122769418796462742345266741985182896188196453918645279767639826415269327595251233479791572997345237422386428362333729581556469996249763321886559963314859599566622484729526321869369879628921613658855225428636976746185999433545159533126124773251944162442311972886162513425464826667855944499145613523386314415874961267973174458144532122968327719119924123281283211514511511421547221552313946274459683613944279454571819485793737513129544262976957119579413251169165822144228759369776343364865679651847435344288967118495529537512356248944176888341812236391632381648111256978542657679195763471764931228233971236453222284669173774162482198995423245151824496422336952238362447982738215535728142668413395696912694974637371123614122913858156375111347221534893635989368237772751648573516982871985619816451114255222873317329168249269355144493113391453831146152593367637443851114235917622836992865682249189212444965345735626337789162482998718869369734237792328549236486298333998488366941783642692563945827935714664388532959678951315323426538328779735124776578718217616223895891913165467572731539423531252295927776753362811317793467829452347558224396751412932671597953396781326643524385852776222853114533743143698929221343351614421571114783913944584678714768927385958466936586318834463967382574142339862387215133354755964968138775597267711458993947243552756474871611156447873289636272999644482651362167489332771598839674748616724379818652946485443715275447496551142463435171197374727879883258548124449422723133654984264435648455897376671157658845498925662476642772649215642383497556428991481244631527759186755923467722913932989717112463753296271483622813643745777769154115939989572431649515289169274435856531333393815346842625957982513132532324752735313445981883874959224731447528748568458343222558613819982247232258229897467343737691875167736218296637319382192195196591884371938185158512936423284424118274569518736193157923588375192728213978932777542314765633347997936188694921712393999972543428767731974756481617612524448369913328836892411242725373298543252451398541347496132852812122544866351358351737369746944832824844195155726994581142142786458414225765337678984172587178854959524457154216296532572134813518173523611183237115387739212389518572164271238842473769853399953177115966851631949556855998757277335674636883561611135881848354258898138173673113865479871345948327473752491672553282461161429285184941756411325582167744941441172437295229644646856921547115719931966237114268682215126899233658713517357945919146252785256977556414341825191928548939322989821193844985756418534944172133546534776698814936673811717557527841337569226372844465983581292162361978626977617937231685743294691792112352216969844853159943432539138792228364859926111576316392181782721466726462973563614118579835176538362226619222437355322598556744214563993771219774324278471471749862586756343536425158198916693125221333745558214114257964582513967454139477452227398941729795731885233266752338537399781174665641449589245833714933873646775174116114671991557186249193291467774763628354939346451469317752361792528139334395911166766563894214413685591153772769144435534196777538243542574515141697172846481943443884332392735813984877449914594136648648973462981655849956891515814326128336143795929892845181839949193713232659213537247123983631815739438428438963513429315245931416289546413642949641326878716376283745745371857286754143636174412535929998635868333956531746927338664471819381135534367234832319226683123961467272143962224867558639977948951162483679775525568612827316361848459199253634922946254187749153871576236133286312197281316713399718217651153683268717846864528631534575113192393266526257623581468558495965143145911986672375187211641596947152511586274741954649146339537793254371315284325376861894316823349985617121399869813632247881319746694499237569755279392579115114555346174632938951855262956699476977382537271639569916765172644242638154852585974369289898798187934725911838588391469533468116129957154364671649643958874644211347836983164836123119964258244523426926622673134219421347452595389565442142633527624736553198269563979159471497424839311415811524634684672828283264632412683812556222317111518711132597612449752823321522338561364642833946254585856726325376673441861919144235486255975545235679245531323932535512918529743974544987714668727576281576319665697225653472348663585633673496713233234622296215652538176213824482699874487446482339856678457681476223788564299969391436144152749817147317669993834234835961846358125517919951732382991581528194641725873236946128436243653334415857454788581898441319682228483295376362394553934194191163948416934784178382971564295616524145369995381949571996939769851357435731198119321241489442253398563754327568431863282714555233589684893587278114275664445463692754778745814234387861392915273831139597432717512483818155239325176696488435514555576911228222844623573764667785724131421561668227495863121451915826153538326763169992327278924983256517625113655614764252367294693758672155168769853476162957991572196264834117555466719639514715538928183295749679968353811448224262128227752851699399788712215155792522872533718978395132559675522369314222387177927734886953124489518497159619259183168219158565676746928725712641957469187151129475525263861343794667895649872711298181989317959494687981258335232996749572294665467974512295435917274242628616217824372265487587758157192149813344529591976274558719745723224511646182676227383141598748236694182951186427236528816753874235264127395621797749616821927862461279525762742913254499289969173311435813713547443888647975165626576466836383626757873311166542597782147212317379197862471677551166219366597973451715793354928331475549969345439681256232225339445687173313361597196118877194834668818241436468544154967566313154383151963646745433525411636596976939991167957498351557618314722767786456266994174421586356591791359344384576793133444314776153183482745953399492477627714414615233315916982183199261932327958422826383561726291349237769197337344433517555873533269318694326359589674928295125493783788748513171153248982395143559175611484948273931138449445277272527566915951539661346356972936198344961356183145182669899865792599735446465539435886221957144471249354289259428724414519479541428965633439891223124231462224477435178422544876347417339945963162118618123211499135613177841739154153939913241314382666297699187784367137423772778819161861179124718368522161542164828152481653313592921377917427626457548779562995695243113319153677727829748792459349693711581668925131734244547489533795653512891349684849235493782517335514379711375469776212851481336466964862275919369437342921393724868267996349574291374288394841396656273987551522384567917652478956127357775878794632418745215823312943646332825688838172241389715118265223774987247131978247296327778679137495498914729716385796771353486852439259821483115393557243225552471627233741977412597891453291774128488441543779743998559217542886944599539265862348354896682432184327941146212641466371384692349226731812453223153242321142356341638484313645771938786714935198259157844188552833924674877932614713654122948996532314414931637966211941787127785331925196517435193639277884873982162943524268389894466645289688132112141121533563532195416696553322393969528585845224476418192594389242865978551452953189354921444713937174679386128479122699181735156895158319385393135524333642414217492932795784252227162813289498318122764379488322557161856232546636678474631792712742956523941321696159753693656556712817548885757343527216544577435351215449953887689797256868862717413875687961375881853349313738946339962443471334132293612687261271976719695346323246786733874793763877342746828465492223421548231163919444468636133372836662294432146134897393683625311592147941199773734373363266189296822637419766729617726196495792113756361796583792562933396258974785785131124185191752261799881111387553985226882459315144526792262479516191898124152242938218817134139589617814184134861329362594849495132323871876932141325394833315455382275141933251852158374832838417945129821249295492272411526511183252582788471248458742739927423121914234822388129457447877384393729695377948212571311527525881612252674421493159936811285474812761952877287217171536671985569356812459653797227367277192489522445465721177149554294257283627856216462543673859313766663791312178533881861354769227799834627372722577337884484226282971966265143942578446335743682499247548439292668488321918725381257183583628717759596372754564474354831259424838467356319623453612942939861392859223428268675612768652193646989844465558372643732862749523451946245452632452477544961723823999684665773269873711473564724165186779363498254791784113636342454257659294171139175639421527142834585825456217987621245416642878586935899857915389431911671167338736371442515293165459536374175331711113727199442759463459596324655734797891224468234267135323844464243693927123121279288249544964561887662456775322416992733757227238618615665749462315299987716316256891487983215962689335879184172118436625458742849386197799525832528224326858399645727816654422237642146221834492151148384521899867353795435279742415234415892973479534145355366457541614344336612695134533737256939298538614396723779127897881319256354654926243664543447468214232252918993234715123957469756468228519616329125137673214111989617869244133927583385556773972226446265211945125464712162647441241447824982931573789186442813985443199691497322855426777127949272883593712198356728297559232448667239135246834933711164289981176151212733473143741576889551833222796654657611785593433292724344165416681168987974222784177926448226822568289135555214721624353875113843174221819638432979315129971696336385114887531934648922932991364823241772154333531655173264812265741732298318592162483529995815621426558613291623993927494538527178927326662391187774283746446615144645275367785393754961442328374476117818127125258478961193366592667396158149817627391521749626946832143538752359886838723487412235777749146259444847583582513422327821539868747371751231282211147483439398326381865158483764514533287672994667765361772487447759655151162593529966319595621483349314836629822182412954142581971993834151374934379368275922769835678793551616625142956863539591464666317266327158166324754968531347876232127382256861794263264531751242667277283123927159271834994737179555447176136616745137329135868681754859245362699931388741262777755445446934721665799763614211112429268475932798657765645644931285583872687924989148355821254683124949413756219488599938315767568314584181937544264348833443916744445837793239121239246311981384524248219789783186973258328431833168225996441476283435254482588797223756915364359354413832677962759859965179919221412828938847237834466391172597228215617992393686659619432256292117532745955849516396781137692282577484241787172969229415294215992813858341854983639414246836922794889814949674898229946754897845956871284657863193984199763344573661544236266526216237937531935592757988594852398729449692432712272135552594134232218616836594678965332428531635271825267293113983913147814989144621998343224967412935146875257324679277389468372388169944221945314527689966917642455578347513834923395744882547985841713561344977686467497689653346545263177388596321265345793287844182652353537236325269521835565587759115991262222585539329437148653926244279867938586546557615336486197254555632995947381653323497528111259363216878342336256479599532569158749828343516475325275775152872917522173177683617164183619686643355497179949472221798354128391317935492792322253895531744973482813344542523259855393643687523875171798319397112495782254386124511366944174351139325288127221345863882317555221631876274139399563786215553843535658351793176816663549351797387789692613379241723213971329515252577127426353639639832592388115838825361758632116762575414864528969633892967924398691213765244952764491344725219112271248964642492782913574871657223751938882716259283636474987811566236317437917346363462569759345167897127342927159923539923225371938616944468341825872854981352128696826684932574112232151596454213273543421227386264182346117195158651329147943429644523787936141386229745476134156511971239261661982481545919693417433947716428492711986722178163662166625519732899125578327551527519256277699651531929724455172356832781351752526159237489916858921834423124252324843185676952396361674174299748634339242424813582817316273298844848734289917915323248982983663961466558221351261472917946289916585432942447444215513913212666322263149139398916991542935152826463949712982139798312419519247426549955373633342175569366371196861657749462676696183658427778356432291287753122168374972235736231371831292558514369258531457192138549976759149778313255178464148877336642415337297645945735442241259671296119851561555474375686282355114354297971651961375863299395837152436965953828979787566333928721169871522497526545263774955317826141164931237849693323583245821736875345823911995657546659114559856638441798664232692843385683914252589678478361853655191119652139512278523462983252267187128993615841533473214262433587225664243634483977215283571468137759773621694218412858775947661833513361421521369217339386684789661379781359434459467787878584523956124926654868129759934894346718723455394816271193439829551615715645619847348726693816711524547219458828392311691831315191488984553592813618789939667913361235375834863679395551142382912913799379479277785475245463646595649319756447673553791888786923331329423358461142791423632156313925314848842422934523695278325324919186322917932461376824842429936554241651778823731118524811923314311113658298476543239788665672264662733838477293116141799326456253712132877451524596786423154841644484542163649747349712738792253332151633245451298859884212626326491675723914711737989534541826489782733961756636371824978225145954297699847431338547158127234435283787585181189482228695619814322281515693579841145113719373641854713484655311311873618376274771991841652792774918952847864871874399924647757211378155166381943899566331938927951767797729131498392828197194746882146467495268173486335796634814619821195221974449651135856887371116927714961758938583143447245572196388187792763532611858319472233371768322263681781355434365626896668461213428548569354517443161312421552263239385116179688938383634916647234582349674485366945238254297332697264643596625651218225431629712292316898699785948678419297546923613421448613539874656682126665288391273461468569153672748611884459393871733272215685682625467298715852251681325139854961584243614523968865616394899689452952781221659123471833333562552767149316738383829872673218983312543287171968716766434653563423364329112955148155331341629236855568442981354112514243567671932414686126166364863288182516661172416782532135136365113231867163244754843857558457992792972627937387929782153172384826924766574565358667378125958243354184674531335141254562151394824133141792778939238281514655735397961765372791538894285268467913291946255954272725393296396228474732718123898538944162819552241535721317732967188569931137752379979375892295361181935468719246191319341444486112249717372562375123141213554514315491422492515553291142464981837912262477161671338795962733673142776935492158961436757848931233417434134741665477825434627718734961925275462325825661514925265227234132512162292239462732511398594121399464817814729815242763429964176961828482438862789672732451486325598497321667939268866448454429231713158493254987411872266385347954954185951996868472853694671116315123393733325678953534574272377649451537497192343317387312927452727541686989544939678251551276855574834996873173622563151911354653399163318465668769362465535527236718981335182163218187681942346448966423469982885165789249111259433925182645135765581881335656141191265975679517534862847986388553619856971851613345279285188294943895522971562324138931715912731276347591577628114843976152679654454111172923232488862676968268121134532394218299379584433519785961551595341238668723245446315913917384154682228461872393789662129835152143345962145496461667281391857267255252393628756125474129799793397993844669859386773512221515352358959781941582756855853274553567882262444116252622565612225217125898221659474382511125862629477623873346158969324564124197735334377952239414855816225916211834737596721398714538849321352693718593976878839564511661383421241472673392388358289935411913431961649361756933215144558841141394362372334444726857937834263337428932723683724992396973183416415172354473423552436125634337231896157878539478817678497348477232272277228846292282867126364699958964747761168425946731395948235932483232135664314921135842998654849827389454958758259632636352325257763355854227225518778793599629559466169466531194868831243698245929589431892642491545796427364884363621261195758232621253257132326557358845638439237813554198925153639781164988348989359219143224695987816987233561179521412611618425978823983133189823169127762259157328487652729794295996897248995259179898877118596438339317879598526493953231515188338461128487948822283435391963148929187299829694244787275942695563325359782515451822575336564311243822978341387961638644262432386824149618497829391198722231856211634512257455513622651577177736821213283781955475214345396966898595792818118865744472316593539279182912132656886187849671861832375816449124223123349386135927726763562252644842316288341652912465116195248246389917838934184431541658182371982259112918114914685694599113322614483256915859561335436513177411351216553722929343422649537619184678627121614694185367583178144529173177474353334159698593485733255926857615328563551145286488271223796322766426998284727672416833435864859742423141899193853565663822318752192437669723489654239427282293843199149298321983444962164622584794916774532351122114325979842591873621889255441652264144838736842686891453572611953544983278441845912224139651637894436366275211565689722298629775597576447369333576714621531494245725453175148651934822374457743728777185622546692281954917878919955858362212614616634797551866514712911123731743248996236449463542321211379829784484617556124342161234461263773167364681618882729526691267428432692214231896661846364726644563191426675738176232861972162996547663135994841194444211588645632159289751453947351381284925469577933646871792581644362529325764839322829354372557448526958794915833523165668287351617773497195867691967681315633912693761819353835198777844456111813478118746364334996268641388881146388466877337488698156547511348639254776526348733113338864968994113685419987722692968491826138499474213874641374891826186714671922732433294413938422625683281777778661293891794755723113498172556245119842898579662629441431912914721331543111739121222235819233622741493811434765457345915562337639142164625489322512775237446766351675119951625721221447736759834862846918226299767923315482315886159148331344348823744993239635938616247136325463912155643814989557253489451594498667686595928353559727166367778393682268385989448267588266697663317329351274161487738263416825192217894119457914353585257673184171215734119535186711625749527171361644138698489161115988719918845926632127365669321422431332131163517842259534333231753415485467936961691178942354141148833465469799792913288955243825615424568885322145674847956262175413361778381328253826819648794255858276694356658921466111943471216162176474345541143515576569796786553791595869416558335531391488718449128687592248929945229658827831843512634966196853769579739553911819951151958782458972367219133134955662536873228321862963294378294635953223672839792227366173431594125592952522851771692561197419483563211934364315535987992772258859265827634224816971349385548498365973751791286568188815989797793495176875718346585358918584421262834789813251744767339317587135396834221996525911454986195599344485638262257278758352112295565395539486935644252541459332761684682743218835576478213374635853453767218752113692356476422225926786851672681775457126213328358449313676274663598331136133923748323327284972661882712493561624618347711775227797783258593535521274225941977795426627721384322292457537524345333893172669174321939743287545181287552379943314526138258648852229351243398882572233591777864141159496746426486341946966344565794866978271232563324475111621158114233532941588588182792194919561221653838733764326219954266832327396935349673364667153937145666764895464612355455728482421816628325267522913879691813337276564721179595812892451699519391985754919363932799332496862824385448958871622427251853674542447228555561645516946113437326736187994249764262252478228223455292324473147524731794166184326512932432321489942112162699863772147181734885923436296789326896418128428326763958229893192952612822485196331815332445963457963314559994628534297421962479534792553957992336487589213314229659246451122574547416193268861932468771415636727831224183429568345482664414568328173298785483841114687426785141632487543142766886627563811522151893516622976486513148284714123444159955576531522876653757936349448117872741681675762279396651169212628215191499851827348361219853624139348639678757961551527818676922111284815925499881163744314198695791825646636124918863572137686229398367623881672197147619248983992738482335432336258982212692616124172832447665597229523516364294426231323331375758858123138984445517333117198542459328436167832681416154336549796214462124651389711811227385242767753726992479528893791866415584543754627423333911591246795431139987341528915813853367475653353513811482893334837355137885542933715697512515564628269478756354219875687921344121242795528554447672516974858866892829286481676841124867929233578764117956865659583892728212169378654515967597693498713893931829922942272618123924621491897333536789824543724444972511664574348691751389344319579932351693279425972687574785337165164791927869374848289788539719861562668956277568818396727279991567752518663262331216397434187581985536974953131973763619179879118724596283865949789263246786911685637277776344745739377557831661188452821323463529427111664217141495344561847773521473135329623819179986246829919577575231741363151268148687797328651569429944684319261933783696664661955875752359486936344256598452746385512775297835586143742837844635771723597357985353541951299521979159897192542712669555183716113524473292272195791814658392464151756924383691782132421968665782694553772637164612639391311799791713694922545149431961887626513278283879297762388956139311543714731864426196168244388724173467521991638681534687543152613678877439349728682465557614258682626485889838462342529216259825716319655497358849128374981269386144261968528778778224323421243336823984591896581331462332224631745365131969169897667672315523551996266241666723312272212166149538298639243919794476886175439994865351348536453863521897511834516862981858177749629133874264959989831171894477231725179187533688566522969473528542489235341679438611391974741664818611141771278188179865396645397696823439566587514164673689786511386256284851145653533782293489648165479639194157739422913755844146633354728223739944753448252489631552592351159713853276598649195941296643976438897479925883149453373215356347182417557419613963371915218467741225374592336526955917646883987785134178734443467624563317725399996819371757354618721641356492318621566134721474228383559512124786557712998629355719661659691385129381969421665971284964487928999255132214221415114112251685147837326429856215747792595341862965787927342465233422314385398829477538489653625182926384213146811368994113743325819216453736144199366318534536897657797515144215252132516158976541844683195745621967984845162947363487164123389975953132148569464998461626735612291253383927383956334316645873112557178724639192811711111218336549111255596173865772346177565195125592453228999885235334427744876567555661438367126162271672164256441188815738826455663737931184849568971387821817869136831446286112472996155875567151235193539564985572889291113654538362751927163217968762135676631667175245232622793177412725784664388926234872515561137333957745393897316615366516143491346458964983733456472117317925124592871617447872618841656427313366766148851333325738434766257754335432494294653484143462334824739174114436736567523771225477976833425525351939787829793884688317727291268345467881249184928197138858884233182456135577864855812563467723542336718719769176112154457728854144251546281441538439854367564777181512264276478234264685771352688436183842618192314177132934473129578514447841187552323862711833364357618551455692262886613674315982853121272617941791446251284951823184121744191929581236879979774927266454999391327495912238882915679441566437138963166852743218126523455639715391433246281273342944976152665128741434743772782688496924591368865476555441789623637959346921679598629325183987624685825865626641671447545455151181222833426352666311395729755962856392179171233579871452856131945336255663388538421346684563869215181165223199953521211637323514195891466984825138117225557354593219222871561232943133849279837744487861765194571112994288365945945576229741291412612961863745337818195838211952394523814927519637669431425749249285255451616431344563394175664643115433538424646887141887825577372935721467417197399481891664418894285618955189238352631982839264662593562918362393468198935144547943751677248859413115176571846982233779838511411537413157564644239949151254612495232841456142636964858376287914621541864739743799761319193858792464122746976459743329887523872645614131299971291743413525438947224356292616423798436162136474952347561631768372615197276431844223141686785432922242399262351158612945257434752531329963576266213722131181154832652175462211619476741556195726168126341526419327963128443199324485796416441285357293496179213485623477585386895985321339799163964253443481146893213355656384312193873597337743554767573281975639744894384884672683781359331399216726558221259442414911181293317553919536977175534485194486688255824768269472989998421332222823234818215813115851534312979273344197222835124514154165563968146665811581753581168842128425595562862365313595513177925333736913749124483592944477742847192432256841674418663227952579328215731365363363579142666837771783115595118213178974913183353877356795753729216845613857955177838622679397261794953991158353934272718252451848313292812419246341372627942338838636287461226966129159138443747591314162681693145852414379325484653821619228215778117716923863871713162521764339464148962678998914561716115995864162752518472473837365286735635293341729993438329856978595445339148287591722736527672523671464973531225625358923525293738682839776943281352315973252336168178843255285153963265132218126349491776854313548266235352519774229895538952594483785134927967711433915357522579495583615649265553326287146957113935544178842498117923124532888467395272772271853957723241672257264342589725631851413428814588641443499414344167622936984336595629154566797156595217786854154884979424715974519747836259448955443185182811197951137552894962554649174643144397772515633691629742389648855153665265435762264253166773498634275272942379314581993295665983418972348369725961643272993933447248697379663724168694758149422179969847927716163149451488328124633364992536646955161319886655489297175735492737936342574691733545188949758243451718878529676645611182772357668576725832673642978149577342826574454712261184567295588817241756825391183813574196983357654434347626232172281762148631821254128659485895661126885433232594136155574682351168182987334619135163271536967328321955561641987236868635243454429814513726261451549367472599775753538414727436478956326933455782146538274662121298826855597281789982254981696349394837982468162993482166134928712831616393744189374168451686434386778449684944248727351365219524986357475529243644677773145523369923632523876284232625771733342713476781133974447194623676931113616322171631325626496215258653764494721817219782195563798913279132833824681882365984534274741926177731481869524324355635383974948381488321426554427517723265461119942758655591184446455897739342321384262154367249719375483485992161741994199175673296856713594538369346716926261191783746852517148156489513177438165199348519893163371283679398452291671822669835143113652364619741167314864676144513346517315395672337523563424985425856854833772687991512439124351293363538782529397635137662877285429143552591586589521393123215453637659894695991111298621436865785269793339338764378624467421549487192775626224815399929571171293217322938288247382616727371983356723218156851453661893625858722638133252932546642678542439559581659724145596841489816843336889528141395458843826285298626765571498911434795114413984215825446863276237471343996761522315779349242852417954539793139312851245288253839577889619285565611775239292351413917787962925956249156119614371928828164689885592719456775124728783253815165435573164346556196499322263852486493556647515229252967765141287858486351429418148582834581451831248385328542317365712122929748329428586128169188933993249791314598945552928192714574583622159445871729597462989341867339215556929818113334547962314543513645477218356834265438415293661243943271146882989567783824252394217148795433814741918976737721724572466721383738353725384289563822786267547382784612288719749959566822986619285149995318788188347776846364879272478826591488561221914231849433567382276463448471283941439656786337129471737336293472877839424492827652119916517758452437452638154657948321365853577574671172395653192833539597314673355647694912879562588299254572525917239849772418228322417614492452181179416122336956513984886742836179432724126393321347871995575382255168947343644382227354814212493536426442967881382542755151679534934161546974739212495885143141823425947454688523491421891641417553232532221735147698461855172328472311996538287729345251763568993441854347258432548556114628441625937376194492176352941142613267653551733111329351562213397579933488666382221653679434947841129142732426361537784199222472326181213866124896797423171689977162265819689812275826261396677936185644293489495514113447398928455697126917817712372148127971393231566251117952543943589987495431291925467278838554126736731534681955344755179642145577153481332467921886497345599545164936665148417698195955441315195654778577466685223252787412853627537225365334658655369276381597566615174246972771271582125643132917276222316452583343427851873389773547584531175933955856588829634658114225917451783431255359685986453443622445658429465636716189148127412372956451547783212888415761542671563511118867442599191481481937612265166121484541484314744496253492199935434615944711375997824885258253893779162955252643332856552822421479281487843322242474488874629464691891335835259991377995464354838331148779857229869881214965939292592459829428191515676196218541222928553635629346239914292976217447924814275618571344542386885232886381519454922643412428269391489968379414133441611535683619671918535735891526252586526191652519274452288492473818552236977331618786358285589876316888443887794558674484554332223569446757626217399376146347367552388199863174318551747558741267879945214859977712423518437329834422432151829987438687259487755245964143739453814741357398256865595945978385754717617359765156281771356394811341469195299567276236637297113419197616748163199545177769625173994365981844498512267537536864557357495999724439418595561232354683221252496118979333122228972543562486872479963775564143518261173334177596293187852315527611492248344769663781832648183226725954271461274459764194447994661567333246676589867939649222352214895966956865393215158659442418469472777492888359383637632362328618165928767781623178632416884314267497826555657681359538363859551231348471257346126348327827334391695938988161762534671852583485225618553677933885373896988383346465795369361791311485335761826448674279264846445163789732231516543217727712372452228459554224234284446715918378795381398417563452958111737696162195676841127478938935538793211533761925513616384377423759169247323521641559259824857812596478332231235643576432697718258611456472336964767265789391452436456217446525769631225413349271766265391996698483343381739313351117233472321163615299494711158736572552161732187478731457541632278953621795556699563278966239929652919246962117266574829639353222964217556599565122484282387756818855527466135382878629875954462869494773947387444436672495591127947217565665168728778585864524461811423133427922152369146279412596633523387169781958354361618511859675591282574423218729933873772165776296355733611389695694619267342753231346373844976991564469541433196382117452841963875554622963241233362666418447382768642658556167123152383245528623641277643732278594122546442184847949324991856354747356941834312962329282478294381385487318763883442781592892383135156937919233353536683593771437169477465625719967574463751325496696965141125826519231236454372351376129348248566316699614276967913716464133312351728921555983964129335219789872164331547889386543449821186667355622543974988471651892527864461912666865133464298519364455549426137542692252226397693854112611374456661876269768455536213311727937926888564341921672528244121554171132313256935712551957654271385277633433473297794275137514318169731116899254118649465495252313175122299144836721478676184162397656923431577621346738778888358168454499937767655432168666211399855945516411335668853229576557515545875591175471681641473339571213612945213813621918612532493394816319765761115572627825412942921832251724636763144182599373155115474441289584862637632994791452651991857587928646513163437174582198225887539852241392289185824693892494359944323382756513536367453339881251146931228738973334597574758955513195733426456954741455227496232121561815971368533375458838161744345223941193512971345158787736532648782637495429511782238913748125113172431846989152546254643879498173925531921133194581748252642313927511392447782512611266538995381714336153863266541324753574991321836379738297124728172991564949774751733271591955884281664262684765878453747651536966274167638313734849261456862382716923552462135342538759653512896266134363943531992488335348972927931941355345422337539674391474946699163121438438291229613588154786514652423629687217765157182212793521544631833585546254124995838749898658489991665548281551133472435261271618866528986543239842421992498267676874739443419546647796679222723361494232439246639245353728734199937575727413263114683637337563953698738163294724532824359561177943324268148373346419184372618761422628713665521767217116265467719264568636911272366262429189339483881565523341215255763261665196188843112862942757924584157265423572962939932397499324499893518296471889284237659816598897618437321242536843236214316676129515911392916193459229824334537364637957283224572944667518349811742855977519613473744123679115972379141223499457131282361333943881551151656259833257558792768197133334632168129123818223877678987437554171422884497174612871913551883879134151896847723157912315637343318636623744813944942234127675654597831322459145251484923535823196591762965296311725451579362116237272582131648796247518512999567147724344111149929136173275984335527528761973812971383172779668323192642361588791474194648957219837437275553618878721789361246384876675654766482976821866132346231961972999737332232538389566836448212466355248154524143429572515292186554367388878271363475339428519679713967916149715352342974337847521343359788635929893567312766762213742562893585244481156957736373422554428131541166111778869958513848263976433392333995965225319343363877219679411425828995512918349946571651329138633428823881275333493753146685361214214319965472822924264324276474912856268252259893997764434873197369347177624292877217852959929622988658921112652313545731981115446992623941387219735129633589653737198978733295634925979896114118825836947282369581834395957445439938251999822323271541221165517362176366863291973776537853817454483634731211715483371478128825413134361841319317343285119693895214354659125186342454339113319631653238482884922222436971444692116781252297141915357241361585246166644721919845147311699721311759195255595478681214525584449114916632172324289595396544922576644872754122613863999418199161843952411969983525231683124557412823646334988618151797211643874231627572294665775732717435819719327847727395318898384459759546664175993845225166458263749584661621444136162146873748168394594262398376361654891637241831377425259549248227443277989353823134631751536622675588246115638796198179252362611762359392426466482586358673269629251418831879936911832167433251834383295691252185647697838593787595137594253469835641449479472355857362341853496331975238386193233847372658924952215484843677141181855132658725172483885251853713858252663319257561886849437115158257534675874951362837692418351964534383751981588311935179437526656546327499654219791457786526791638623916616121821994218992752678474557971243947226222842161237316946768196136168213267767387512549758781562512323853567722397452127966316286652545297791162473588151288616519191877383628769635729433654422596361148373685789647425448857426162917375412225168273739825124223376591637139141475338682579245173945838968918339412725135194189384598623355597787124833615566112674847342612231344417331946219291839312499224482694461384393653248523965537791664537488629219494537614645258953282168814753395131125416529482433351391135967442682986187277172413937546121793763667882844785535657272928944891312582372225751212183672223545976847449232921865496187578279429433724914916459161418188332512696695893625144841521636846282517331253788919782322158193957862974195997537265497588175647933213723266143439942533668669721779824513829328311846186129712465758977924485132414857317582215334995933867279148367172829823391483152259444255744672124371236384886263762913535367735559471942338455954336434195164839412884433136342153284314153928318768625327845748298591142776776725526971339595928563863221479619518114171967985261339375588191522161525923229272987429464272448922961456146119665522217615328821435389123757473276667791639867969142975978331454984235544642521965552478616331223534657111182596684953188893973654723332346437716225826541433451454815876125281826984385733911646537156662598667364818449654152712741319386918444289984997844862628279141698869793641257843162623616385299379619353879488732963985674217646166996457576236974131998181332346149373969564262212793414438289637329436922116723559373429614835912443334741947126763761442746984379343119541993465632824526916663437316695293847732343144147118897979887833136815967428667329176464396853157781987731382967923228295294441422222877988476499324371171349232712875117714395123597924754661395881521273932862686666359383912539563451191786142866276316582961528544225842499927936695973192655516312543649887834872413634746636526169984134236714588875671237494379362877676948355149351682141124376715926466162229996547238937311331949124757782862739631454883328945928961384467322114224232313181962431561472743135111528691953379543266796883947935429461242768584321577776323679316591548174779771149256963195894465685268414573558986654871548882916219596886862219113288475814918211893841462567783983312173818679928514243816598217263152211173548426162527691136378624396413878761721555841212342184559487929514459114619988211473656728493231624274476131479582286951865693963343219257675793346223212128193848793588384334864674399173519443359657397664242232169916178258829872868794728479141925814178197525731988423516378298611381698663727126954759523615646316397439762695596644917319983855612331146486973613213845323829335678299554834933841184913727142636765524354917621125128112989475627448837263914159356549842545432861618253642337359558141195579543131978944871524581945652142344583715474281841688215268755233282214253672671273719341129337419641895546341563242936271117191851933391594958529157931868199631971995744373327355376667428539139769736954772459292919888598973925214543566354529352166194129788235128987683523815159216753596217421428232241573251436949415537516598549254211243726851488595886288164597726533486847547178782314978645396977276987562544777255655521692292863942134458192751428673938827982368948915342674992314891979277784687617185133321441134544978214424914691116152763691481855182523189433529818873358562927559377123299586436417912959176277683453698523732587718441264549185343435897764953293738851279257776873589614375655727811247766172439862721566144987885564537798847747274563523344516581529811217122544427813132724423478679957127565898934137315689937876124269474382113982862999231576675219715493162434294331687193766273688945978455716631987461959539617823314671544317532154839526229554131217457297771388249119928875433822335558995428311336954189734753418652541436592858131988533215243562184136556614112382168465763318733994585239712194114711152719956736185972914619275175275649544355553764537592496831282914839351364918257151371542223961714826489493217853714112559243188442356579978422562649428618373111927867281532346324643177523651121331756741214116847196216389661213121514645981896588577561194844584248691468336726141157889319698929177146932473163394844458243753975579163353626574972616834463133649458994575135431437197214827415475653897582472628135445645524893485464934919692849281334213355922113646631991533383659477332963633776826286779871856259483956524747122579954645546665454916244945471696146221728915111899777923442616861931189794516773317533363229436295191626644225451126767878935495469284869466962317212334397383553781525729338885524411499652121716431627856391646116428519158951581971539571684917795541463944449492987361249273444577422758294516519111649427839427337373161655465162342914789131435551257475542864866689713421671258658427382213639638154998955183937785353759263554679586963297525323343924922322367217878743724222726975643156181275463674569484867764466998732175617864561766719829282294524222522377941222548588925275199338633355325919134162214221672535676531993879584357254413392859144644726181486325997531997437516125874314764488345635322645775241255569986394288953264781588393651498588969239189626561289731896131641922533255927565625318669688974692834392377269177527318266134658764317344942622655334433934765184712756433396792929498651493374529533171234323927682832763562436118513256639665458147751919692112427119294889736867348584884133634141229239972438395433841985963677411989411624311261945644138347763981899781646287252798844845438836486439417393764482655233113358821833223844185932664547633921315845426889535534245196413768973655811469685412119453751149346965126317493494213492694437929431289235383466134217559249687239468791278179412222254281793473785592771313757952218239638261325814858821446629236877175545243175138793236697895851238937711265898657372459153525362636925938655612712866388446379495893347224292816622139973435193236818692144217918776349767647512686673365411589635188441881277218598623492313385763535818523786921237935851242561927598292911617263537171259987372853734524194385746134414415262452973841646217522116878282776172415258655943598272981723341245371929252416773391629797288783482852353335639754644115666986754189116664936176951441674864277926616112673582167849143288813886883761213333872223625262956244799328358949943954434898236632368776322386913416173461926255399322794135623219217965659649487268174741397239714924988445554561115179352678238989985618593445333967726683789348291641844471298371185118135467159788368425919392366766884517427464149568828278422339848446353341682829455493441644578442237634269622592161272677792585973277615366749652328994266283855215861937255739235213199986456236435221751384219751291114428554794222732945632747946881688475538455375445891375449737944443977161943278281952892914821175845229874358444315851553365514294689154851242145923435656614781512396521589981389662928328813722239389632834712149331222138252869566517252581714512825378499796494446381255384972924475123633557926245591472323792152834131412799751639283656113542991227952473354491144717496315382229124985465675429268651331188332584678998622711593243941962654828478919635278494394112457344989458773421227544549498313943717245187784372565418495943767849451481257612534449479336423848762157977798674731421384736321771335863641692988281149796948151354121911551137596734496181254996943948388214875858959586623517123345978216417686964378222114421462197614343196445619428976852574724567344446315892115481982129544817536382755579646536818332715546544594786736582469849151214631734996362687546834714842759188148616526671281323551135881357188937813859833428542258359254972186188316587751886411362483771119314997633782168679467519596769219799213523251138537443414733675444718687361341977319546519811633876522632666369316623877815814424747263226625483298691126414374913499724681837575611824326144635965367417241198621453889952614134227536266546333495256744878783392221462721393722662924717524694926575999368162369519917581374339212463328946222588917467962595964339992918251247177574436471989486464424443691417152144852229149492252955262331276832411972721798226423917281159894193187677126339311218883851325665866564225747299695288484563449139345283813798473865844834291293123486163313974757447469378672427382368879341576366742634471373224858147971111925158548326321919489836757732421449782313191267816683765147374333625642124561593635943422932894781617652641951949535567641351192223815495151198394121884912542674948248688811332184484311734431756964452714871822835141884819719633343322967559475832284171118771692134268214128517662733613389867554241199752995662327621619116848656116761196888966493182518687542641293411842568943356736114618651663291827351679275766115152327874981353932121794527173185978681778875922129645762838443749355155741537557961888312981996859452736236596767629725317919534176114495278866925748492886326664175759626479567176961793126943619824859373521323636755124622824511157327962325342922484675935464873487536211142379627453314868752387761216598943931521495466178926984628581187844268355539367976575988176861853688988182634456763656361314458738319261741924717546412679154981262845431339979424558684347589136314592819918253295536963846849455519399266448791395117894319431437427263943731862526459111481368635935844642975941817321239615394863245535441594629117693875493193714793391624132267614563759191925627216544877612898331819591963347296153113185849793792348562215318236835532633694479411439615792644182523228463559653693952111395734791859357845231611336125218431318111231114128726416461136263735446872871819981536894888235119942276614195288718845591821483146122918537891758948449731812731714499179529119888577935991734273181825865711554213649634744147273735313623144131251447681115334643354776474255851859945198456137211921969286789683854971673627534177865436861863791641228519231511457242823685947972246458529525559538936375836344736584891662939632617486495377411989768298244831755394642766887987645953138191259791377841465923893114767867437662817679648715623391925694577696139258253629838939752446726179253923243569635499461372572276276957643446728621733145265194598636262484572172333273229761673463445226533214282314882445234248938431675872718323326284667499751822484266589243462935522394896564593894186393636611454791834517292946651214731868952618848681751729944713338319858441355196879783495731348489861211128392635216841318343495427426715991818763972646147857214722626527261673833413893776419654448363955951372422386344474442689453141497334311317312927441383345169444228124348416432263722547886737664781666142221374914817445352584727561148475955767126917558544554835757725457735722351912664399979922597617782346595941555157177397614471557413779827282178598816786489824468885383176973156143391715731637963833223145191724918461118536276355468683635864225857184552387581717994234514173324959514671797191717713253319625198828916899918361498221349496555487441412275389857113213316164797246415377386233232943443552883682534582916829375121739759625556377941883546897541775666346957849494523481195827795962448612765234328746639268996193229251274511165223191925436253418185364249868949775756716267819549938128228816382892118666325128279496261176359934136752113941553352342217779477992339348117437317754254844246287237415256645497694959588665666532639415987149519935648846639415516713237354154836314735734192114619566146926221351831612246354932195924761526366428256433764783253478869829161182745382253876637823616459281281572534288131857558717351535131698497468299414299749562637283598635792343333494656437121689698563935652548722166913549471853752919163781168736348481518643691891942726913253924948522499939868556234179818769348632696729784125868415569198561425599686492685249354837393724134421526422327248654896228424218472578454728461667183414723252836153183756341161887927224133149918921344398544895991356295896584362346212851728118764813645889345983911973825532557291253849971758912595951661995642156182224939347583191149432337717676843351374456811487537793426996659752549184378387259378161772634943786313553253936857587787546664552629618226857843528272664231899781519782849156383185172615245982848795687181159231312427592735537222146196898131411559324382438158129924657577774115943631228579581563112415545543571257189526344425759191489583224236861241339468621122416958292295146512111819817837883479526877851472447568667843213923965651391241473167899699378628189336915111961966243951335934658423653298254571277471748319872343168768461169788544993313743718973868339393736826221924218625145651191242242484132222157841691499416444265317511887682429864579791435376871532421954448556894145956964359827799446411272468342165532551211724518484912698437175949793913475455716735265233189642568666162112767191431113534474744633524843333624195884515657514841377967665339132668193997955919717235469528411827975749712354614475356223978391296524376121848372416267726429737976318887881928178276125784956344734241168164475442382539857574966874137497482726197579492615552431796381698119795463661323584422292975354417123684472574294298996192293678388342811457729325274782148839981989959598874129687186897261237527177726119311743598393471278298946626724726974933543329542115243417138178293286672155587922294545978882349113488173741754919783549781116615611555993298115479274124966829484986372116349531873582143948943275313612721739911782267296165584344916536726364794352751913228544995692279941686363112126177125297989669546465353198314198749766961352889734423439255785993645636123131672426423453419559752975745423199867182116451164281525135657883974562273981641549962159819497824456355994546323988335322895134642749343347567266467667181245269114547339747212433697544682235826844284233621624873757857418253735558923516293192567432356445971578463948229878745897312792493445924516675843845918993397235582492454519521735651649144581689932166355439845355474557386342859473187412429789734768387767215845683657388461573394573362353496536166759627287973266351584631374669463655372929663354532673855293544644191947216537124329311181522868131474973837147738546738339689365311332583565767839684133514861774864472818711494125373675929867129828922934133923538133494698867331392262637227849915992962218281988889888635838271325553234994965547687326199872271261664122379455679552283647656459333335693823356234981198288285464139124366536632388692821116572527329176539148847653749197539628495575575145527311332892964752562542519156783989363597272518954418326974655721191326579215837582351729934611393638162566664995124777789121483832282939511682917761353246538399233527649595615439926355313557973596687227973441156524885231716828361219127727126759169463133998789799737925212344258754142598894246821824312176948682493359215134543615453893431683957654834892818957125767487841341166183636992492437476176643962569973643433298178842511124976472337118439216767635322493125816815337556287417861619166161382977342467865943916869696324354228684881667977236374131742522866724526466179929647594995432131566427361711729171442464442991474173319733469342556954943376522151312218675268329235156649375233916431113363513119561943519151363721348996776861428351781222986666166349177794647579818118677715863538422893766225569282578152334456315575414173629812142416762489984817965611276682293863511483439457754167787715573829471548919469539712357627115639334396831745583582766762838124747159591315576869288665173746586136657212668144823438668591841891359676492224778572385543382537658643915887312652859146623258644894477167464452775295959337557287689717222134463386467478977178824627134491594355288473825359342839662144482752242999586749784485767255919479275944689146113753586966523868798522877339476964912434664612714674575266557391337453388517779654664954658154934665867583184936319769855189177542731539252884923237525161354621271552532949494662389988517245169667173624619627596268213424451551485838933125683391815276122142451154528117981885597212169494547233242995825988343313135546141368831932993375678655128915175817175512555489217977798681255941971795592516823657356533347946153192626248332898381211517857145222786873982111172596966647651991777316224721653845136363485625634393751291637333573197136811282773237953316554999399787976359419517279134654185149295544358619268366872645227144167291414712217287492662218695342281973135577363625552826913627911944131366162347687857113391744171123571824426834991895359584264427682997195654645873453846312918989858913723284626914186272813581829479391228615465136272418211437777472274198329366139241853736455347752276417668224399347899997764199556275376848991568424761991182559228299783559994314114877756249376383476441227296941779193123439184888591852595721592266341323689898942151363161467769348185624825152565134382535254442628999952742634869151881247947198614751395616785719295826917942847277674857524734213271462622661813174472161198391959119347216938565655691776538444794547672873248457141371538561993811212657432844262771542671569495933192866615164318299735637843798453118831342292189253232255922776358228681291499724395717746726793992445136425227947195797348312897419224622817632352816678914867633382984191594682889924737888934893158923926443827924426465311199457381557539997273726916824317512211999115269673428546637189751679276837549914836893212953158743372936746336698334361454697382683959476493161196596911195162564413429754973676954937649524245936334265383118561483854892112444165493324995471754893469465889428464246211673479961188166263325336977189685659859941542688393963964265163248376892183652139833118271727633972535867119439313336355165228324252978893927837651261666839169224121586896328125319585765261575434259429218734152325511672154868149393583212228561163219225233831184238576584339312146559539646844873611658649935298553476623675623513813489772891275135921458128835166843487973458341484364821471921748992899355451811195171272663183643275193812449788483124241233726751172142888535412154566214266818167691464387556131928658872693377435261834359828268162367483579795366231566481123347258335464993844137318256458615753566722714914795472289335997668818982732334131834997262371993172373243784686856425343845629817174821935193755871588211432183151672453516254963427145811118139535891523491123775694517939758129146387699733512456852814465198416476455557924823662767467139265233298633851764128758274854843989136771541165855675571569611714883946267995619328664147354457197121385263488122411943372357512876369117643938469929461885618527134432569182569921614482911721825338859227511788531157527551686257711512128493762651483865822252585487162647592931683411955344813917879371369381213613492242442327284132993895467296751734452695822631833449489986349985895717119861653161256266976384928641235115766932639733266636232174151961953454584163144348657995591188311915963165776942581162241187235472786789132265394793114528751771769672498895644374778436251112555659517413332279662219699976244542851736214591218627348289228573528889424191692876931168492365923272969824467562515131352536756794967533848467687212731429818473768519493457771269746478185928716429619474175829682223341482994987981189636858415351117177556431682126261617988741275235392756598662572417735333791112689444895258652747142363758682792289649765853491692559446195692812328844977637893462433631324484436859664494785625742965441819294287744543267168352232393121882972942785522979479342743559775272932194257714756327557547315614416596125188647266283817741426397765977642586364494847454897233311214569154536542352917632328177611759653689538557612777186657499693433874911969847423442669419119412526116657925869593293975859824981715473191261383251367911522555215267938573464861234831445419282754597167865717745949996341647639213621146519199593527876474219828164294923188583431353469959682938365854855827598338571523429422571521113572335624864561526356994826542268129134226166951262272485626393641731832917126867149336346156455855712246139874172941995842894122939588943724321974645533262516911236753964471948268816123132562844783631174541365591879375597869994927571719161263113935667728947729534443647247196838741516257214691392771435688575626344931565598873999742347951663233329492818325118561213184211674356122415148852567679237343223612992664363277243554785928821775269965869831448548765946872225462665242349181411387811731748599244126774114921111566964788565757257116738231538629948498197296662128213362577669857281516485244353558988782334535925611591597111426729468847564463187729445289235334335344788734756876345536421139723635436283611428549971335136262686162228517699419988652559153518255116425866118345158594354213521672221619964533286833279787465641945126188134529982973156749932437171321161142482288923467235949933726631516123569149111238451645168673213558367293159229295589937573151312662612224663447929761368332798822845271452974614222143982358232851179285356372145581929763181936398292249689163172245969231894256579751158931189146541181576113662477643691415111143395896478314572522137976943242531543553586461752922227676254128194813723345453953848225843733798639321638551962223483821358664524241111664722149264493949785892563451858844658155323554267392881943435886989449916323893949256696656836844978258252313339914518361243512487194155345147291493629696727577546425565634293323627647469276119253234138212382414673256373271854375493266147596227218632111164624436167422577211526212439831113551295169745889872682434196949715657627941425697876892354522315642131141724175382435252858973479512261925291442947228546771521578329769839716667471483882787841932564276421123434474786624893955435797287819223428313332812411257916741852441716233415449478449458624615384636189383591129417518981647636739949332776112781371388263754987727519699877496191614421397967252275473627148846827942819755994227792628457525372711276911453185693912996879245837744812924311631615248724399681223569378428624221518544295554873236834959257812454654155357568526346816746827319963249738222956825991863996318471727123587268385852647678384266615343129981866222551216647247488118165521514389511444666514422513324576156136288764678377814825152464281836381129422543935478111559613787629463117356369566323847262557295411488927868515784356112718368434734722539916752274875738769557798938697855857622656166635511265679118358789729485193247484198868259756669475224384275688123416647251775887245285522772935617654235646181871791522761342316255812932354577455686118778467423833799556591731367692272238533293644221331554292387456756522438243221617565421153527965136281837212899255525936296973832517966646774524116974316625964382451864861649425289361129683677264814139918428343261347179546913217917282756953821214864365349915892723471211263318539274714612139951795739925172332641572682552613164219293243523588581427249733946862636892558932173726728637942799985612384173132842216423892964689994548738683721768357147113637293452173282231136311695832231686729214181688243548267918244925874124421531553238615942852217766277114145157636326444267616132688931122275975796359684195537412252553598327882242818141914511144797818694431313243184982352739172141357242737338561479388541989824371274266249929938343643349262431277714454865751449344579248349348337451712359162124353744232481252671358414255213599587694623154361695816271479348226866243349131266574352713198412584643551839963771334873198275181199416525642778612293469447517481296855912138745933361597698665229626141215764882763179747585433612351244557126262316357818918277187297621586242541356982231963394644453592834398266145659878796491321986672142632366567829587384573165495812151711427261463494852514996198653955174985228646611611313533934217475859987444465679384953424397154973723744635243462485813219216476312573769363376917543491237257917785514171697229296877237263167784963776422322594971827676189249172427176749633563129874333411564787353167899127887531389891764634696344531436249232484439331277658384121754392442129381795658189379482781643552393929919273199832249291638268245829981244859832167725685857628366649854863223396618531788842161192741655361447515714292812189334257951289442566269913862584182691516391565222615572911258284561322775831559944266526648471135936386574522498887583165661269847932943378211159211256197344776589699866486342745422622326466988862649123362561231824773722378312995724225686815113893518251399666578846993881466817761228292718429866923878275728313589734764692226662643448479696129891384253359738917348674331616446471725662357519553277396888114954639463193382134421774944446533578549421687631823981688495453515458972581782679578791264491454452315378167412129334671335517236422892884322494126453421562273946461554958562114545526583385214715142231423647858122381358456848317984283459993915897421745129455742569414852837176413743877347242321259821371179725557621532413239119197674747793427452957543734329419121789996575797556973893974728739419926331584598977917296611637672115666743697321393444698689282526416325755732162833685176994324811391765882592173972692252153274214954719718785966511344137967961874822295926183822882299434393472461327316347513378957581767351187176399322993777536275145396542639267997814712498128853353447937532431262547541367151288125796278228563847731655953165235328319772389313378695147821871112781511557885398235978133744387591192137244574829343487968119334124636995512966184827622271384929229356933123846271632655769457243982313951331455111998856493723869719654141425345284453131582766854383424336987948974672126484779265474217352985255683716225838833685473996439284722272277381233197297162589963554115216199817639123812679574693525532937892794844131353741443195863334451417339667259754464144286996828835134622585939299679736321512246624739247939887491427351912587844649747214649935474524151838631882584291825346359643859234321454995435592138926552882975627927152194774827536496738897127313539142635385877486556154828879178732393824244261133923855424718259993124679332429192942951723536674961326677612315274319782184592648891962186198453266858122244488843531444655676393868427443537844146552812112542564938559451487387142254348396647436721388338783718585635386131617695693334293175896796263531226115749351261296454931831297759246517673895132634212932727441769134127396153886131534594539531449583546784217995287256442529549649333415538327197823115679828462895464441176274181118365384711563912387491368883655264136995997847784814277354122711927233639697651462923971891456149482798782823296141852151228956632551244312121784538912428949792273921231477219462455461592933154333279193189115449435543471657213195556629319957365911723351751945474298559377777272519279367875745687311536482168197621511329549349534958842324239248216336244814959335442522544226764469515579812967293838821481932311375464925831472141393547387289398572187518529836394724781476578419759614128324282396476615367331729576146256533967284681841777817345119829585592842246145965885416474252143237344642115129571864812287811883649168422926344856995538382471175311456544722625467712841386427743986378721761726533957183389128437433657681678394854812552996725174673272833623791223199533559815211562767653631581995727539931112932881866551939721715514438838529947896944659599427922434594174729978256711348797172362899629713636486364828782279279613973116946968596425147162918733168965268356925679641666865444222999478484358991171114321864687591493265513245233764939637794757149935711632521185825179897733485744491383675355828764154247811354366515864478238352416845452941835743517121187948135519417117912711913813141842199573388435415722589592938771354964263271864333581923846419726927919262312847361944721939715352879573237434611198425391535512318543229421969281741326166593196419517869499912523458986365924733483162568345663677166122446152666691445319265839673693638421455511711373796262979449399398662795951618693795216582846967939127631668699724856417223687829292525963323393978644612697692113828519145771365348712387296451794377345394179781131534793861834766759962546563973852665532966133688565493361488462473721923531758999945351217592623117137436783733238199223428894722457784188399674861745163471685112957169475188766432325815136313622973797383364524645425242268918972562421737184393411284769322272717323153885953875456213969936446924851516643317348124485251744292213651126311447459398517438587251233949328265545275268626175218776974951937692575787363123769655336811875948373183136586196672927784937119675397974248151183694614132696384968137277383253393726873732926846386698827241336922451341569286144129881185465631433977429174316574655331442546673765526327763766395448553598985414819555637118636286351763725185111672135151734913341954245236246921479171519648446164762964233437652951422151744493329496252723528395215131429433565115594516488994171842162179427925475353616515839329674681853452653737861614529213291487688493147816235268414115244625774131948729275688591243727874751924948367857599149776914696227815891785815953985451655621823681771458124394245845966481638565263736846121738893258253426492549285188123429869527183958421228124567126961444716155161948597915793684256243599282957379546474465537993915521354982942943268557239812333416772161385176659434761128786353665965832172629522152622462916819346894413754968116281458585587534177654691499334862281797824818287291932222523366825227295564227459573197153991673929484837391853694157447324435837347822252672842551484289575344872433183889115331984812632591625434499583566613188571536923634374619886791874488171336147644538847851633445669884917857413152625144825625354518279446325362993277179551445191779825593617118784797721396968726987387418277816452265342554587969899413355757299545528491369583629276237863352774934674283718786961629829518991625351397693725165936311324429394232144258526546958974775415223755829169573632648577668991486924114686158299422683634992433818316582119323124431678416766969465426628744957571488346153598948341186621661479986491996397566543479823368999957471655533935246335153164465713225893897227977831349262975395833296887438413834834316538975582417258769764143852434623135827492242584322669644125744569971959181675196697937624621215445932552985292363447642414612533742689257287468945586565794237641225669338794885736786799275887141129219599826145768154929681549249158213299981562911217968256441634855132233264791683387358497817331224216461442953532433136789712761398219437523185856896664771869152366433329893648662746457464252561231728418621496427845638574595271768964562615641129177831253652145366613349947384246469438552428981647418365842147984617442716112285588487566664863947858237262271959821785242454464714255469739734235733292878998895625123791537263687253259681146214746514443332134465581281358687779716456143316113972756971922776464793157642981641973686351559947977482772826863352357177618771281779729418583149135419392732175122783311113148746961546347941673336876334611667994197442773941243172133134941718786199697789391526929779334356654215655477111813553946192815246638124496181333385355284826269457943137262415614445453217714173611945391217151434556746961546892412976152784136438956921353543929736916371117695138391123231888423881789556944983688873173527144229844137364262563138335958454536459325158952429233342169334695654773383666256756482433425165392951126592218431568942145472798721238974255813678811443422287373326819248935383912382546484334365469329438977964759555953137372719239463127199993183989613738749617686114696667745234111454928649111772761667436625245693197345769475533254977747494965463591174774635118913795515386166484212533922242668265731316962483946944575373862832682517613392673795561533357517545762694553748286996366916257322198962296261858941813687373661241282394644694671128545755336545361696321579369616989916633255911933538862646376721721815325879491654149522733883212686257449843862969247461431617794221719718581712527355458199177636743816191229796177642584591883148199489213414431183455386587583641973463572636387884372339287697728166653694733943619837765978599173713228839792522264489241921753451543114379654154522239163415948568215523633995329224328645575366592811584277214359711773442647687117942575488651587384845217279275785167299469447951232321272757228568421618923442962333379435472714236247654259453254648256362568297557145534424795366139241927225731218211312892678232642887321642322291522146353441682321564875374992186683857544435311474115551663746463572164174869674547744832495759533633614877131329193387325247362662316122742112243578242378195656364458964912722352676757468953528497337457957812318877724214324156573645613597191833969172742743624816567878413289119117919759312837559967828594238316711869947525324974175118653715755744915383333355479654542728118227714457358821339218211189111365247243543451984423475646171144467152992551517233938329657813168858841658555625462953771314779473398167762363828757249823395652338665312387359551828876438714119148266524725663874924557454861345553398539152893444257755586175467326328743356626453984471192934861943382642569861264369543618141346217874286655654931153241539841317211325887325171222285192232958317243525697539877546321523734863774526212599645256772994462786686282229766632533888591276821438161937792284199617118819684623114441314311787714753331196883948617284165359573493937547272733238239187365262868183129813118929499118774869377828967462778873896144355473734446975611699333778979363795283721819598435649743835454581581352311978757888173198461137836473664927563657619895316961217892715789572749837677126222922573915339295241917369179799379112253171997734577742987118844659116158132571268456144126891445285168771294741252865724553662124623313593132856239918112839242718983267174492623663919363275933951419465499181131351375486721253478421583235658829363453119945839335635974721858736714578731332854375629589992448748321198769593849385629696582786583153586243663896622681488696464355712915859842627238317976514123211177494845697659637683582292775699315461535366344159356166372539684349165163763482218578717944446116231238268653942281821656364817839225648111935117761541227375525419428593847696341489444221835515241296552621322279982561235619419317948562694479364331667291342781959834544672651343326812349542131296259453364648744181659875935865344196442491586453498338871518456567555455316656756596737653252134639199452957898595293558154528852655995413447856568128739438377218734369557655112529577254519547669541163514298765728848419335299153774882999914371641121665939735922453668428742515419356821699415327136666984736649348821649832544641145126352559895935595925145125795928415166433463937651783934262396638277535896621451847194833715179774134639594192833629614222539238333157615846963168463412366694896537863186698284829451795252693187838792887615842116335118594838437322464747566879729436958295235234389623824951251186179971241436542231342551621494115492248498955295367592285412122745921122921932545387328819941939752683424923111146376433533748436351354232437125221147776756642226651662551485272465219723699148225717717735126222875546725625523322221355157651797998669763135197255295342312458873847152113828619364863733685232551677957288518827374253246524469359581453368357356263527632531918417114462982614713932724629256172737468593191562663636211883617388969143323968398339688211355134586954513738534689367218363267628396563282963714577439446818865421395351476176951851272251429515898523146476996637442968965885524139473259561996326815222663419311851494547313822791351687687897415664545841531525523523523873341854388264384772279851127848563826979724139267195127228224414115518997166423691192915896358631933685534718943298411222314218239948253763674939892377831191746512753543954985975933492967166826635969129159852663527674879294685642241347879866626162134833843121679913235152116586175283823868436139753736537939714352982987938726187371243635754699588761594155194849558111562881971991679951589857269611192883313787242482251184295376296869867856117219244382855167545381756315348155883862652232721784237239939479757574586184939388486188516462157211588739481464517818413427424248751568948393335781166933639992149351615499885145139198227672638286193944916485851384927686271631267895168282663438546316391893591268522723184669312264628699822287625878337475922918185685826155547392992257963434759128949834488351786713555741595132656339211233271634781525931662656317937321286722465451115457525553967897124114247687179274855872623193677633539939763791538534563584318555131436841868769482277113487655398688453672912589437456616345947945122918672682325675157356545479258849262534662413733899295164993436295253711383156954996635419212537229449736481365523392791573718535723855139198425629329447336751641142374976816623511691279298896354966291655395294618254492952934356654391261885344749938397212139882585443598269857121755336821916781716526453588516511781791816266149568364331697833964259752812835421426476733574331729121125952286891532459228518629932172969719346417841892318584514661774282986521284465381311433626334511962233655879452441362187984971833842495626722784943451231637548352414975859114114371686129656232766484197986524118683538322762292371368527373549695286317752544671791347972854631293775439112619626745231531331544616335746559613123913338111965884212758673138786779412638498283222623362168582678634739897588122662353432674687783322723413876886799968132851663244143126745359224253592733891488317885294615993342231814139787762214284413325381953918741231316999712945329825812182673991945273911192433836214728972382682337241973582124338871214518884137534254536285425465954639581318323447271124562392171745213444493423714668972477384535667531452262253923271313566878949262836415838493448356975781434415512322477621472155883294893225954431459191593947623557328824673131638771416257166176688619422933631329644872925169124736691618239542318696292182875323435635162424436631328228464293785964331825867624613115481984631821758329581577479626136363421516345733214863797343684717933358662452596117938383112645217459133246989197826317737365871245587135696417373217559746428316647122577534892757448249221972638683212619297934965716727412121287953911483839839395533173254364231761879584526884438566718576966623555674727224846645554331449362389254351411968534756978825674219265179316173638743561597564285897279132269756417159135713353182825827875372341479113691512197423223169714337398335348982242555333179272572991713359938165377742837421827214277856358436186744978243573341253744151633487238442779839327399125195559199624713546958695275696262359713369535131464662269863576321672786227142219992475676163359165761876526931641189587663611916291289386977643166731995178562994338717293138458259431346894237456715583976563964238458172667293847865499297477194889282331217129563535646632521516774675281223311164322762437115325676196562252353564153894681113161563692514522732258365261643316519994914824915585143633715393763973571973548356753943446662466395768429866981268552347347578439818236718798146532447596966635835144972192644894863193738274272967937388812993717954314131268645358386522517618668592123627883679599915877275857188621453243157259394299279525557171753893419934244943994266286693696427693174613482267647274312423382239872996483524365455763529947153724246178721893898854911422311821939177652999492698342273499974861466762466745971663629475149589264626797383791559123555723634991666818875172856651134872124189165163874432133586791678728271564511172317152142146296954156763963345767949355953516572833675669237484749573381167363545245847724167437799887266692767859551599398116118995161797163239951367273131555633358721162376831919696314257248161261139316223544449629242712452353494515649626431459534329895829788115271171413951428613622644173647356216156532423598351329228883174671212547454538568655778779995425138527627876167792575943513816812163379753198419156342592849683965572538715434741657341758258981973514859373354369161268989459566629425354936931341265986116284846447752868243231147762894873162226621234942478645154511255261167694285429875221322637268786744348748633451225694313282298757594338326334337122438678143778278491719241286886213561224227694812686851711612572484294353384461771377656269174181973675313847787596279253117823336123325933488496831381443853445619513253171163691359233153786125763667152521413448414727981991638352417325752315289372624695538914494774945255158962842355536295329314442913788212595231892237747757721493865674546974484892756161612384158217351786429597592564816725988168657192356645511981427291495224653828594543691567225847579432387497317914773722486361191877665538145523463352791291958628299142648981828566961878716314648426239973926586485157791496538157811254167366357152851228319467232938876392233756456258495377523561754286854389612274349341593645285572491824848165321148311271937466922339239945729815854936861755387237216298226979176452545352992217924363137395178317319288883393846845849695585867428795719936488453266342253837546554294251463617816419337288354183163511679137836359997718659174447512447451832515186814713441228525241381224814482119752524124147756296885253595647776578437914675477296759135125331211462893855338782215668761232517199491951333186934988889742824147842866234912141949157255122681873924611221652843646352852946229391578913293692493736686127937364595773334337634319755633824154616566432115142534943258542375346748181961696434279159456846235363969618268158853258493742388164435126416528789569736675222892295872531212976394356758324812523863489971779787284135833795292563341728183263964174283824681666522549671242844425783898129147529516992355989295227196152931138326671127955913211935532972656471283562884499173243335746615156557622173169511127731363735278885197543527363448117998158594417814185412536757378815193734372119769938141619152738871686566418198692557856465781874278681485312761373226575976719657455433672734757345148879346174589522595969627817572553134687155261339363185254997715541219958721394389514414619137722852535533946446988143373138332174911268253165886954596256396835711398363728232577771655399649454815383126381595443813176246984763241999537453923155351333861283369292613639247143135995491922777257695669111947156584761183286734832547266553912832897149712246398871674525143753617132377553955245993568632389252415462892981648683393169329642961691281855265112895445584639937231536475562675561611328692611216931699766191751199371229521399364999932969665955683396668721358285277559941995776567637374623592582174543168451341547843398861293177816947169642923262637921699757468547294983278322317921712568725779384756197282224219985292276389123839335114535271755151781977543765143356873938622933636569215169451874864274897868119134474361922328841428316372414938858661441285379633228429474497335177579321272381373162489993252941333632597755525543813425453456593549123338332169268132474871129337897616795299329298511812531919475639129971699832334422983158241448134794661289918528376544887293337415353431442287939675751517759823756235663532852169137298378433698562524122858343433649794837819299411351564114517996838128735724976864491299927591643918112172925464525631145418814652152917596966532859125175413346764985911518783665998315634627639219513384153976763962726669543186188586792721653449894435816787517385754236129662664278532853318225444581684559517166882272376961417153519342392498835672188143786251389231266338874112426527656766879225421323416482531929948629229693698435124545421529538768487834543884924248611855352848685989198244173442718856491962725227431212899167518468361118371754673667415628337497113566948294251943181186351811628744725213892876141228833489475427497671788169119325114368599244795117985533475291543991186382645418516756922377671361863622382918253436134177931229188644191981753428456962275275245226362431492124869237443486415129527751246296156799599547719451133796638574129544743332418161364771527179594659894791796945955753275152359871325839141734245351119346129923172113663967135311897591341352359854711963652519839544869918913384749147326117434755111145676538179263498372395911462287628677167761245961653797663787349972425967133964237265568518852829195535432459835145392596948826921834539363116471642632151865593692449348118252536188444328152372682147686232668412716557527852274163265633775611825285494239869677824846723266587831544927525285541512437348322429452242178935388889175127232795766918941138446482585843212435765234351247969355778625793861376623315645689718455338126423141372319668552386696572615565498943755693422971789144583425131569299334537574363711783518265641384737751964323853417287682234553571152936686797745592111334331593797978673769994912673752792241181644573261339729928139419553378943775861141547533732712886592775935158426563551911854776497111767666421661941957667412326648333159542421482592117938325213361233195113967845334111415637594454288318453973495634119313234791137518312171564972215984984862564735474912288347185915586315736776436695316179714353938523264726649431783997369398738526151369969999329777741515282479817539473694965861273426594828664169122321478855448358433469296165566625971537133721258963832547548431965178583362562795962812551366952154538124522272692333365744275971492333544679299893315252425687794663249766679214292251357151772441155572485655171518238557317433311124668219682313482395926371591975531447252993577711846353115231219476684135662463315714977319142151596512318111465595113419882484749252395346222213144464136893215923893218682521835513738115977714553229934671839975138933732911464141333759561588394835859473432894166288387179383256753519449166889634515975817694812111885452757741816442146474731321561515796267187756817672537939968513362234546441698229689336878573416423463183417983148244565186391791714783445995754763389986132531776273955281238821715832251727161235367182843952328596674657842773537723621923428426493752838319227379951667648532483393849541828762593515844137812384862454532381317859621545522783126812433594399213226865458289325593392151314239346581724272232112922424411667428865159267852341225952118236841996425687246655477552866639359415898465949251389624569241121952782739816385388516172131783736144888623986287521257121168363267645811347658532688412731421133572628754233242379387268311959152223987517377321973859397437482536977295455421842275331927218977956225899839742881113561329754277566496472234276869976268796516762362369292895248429699599924129324431127645943352733529376321777973232951788295146849315111652254582739554345521979368155465369912349819165885521587838929325246711496335468147955555648861243293216912655324184928542716422128996163752315352594734548771989378965411938929344534888673954329948367417273433184276366553496546864285595484526533891116153169544974326394676286276283284739763578161582694452128713423131742852958192583524244955241915125199414477289239249668612292943339144836242559593235116524817812177564878623436235233759837171716235668545457392469383691955765135644572823216224162127382472256247964658615569385592419335871428861724487992449652546768633242613368615164388358527567357986611377974954117328865596978812146569889449714854567818543416154656862615446435461733559324497641339476229713324228549138378967541126914128918633483416341295341772842989513982641239979186685918282521121232163455691946555574951251374258846973558129715811882134695654599973481854685519326618321311663645583656327363259224191797767475716431968191965676311632529352942729377242364745772563863283972421292455229588228732561428845468918299435738247733426547383158378115338391134482817257942791569697691371552179619837363252378818924612646179253147989532765499542722319465859746161398972359671187651437932752946158536747123642335923643239597213171379317117615895352117396684593478123454892293192517968962959229263389657263758429492513152268655531644995814774743815963668989713277418164527274814222848193334724255121196457634739521111812996765256441861894728761356954849827635927638442117818161294443811641575935847264216648166142396891644834669699229985796277994189753538812951281184392517417923139875222136728925797862783248573967363941464871477531482614355228987596426586525976632794255711319248319576673868343431568495176178264548995828724788842817167779914734951893455149827344822931729788361864513549196467952449319541666164768448543514511761973417324646553951724221945177358681479816455952973584492851563217288226165272177417963894677232523288735973511728235578148747993388521157158216752721995573753244772138822882229425531122623763223579622221346367933321311853344326729618751254151645892895356161557875446367668211542383519114822444111324937627369452416295133666588572296127531381988656733831328959419618788921347745973387763611715339859717686813391492973481642643467346775839626686115854391123525314136481928835316254733986768192999535649364133157583897121681239962144248595883935823168289194681243131419434318295737872194979959351351613444665417982749982348464398989674691512224229753923145777142864742482633686487118417812376579932763363625445423859184757855452292461133919929794776517163811177323314557246139888799279892252891973318386313716921839267852814639525726227282767317982492671883842781112217942379114265241887134349284196482599182384847274613863595798595434681484356146585864139275277314938621964461765496912357651111816714978116154337475511765883451311958297819918682732231259131668692231118834444568617955816352663213693353486332312711288491224922219173853475118232366731269887239522831521881518619953429899514396881984112117115248373952349513166879889917554836779186885991149335937556763928164557973166577342116263166744829299983393945161491792744897788467158644426978775348723316946576379453327682256279826584632446639421285994612751624345282546591591786142655562279114793432419484128562453263565322662487543695113215322831365123119458896666954316253248625783525837955526652686834215246754955937457346175971761826942626472163111818989363586579613888585627452387866174194396262417514639959758977571967476919327259793833793741798636955859754672632671936593928248147962863233841572772261686876728458742929745646743824252986361944826899663767568248169494656376349533838628877796134454821743961688142823529534352164129516764436993251242539549278318832826959192965627241374893741933977922585157197672173477174353864128264241667249293531331937874138254952949629571915533374761431565263541942124992763242932336542598664814434878369335237618638976754175851873624151227284671224535492229261788241634153949365321578536712543313517222279387692141592646753272219327772453459535546171118686141282845961539545354681218686617685317399179782637653931323414581941734987172246748914374421593541188488256257777558354165783754985225581815234544981558322463423681443312597157913224891389653626218824661718587645852768748935661292329466932222753567378879628916892131733893343228343853551659598829437152564264795846164557116347355242464153571443781911663945261622972976477572333863243497461672712234681369736763571596799134426537641323619549812888341746568131736529532216256883757883991671213881621181547688786838695844536954473931535113341665413666766936263279467651177373675678485668792626554736594495131462799369863873243949848695182342338574112157241635425422754348631988223658245444654835424176284426595174252563545159245249324533427339918876832437114761752435747886472678728838573819222784213297494827564239114418944636766959718351189741276787253273318157346291441145355522277729222628681448648749159162652149638925832346415919522629613533288341152566778732633336995723179633837574863367928848555987212146998816898734872228124312442221926732266414383822461154554888978566717514493135632397725679465122954818271445518314746739583741667395283661854753911265266177995577322247117182566261594184516452352216224457272412914573949386348216896274128421265173688735373175428746887233423551288689448828242244299321194937237786821173176356192422417866354266543278897169115852432585217424542433172271663243996641431374177215448831727463262971911271468359517514953373933562934169168528597817314143215993129735344626786799991751347979868597312681794699987696749248157328182633431321866525463314845599865142582418291248282219538687113442132451837745654432152516429446564941979113388518821228244765447621498727564531263184419232587924233118348883219757277878233333997346476647686555798521498662837982982718944646893538626481521496268367464473443675825157441388667774874729972227284562567433692342684569443358719756285773753365286623167751389563833678591363998953446675938914171872113997436352697463882726634696421342382912681636971674924524427274663655446557819656534271563197328659252186921715531393949473439643864521461534649414898393173193757279734846444524737813898498857493729262845186185924725593569376231612532751216526459353344495123475123749557926253298862336943181626467866557224726363819799545215521696865946679465671244474886216483219784433444361256724546126192918261631961393192228997686154634112342882335341318347391515112344423393972575135843882615773652366536379688898222179437262257299684541477673129434592379424933354545154359814966193355259392191732766452817943166757652186367418976347657341496544492944443635219916435837871631428855927529722812446728284956646388739145461961937317133167169172493173411968728464289385632822566645416171926986886812171877551247326716566199323323688167494669356147189416676112279763166577533958979481161595522319929637739691511313349831273768833141468311287215472752362142948896889723978544341345364512511163788289443231519168563222556941428218466862155121416645774228169925233341527619465963483493634852661389253481878765137437961569613557497545132373283867798191223916281112385395752716586776219414237769659562828194825113381235693896843275256876617439773332858386623541631229271555912553377346992866446272838726643182172119341215117215667864754213955111956452944652867798721786335894651829277962299481874517454841383695893262986485985648162951181331879369512282476456282194621197634637857982387622843588741996174652372434655594121458423715678525931349935687858959413731755299951147938138111489514588843481229332893789531359432477841934943399646473376451756534653858886294353635269815882156248114971946799334569286511464184461867749167517191439838546939957219614598461469117542763713163927836168581854321748741326595257699946271248846355223525616162354917221176733841828834899285957971392778251929424221722523473157514273252214525721141423971685683132345359658995345871852522934696296612269365812589272786469621629751976648395791216947727939389221464949313824256177541678789835415833916427352634983936352233475774417561389849221827596922281559828778234428298443153215962212387614197113519295524682228265979628161434271517323327243433894489964761195191128872855732912119956455433319122762522988892465228714974446626366197994333332135295189994279581915315934514317388294585171258269381359435856162554741118813427856415915955941443811855835161928562427538559415291473725925922296421447273374499961424678521112164194598228118937318421883225787765636938433377897428524557166315233552263163615555736636643633722521975759613697543541281999639718984717449613475683633993845726334359159326125615329639636454371682182669664943179682188718145592162354951434461612113821154218526368735943373327295271922555657968892215849881283843214239612741618457523496465912928232585933174211148172862238711519841242619241936152953673192364322165397275349943938119945439447486464377534843428861445227295534673981625387813169685352356144256882515186126527275624256921187156445157654661183793191557423128834474315326465967752643452684794351643435491561915935785337164735871557774361447553422196647662812486293221937174295899712636763456632738296226435713812356822641164368638322468666525991257758298285957897642753448719296467111971266976229955325636523599831391171566438626817313965517832529887815618175516742496653172797219373979758772958389956886225395943731678361456154911959916182811932224538659361393195375635737424939162711421754285731985413721313173919924265133669542951223233562151769541429749454695184678556689554179121598794527996195671893194861443482496778828263494767935428525674856998899154231833123934111433999155925491812384392417591979977448925611979285765179211989641144779321926256234486647495837412617637677324963133313147247678842697894585868627857115588517138451399559592227226535737785831114393591421873438916421336189848448533915844751861597949968296592244332449515559499438525479853447912367238871298966771532762641152836233643545658819925364813675345796374585776432154847343675677146926517623763712422214468547123747582249417651341493321335843424582527835949499226948278598221345847533388167176948679726431214996779395335266746179272791542415793742556518948653636837991953218387567124179582624784721626872767326548697873856762628842351195467681768358585652523546228733119723824838839296863814711334428314629825857831852284437364751215438226518981271688999461965215754254761133429751226221924658413914811467749391119965787537887973422986163329683765748925755864751567391355547199873993738491321895795375794476828767513534677874319624482979132254286943299276192917635785338531872929978414849187545726331134985551953643844137493299359767138744321922414684947272389753659931786481657392333466779912423393859512547234493527649452266412599888944363379187597643341233321278582367751191827776926414887774461365571488221176383135168935114176574151969417159677616795234937334974296251584498289575643685519413171656331684126354146889393867445634814236258231796266923599677747274751158881612833513562823477882454658252531258725226135786898464853978925448162345133734135584555359374182818822455448385419876442759341274959723522572154327274716484912439486714264375715259319361627381655722561878938142244716227922495354921756983249595621963597975985852584148212138247324431437433584699533975867875814822313433918339585361434377266319291252156431272751632357727838324968147848677599666592154213842625182172943165188198822422282816869471378541344244894371871634659237219273597961714996112985429336592753699312188822853528591312483944957339822161858996894867627175681669779112475712697454594119599157471544372675125211622374898785392525993591523323183533364372699248199311253298293986754546213995492879112746244679239843439124872657771679473792747254975237239495337125545415427219234166811779577725581359814113489117432217642438699973965593185545163445333253417578772211355395585442727811815583436119958649786362795225914875456781214159731992162297644515883911449183541967657952932384895752264167738723544293524883415689114314392771938411999998414766581787112716699828559284149547221578931824596218328367246693654717527333214169615388912135516786195819639896179456669716785497653976993419632319955892497349316529586599482831587252185623141262836993171623477715352447834743422744199357154298953922936644719495234117259261311581141317278253332566738825831182755755286712135612615215729682743897328942229293741167133145673219561956821288482833391423588716415175232363115649565537316941173666374955862348141644769641863791887177197654773852884192242989516449714184231734264515738867821166251456995223772199252159458559788712646587652758431378652829557614474527785425531454651432816698552782622271955975747931312595245584925147591113695188617472477294334715154213877398855213426887139231221134639982828333541343835823572499693319941426941779332413852457668734418587442814991916235256175122725521991882568137343287281525857216745164562947276538816483774946456975743611344438391578333696265462199178351479142922614676826678732695459166845649819578669125338763781949619483368619315743346193228984994323822714483771139358292199668454369262678995661474916931833354229831116712727268381453423215933891471239643991852272193276772683862844535811478837339923456289121718162559994976711944926996458261887179448751549736153844537551276699778681914743238497635981253514667468998968324391819764313287163938685431643933356861471174859589936872164822133286412993277431769254218243183314911469159287911918511499811724665426879188924766763561627899979899518626777981175522251891275376417369484615218649938291557523113158539871353128172227841329497422534548219684532734878735981472388663175234241424315314132538111732216959614755567896514144846139433154149155452797369356772138385178235163111526228314925871727129679559721339883831913296322586632357321381552134294292378769786366263597721511938745391595871546736986413234465249312378651869368923289899452991985827881668279151473666387612313172649145585926347371616795821848927914165133834423215464742332354996762614253368858537829724635349537746865311798812465177946262862664647428378643254929938449414455163673333382932781845254541314295661727183312379124625534559181118223811291584389985339826925533739875569173998146572316299925515298815866223626159716143314683433273321135674369628682125354852346878797183838838155673662344745376796923313763156161423394327115233621211571698744898155647398357998367855136552263928557183658151197733968575348695946917321475581616439236738247228168875886576435959337976978574315488519718837881987491293473322316698636453518998385598962968311885547142422413141612537292813775635171613266875838539465611118292755193315655556664776238588432596959861647673559651594357495316217914516532733694518466846334311333299864363352547364719917871354191263157634428713832997242193762983121443462435652333511661241693867263125373993658426399254674442343768554422577235814576479254525267633887469554519332827484883529362981843795721627715934523167457324744776524688421251131856697511531951678671571918436696637334664826161361435543237212866893347494771157139314635828855889766892852662381179696445384431912785194573563935963158132475924321931267115692435819792212711636236135458493486622145824451174715195435523127166686343193295776766537867366617396263633429976536189958572435918294612929277211293421995542477896483954824258699261812198714889731743145628715953839127545267519496359761197212718789576155657433852831992186141139823454523528418369624182915361445664625862984966883921127369581617425816294986854385128611336378351189773129188818744963992727994791562849695831124458915444758644728342134598994989867712742767119975543274715421533625746639625192596349614917472112752163196219234776251512378217237714748367475956214857972721493694443397548665243192526134752665862644535455315116975419296137835557794418444611587213639646481714568242334356882543238962237733224954173545585575239938382646242787473734383116641933844319414176452381786856381764418412944381175694374995988359926784636863191496598751728573581182111915267343969131135961316944568786713454859348595899719323916283152214274941128243262353424349635822172293295847673212535964518458366386745932728311632225213598178626647515256754469551653913844496413837647638858463127494872771129734492787916277311511335288863465252256499738589252568593126617148279759477345655934884742994488574147457586462445296355371713433361123621313241525871678931862357974795486673837526583355593229688936279768394157365183324112616227351255841873229934482919899433829594933579872364853128367431852379284694767528999848195259311426277642964278757635224276941373341936532628347772476381392655581629617145916519738642156135933332865269665633851998359448127283173472277859323414295111866891287333338292527289311246486512913518735165261551883164961511748314326772117599812483262798812116561283791631245445912398473738371745214987238796321376984697151932286169137425624874117629966337411642833499176325981722484151128216727919611467875412374656455767726175211142217418485639192471565345438551829413638515844511722391767442218146279646138854141484118817993135483299159773219869593172539458289664985814667796933844759666823474328498484952247744224641569452841157746974821954718739913282324123218832494222414853853294672529524119372583341696295938348144916328888975429623133639556688873665147391382353642444613621551581756395288569213861115122136897657974921256824162142438382337599216791665273331315886725184883151455562775942586356172638341137767761539848443779343214475228315834386117439116259926896443265185789598619956135938243983678224983317186882437325772746182232429943933136162217796482123747936216891974137975294726681633649974595728331935792972782425613766543668127917699629869337218458241521665472257723516243694525423937489846213593915635213412192757221459686529543774314126726617878162643162973186914753948322341618659732946275944493594927221673224649152711362788699391391969682188524357583496341915732935864275348816331948767766931745383759192941237931975786648392841733274318829344234439366745937755455482429728743497296282188973119819339334884188849815445479382189118298633168675857626886426887534223939946944623821767922885669727161373113229135431183276735124459241491528511399672945554762394416946729327437616911793431414159782767496853589754468195252243279632771672243153149748732717384751381338991612356365289774554768498725384992967531861595521258429592691869929328844516489959531875941941356949119799154946355848568258662131958243978613785817819199147423342833246974957436244922234835461723956797442339128351251415615676375581883439556628831835836765714634741433225412545339931344343171786242383755455657333196885584356566963622345324385217755543959992346621588853319381276211139816899571812293938914811981886111114414723132348214745185442139297879679535612226376673979469629512526882518472443436418352454413477134359193242874992482515248825511555319566341225569417369676241415341274737519324591653173111325761414113417883911824689728711278926237834774397359225669985134581653913343248711836253373738155699496853372346895221238251238165235833963964988183961567273596582385934121534227932837216262386223523446868536182872575699548522221363872698196887515123672291497419767816294144721414326644116627173471735375513236532385827336198814621675565316178722223997212218327356549183662371658584932555674421595436583343728676995565564951612257252615162392975557364485446959413267149251475653243741748238311746592111225558913793358317455432383721633656585217788151114781286849661533848995557723497235159612344341756848952468152541718715532979956799279974614665674664829566125254317744812429331883519297257218456967797272623153444832688934761398259291252319592394152173533683757912956546511443984242721496467591617227979749468423214216166969138128116851735119921565399277984241478396371235553829234974863426487629796378168271633295836391434324178886167685239323246149618145997614852938741384948326855791476497566644755192498791817416197714928555317262541569635732174115779153417867487195521481966697555162199919953227757597313826214355318911618166765879882789883173752289357666428183631251932212356174943793897362198525847333577534447788866381487251168568519467597659217858553623467952539458267256412814461889222735853567487551468971516294645186648414728342843596597694924386112311468764171681821343976187512549188354589736129213167668846632873585941898526233496795913789534815463812413145545936633681117348573583915749266392547483295811673414231299679826735484794168155154885482212349344673954263411915322896987979912478454943441462972789238599435253626311758613616152694527679623172324917254222752953915225696482549979715981146223515532379991973788356471482769379245162483148769713631195333874421982684344961429637635176892946459651558277631285672241573652385148869818619688231625259312559664651184745221397844316761891923944211922269721883898798737672424522998582171672127961659821159826533818429666299466272794799673153499826647656531921833851747342629533487247322941418975164331872618944589951579625785588983711722757314363426241925137336977163689888139984612635167475421395961996111851154945913572219538662221675212163732234169465121848495675729953534657249557993146114592496521435656461257191914231547394282594768138417989846134685556261923723137355275195748581695719244533762219854268873375238737546686297255591191131943515442579172335565742895242326284615383652352413737381348119532866886714882119923793144261682884814685622513183239381868797311971365693142473669182126662589464264653576622131145815914121299557174562612147254287822277139539253184128249245776717313717585223262486599524616461227936692392179218388361569531434284741645662222443543574214654332219834698751374811745523619949122156524583491822752611573922492314242415574516544491964561144714324452496464344228339173515637492786932252537113147273484393444271231754579538711991758625383248328917784892618429794629115224556771126714484341421348872774883335789553114377775436914955667444482529453247749351179485456476259537373173892124446338786828754452793721218658279267764211797151494719976874132576253423161755584894144885773842162969239396459548225416957224735586774499334715891674161771329174613165476334824931668353626985575587435953324694395871927738628791384443226843168132954834151529934316387273744955418533447123614986653482731267422829569212555287829992613377352799157897351877847727145811336558641414523656385982374525912355476271471868792798597292226417847823122355916217273288526141331443593725584586676443117796818214862639236459845463493289231619653557469443219832238293459661166648122153511816496196188357463812654783411192764446795128437867147624318123436466346937422569137419232417155195953367778693824429256346965624546317366145325695917298855145419186983254617924324111266514991879669255395315459323631619614489876643519727841374428944936714765446314613845352159194372779471169983376217511358172915528828982212777821539854344518786822192919211581978887963163283719637661365978618127435926879151842332222546224621654934559996732794626289535748149866418763544133727235442983199511257797881676585288922796373531865172461945939896176276626128235776185522448235587968255621473113342625858719365694992744346568297192252264199871599115285234561834344823951186429481396156885833845184298131938947836591517184669434478999991641623113482857132731466644813584829181568355157659531499337348199561172539619276331694669745169251795461549899369112657248132312371692497169515522334357694699415562271125362847135936112551191446735917956277892256436687167493626548573411586284186432457919311549992422295914177745656311153542772981544575192367998133937932515921727323242332934345684331876724848787567731554221357221548714336548233518743243385515427178713119432831245541979286772982127674125822569118173399948572444634397778498786182313952975141155366262941543195446977245898418593614546329287931451244286683257781229454239352148675296321587592979865963637711777572513452614213244323742452757574198241666388151548525327415589516119192252741163799132528538929914815419666544617645699662784772486582774674431417518479584855684968584997777698895469184585225246481816984677329368123493835397358336365224271973292457918262997326537212421181867472976257511229114994244384713746447632776164149784122716252195635567843239746164825181753195821726713939515634925618365843463524927636412373337371443242169962333373326429634223167313766243933552941861215241636958554566693796573668518217344615349922224788148997114549143938379437183223157134849914638798316799212375914445618119265352898448167877816283857524911684295196429898319779612367735564689192362319958232669637277776855549822256293274942232826794395129953931891651146423313567939774816145546165615679478647515718264198314426319776363742255572981192513725673421354556915148714826374266133945347428154679519781223262678999517333655229288785667422739979118188661682219215556865785599229238137354723912283681929789379669955159533139357591295511527972632651621873117421584297595559923518661692199784989691154453896916321661145495194423392993439164822962911691962713758267936791451127555378127234823187792486673536354576955993516444992235913548563142381126351278785575133537472554292997554652211134464218277563672834468637975658787894866838717318812582291283962442522393643834315354493423134277575574136386812727543884324175885452331488582357288539891422314228672182318672377267518799785422356852842747627176953677133991835115212636328583224334196558711919991815799615347618935637919544618988197934221753186873321345625866842531885593536449568478341164715328313233799656774515251348486462621738573336293433116341989484981293918149782353864433322886935365899597445533514874145786443149621131899379542762231969237866993575575828929721636612319866211482297935935428436456395943422121451751149349135366449946297187418252288778411875534385935133984275345759915386898114189385715924419843635418285724979516275146156382681648114759316923551967792762578522881132393522122184931356324816821612212613945663233771112816675829899457664378647312837979595422554377513341212449454994352833863798733716757416737157346912229327691143748236447849938147315181835632621267128792156693878865287724668822265646413156765323487483526775646145817178851984747683127621499235719399282766159976344458524954535456121311747494717416499295358761272544365215974872914156815835793557763451774448845464392721679339386969955498292277391469647442148446716868224418444113581364758811194855168751252782579926962932562732795425985733233151981125385742816163444818844669476758764985696218345429174176292846664246193292213996129632159291252215451531375585312547394219348124725482142675981671775413411353391511422862121171458951277148621944743222265174437898336231674162883574164289526616172818835585431238741733857325273174738376779759944631367693742296474155596624673416843953474929834236912689711881982138558412965621433768183719281466922919268414344758917222885992754893177139624251481335259141497729922288357654818159634321237228519379284322547171929853842621363299187441212118446114154757487441195443715779331423928342159785436747645278447425728817824212621576132779117226522263137947516214578151875141233173519554324143657147458341876232287584465953228953128693568161714614873718728336223577391387946372412932271928713434758462683629647987369457335536329713146631282344943132818866382441711433318312366871211439534198225536195174232845635311785147221946395616779743632465791727883586942179925812491869335339158259711481445445196597153873773989421618534777539636981184865396672811817446775713186139156612411615821624376333517893539566482545514225421557725161337155637365514299522697232233783626265327393385538953777692571625369569434967482951578256178794553255238392839146171411472574196781754439529867432469342593491287256976277687526151358862294572912512956838816943237819441265123163799722687235422271721446414989844141711811886378312821641236474827495387235149444883418825175994319685332753333491611929384913356465416936592765158439833219632817395244383226576392576821223382851215248534594129752359786296157129946954148622553472218361926317127944482553124761759296221413739249929595964369499293367742821244215922444877641171766373538829525955276158163189113739328422131199634774167319317461258347852467442243126534386793742721131971729236733115634488216193668312333583319823595457783622298872392244182257111335799297265965855453389962867931589572736878179311733548722738468484269558616368219758217392749722435295356422268865763194622439186251546152241311821794115949836345337433613793972172864123541251782746523711793768667382433447665823797883862418383515663547256824232315286143976637139996977836325344635438138218767946942852912962236645329125461561834514836653266989426814253221528319379622685486572247413635473839742567124828451193851754631348334979273473117192349818378124792723643852577692369748112437895418544415966173395348286262531692929446332564978674332211484521281735672718654251659713656625525777183577294582477121983292291797919138553966113433133378134984271945937286139176933233769435162244712816749835315479153138763297326463932596597336165415499553629461185632279138192857113232125192652432491668334339144418731136751194235387889835949134877235685639181924216175527655778419665574582561168346466433553822431564414321149577985579566175912859771415996536431247123847237514695724844578661636562174597995949997281286687384138721415383345615854162127253534538134737647183481145413886394579139175961571762546333213493881343484522191158628797665165242981538216641494111457248919915343643997293717554386141312319792229399931924956428922716744713252767752441578895598731115781898223415688991742953265514853196155314547895645242643771849716317729129526536612191554411164428374892822854126989569641286352438946531731271212137973251128773931114683774489673951669541919211458154788564596292867267436277235647571246265956963736545481373664819815823468865733241473873917999778663515165935119869458254775257197826773457545685499522113393184894737388814181624824332746355714634814877342253983356274662219724379918122414754193575468139546621495327189442613525299283548818379632211292175457273997652227727915926894871693283979886383624488817289153259654279216621393728768849386318728146786762775262219537545837768244768688762922499245844899372631972846293178841471942722442696564735128461194353484965816535252323118397922479878325224195289127754721996415225934337756686532741716636492992895979232351692386264536811535354382135389617693979788444593399396797516867254431926731391243153753394299994491527332349839784714962366284314612957944521594748861813899542685129871221446235777851832768751343428476339189487245277895417888159365655176361574954265216937187152916451451855539522666838911811361171961516823525151241543347415842235432366556812373232556733263543348993948159189635488121637563494246459698938184529342294592338583281529588582279593885219112546434125565624232151112423478526152889455261481271575141985926639129649859761896837714163124577352971959265424224781193768995471169773192133529594133537599637913292562364691712345353342149611542431434272283454536511371213483183151187112193771416224242766816583479116427857161716621223253915174441811173855742539164518934689461861268191356181516728911178282744417571119686244774613459388333436681244223261141514774234497525637353911763359317259962872832855383117792569363983641519671298611683955889946231676542421661862538492267429554518355248357532778918381756537529247148355347953142936796698371127428385462994667417621257569684383732812151323926931692688364627373138959133538217493742562894471955226163313644865283194972639221942142878135743867366136741895394591541114751466342329831764558391271683168612843341571373244499569716116474296456714532976682468341651357623876685874233848523937525544187174789372548677151657782425362264482721937955384725573237685348387195848744819395891775687355735892347142199875351959225121572916632392954234388797889426555818685764787898324429569574149365779467841728951434138518299526199121975457113189283727452381813486792714745865191946653525535354374867122532512786711277194849882787438252718245721765377188569546953474866547881453635448461535783387136418892451313591674731113394468796744934117374175656134121425991832185963255535191754938822663484692184389555853228882993893129252761838422981371626541257947152364247515562293411135442336299381665429639594666653959156924494699924262528141928971638854564129131198727131373621857171618559143852864815524174516464928939859936999994489195512154291313315544529178113922896438213534534381922319527791859922351322915141829957955911657627348143363463468796713122155293948269932712754464296337729773146391885362882413452359549288765141242171733839782549542413252691584312391516357713384233241387236951152552654743156613863948777279222569543334471359252474589948894766242734785213312258174927451913635814516169453139399477377732856639359994975935628491323116169848515829322148372995324797192126493751822921525518116929213378448138411713597771962842226798923624946779983284829594496525418988349612932545588274649298177836923366924865515473215999252764488746712127158593772875259334264624511496372555312529577398534152348727812729233793514423494212851244791479411822554237853298715674546492223616535866317517171984686974641275358422482256318133733759632374732847771467951847116449714563758343522673514137991183841966141685586813498744744177594647982221954974449936154988414826949459599369876557161673813637165313677669351363158433929845939244641315214493449954551455951361983346558237348435338351135456189359283211867469167354826122339866219392175822455892568639591926131138834197582157391556624174439611696526644817617142266164486959358184754527146789289655271287965246472649461556349742639569247544983852439771342498141864818361462582555946425826375287398967414218936338594565756928916321439973444937421919226738265266399835392717213497196132333691475717522825123866273425829864123552435518518772111348711363225446572636898279236432417125348995715574793617469525257842262448796294496195515537712611999771819421387635331523949246683749624285927552343621758537378685895694934431139416511245345658711596174387726687313128374368943419324739438594833723468813623693862657654213396631342799215734771142411453976391195516316216635524782884844415223183867245658678743245113238552629674783413876486816833124751563582558588813469252715412315364229287967884562244719961689277935212537564333192772712714495616277774932226644895762561123347881388683288189441585164871569691981594825141999498219135172614841337922446751666617729225117337993871276936169113649496165893755889528317578317543455136417161762791721817373859772843341534427155767114673797791722349766536496264421485165719323257515666594412585293289283427185811246858198875871413572844396418436627211971859881585696696992762565854242364694245282733999443634794579741763888748229781219539131237752263261719446776252446882226426864816287379512949849832652615525378242224866452528668657341947286614678894188217711153814864717337386158617186354285541377333411334161842256239138959922115622392921949211716612864355552129387919919263194433536688943523562355874373464718885523574814917124743683939142587437823581548142838221169427883426167931293852621272346945542414788164122219993192351657942737377576961754168865317317146779824161448354168369382259655877458973669298749123375438987119183158556234222728772131576865427533562462447269987481574485617428814684838617266295638829657534721582297173329885116716572876172939469396387245961876926323451375319221741196825936466617623224458128138798134166462658336672969363283325563986988232527753428776381851121354893444215669929451729396416648269537337238571512193669762637572965795831115826774921216771382589126591278138133143581363638741457119456231738843622496377245661432969177382496823318827495892228292797169969788176715353292666225279254758468837216334835794151132656528436862179957618466757833294785951716896265827536598144121159962422367187515357239291814372573757324683912446695556647751991398496949232199367452314976871764146257959993451123693772151377547226136962816987225841885265997522367813351374433159788732496766528156118356433741441995249446438593485862964589315721378649989631766513182485135919854748268362423714125271297619876222331324313218379135451695638647899219244887275261398135485543413221882392714248635332738261932618561459569111473814317311216278886385576153671721279592768468931919746433283858532246656164182718946374765751721893727965894538299287344925942784212347153718364589139768254458977761339769875377667266923691521456749893184576695971673474367853261398755754194524517876158961648524883786393975121826799451543226896251197464933753563787257767743129489547183857493343845751728892341715345914629828583446313783619542354481611283147164785347598519714157636873116367871845351637162314421929232339721887391542954682291677744187228131857926313953431483125167859398766937429718364353432735755172779225124734439274697228251726174588135886656585822721418941879513138117927422998235195274746817621599231166518778877843561654835538536417417535657748548269749143588444376355525574291211386297933636284523538186837761151883655336336662722157392355122635946225845823897423487186587218795169579236199294181535232879673461246421131466917455296365924189131277288321316428217321923284197762211537531321531895154396937161361112431432196443231378845337135566544589581686816177914614453916846584577957564892339271724316131222184312726646537432922238638834144167818567646127383991337611464278317111564727185974233864425198846466633956272555834676194298114412756191161985243688823182351541271293252816942553511857774593949922794858117398155511562813391767296243583259439423134951489698895276847444584688442552828335577345354951113476888972597748929579741564231419999759893877617122144913138678937397719852923483522984758734485773643214615196888149825887765644244241931437295981821465194997187224399423952196756492871216451857396182765799331478663986621864115358213558239131269128167497174798399184437343736157351136512113284932365252746663535639344452286324343725714956351778376165255149415651633786566357966246961541515678422395431157571555152811865111545935627636852585638184683886385724521757164663531532277746553293247121888387612956767581533373291452789763386926958611613355387117829473522536241123313464723367335644262694953278632125693556874394854182827878863886898646478647165268614548672146989928151925166531998991385894211368677176289591538683429856472244643924541413413713289931429394127633543566836334674111256925335338777565143762323315182127419143914721987583533729365787669941132664557339346299819191419557332529589445219736772923722754536846697951441725898527765394517283117123297728755531451876199951667134646893621331898846634663786451297595791391417136764189812289512915851338348433121121165245219828494248252312575874523327319371398489272221847412389361853128891318715146718855755788249117535823571967663627148929839852981941945615217448658256239298126754493831199184543878673654724744685465544821356562561758153792838151899249397411431841879322929184516499354335666796514391191495632742168768991412834954271922362363532431464774691556539283631637624588191719663223727428432219977713414984877148793694172924322262621523927491414366876963844871673342168266988592781579669616152873871316942425581896999477351648143828435649659759624535847272435266912317513861712446452532587548755878682675188981116846743493925413275829998622792762835178293513948347273772583898374252354711744998484812395722187697497227666956744521984426291374772862841362358377142774496911375381272522117779823233818939296941131646925142342285836413134828492814814751395264579374268246336838154493346661237563134255892417413671588458464561365281197812939758853547971614246219545831321339148911281224762258782153145441372553217292732661253666235257284387159597411329289698858721722561522778871722292558618437425283534826798216893758593915553389179853573543311159265794492571476964221573628483133196411282815691933586922513712364227845754892345653628942495765362578268398889376318315747824242672571178711516355914737294576491763975423496822911358112751239353195561567455871355471319398928958932949118561977513858631168268359268953829561229323197227924524191817562238844447848792583633596243635316768271664872536215986471412474826722169242437965415374633679571397286561547124663599386265611837182783343114238623855375974242514556149913457989581739731684522349141189913479589995238621471241231417285484861522697476258268254462328114948887495316822383851122229291751812528132269929679183633426542997435228239477225832133955123421364494275843399358742294424343149471786543377657262194663862194696589258215171443255282186743986491496284144414931977744266193154316867156255873452572713274753234255625561915961887563325992895442394354998838633282113462342549748713811862813153827736451343155928847335687133166431892393148885577961997878812776472997815615184766554485911337373457639363834131735628541168616242659598584231522685431481416243591324415187427637543482878524424684176196555454871486618894272318617324814634417315584437754649231343468979554998864653977179798754553972412541884173694736359649481395188726225316663253793847436451158746855215728663927595874399339338663763522617122887769223479273848855284584812742612489334311766423691682646525948317754684844946828942321596283845635415128288135826112876741551595595121275352813213241452447714973789598162561562977765369628577264275225411926446235138112457481915226621171889582462383183968525475515889929649572813292135248694364223282426862199248979581382845557136282935794725151452743316684386351143697163662273744164396172731723522129173226732699724647446319562811557145138185257293958916659427157632258143873688345697236552127463731827592538376212855783536281879538677877725216624821139821816119367396933944936335853888821244356583822926526416365241219166914171336191639322438156697995387232544212929229938895662379277361314741647239737993649269823793222994729153535383312199524884241679593316232429985655154356256197111335244174545794821416322255759963247377577858123553578481628553225564879253642617824918977528978564715166186371837374125872392242428182456675352624311176862242542621466861876353499813211292926893348382457441496916453165123461393768116533717386183567871144254138738363711229912594225327322577179768193627896843812446636883997728845179845478224176129154354185588487176181165543346813526993416765815755484232359792175422527656473379289516162742595237382134893894237317579565943894758719777161232837232968931465893984567124163423433787866824474272487765956521743157117819976538941266161452166732483316362485831374612634838728543771484252957114775237678225964273872857835986517229953673131239299944729713196893415289778272384982414458841277267798723752166494951424733581125762782753912557123945146811182164363939515996512496216623255925222293759437897442926235126168228626138356398469614536747391772832731647555679466712661827962198427793769255457544662593136759337133853425638843838341859889146931135373578796242483963174463596737786477596441894113638142446285112126532566292584968832296618273222175763158172633347891822678861431199633888425973315715988976227117642855478175485995669135865391448887625641526539825371795265437142415293214462457154571151276833536933435427234423845283984315946367525584364473282729256232366788851478524167645289248122148176525534421789774957369259822232768759951216397275864117115556213113189113753496125114319998233132712818288438237296791911752998635932459654853961399933654157387131678517829349884624395961277487351881718627868985491397568995689624217166235149775745813685519553744612252974544564232627665115929912925397612397679929437233122261216287368543225839398928526695775942446811446174438219541486913565682623844674344495423726873651818435494632988198578646436141253852178838487122219462799444315397688146213342999526841749482122284222991432631412785333476948385152482682431161541238613822124961718421368554645523372393154422694716448285544473851158913914343662673285414382118771439635128948831796562595339758829822156819726589335378981139848496611397927715973667226488794144581238291634521243697414325692384121453641174322455763173313654734537161335458942225534999924764333882484195147242777519246252782412763786635127614199751151818549475233861758351661224989132144367693148228668293241252472821722747377413741533935164662167428846899933613994268955727148295386257261583548454659913298531791643824732195524497848889689367945729543757146942675199222832568655681654332423999967732744656322975247878221337146248457214921343526483242451683121262733379771311832293322128123169213187746643479494563577116491659919144544231997797174363836193376335529213479234579995398363227414735642317695493664892628324589965437221434662725898252825115914126799936445837223814797262965292785244168418225171182134996112194294532299153336546857544694566841891353642326159194293289244292355678168842632415743764452599663635281117938311938325749573227352497676376696346464829172241795622758224464949792538383426671187996555714281114649247195291418164377546796838537944419497516747941645873325716614345646161869547497261156815272731936745889314214135682692457139187367446842593781844358623216272271216264121636935455469985813519177949878221223849492476467837711782682132233841149886378217822732973422336934574754322192353776751816833651226152359356794211337463356421253626665321475122683294722649594149269421555919841284374147726692448354635746684758629933481824529148358248528887128868388627445542718812456685272874737149421115531645273455754398182135442632611462624674536988334817635569493193918288577973796116791219937552996813344912933363213859469187282972754417255771531892182652333738671251644764846169137459468638214714529716991585521376589711783545714798649417233933489622286129385515691854984494395921922274423973234514698846864147984976217225647547648536978311884946537572228319536943642347345736425982234291487254745985824515198185228198159912852962572754615598894232133454472492332573341533251819848765255677989375493341897497478553369132667247181442543348716754376266797728167113414235925993858527446721817243932349238769658846113117172542924368376316889564929679428481644133563653494449832144118548933131353244248164622118933292732168325563238446519137978957379867154234953193497819781153934535732985993843191168145216419672352835184923532766911187884394413127832251821297261753948822817986191335422113254913385219671192584126668357933244671131662276382125388745685657662299516563727344269669277484138378132768243331531393716344612421388317792271293539594757975227589573641196361578644399459473771275258841437469349396814874643412421445549214866428859319856661533551485324415337367437846117676369847893239259211827253915694984491251765587781226313134687976679424374198633837469193392556542238421222196713316564897874396447322898533491561112336229671711986685838917225589778538925624299747143447257444436525852757856877389794379937861262681683842524762584384364563843316525141883471241432183346538189916755671119468243631714523556289162284447845569729599734461265426558722373855211884279546556968242632212294811671621693344363534413662366326514787417399934458971496972536821813419386997567491921361417815882352137316328698263268314385221788731951543752356685723911418827321177334881335885497695339358759241115414142649864616779915638497414862648634817455633947385859268791966966898258916815938431318333295934671178931146517675316861598955813141833681226472778623384511637867316971187586827811436541548191689631338683443313566885384228424343348927466772339399943653311481319583269931943278734384558686934118184416285575739963232518381714941311516143136692661346879277916614375968744361589388947346131179562382654111144597336762214277169153444967394112666452163687147183954593113295156361113776813167831995948532458537584878788795766973436786198282272717653897661726319478538358531631741553381586945413711484172418413469378579554295873328854256491255942261162151891977938268615782233792392657499315455216756767798845728696271832816311383472537164278293953324895249772862598955411273319724161957523442655131869412985782123838285228487395144683312717241127356334329643243238365148132216485441436855884737326115516229743528845717466728789892692449372538772914773768381433794363287597114115289494461197823712536154328747221647726364281576781588274776328361612194265292748143475424815632924969631295826913491269227271963612928769942946756726746322851324877418682792195679457599473386359541928785347734272424982712242251347651594816169265516723727712797864832532655623315856138395279282722252585734149785934255713821497118545351663533927981732749222629196692529282492418183995159887562529171873133779879899369253889785457891136957972932537257676823137851711295116824719968877834434973748521967737596623175157119244399643169232313462427716894671211957531691322422447886326366578216731912324624622957465193935716343966967925474362184897566261735538929637138332413153155284968151682858324688521749222537385683242485746221686548611385219144497255359364258426912781562775341856338768921499587311192546151568522424432118263478573696873492387128883846422138685953592574238833287929385771752695629541596493642115175362739889243648337558564525135297428453269512493775139175324392971123845262591646669157439439288299561945336148519219723519172792871411747842337316243939325247313776265621414997854128343145494292722641351962893541832243766731338229325827834456357395417439931595418852178229895358525584144361526664141589481123976752348264757995137213118199262133385994633968274225258652215196233121133476816468723261919924135515598859166583285332315767331148222981711639588491512597281142342375689476899732212489972251172936944493436321844648371422116494288673225143542238898216494635991877197726122386457342144462894717811634784769161638143728911415116661952393919876543562178981171679498664662612724982148253659398519918815372186577141523919676511516383632941422268594467884995912265648777252999697322674372641212658287856977422157855611213831758948493233966543232742492875498413295296376117944226117589169911524249287633959566584472648593779334742311275623695815657657971217298437943462248334825251412545796612559811318436328641513872398269359214328351323951489212419937293379651234182887571826612924221399718547655446935223133329578567343335431116683879988388841411452121477125527538381349924762387139179635368236782231298627723991763518354492713741951974889148519316879725117582261797979675479955816455513879146572221611587295171818538339495741279732914814893419235255111764631768354568748458819476948332723524558895691311451993978376271287196954711175866685269541547271435656185753654251164999945947489548357427371541526174465676934652514371425643294788291981928357378446267952394968321222199478125315299765674975887471319758646395814982392297892996315188731339115255665823314539929471618212374767588942777844992587223719354615615564952155255395727333895264238353163647796862261399939235523735725884115546655376181157968548198374226283675149532115214254418624892598327382525512664473639344222348939988757219665961625275122925924316483895211855456216195222118315143139943253931751525279215428948517753518685588462695614652414479296788958422951212614989579722993777717273724641246873639568642577447323876872783999475814256975533527345767226262755678571969749814436315175579585511123528332619888363374458571997358248933987553926496788214677169843698833952121429295731363885445144738541118152679671423831552942722632933735451685922537564118539759123268114267925899597458416657765933686254753842846835188594353824515288353822237442819766688786355862472628441975398793396966285516587522387855664241178562716271351355852172453542113867575429238191886615877676162233835854196711148828399141152237923124977214624824529631671637952457613546236441413464325137844373315468881447274257448293351476729395235354896323533819267456392581179725536266471683832541436615818569817327624952778811679319242442871326682515786897746265259433417676659173582321171918427887327349774315438583379142936178227181545273757247183392735751192272536236859781592525672169195384117621565167786167361371787414968157243962148326416516345841871571651149332445566763715286813594457946944129329384294776248921529883973132364749773589962382636862482736749281841969261341183719512343462957836748558686512753337153247619222155893823432996626565133841353182195581599697993846989362895347676858114734543496539555194266885565925541896143514635363194888595257368764873276734912985624313346237946812825274161325338832317123156274752943665712696341934244646164118123266116549245223527813275621147448888784663763672111619312783345765654319439421236686762352694745434167468913252166719672664337674276932888372875717186125114695211779267781792131566327658569341821731551483395267327454531217614642321135975127538327881332212739517495247251356396437891174915914758583857844936512636354111967798679818834861162588427927322438123624669337665259887785372176557446165241221247286976643333912712938235455749538799245663843385533256435418872537947696195121932924179449796244354196291931463953458731972436977193738198487758625352234696651257512374269781592144717559816753711589611551293531451534923279972562814398171547651743266167347433137796928349649867136397373225799215539616898394476193283377833852986461333773683948411196574146132937341757648912244582583424558239616379749135533866156295816327985287569462233481589592275238124468223612111943651237276158246391731933124525894287561255495315677174188127394154161446115933873565311929383318974552821883366172461437551281448366977154845534346121665379456653568136427698347993834721435117192646463228713513324428423687839839866265659571771114777794142835281726969519838839917993152451153864329936392543728667252916969821156139487353243234385412813957359931835952267155171747446964439952145637416161822997941385369696931334678654452124161411629234783878111467575916548289126871731553527982991853295599345237854521924329682548747836162222284288528214573751685232985263261654243911119355683697734978576287272846812938326745338931282144315773773825583933119882554365378486471145165814531186989494381648833572286774334332412131517277245999563783732514183666131193324536924972548418119236639571422428252674713445219322313755296266979238279236465368967392516735672574475284637762423276698591716218252626523681949411666159964884991937892432479925142768552297616447926681127597784254666372633192575974741426817263145811532138322761354117628462752544924319468884857848598394168416632148123398521142366719425629559965258773694559167957964463862274941111914455732742115967813396114516981368447611779651859334246475928647359314173181723543287452731651958349493979134528198728845979992269536182245516921974662575874962395219973938322892422965435641735261584875643724359514191129747358637917821887812122282424615939123113275272571261822397921881824747695635129571773793342165252729468287512458766756341332972845158273312521598481179654223572463392629892645324484295432417724387952255517446757697286633441649464628845815589566925638339354543129615175561357286289421893453782114611677829378428392734565216226883362379582245472443912349989977339833124347657667632762536862739514239339626881376174492465536237152354486787229864984597342221311582528214678358689972829379167338477894531114234595427348487376558992583944994442181294183297137367531162372588537421153254338694277158212811512187621874257924845546983532614455336386446981363132194523797559694436127397842218941933589487689816141936764929339616656327252774785721918897369528541159624128493494253269735472432412243172851588133875544982922196113774316167262864763829577367185215225348521285132914173853415628973611867331546138361912136162737756353978197538214995387136613567744435933942955312315137239247336368173893523918811944939414213129537676783746638292684161996142967179779723534721844818586113282769169173526817684112186194172816325227734826954545532419432571238427374694694139181382178667968637182821484114274276137948952383599629752754445354927625736191123554649751312946423313322991672978752913993282919938245333153368143921359597493673511662433723337786844673224126696524322962143244953254314326334274683541919365837127114364659333585885569335162637611339585944454311451753794733159687521489431534552944419561957289555961279122113698716393412779989251979713675814138196272722645564713466525294751456917824779654376663615327369639948541731151732123733321242622262346583128589353647317664623378393146139256333647831612897292358287574816863742217165918581212486332441123761717535475715158181636964938268247113531244658856179664886989687193132259219482756778226685134542452393478366113848221425534143749215498832963863266319189995721556625228866111986436423429861831785452865164821242431561931734485233138461116175248449181993477529314297729674824518758138617386618482564259334614659575654775588695588535275248531965927193559329988259952995244877395753974166376111528262344755667793913647561276665211514632181392756353179535817495441249785171429851599593757118418594321359257358944185148716322416767759367768485938498959331229952612581144216963442646254595851177993196964595459564148225891649832811832454356742576214631338136965629283197774738411426197567825857484141727514383298516291283874568447569288196422435275997483246851587321674614577299798942586471192423529924782487124745689957776746673748159925457748937993714593579791817896238277348491759389889294671249149768854157844718484383282511912692197421936539189295115715447126819328661795495698972149433934796332589521966323816381353824652289187248713376292939616689492584637117397177574483777467154162644345139271232141995867553868966211557551233595546945975753182624816372649189478961843424372995149557754656155999286448134991426362137962121985314291434778567258422591148312365351212342599862678315655266913837433758258314511959229393999162947142564818169872176657916691258971993599341554635317413178516623395411481253951127166752932125614627545463695974638392575935613588783131715966835248728465576633497248795794346841948557369625183247161236226149173433844137835794141836191378858575389389924541561424313484242232286258571755682977828162544766522242116314975187781417116399627227134444955594977737811941379319821211936711715717252143153127148159235281483734973512599611837981859929335244472783774449892633989468595385575694355457392764718549532427793625281483266861842884251564359716293629296559114453277681684344862417266885677192749413467777939889991637432198422333414556273396144461553896621863346424274664424279539817761486641255593591428729371471243916485346456189655482446667431858984898254154588473892658788255497243511124619867296227659771966143267853352361642772667867394211919144932698462731694758167398156892429877932911558851175468372914739154639226968845769128295168836425443512924363955621354494192555253842895169477946627857156556833165621447332526926341993141391558191496778791235387773938971687593532665938484116131975182125345958876381563799249364417556418457142187668573457161819327152617822741945653283639174894499611383739311868371248753393381569559793459988138151935247522419962845166268595797628685582253564571816424562592924971928278314731119837913851448422752724197243795792534263841126484446532955929849887847598678585939249954646356727448994432983124415851925289599721412934655976228182665193372359831293482459329571614994374527198354684174358868371965422974168912746423931944334316512539374136697433613459445313578189414237341486896187411746526464138693927598228296462879144727851368661437649424949843499769596959386234886119969534363885681237347853886383422932915162993199255684867564197431197921168223236779722218191421197933529444241796345738999887525128917917321125222824467273694611312324569782417346166681387366835166264757683498513324182942898575466396543675269311544987668515156512555563887584319811163268245134847257263225328964858388112466515437117666979315649616339556754383556627185576375719288734192533226319829978786234391982793517969922867391922831267761364375615925543388118612569455619469222629152167436139636257665687682773762212713517914116822636229688361589147563658193193778147241674815155569997315157769161653875314317448394246317635714812583776527489973528147316419741521383712328664345192542419212256151287392943542218465616446766458313178224836216538352523149681723715214229419728959199983351552573319198317346551164919933541963453173689415429937182517249761531548718345428344216552329256528753923115197914321823931151816619176847913152259665149676985853252945164435765281182717278357947678498348124897555494469576195933153134597565851953218158182922327342398413173612419338311357567237111117185857485854817483882289174355128177788537877458231949377457268486767129694822225313661882185481719152376532151214346672429528646157927816184114529627495366491261129223365364641833537657111176245523434746674825236229492731291363965592747975274471641331333162114763787232514257191438389567445345989944742876551647479753211168539382352335151431147294522514361489862321691761587198666757429313952436166489653257158947357642676872736946266524981527944991923265735545222885858234266193531158498217188919218427151493763581546914445398914511628769958381214153342173399761519428894457637419533568495159466558358954182599394496893332552858445148619859226513522455228485533886217946347941689833229141748135116817676252696673862442874417761576994116236493197199236864896173911261479996669986291158923697144668772213914215692532519389442727425633799542761258856858991887928992174691217161652143759858184441632268924245257556787784245113445371181359481874213927261115933665522312264111423988653334859329741154228729829119332363385326887193199213163356435286377718984513284923582617815287385864955951152288545388841519968144264993926592238276926319724112279661422659992348492258779835987984553921413934347244375398757951982518759496428994638382622843344357726143118837316588268876811492226261919516339624232186495144241124831576126369953472234346786651638122556754475839562519542551152731185872452881279367446499177293216251161933569847596564915154258914791122993264596564348589761895618131148328639264594649354284986282146382297424892326119322569835632964731174662493259557912541325387553515126446739891833129836563122757987735359182481329842161173528411548187429827618544547573421387581514767231922111955517421789341911696347974861464629772157421579224277654947652561379755379599861596449353273116619431275264698452398498552614592869248494314829515833494721121123999324223657597642318862448361944177512298871921828834259286741894847856153265882698524142845452173289774967336654381123791586334374968892492447261147648633142572442816822514134643936422178494769789977417997755478374373736871856734424986195594719693188892824422784857711756452593262843533975157334453583731464811745827134251124158362168743472456829174536151741965739326141268422765247284178236614655149711326115995217587921216434244914373329311443854884754771328566395738342849753468381719182439831519673487643864454147848682829636199135232173564628122337588236558466723234957474377924118446333935617727194872387962693628482495444838993592877465913115184225339477646641518695546162359869571441643467617864495874899717152651738516896423849472749295782677318176344162942387214291364111534513566362125542162693715526726675253182644332534324137832734898636388995183193877696567285443883414936923529661228375611935955157532188383276778257716764482445584965945356619591514224718557699984399947911323188398994213455735439474411331533486272995717246323915387682732157513749384566944581123687563821457961374541184626396886648531171886163857879148352123568225834824934618275584522776765853128168783842413367266781713419782787653255282275958855854119492161893122278848936633775888139825471422359136413184366659293412914738924631475517293942141596678145281111476344164115549389394346981991783494323842673374256979663674489519167512971114586265512615726133615143489648982625122324661216341999642421934598381153744513293722574362795781862777228874735176475632829754413854199435695341373899629739172417234313517964884375573843926992461379632898493118977679774826171286463933684759311726256428274521318726784981624269387695365418854712936536388297643497993141353533477236111989278517561132154134798679361713639158225722984627944649375558934569753655239967524187818657966323334134474394356837542798882151346524644497847252458534817157386449352932431642534145981515889493455568437845427842192468472751785859438266778296662967638762721318884343648938634313736436548238768186621423993943316324239754743951284319446961435545351659644964277172977944353686717996685552446839837187227622145515339534412637363321217881766472226491173774791713419341143671236856376935872134284715558233152926367343532595781581132989525441494399567988653274243934284241552238829443254722151552344936516445621663516812938856595652436358615195312515898371282991579486976564536645632876988458912569423123394849391849963572346525249488231494345934133422375121129185779722515836145211922465199573636941369286197673338736621648595932529311114934717572645986141865357265181917815825947946886921252454867864382751219733691337614213183125382894669611724391171146434219853696659713446221698663529487713762932132112511317115594311371646545968472144356946923687584558321643657424288255231388318612691633782441766447763736931976977815927151712676375928772271239851153298296743923144652322245822459455891655185651333758889315696779241961876316447821463441934651268379346451227993181234221466419331865778147438974221519334234371764391349692536782663861422244342894556863226167338349734217748833197191116693938176279452632314335574574642425623533221383614779986139182289883492724637463654386873835758481332285441789371599758382685189231112612546863681993228431255774533153835565841614686261145468539863646349187441631997421177531874333318287978543813232312418987171746179115137544774264977941676643715643913434988631368698694848525138882354826427227184236412264692419367199193351287328392999286143912359444451399417369237547156353986347446123573855465138145877349221767146918641715114119443657474435283425476246333283719514718598641187222317232863734945377421349192665176927259531239155244649417553453282457562435744322139629828262855951234915633227819847813153838245682525831954119387759189442343323253558931523466983157252324529633748216421934823279172387295454752354188632118494181956367663985128819121869175772252391229119298921218421338154559878466379656821898475869939447789676182267934859551377227383492839555161414662298754893484147736692164636576136861235533793451119663582563872924562112288157983244115277177933142711357817541358414972415872212357145371332782396743722228546852746832462315442952333329319829864593988772599885114162119585187835231628566513833539121627746326128738962455269329734248431486453465468887664348271263899118735636261116648188976798352225492687553696499339373546341493542115272983927583361519458352324954726378815785489284893516393199333374331398282749666511213212418213799625921741259475325211842257791996347772913142779577112511395881553931975986159539892737265228291722791958122572482695656137654983626323937194432687356169118349333959236562193296517319574559333199522142942823851921654991513321211398183523194271471236523184848787726622789925296292117119462693556489945873471212486541828363699441768583418614921292276499229963164521484721893277245989534171894772543728255111386253965373621221463631155734268966136223326513783972914944594124312995935999572262618554195572955518267353733495379863418819574826568223735435952582959257815225193355999917812772133379968811578454419427559739715158879855246528132513296681719362617764533492756584946134525298698742535244992247419284975149491869122525379636335723826373332648951263277858197365341139684534514366343422517771694138641797691734326296841622944926368624213112865754261134154178243588222824718298217739268811327223747263862153274351467667552971798533336197333775366856592843292793839623792361757146549125867627235625532514354449241436382684199322836676492572649347224691656727344594362365812273131972231549925569786146623167243268241429697427534343151988963189691122142424425484693736239676211866428271753445274577626957489556282539539932623253396692295486995419255285396654288486914383673553576644398697793968269671878146612258835941635582452342815394186513998754664793814293367739685435394696738674579961527635321123247278558573564154985851136686791473791368278676743386471197772825757495451616856836281554427212161918923392833423633487264925426289387312561466562828614955294586326623221778341353181714338637674114486457359241843562212122385439651586212286597492225217611215577529616426749784732683924185814664793441173566193715515353618153531588499923166985192877757259722324178256465219649789336131262278398286794296795276558111983648263379568156426674153624261332896628694965839486911517698339731128468971575877317387259657919396438476917838272942443153316591123985192987914955256194962899937827111157249426856869854769731373729329385732442711766913133765319541791526197331545769747651829226582571212229157929493889924454487123228549629959279461661164492158494579882689329132495477614899835245927283242652192744363266768371794474922831612898851821379628484281436978448411221119347691637748162723197945563925364241551532724996524784528658616237112977269475631659391732627756586526926882895565721869826315711291876232711651755269926351573719564897564719343796587739721689847655832189664995843636164665123191442868743773423381724138635431724476218132465232167791148169618847522813898441487848247189124772779932551622298266727764522644939565643561214446196923865677184799322138625981131112518248258412775781713536446516639457753196657782273779684839958362579644112435235327914172975431974894962144628241413618565269387718131859234754594472727244834513547371116421158814692756378445648558513255951969427877639965915112239117297231269591642914379295233531643455136333827265725755636534346574931536477427533385253197117464512981554512632361326312457947529392549861759952795567572649278693364232647427452326332825974776999739797831926973445944455944794394555773713854943598631119532588363716438611551268883366165536813741184594521294377678923371515385452245345394697663433883585519133931224934932868735441796242633196276729887666399517198469423183981514425357212965481954667721912565761282835383174248197795741745828154533844683839333447281756376495277146415169738362686496666622299438684913213224295741224376359429636116115391784333825921684436126139323374954767565262624187755622848584261646541626567967325323838162173426898716425695373485841482435934785541653418386677133167553725761167434747926999295212515589418719598711169311833121434743446397947287155429748965194838231678983175362285226542671925311277784841252552211165715646583173726646756133266959221211457137122836877235629439181144237915849541856562742283443922118581688938454594353873363524244111225425696968528267147951921125369315962717386639174141435294449819535617186495798551455376984527567117262678926951692327612364217744483516644617171812956851742523823644162723966474411131937548252239757976691171637525327264241842677184626594835861116882186716289534444137369773942331775678423284226229468692186418479641851392393788775221152869196732762519279667692166839945614742426514644692841448458293126535436331874248168217352598924358791327112473588471882279379185634411914628119356828911362735826284623134854484167956989467382312173828313361422182739414629182557328477655663813263118593475125373637267252223517722795537657723973226116192315987812472143717817817133172948454765259974597427816749784372451156164942831352759747788365234939147814357562389326466147269573572414239742574351419728686141649145338628662236112849658162879598445127391855824259859959356417166746154944836281521416964791315992223182445627212396625569355169194279583291865933882981313362112721276729528311216179991439154967636421795955396722174714778485373672857113483141541472394141938321397381878259217318678858663446243577216476465525979286492285662134239424914924812834554218541911189241171577462325372933819323494123939652179228847161659594624795734635825721945996736896439347987216859295341413226226869833973282596698121136767873185524755938458114913479794319746549393372728882676191799269282275627213447837187526429981799559172167758331784553734469192797253132232255678582361854379875376823581759447667416313739791734646182759778153594985183276416879564217853692852934515766825937935321219984818929555197785491996596129588337827498654152475214365879566473738316878515178998314886362221551448924731522593993493625673338372349521693619317416336281961335715314927126176718716224484418325312141145229851783579112733143851797454444687157483224736999872779633189889399932562584234118644487888346693163965131685373664484883176574666122773881913615547596365894841355137422145292298576931483977188321851718975761679835865174819585565398262453228465121816185546916611315271221132529258743684859825434121984789161198252732813811344335974594944345645718139955964598993692518326363752971535926529266642322534638851436895392285773123455555298536686914281332555255449115434233219734765834186868672953522572168615943281797141484334171168273643138326584575998136416282134869325741323661756446646618573786138941723319829875821584663577872885844838211113132992774136163555948881376798468736111942364968669581379849872594992842286982836712211716753525497567433294151471718911459948724671636561194256737323179323812659729712227752618821111719816235239328319627247124884344886832725838166928827468145352277618482886214625782217134243686869131776851324347239895553514241319475621941683434119496236655511147688664837479466918144945633951233649664941341145467954936871695912641449845983413414999314321698125793251776866175683762459359231113216923887371355629573125264918253516332186657633485966143934651914385682111568492343411638241338939746342914183373635663569741312345719495343714571385256512367688335154578397217547471345188663893266857138726255162888651828734482172679649731655271846875392552627125725619727844181333676315673942128815892584765654226835416144491569889535146196179821238536818127988224431842574847226276496653582742935789674354483349456516745495945198848667713495394689231972736557935428848266119942646362811265226723533573349774556335138193643987229191332194668195384861213417259129317797216299646824416172131389983346581634966989827997524218489122125393524379399733946792876671354422715953681924459671922537125624118997778211226919414529334491999375153644411246727796544333843695541875532194394327793392294992742533688372223213395942154881595382779787124954385418418598453943841243695825243631923632166643386495311193699725652776157443675714498535686284448147616826564953129475174399693551476537845114592631672423681879129743564385917338819556555224718776355239196533764426831232448337659158629936366232117595122814123331115516512471831355294223764458995146771529314352293133736461668949147226452337881952852682896429488174789272218952426493346395173923229362817343392531885845492491457152173855222752987391142554248781335731178611934439384673619961871252615436926897184523536494359494182864598378295114394223831865295817798674265343565741281767291932325898183318313199177736927481563184519341127953614459227122893335263167978559193847661879994831178121439127348547522779821627394612279975132362411723382399782441369192251981293333945539251164585448812378419635268521242469735612218532458233873587869345171341297555382858614436496192845765168518964183572243125784774254914342734338276292749381823166525166155635395966796145683636513423583224138893616161649262411116381659836132883726357416154955871997255413154368345381588937224113387191235119632769343186685959665192454595535268122733851299645726135218518395459653727888436532177525973866787718672972488499793854922336324871124256179771755548992123797161148986949615291225838346482271438181618961686126198756425286952431592257327699563779143532259112117869749642125172837992474971425442539845255397231871579723125238337994524527587537367971985517348364572761434199377773154582554194811795635532515295155416541192945325984762124751931838692654386884368717622185169979664239593863662864359754729754333621569775179456468538335236762642265444885454624844541611283953846774722687593574362165317462112478621847379625449735482868842234482972641763745232618496862176321315361233942589999946987382436699788465343536254556519774445732161174192951865329416141281534939245821938713145343727165715972154135954215568126327697389518733421874571983218638321845174733785886112577213296765923627534914612619643763374142763439151417296138587528342995276165392642864662752294755213118524875219243148217318853259285175823792226517411466581381959113569674467724418442936912654595721416538547744528762239769624531777373826597797131144941745165645351928856265963359228935722896129974533594179628599182574814347877875814628921432535962532147394919733933521323957786197756675788477442451998586338315443592112623291496673936421523454827556471965442149844541493225369128374274146762136528536555389353894125941698774834269713224859325323864882911154927592826243713866971798786362179117847447398456179282251149639434559142268139221832976485221283583915154444772641441224531172587373921356142785572521157546936368483555961632669944375946721236488463234491287578563554153456886777791122911724852189598449655578474722569831286534451193381215129372715233326467835375696499545694544658659855271677792455342639827439872458214188211781773569847429285426957216185636835278366228787914153179526315661819315331538832237654439841583423471964415391515435818855971125693519884492487945636228597251529981328984296123519654583212976189956158816238431664159629387227822813672773812514127651261288916985223392453741784689792261845951345847738724473524211268935931979886891152754771165741549868942415719396923932673217342148463439234467441267698598566114412926498978978655113783623842834417381234824496497728779696821833612435897768431243828265331374752225237241586959126432179841443693157471116777968839424645313166966941912344743944252513711681744461867143456836669189631424632757842426645331621691571592683727634587292972779642514494937652773337852941587624211321458991161194621234765236868164613274672482814826362111454244441371491913893967647521389998133245369382477254661884225826542781281993839461589931591288574377251795431557396953631337567139536213285633624998538211568353671686777925256493363691354312245312933959226841122215497356135527623739412387451488917322296754264524946319855184133276355244824139395834483922458873438461114331111195651288112188339191147813313328975494529683546524111456643487785335237911532966357868948659396531299221258363946941467986565888423238294339566572569141116387981382945193482516265357746392663345143133432373413672968375911222934925136439566716569554631193616512337681434916476494742932594193475644761471959358298574546439432152276192119114842447186741712736911274116398913876913511343656358437738393679294585213513393913835728475419345892656739896839855417917156795157321123415271823135938168349579489267635113825434755588282358632989183998515796677764358247651894854627961762928853419468188951743661139539432128344352918187781242676677543137383224563774872511844237353317587876413534522569582244465443521934739537115529747913674898695686858884734376364937263135211594364915446165816816774111461925781596846775144382441121166334414494475529688861212737231684757494217418584872469738737451315941884282262187984626295448523554257513388626413685179417489633271139259442333615438763143484239149534359885164132187476161978413336426872528919636936692748438576299485551553454175927681936782773166871292134567712685329652969819243494486426648462912778723118388815868523226318345272237836789846768821449165337614626537796365256955462959218361213941967918494293322573163172912562944616286818167311253632349775216154172334953433156267948228315391548658379442153992329446384878231664975484574743496112115553819564233493462782636452924329183744421946814671782932827183193519918973475532222451722141597895674116886737355285655433131718792295643848921837998367475648466582923263968574981558569147936622268647338715455152366653833983188648392567132616229429792858442965835119392469375946372374963382358452217739631373725935565485176539771268917723933933632633497628965225937142515696711416944398687943443449754245286314661773921822563739721399382322745211119938394955745477911784187631463899151269144212623261671613158311492168659685543342242584276253874154684252612972274279831918428748544119147917841627486664327345275341777638164566264233534383327271546493385417246762863481653886556492616378825239299565856576696914521943545832914987948458871371214858184346758761442738179438852263229496517664119959263526986666255641863727534721169828567269322947342314266311412748214868558942611933661851427251149655557736551437781464367954662622234888523763144497416522367961679292278836877334217199595261686892516788718221129563575246294543835431947814831267974341533382199123241577835892666579881943944247158959731665615467842449939654412736314451126954149516627645146927852158451636757666341514945421742296237211475787115665415498632891733372834328854447981996475134957529112198657731421914676356327547289661992542769413195873376485157383277152415434514418578231494227622247136843227515743894237859544232582232541757431846286785562777527871137717379993324424644871695534189611743139152734853155112972653762661998568552288733137986459182428497832617266746591764672946943624525829995994746291542616481955497545689142265148835578714647159322114643917339365928248263239163722279825575179241333926413296591346174883698179583225592394215349136136264461319764594351751134824812775127927432988324864249914359369682489162212737416279615945132914595256934782883869951267659956617528676651113161485615322323141347764872423364925557552921991322219511933956247443461314816833954542932416822854368766331326436582897733895752441796582727942238547974294799284164639999933141266295223114499695668599291943442112531365915291957133318911676874961868127443619258556561227744685912591552794854465521492358868939253968454125667916643259352643254674325867556915699154632289898362869784719159398255422358646393285517364622473715319396254239385688199933341381341183622977648919166136971271482987518883852428356999355197745995424332475182849215611477518261536723993731221376422291845219914661112288353844812734221392985248931912713444131381556877543597824412118514634792858337634318336799794968998861775361881221194597215535755817795852444363184977236439148383455873473985155476499618457744781765984325873485362867935572378222475543661375679666218953462892183715627626283634722941951242424689622995158178598278938271521218494224229547332191365458172543629521214654195282753627747511141578847173691316129231648553718385152631796686423835181681625157358388932393844477667734474121194339699371145248564383419599322391377753332737294265539545543255235568425958133346867513514346459134781825771316777756443815661523861914334492636756796922148827566619111636553512388348341173153663112511814384784534493327287314511538721284812141254232174411271448174864921992453373493772646953785244328614518113467349481454955574748572226851823524429847913533181632276321395327441279978223179729518168635345614579685218115629196334359869372791214336196549473548779711216688456216653199576951663247496739342917583526599653232377783441594461974643949232717694267495775528335539535963541799684746649111533966979313442757814984616819136559718961538856115937941376319127355182314256362774758229552917195523689346582794821593162946465966737424777484683728545718268246729181248222568294791759435516258615778751844893985589259654421683117361577418228685474534954285324454982259133169824584334171955563672771289651645646694156567755319592846394671764231884384255654375845486558192582396965743551647687689112631991462328131875993931323836945313413832197178173433876957872513998125472695223536679411761199282714741636779379924611992386822825453771357385259351117293167226748511119426253364314454418213784187217465297147615326247783492184698556177532237165891532896734144634992857579953618982559339668536454536148751444374965896751514259287825639277469335835354953388138816611119937521992524174521774483515311721395961578382157593584684159427646188668981215535754716369615935317596175196443378537821842665665126738969686534625321921351645256169332256921135836546528591818294174995648838215458839879419545479995141882892417332126695524641134631844662421692212367554945759214533399249743127646845343519764617963495375559794176768395919336267234981427117594953881694842914781692514951246245197674846147159151246851781875581526825349148216654123277423657136428723126462935455628953242687287378415772221298387623263119953892913411741971947211419435511816418666578953616415678983219856619669637717349858722732699137555832711497496221163771145131335582823234956252754391365846472519976953646744743617576245271316163767621571157832397739275481425163263126567783295664349761466147773476812457319597991897954446568787816698324991519838468848335785611687568944399724913822493281922673461695181168716185791281146647355276653983914854966342795727852285657337696247329918986222421659162755492915375433168226254798136475782115244731629321525553953556648298978245982695438686851685888241719412157132448181589537635696642961749625779282491847457426751282317146737986814718342699319839355176645181492475928373622781333834623621917694546371616157952455855164438536297848961654328633615673996493626814145176783968289146854487741282797582589238155696321698356163525124383574791179867967545898156834134142261252931949744561783338114765123289947961852725317826223126636541981132379298273436256932837156943687582173594175783217451392332474892348237292842874326444492381512913475224899595763862837686939745668424863154566999547892731535941285298738553511341672995493327233782258371245757363793193944983385723813346193781331116129718677597391925315985823428541494993711233891343452158322824268684516311369479333434223411421426639223674699775519521979249454363132714483646164566291235362946176932225347267726813481757783658937318771333463311826282464533322211361888857138764191285852512738274431399947412753778685126292661777628483843251772326811818417332764569173452171284121596645186749351755151265733616716152164322849623615532388537391157355794616364828863539325757893213289425318578226423774658356746351512515136333662289374731931212112679551427587694837267786899856936668594552119522565418372261294296166375628382932153243722741554658162548215434365743978381372961141514467949136863276732582268614657963739425228534864466455782157262131994826945266652265412372494466752331624977923491649815382972633478459229318488743729336878117311371514425718133497719532129634921491374572752238632771156544955816489299872413888534973557645295126512927819162388962983356953271656298935268957935264655281713436113596922126281376419731849273187627338113344423116413538544283524255542524586478867879231138248175662251521484562615921755498676564365197442472445369355855694415311714146724958883971711985247777371218837431164175792426129329695471925899884532316967493647554174816684185853262624147887983747267494654877561871151354192283662943165353951646929558872371453436394173939254875424277458822721134819974441719844878287916274935322613266268183445321429624616738821617237872551344517359376966263637376878276569597326199634395226385258863792956573829985964155777874682437332211671535528196559655356669796269327742368761462894942952833121346429369942384666766131452378415843652634124372761491644166458556211661479115326111728185151121572281849491126351333933191666755375958247699914911657111946515128533356865324848626338734139346858856354911698633364197347397984227165674259254278364192494429413686416567651889579995888176463435161354888535823433875478428273243381988794964335434841354986322573617652837388454463714599456637773581428234939652185998951615838521577917643681564696488943782573111619817926356278779255196124344922866311572391381924436722679826731886734351924668631973634231293962572981616497775129716813156255394763611652926785563441649357337555489926563461728456246666287266421563321899754735387441523179846938964269876547345428329223769673144364336938514533713648952572853995828345212884552862516943196981277231291439357948634194244473763416378919837849523365135236524861674918938459984615822563182473813553352432457877661539463224138712168949289953788917819547332165476949542453632471183788162488967895268399695582272511534391421559946642554757398498645422813194862854849912565331417875663713275599129457685847589521991661899479415436146459431323296475261951885841395288243772891559721737133568257321783782611912925721567463483124468582922874661272859214152223178576131149832341375253144341839175951192825391922556928632875311823887972181322492614127126731232978831868861738568253673118671213845116145151328667643654544998621583786792873556954768225111198827352949569152244336115212419491224771966116655371529833123489534858283527276845448657332312435486441312344581336189863438981894123424642322633277648435881464513522521486554538923682839271361894464415298189552737957371833633535283113563689471888795814116245569447255823345318781449988466683196877631456244474428912754559231513393273849965397362355529549158936452721123424544299261672946483195218598124355393938141473571842841842167278456736574673758293687292273425361966134487658363672696918834341869536278228543436229772754871293868644155513752447364315314122413926649814547296466964446263372444691423566311681681243512952942536548831297363911379261389178677362777457887518699166338579386294524839147597537294567128595152543196838244981659889744122315529561324614898258199359765498412616248264441859895692283877126183824573434823414518459972165875437155971383916945278695239786188968511843977114595812282517175657717328526173967967699138688214744695317496522914672182195385459917758613698383637745833625152849343355527225479461965577378176789273327377244837353912958344142841369673691578741817751696651721879497527116635496424752746358396554215311398279724573579227515222651115182259949346894126542149771558615334811429564713245879959519748869615144896241173246294493782737991373854374594753319728784488257454211821533459761379799152656484553449869386997696765162521146115815298766627251232168593297891585787557485487919975294454252812255576892222884977412284889322981244336172679524985357132668761284551373494751477156196981149446238572934951519256957568781919484493594111667675615133845434166449495991482424128333579526525711784786261137558348768635388442783713826668755622665193235938397588896323994446268863949345659594852527384718194842187425539336297452967942152358969619531316794197942167926626164288182864231954377527145862942811314348673855245693524874322152298533259144124929212512619296119839421843717631872247725267786159159142666571598936592817613297848723926351437479284821876628877438337691792973144654499523875935175338491429239541775585185726238429846223269273637725668512577332779798545353485558573324815323522591355146175511938813694941812926346712798221781374151683297854692191597928841781345332869989592133634412719232664116359937429931241449912751717859599619359717591389932992686175684269941845143421754498165228198761767451963978294288325911295764571596529297341679647769864734914833195619278923542891976331892612914544784338216226126362312114569872965468812321999513596574349215592728712231343447216313986248614481383294278248621119288251284535866373166411863744472355539617864177312345688776761653291492279113361156532929823314347172683529313352241321652694949948192874583676471847868997561352225253375253739793352711355266244185927939139429216599992995789286531813144623424234311433111251523931744119331125459821664331175719269212617833539231144124183471911156574742363452312572972411837137529438516325565971933532113313269982424518311996393881368651226315222384433517844455634855249822291696522724823917434314742754349476474243534533463434782283697589979451236145336926573175539129883426693432271859917422827524785886644268413273411376829127664385342664185497449667641275812491442169115822576628848924481451237834428775357948872197822859295528165313814222895173634879369328626218764259147295825559332293219977717593895287353471769224525825559992599896519241889872167237789641495191551948245944822538577416446714618356937536216387486793489578163724314255983584983165764929877314243486516334756271162335129436666482458697342831277971158673812873688771694762456684269197799165157422735941786318313451381265766975184561411795496149454159833493814177845136112427586113266678443246784557392377616288862156796528763543294417141444216496229827179863557811378332456858653399154795924599761824898674618181872588166136152686738195991561672453736478175828483155567876713198297798845968142346779155978353515784755939826218269169991666156399694325641945197143715183857228625888515828169762718744326653325173265113969255313569581778352832474379682428698926679274288945531471412627422613224347948714624741833955865334955852323226688573441561574348926661457685188296673835873555479377285317119129993427595569364154357223335966158425437634552413347831469147537465519145126355437399873319723172125743559291247139383444688533466337355653141199661112191316726993761536422286688375335359673666115289693397923448337264383514861678411215895648834432578718131248421549511211637648191425218861972479836297421811911191118218245879674261427534397397133543526637365324552869426884996768442479685295783241153194518252312144223975318544523594455933959381917652181425483793337979868737371759353147625813965332443153839932768929773526683514873836231925186965497154832643467775383876337844889541629741445266338464157349222346234277142328328936842383431322921454671839887142898758468912354252671681672459482282134231536374119452478991421189523239765621682433287666795795252414527374319923155926424671153429761326475464313827213567646996558535645353238834693918298124243194148654577714627294588185816522259227537215616858698245134326168569289434573689136125957751463513523454987617447221383658972784473913452779251941528893142534591837494733446869392817558736997267992661591336578124858394113174167561144767862227419354523111149667191821453497242137255719453825799611737246348659382939736664324578731889172653145118822511726124644273373793839197984626524481743533522519141163861788444127671316513321685998322762228114375711566964726139735555943744796646536552951115871124633397236392379611995155762759697591893995175228129927838285484133533294394597451157116118794824391272623676432614179935516752289947365642741226131725149492974292111728228322853792782986132945533379487315698649417318552231626899915921244876961348516162376576578262161347614435252113418115691298389736472641471318623547195485524717714426174631456174616758558855754384615794537117432325924616519121149496339561288752541579247338856129572461148391634198161251141445151983828775521513291847394797595697534656958886358161444439489321269337522766997873617652854795991364781332265464211493728822127367745883533969281183494913113576278358212595955174857583177924334415155113636377778982374695382882519644185613583635919559731311385512917823222421819285749465627225764126717966217828383745651467913392379365111331931659935558971967414491743145814212472872398419618232579693265937228134464344986389936416288341477397871877861987917535893579677899778341796815994151883964812253646634452954983359944513469943634856587313788226255594781864487923244146436966186742763587951856354956266399818479424848424678554152342876353511753475534723266158381646226424991517189999789921137537565372284462157516722135352327312652832186427736683372541794827583218313464735936794835182673385885414836167792175265195659957639535213142695229626246356132855668654459219414129876522752471232737139735529554464881456415242837225472879825144123987547256496751767318243183766945993394911431578421687516777451252658176126782746625377579137886239886124883636754235336251579389849286769747573863743148713515846322349791256282411877479126879849689863199786566955394966198361983553623421723654839714613796322438341848373913896921542441864281131262965387391931811649254661253798593115237471262787976215561283749423396583736494524285676458324938551895381644162475279448248968978168865613242218246571817294882833746665119487595333546433738863164215574357637251817116298888462693311583161359693836626255824161562535676441241779897769347124149522269627332762692443128757372666143499252413423227194891361528678271245447273887529533743787841393461397154626315842823934152916338828846177583511651473428177882246611561777859887242741323421496386394441818333685225744377758677833656161345872725192181274893917612249118355714975784427273722745699181869992755843851138386255531934989936925111334817695999661517412624763714918252757392577991796682251751558432973257131393122628788597653972835195267735452228841519477357666737383912217916156738654624945519533441145621489461424428233321792191841796545632281371354848112653597585616986894618146312433881588878161831585251244259215596566988871739172851742632725871148613453147489464919873212147342839692265362322937299735596393173853141189457823472123286387354468233284952772277678496862812837796271224246662344353578466316126255799967252355728175374721463667292237686443634261865172174289841196874214143239579199772695917647747191849314552348817554341223564483633242452124658541869357198138772413522331574461889336295529431745977742354916627995877679817825361892229445513297131842619231622793486191356773855864414464261615818585915728768151414519144857634394423891111931467962435737177981991753734936826394742459272457655811846397971516615892915756187363919354453936372833252733249358935715831112211259953861467969135149518162547139238217731526165292574336361296971737449363219217855284645161176862287241835341224234655525743488474277245356946588547777414932242525259447193493497673217632418479311323699156456294527739697694574317695168693331482638252421228876969963682189538495366349241431292898121933731137218436225371853177952877662186317891558979967619362137964239712432315796178331812556146513178473185662548163838415418237683695727576328574145358893966344952267259311543832797516849935148551727119976539596953361195844764728214587254151793946822987839822821487967726257565194553663146251375574242871181591855996858534251471791431712837781226955233538179631139622861537366222742714592842725549986415951524471922328714133483258514658856475342236867585566134689548853699251967544323412714743567848659247492154272469819364228331462672572711954123291691914359563718277557833548823985848336325464218225256626796382916269932958311882414998862849342232143935862819488495157336465723321347131635721411915718869929923958487163872447251852956964949235535138368651273175463565118778864349177276763677197765131771631823112244568316729535597265375838883131361117112762736731676799393698861757395136472341275795796655618454847882821841987394253318489529636412499275343616843549716562685821323467392588496964344493388113359113166474332283465491914464921487817622362125672593286454243975189767897456158951915614752391421211751189883615445153364354127942459224268237589995984498872395242762583264177445117577125235867313197483312285677262128747284398848153119241933837612686674224149927562549278851925192539535519913238915366166563215187866796884359143586938528922163337811335929824546636936647419636636945984381298517254336427367963324288272193424577456542595866894826524277542636616776395893381578829967512657467375698824954431271194335167287193428591165312496128992122511221612246582818625334618712991276692147421985392796478155157374596553545493185496985226821614211217137762776661853392248164684141462782519736149584946559149754175535457761932885256136214981134131837973665237383121642153462768278695861954581854362182242177442436689881179618192793595117275355857752565431497631191511331362211647233726756544613114411217337262118992897486864513181191361662865544194973547362629492899432984473142494125853265453258135157831529151479636335139348475863558824623891769347616967327313246673313914637945311598571571396629196986976598566715766684283513535452165662383312784378636846199512358786233724659654336573776364761144568535953226297684912274495415928486549878213563928867316739362522123386181783774249613833681443983286653253392564743535336417111134844425823933662472152211771624169534816989177877533624791927691778261181119177415242181343343675272443714461574589151152661321421658981113151837711457668836525143137111718863673311596175246459454477641834336726775618938262882396639916691495164173113415572849653757358764142556236585767169124437511114339333754342422254176953274155458568469269914983923888555471294454515877289481779331298624693877539321912734693121368471979735372295411765891785378818482159166618191587664261852591636355461992543874412286893741526171321981581151774651568318847314319571223935181645455614811668899928978682381313788649723347745513271486475883712827848237793462328459631683346965757512235649222638553717297283328658648111774815694272359678496961495659583989471855397667952978447442494111313218886848377117143984565445694733553222899819817786555324886591396394515251442585224886777753753437471162387853521354828267314183612469162962616387717718941915666668529155652126338341831394784911997127867485315225489169724193514769467148628888196523611793512231838156773857614563587485151611579298621181762929941741215381874236952742243736356328948211139253461685217174956395992588813846287725342841262771845753314968322882625413652157152211492515752377944964716961155852385266195669535292165745673318761531363573781121198783976
39796362975189218299865128368179315932855114342983661438844486322939279753442218352213341985757531584187927199311274641112479428154817741344538334548465338921846239189497112321331655384858273627353385423938791562878986251345758213143797148247585377552343224312179831363911153139795315879563956131448814495136148482872468215462857965999467411621312389368476482586583618243454487925916818168474724914632534796778647783268323321536234433198249493497469812158544286494971733869871328296273813271331576388323311188787772993441172657435348169779144825574333665734611448229366599789342499591146135429413327712176883318223143994113179521846597244425356773449314993947261342835653729893566294452449147357919438573492215493143162233745249734243113959673247631268724528321917756457491599839651327944365941427892926342321927815133672862613215247985146693685673363482374556716663834594673885422568371795962274592723973149199934443148766875254715777454484764676964714957713129654528614321326297271863329181481371583348411651587519787447242527788315714176437546545911328621618215694491297246863161294258127632492393611673647699927955627328374223961561659634661129944315924163664844378511926196986318993798538529776359712172272259888431131141322525696218835272884868626727732414143192444629643849563618576678887315791235974372381373825798756396692251677658923872354925536923635962662884184447664652456557427152215391662984419168333432537452917356159231191599767424879757617836853933194446918726266368562139929594778469417788898461525493439139673691719871154918374442526665881461254123845486728411139983157318169166791542482749793359587299141392253872981356918445499657555777155631962296891744951498116822344215745445276471581448475511316215343338156154323782814997561357256225218356177914569715111373721231562913733175155868398945735391159716961155744575113591718474544561312512936978473364155452296114766715412214883893779549771444743561672124279993757718774129274984919215557663623352843825512594514893498969614235914799444927786394641182311733513233359126454578417663459841274728172952255398826452555325524526314348284523744981856366436388964493168567181718948755571336844919374386946376763257316931432531167218321977717481649823271281943357267644963273639222613259614716132741655241594276613884952645744271924246823572236481761523135793679611254894434784373343358879825527537892843589715595564695969298317527667665163119169714273945171523788154678776697898118458981496598188658544123732491667128271555566999616479439773721441729198857862241697168287732295768661592413456891214835295952246836354652614618496799247158253865261144853445219399977756116685869638535731924556416851157655921624586927328132611464539645383726125252657517647385374851369299661483833427132124137448129539137148388571825885241519525125736355598553118538939134327661371151965145241619349679561355131984424261777129126975653282735337588969531753139994318281514796862713719126339123527527892626596527162335487239631386395928241295663186947545213759119719979584343552257475972775511719582862715664621422147216226841377122273422459855232294418245825675942533778678622737247164699255547822428783471264575622557961614819349697273852336313488181636555132853914669765151744485269327468823222529984523219939379179154332954824914112361259928429145567985511381731729736165915595222351985598725593268273667951259726322632635356288732566173964742582182917736568564671951253639531135615235441314893716868693611771552265154416626136177854253181353874669274939925622446919819235378517562756328958117335665515935215393966141556651392816125376257396297213598279542795621734736815754935463712873239692352969635142266588343915826637334726854643435897269494359559365415957392966827398586833361427467921898212473884838366635162277438935641658856767581623154129139714678972115812224651743548522913277745942897559319951331517316121486342377999877117514938342586951378375814414879456126945245633338419568137536926162518264961876914582771516355184616355137712133717421954753782672738238954163875536951883811435437446232466394379517274226157563441298773496682554177986223734892862279925381726568773699411637661582636511426198353984247647262911398375933697731457637896264171359122854895117637545942273766341422632219735815293859415513474261278654247814211794876968712829499217957549595919883392813512659594696266258758915463297278597125227165295421918371971754169523712274689769985297699946236338455498652386177911493828242783934298776512852954225715476112438771366851768924933189181732566311824461969928413114397189858241742132298642553844136839123756713282914262529626712812114546366939438912135498174215843285469685554613883174532828331522444398159989948496397437359462921767482399379167753383968265511123699231781612712163276414845351236857319138984535539528732189439513878361833653333463968222877485774746254919122138316283544735252214949742534284692855233221971883122936161349215631297736769431685176347281554454262789228386637925412433728385681242478299794549891772363336646673932648782133933884742782481216536654295958922876122673281913719417682566479725536682656423275139313985469121492427726813635325513246119579231862912219355746797923514446945794531753142387777611966677484235772481261661496471435762535798794185268114975844641647423277288988425282246449222713311243155154231152266662313156566176314524347148582531967823271265937859972383249162354416181558436684463567474251453239442116189525378976346821479295943564595193494229826461254899232741783266711526696346771264387544615337972632927178144451411771259143665188694338311164932682919161319326871468972839533646311469926325575328662481948586762852985645596643983591182866762353147251975978186964845779864574632774639451988655949936939155328831331724199471513464312231824545717465591313524745256372323785717986249281514235967555253862326319637618125359145314919281314656254591782379482914883956822496566152942622722257821815893513668245543634414639799632388875819214982529297715434992169274634177735356884157546726735588448142612429779821152114236318911437822681126666823754466157241384435419433161182244567737392195181484274566762229843916318945732366486521436211956431996751992314134258447582238688636174317968386293821137287766967547967377376159195764951133555517279297397445517491425864358493779491411878775313843375248235512892991712912142912313456745657372598679982277651615411834559953284646573179116116353983488781382473918356319877116542668161484144675424429279227124316862451956797171466367386581881958595554545452341718872319161643443735524334997596127134374892345299675537445399712923211738319984475865541963751743988584865166234268684825167696252851336315732299938692591963934157743719186534953185572388995752399683312248341419612158839128151438167426392928254971129931466398617784881498816394665912314266111514877362937386364116478746785986964913532875497439532679642648383132846466515232891756681489115428626578173672289426312994932724235158572921615521199457967445746777958354394712781134343642728539746465854539685927598934894611945565391148143162698942232194781748454166836876286961312625976874343982378267831314345845646121261145829311428114478634913584272436366935399651797641186212755198878253737252764847626941161866915522871657853339255791267566941995976469623334912744269749736379945657519187864939298398655747621672975128632756412576368547898769485814336145223853547918247517682665744992367858346167471367126483427525133974764653514413775945893611797161832868311646934381538745619766852822421191735693544476271623784924259527432266825515583217778119442345548536217273689589343536315646148656121363837462168421175415644614879811916353836133767316752639333964566814998518184493598543491185227661331262247447231985218349977379786522522422871425595972518643262432598932119387924977974527966585165888614117918392634687322363891155465679688438721334496255624247113672919994176596698176952945121329162749334477843253771133458826187659314754599956568957354152985725259785924931549876326526291638529322473987283481525363625122132426885958173493226786826368863731619441283677292331876323113222323134545722188226837315466774892848231915797674517296564236172972128764133456731246159648891716243275797874643552668287965872267716167882144549866387289553331229459981724321982936645918525718728633512455758172581281329511898344638634582247196215734585357327487122633219468528942454466138131252198843623194267575345197763153675358512343962188847343266231595611556228892864396359289938376346497259735796368116137152558395199721326884568579225581212266834469942169146526286271245673478185513813743849761748931845878632656464639822332741137121315322261322128217247575173596512382229375125811267197166882211496825876854899576198742731569332385872696271775542687856337483127662818469455239974869214664167394219373636115131792714561291967741332434168332312726539942424924132212549865124888826366294441993852489552535761151158595245643523252411491367646679189445769145632852978547236986813663266331764511271247274634457742163334458773983776833877512699813736387399177945153817122641696249653863468482687792696222966439455994461416822799255262812515475172428261357632924495187492523235494921519888741162585589136117332157377359353837773842431534765682814293244635141925299451388133694295268631526619848527779196688353968131676231417712687422331524446442528949851171627734355423466494674223464795618729994924771237766366362242783225766553132564971984845218341962457213341748954269151577653173859646251314637517393741294832241314258171686997198665324316679443253151176883983585473498589124997822651233763415959194391457147593277441742618313125116555952455675842596669757348798573168525814481468562193861951974649844247118433232241535455231152157551651323746238976355575423211736866949441448533829337663674534947396361192696885177886148578243889213133653458955229291537843414454799582245322217488568682158495145857369188738515662154696585822879869227141128915842573191911873324466539915597934613346381743481968477883695252779742655191834318166113823494851366795923711796684638549374355576693942375312136599472754168717242127297448775878324985941371521582211444937234482556672957267863193631738875534757312837419419537933862934321779217545221424952153653224314262697495146577981124726618624395554512193391837514366488551318372999213451188256878235275742615996554512315778723565693315614552353573455644568113652127263953294485493414184824251689221759134764394416179433115333166722124137433355413931645391419431919462281375869155963634322688681613296118267618184879294892636195265611779233543457481362274771746713542937814469281552423572764552516626394467667327625447328113822989988129183451111394169564673337639383742732663955282129973424379478272345781219565317115458289321575925623836588295732932178711387627867919612146649163944196165585844345384489996674821249112142473861589255842954474244348332144287764472342299483895917952133565654738477893733447665422136427141493972375433942852198362644262633158219638617554675794817758947143641423485426238487129472958628544412673354357832763259389895656531496184394277383378124196795691363425992686374969863243167574532985483171136495731649881189572339559262934117817638716173363826533337443968846711543228469623247515282113232574932822562712733778999283131217977448367287633411981391311143226594222938626265248178345612346277841225939231888945251484657582317195916165175587968361245344592593262232241969959278351735641624578481777938625132445927543695993916625831721447328913292756116571523958965425315527831646256566173343287718311278196122881229623944291569948977435324233746237555378861988214116538749363855437462188744618282881711248191655348834958347328453381773229339412758719148754877879249173967479382862631147837933673989558953756951442987961313424433847829479863827833224981573558994223447249414581768647649717293149172675837161293442767252293118343641915564471143361271393677341116725361964681263647114162167142258916768152131685433986261497521548146927711866773515519798346828157472388159763244913499165897873593199673613297542268196567194391799759766598254617371667592217663973634856694148236691152552897154944441641447224789668714419614353813683935868782124257835451566261998712671244286671733839481855443584778268725426488141737841282121828854772164835453239643928398552356258222618439273559112921129843957153274427718934762919746828147129624329813834961515521761961345172134394353113782934985963644727584991953334488196732329712796417431463328352493136248738652526714439832694553559177996147657935521363582164424527988142155276934729643746296723541277584325755261254647291516174644571328427119324463784214135292683615445845368352659531615329625941875987247146918859937697564259833355893623414161896664337463352611182246932771617992429538231488224216454412181654453996395482262223922632583983771156161829744977884639618885863682582927268843824516922188229838619996631399652972733896248314224332958118884964858363529396941519373551937268115453361218525135292413139219227639412182739983712321182243179175226772799442688386958667862385875848488192257469636282281234579975668922321577153188653278334157837889981463375575181363137798927943376131377736252518841261733357974924927773832359976959275913115838446685515237311444213986984732992772431184949431393423931214165923568512513561192114777917621143386782516818177651723242423767547813685792698681113467668193999148799731316242298282137213645892661457697283342435556452781347899439878275317843682726774624226472313745433521597843816857143758431975398544962448922577427258338182976366198259925164624628851523473525899382628154757935179661791171639412331582236968783953175791276497581658453994839656842463293383935227812659647911655627346811526613599325964963214664556528953423621668448598596635135664266329368918829466151264739283475493487368616583995957824619321843939856499296222526942223139992929786384286292697215259713711361258267755758772855273427621396488472249745394128694995755722843376689622414348418631143121241861922142361527245659435322641984491694998284453993567755825213556177971237727342537472965525793733688539147957949766922443466191219465175453364566625668482685193543693419134669653737236642535471379157633631835773323441387375823284776259913699177632774651536113317583243295965132823318475681612647831221682535621716475231631625847952788299568113937578829812138645958523656971636137988737343456327569263354182381299325336285354326115141354453555818667838685284266797727886728893569931828389767975254157427835588958391525932621121925423842373882919927394328463815714157793763465217236637488246173398357522386286843763285556161277641952171314813549529279415322867725434298824483475749187641198455647749572445294374727929928959419779632826752829971819973649769568677915324297295197426719319359768369874736475745531779632486699524852674875188221226168578745987458821826967927792275723225863417592195374439225852717694238816927716163529417722521422177923941915127175356223345814479522517463412744395957965814198632318457613122882444329892678127544151228915749412731863323921345793843592699996884843446719872878933171254316214318136616544294973359817542135926563321191669969937723825296257953115914983613349567272818175223369726367999434219181291391875272756838355752882695174368757364881876225166847223975362778811796335987313944151378568155236726265888561287386343173129914554981966818842246319487616836952274279119831376372911127635728723557733413645892655356712292562281965948427858287722681756697769923322823384323188382773787172251292964917713387117264894163346733117311614265529599684565728565494377612734113186811689647114265537171535618225247364656136967616326185296791621344935553219722391493671691547945477467413943966891481464416323643488298546684644437926822636175985537121113236851761151711467944174286866689229261379292811442217421892394512269341382141746328261213312756494692543236513417165432477123791223714881244791841374733639951791496118666264673164794297714354316414136498115199424673942562433123615416715221821928688536439336836132951214468268698788361475557143931591438176211614837587296632285183564252867221255829875759235872686389936572214121693419154116585761542966788738223725378325952631836869154579357554926288472912273893897181277664141941454816367868421289169448183757774377527491447435456352661349473675376817561114241994421555244454467194924465558883928244286716437815378899534559482441747125657111283653963886323117781138337148813661444915986115922967741237814745197787448827243487437269518377411462944434929235636559759278654365987838533671131259221189167225464486487845366199486881277724177857558634489172941326219381963349939556737454881817234545814939681763241478252813994563698237821616698851326918839271644577438626145319181597215263374586242294878431328158374596384516326688431442991415198747284561436135772683489266181753635261223328367813781861351611165293783782952646121729143645578933685524736977276926211949726734894962964811123433623688342311763284142665727129547263231471846381182112999263763562511555221953145767471245432623682682713422316553922846255792798119478943959725515628744291317767539136241389762359628465146672546426471256217564725432137571982669955871981651413999618571921647772518839632676298983287452673144981341982773882515581738691129753289981437484192633121429312859272844758971226532155737488638952214742722624186842122111778999341229773399457564165943449585151557319467423665844397844494513515374822543639354553195554422132477246791146541268153624667622948691886481961582934742948945327491991571867232852992776777452333465888428841236346516934735539594421119963422726981937254963259832297681276923729947327328455432972762874938125674634983851915289533338317322338376669166384425865873516216329549786495614197594652256339472481145711729655254659488921251811688164517191614367619252355933325622232692492641683585465944764259779815217999198813486128976977211572482769475185855161142672818662921878418356151768599252947878376411582972264233952493426178358983232329997911459878449444325477518825843512136891569182217592593529181432486295182152496727191997226589422422846563513252394779881888435466541492536214441179189111824199719965119993446523775458787926949943493462524398797782541214628416249649127463118772459587498899418729546386712733912542481591158511411596129424188745261756622643789858123676112152765836329846729437589536456467763798274341844485198132918584889167718234457468273252981286718153158591385152892973238162233628226532536262234362567785788676453381688922432181522897925933156532416364683665377833641354432317642984778234999195458541934574826287675548547549784993216552364178415341716491299462817823248367434638372112289768364478466487349836741143752491641666541868522652137676829163568717726813431622245397439951459257282988142127673581923723561148135517191869933734548139512871566183586494845172919962695331115875786734531549348572528133433523371972862754785251417955248426231234911331497697322682725155777852821823758215944244264481447872121819429455341318642674415176248417899758655294633878525566111758716518216318251574328922439832711155955481482886771745834674715424921231735571397247111529443375281975475254997431984168996529818581963172767781946373527948518732913572633327546811812442472223936448229414639513875337557226428284934656493694962612849545934126199962116854819367277563235176881426234597974337937169228398411312839723841786618119437398643794885668572799826395129552738744281547458283692482975856919593729191636753449897626991794281844362313566877427121431632891625295722644784136548533332716538268448677714833865239156846229328316993959691667758291371748746913512632493185611632795562423897254482151648745635815833156965195114898152996364294462137455437932226155254677246469584119612489797489949483488114522989651381476433339282391416616651718333942453478718195267184466743259367544498545592764896214866242222624498234583483996192623884292412862119822721922571666457385933231546553948133541712947151856134316437721354783254529566882233336584822538385412174479241831493566164173755145281758241925844262188477137418638216245562864764572477843795389941198881374243711748223967889729189335916322866452168243349661371927664439554953553465812578737878792229558591978981533898414977799515167146312444243436431385744177422841993839526643357873853265679262691533936145793225911536495568969821224161636124798775755222681612128218654214551847634897949851454247292754441959899881376959796157192325458474294872785654997368229357789793874644787146132146372979622381588252153427756335686726482128241876431983573455599363664746979815288569883645522993231879255941316827151772724663166338395242292532612225893319541564744662959915441641539199927245673994594998295188822799636289858918439122554466171731829799152294696661718325861413936238391857649668862627917124595572335988559995749581514734361376411911253159596462442553658693378444192895593345253715923258248581927175812478432556246144573111397531677988286976288593252135271837774683731658651745731358257482818585838271713438121537475343962658544198987555739932745413828147767918746222837744425472582359239875293149733672898187153248532526931885932345429956472874324562399387651271572296183868331136429475162458729337794721358871621338318836245456239345226494241537927796492931888454415172177163484357535383621683856665174588166397312523823283121349317862394833847993147788179725399222239323617824488283414515817235268826111233929541841172861657231224193213336152366592989943428455556924788457559583488627622173816492319863956358414391477387194189472618321814613652478672671312523826385453513311166724554369748132797862483394961941688733559751761978771438281836937414529289542778172168117742878671442988683869847451559147376928689648691557319462861893289948561622162353356985295364633635526245918624582667171914612169182779254775692437351321383399283655681947231826117318136762864649613784726829582163297111235964637362313663371918824671137619772565432636834177597682944921428789741357731558841166523482176571223429337759458829232477877429847822967655591328326163231528291583244852937671313517814454248416818956854289161499118562562556797616568328318277225551945941567128263963435519552776111729112175882472682812263524515954712776715485914986461655554671994217411492732296922622842166599746229583131384286529746266374173361158979933233679479895354387755322456396786746358833631469941412662837316299517164626199535985149186666511131221591652221881798459161181783955456648568337642997598634342776285211192318698618823955434634296272919852629423329139317821195566234627764636536938633488428936146567624476839178916185614212681453373755368862649348234176514387438335634872435628189582439888486224786655985851359276874276755288896139356943693198922922512233735123397852824458663175692394835754254731383422529878339713229564977247559695239242127254369449651559829852533534469282436675757375377254133559712243193867643598664444868655912389411241413192239141723866821351176922945246378169193351184194267679392634311332494925696214133511241119341211834246384326933896838436394225239234651234899577336695199666235617173136519451541742515913916829793885344367355592295289227379927872955235424421915763836153123324312811487185499869948523165596974793186352475983768688284251884235749318147115379527865195166268798959952356939441667324488567224286171115823513952612493315328512771684787432196363929572829678576342823292681369819667129277582993222319432842637178492822789286174339276255636712271286238853577297452356994178824714634593321674418542254461537927573428661881513963215784741913423921645418244858339971393256198863111577266551118152319332321527895727523625485555317391451944652673486943944918793426615265723744936383648118411442612885899591876317443355198133962856773895332413392638847898129522733967889176338843191812277796762994544417423953662925438821368296439165893396233795159122473613943422342617564462428395651188864912728891529912372329247786523398822758986262413666825549933424112368594247792511611363378828937132337472624116345525889612274634176586235789556464846458416686274259147788889489576621412873642428358665855643642913819996882549768432948996316515442226723437889345713933311325631726592267516239694126592361362627291438885699796936964746217553334257119157119543682413694629461567486111475597667148724958713744613565359366291414432962171616379291835368149681284438151273379412351488119854139811569244361157431338933898593891684526798833468872199639732558996178776126344768617287175538697138239633599366925711341423566598725933448815612888555214569385385744998129289579379175857155874238748826864965136568872195984395688294358399489222217425455187574166581397673445244536995351295245443462382849565955868293294315698174764295138186532137944311412124337693314242152663536858453914574436622672713175132297833866835369492189376292398144325914465126186989389482751962977614178179623152787529624828263398443368114281594814467997311566514415579912983516271788753193243952449265794949243136258713612673564864816759471333554643848468192454622925645426237726712614287258558941579945451928952985938383354644676619791582161388222479624998841493834664942594145913583346742968526173911314659684165231679529541512897213765912832357591339384427765363399819463322582279842366219291485442744812635628576161441835116324278762827125225345495341271223629116144272892922533336942141943148885812672486163344841441837887971919615827835175272664182758434648922738231139688592343372234467332868919923715716981891894817361461661232425664951828476261523192131632482332943787944492431513263251871754793363798216192842779163283882317149642851683955361487145254657915891676814246236774193832259269159371213952822172639485564718839334418742416736234736459155259314719361314967695986296412124612947523975619714914977133196883683163585196419462785491524691376164885486841262295577851197679411944242432765756175367229972625915328282614234457572237128186945175373669339867869336368262227371625741666425734125339457986257565839269824114285267373861458284182331332389853929732888675178281324812795372439754552898975437777954376266654192392521285814877331625546564633277449812362494486822455454541781714732938259534267143372663764928671131883439378742931549564749266994943861371317395187952145168497736397714951654881577491768359577729359869689374695712438779551692497779486286789233224964511629518471153621668488334365313273224568973536222374373637927112774169572371613735435252927987154997925681576466454363482949487645154351976283219957847849817879929651364639957616925356144584761355815967361688693267145164166349456112563417217996341735635266535324176748499269451516591353628115245316369828123981281264223683695675425125341484136273363445249254952321718846719229141913497476297912522582624697711198236482541965287999354579616457683327763451869837551371193193635123222398947157882439119243635444377665839561222174835387996894246332138324359621122143913517914417378929986324364124834389231472976863832582857169842283129238544817534983665662244175219895922491243647765432857828248845755426116988328865995196337438152138384773337271399466243474864266798854132194249555219433467773211217761331164292478991244421924613481317625568727853514424936239168254176643582451445645685212795394932751496178722749579646195591231479528464242856626179387268629479173522386414281242364536451136935657144635411488622474285815518665926215794236692196292313554469685533455453661592461319188411254673569967533115717967312328878522371444985966186188438163826524583646952128398285449789929283883412282924951446534715842231236116317354742295597937726368186657316122124132811723862246959819861127655895863817355814165737722588356149126373749835399718587461819951291855593549624272268264113312891339753519128628468321422544253979415417545616468682422822996442559633621542451512154252127245334499532167147556367431191351166962147541241164768445292684412625856144858319248914473191933282445496649477392523593768798292819158954745127182868379231314715137479687834574921535113132888626999294973667197281255821219772588892548494511525463438357584235535317779913136678679515933192416352698297943188677447812468922743149773343116568693156572777273199837342442354617676979877534975444735145754836443184325551471224492711815528513475544914582638122957522248231557246186144252172453919459947544567857315132586513339362166443824832242323514963659367298178391973919383696158941123111485945795833453966677974233471791742448977954934131245714454854434587281261133652959299722498139245263166542452359456336549648792885211257965235961236758272289187579856986422373885886881766772792223781145184626418748423473412266142383581688518849855688184341962943741674688936457992913388221991343463348833573961293922922418273975613745699494644457477367859165313811536825297298199913964523384392582537687191431226668577135166194415983932264453211518544133546656841454213323456997829542341982642412941157784956114551578732366759743751193438796693782313541527287868859246599916932194242227565375527274237287799543122861211856387664724548576969887512271916924784269462622475173116137472922769744527387515984524422137441919395327456955471324119379268976672232564622745416244122751225398398313136292362555549656467481479725512813492332751755465236384559489222862483914622199384618451181547764164125955448361253211471928693172582834526352455776233978756262522426934244617127652689738558113735978441137156839259765126994382685231368996578697681134316229685711522622112557252658481159465993579856227445646979971975681554483923147294789835591346818971344396649592187795131234345576287839539465241626243542754347184135741948731454397136421552463543192399546271469265131216211488895421415718528253798651281847494278357764465437737514941492465512497192789525954346734217128371433797479711178745633665548112497571831737731931685721793847494947934762512939461582536381972876289693255158956474945733439295277966986761344857383788136682318423732543595191611136457695225253411654362355385164436532691668345359899717996329992424695352792543169235827635987635715359574734271669143825417262351257696762997521731445357567428635419195416793413851769593753446955629894594249388531413371197293391589935456431784517239439944196761736827219424991138322357732225375557679693695663375943922512385717951412565257382893366927465967781915724144641525254342359854264397573128717626297642181943641665762191283752348751232612478178655731453539236968651894912127898236964699811535252616414417762259629666243368991543822173515176867938222623479539565167498964443222993419555436392922512334692923325134341949864433155398612635177225126864438427163847198276351762771458899738328842852212322289772493442217154694432215728333629825334231257925291777518215611241959169914166994763629884238688693312658819532456125764779463197125515891592111867825894979571758524751724823959113935321523589862412155999611115997567653326612125867988472713886446598572785923576471779269153529434942835815458353562484182591723723866447786295393634521625637566858672158995829283384683628855647552762536656267628654437111994453338292651971617728185244396874511157899247398372262793695481354882114138735128613391331874292486245711347632326445244533826551853963755911159567942934688334884929671277485115652582666644394641716453363593791754998454342123778129831822241395267366569536452165349634445514691254233476122696654439935385853428435622625351777382692417513616146696898974727335957277353421823242781328293294661726341521473258114245123965239359236737585369686369955259713839238476869672444531627846451667341384586546683641384712874677714939763255886611917652334949385888428555345863453363482451253356319574845769279175371493855619847199761151525973816529346833314757837934869869371845941648794625532973253422616973592889321821491553527131864742495783483731762365239631352829925444484681453964434144919252817885198643136393734494657355322612582652922775397368751155324947695589516281111633364816347459177681237584248993175842957725324922589642363324613645468419733388318188835525442421484172619241824221477838991419814434695819167728514375482744965459585351715621682628537289199421185227242214345239255281957914372924853524745197496379152859542165161775435263513649338118371421356622428131159267969124138835245127893324473196653916929328327827255875486226196225188233446283445131997235259287619216981394657583237791929451178847433229211489785775398824129931643796629717344151683286592349949161391565747441688427418266574997543297559315625614821125318857248181556947849285635144216364478421323996636927968379413935582444146131663629745172741824457237417514348244753399759465873917947216694646122714733141268244915433534243149916316467969933491532919197147141312593273794816454177381141595212661514833492595138677889955829422455331845593299734241164627413611636854742752442676512619338293241432291663971854243793221718243252313187464153925755264384352453878789221511514544774136436171873216355327317494941333125542134241158287914593195886491997715246792928199181843647684152199182771418588517161519344269698768995265321682249147843121222753232788663271714839662272491466837313962642618685772253145724319852362491318191546641861557358473983781478465989674624876855264127846474251669956625453513713171167357819114812614829218817468927927491191531386665819328551137786523293361852826129874726315135147195355322462175531999343263392192452155985496549256532955333171266611791423127243767299744184647447923256515794735819622767774621354742599682113624355584481788746876725719178397722168443116641214255138227231564323976277443815361331323454252811673715446215932962424438456491561896596423764521386563658812772587513573216491997222129818115515814777252137649764214817842668253279122316279868215496942496895685769652249485418672337426175362829472875738433854831644611622483368586938525955313918452552358363539559643765483288423949143983177921633122497297518123462932316271673852799519572148363213242779929922312469557336931398659673712291176421646552994665742518917841443759543683164157666576595585682999385873498813338921683477468141655775992183934737633414467623729434788779948515211642622255495641767656938137767383411191963865475567661325374299972811465629739934173632936967138175913879136484423538952585449688568273966216868534774545747747778262832518174565491849821832173174668498525212382144616327467378185272348112388483547518633949324741665631558777253673421817284568763413311266152724938614278149962245478627222424124147628932715931562484697391175822748134972423814429583346462893995966496785586242387153814323167967329691372671451456265113784576842361381813518711136632114315147343195468561742458993798668692625123323734315243632182316983586735181659713918966837634984761242947596764913293769221397654378537121163765287631799232134667615547417894581377379162433949411581532848714646558445562648216331544512221977792915931171234112399937545847417948662958263221221922888126155181468627248871638144619779674737439198766994519686873867885626352527355525926815782128442718155688368238267265483446863611647286629168112641587327142451812889452225346196281166915346947156672659969238884865597122662962526598298635651345472432312574431933926465258723821535545233787679269821373628697427846664612852419183541294374418948959614932191229655197572684321238464914659137968988636265262952377438188143187831522139361432975274852924184525252543354446337979293741827859686679671642785472641231225268853213675626722351448798745147944428291191962744792695421377193456243827158715547144813596213798188327763236259992671819939666296957368396626928446581291229588315763181613914691377788237928767324263759346488969362882914844528987649642958412559713249256274363669347823341196786439112436468175354397591899737178211221399233152828364791952647633267587774115242913814454697519787183126213692621237957981549332311315545235235293136286672131148672485291221721218438942853973147988297463962416974799156792235258722163339749317541134336123451887719632169359865522871264771369636743448113993842175843941564453788362986389971846677633962995811558358217417594261513668642838189763731383524859612763972358676578236768688639264683634749177639971118796128746959449112687387338383865119138533485656115195513581744441744686763957284145868814439451285214173116534549582843268935317835268321529518933867724132764921936661944454982271858969231586328374732393748523437877271125374812141151419422263191345537881327973124975211827296415757337444549215236352177971647491382492597594417392212222111858552594931734759475775749473792933243421916333798385593714734243245476828947719244562632733322969511576218654488932875993982553129384994324145816246672922537784474162488176572583125764765825337392683433546621869438778788945984487631632564428261424255116394569669314966264274165359295313851931724992834577444744718434835154432633321849338673172944557811127858697756371342528649377268689758424472534384693152343463735365156915694328257989824464692424819754256633894116792491631738958599825323276593241776711676181356223156652674873552652532271711569311382598283972827469746276376776582546229545131688976449799682588952947159419692711835231183493589445631946834735256165366453989534761192452114626761985787621194721186626693496969979591837263429395492865556189446339433137273186774132318768451478394612955778454111638437418414254923132421832837996892563197282146298543191677981473483667685516396532592671722145379878343953399822412739932545829887217469868283733818657115192584725946433896147133516555229226385859212622937175519753285232573577218949151363721395965685753712681877293358792433652562511539385351882657949179121653281765547773529497559921624436583585599222631512592295396723869297724462793343287164493835461282827427872868983886458511683115137447261247166556232718534243252165271482583997119141452988536538286234427846415869671898236438258225596515325865526149417382467652286786476891774241791873927884657399847751373175867594918992585937155954757286828877722348834897817964218395893227315111755779656377663915624664617183379173717492776764691274184211651112818282725621717351667836247958696999981794626671284232721577872171822227662481587266832915955982316722725883159889816577314659513324935399146419721194532439276838222922928477586592168373745951352222727683434662175921614492777467221481265826873732859136897276117113471191495815614744969863723366232323255572887652815367178129167537368649497415461355278527363454474753314623581497274658778971122219872815286239277688615387414651188181856134255436145735996683112416147944398678212267124328238932652419278231178924397432348873723191157838984431929545283893231635731921542518724954869971549113124699144662594149323495745926514612293651637212698358812913437544655519695265443454122143472311731188479887112896837926725841597641488734984638238641776967251357858652894665813675276945348462798538952569398874431142488672233161418835559412929728656933655671423363298842723834819253242545632815347246672159273719379998294857555131473629221473754286371142141631323391792245956796857136116132414121666299556137981163275268314439644276754624829698452172555312281353847665717136522856841951881231743865989172369292155311219652524296153899175525165351928182575719797111313534857465922994563815529725222913397867175162181968328534599793211976229481662783914646639978839227189386333578652152538382997773124845665668216284861465594628779141975562241761595511892168324893193194863748782698363248256563743323592923444892252262889172951426844759422622622775113534925118594222893816657386262674918514822699257771273155778419198999629668471728599699286357336164991156449913241846936492956366531619212662741192617976145928976225757917967935946664926648176626298347395693678228875552499449337328932386878942491437558775211219659632696824591379977653531459495455661167313226692232658246393771422523544269129831934414712426849541611448668618491682944651282435613899767414722291387212939472212859523779862991394338576288155586754551536738112911671913389386169692468779613238153414667636592282428677758439438976234926545732834966993131743217587912194273159245613519363793433261573593249386956164522598442242679288983257233786844687682779918411349818951743584453752641237593951347952366993842563485439634415589366172339185416877447693852355439122356272192423471231482589141643952461497782285967232597685577465953732944613768951548844576195779337193989821951222165715379526541731287743986481935126619279642521554756551485481113633158998754479842663819394481473354922321749837575782676356792789322223632758629754377696234157882637621423352433432197471662333725741799786727942162287914678136619984778561966797973975839663638357996421347421943216631223173921482356734533475852858515114866355419286931989911326167551293417679119933511853944888983616159383273522858317342941448163434518665675843977553656392262878822323819326741523359115377353562126835287289116934323297456423725639231261749889723382327529389247491821174154691791262973653493476515394282322628543899852681694363734331417752961896494688497227594869473142779428817597751614452779486164822869292353661973346375452158393948864573821897762766688353743237344861193161118652976623839154413256914459666938776172965275147673343792786883351399579615442213113515594235418533314249367547734453273284738115657311668476284948217169182855922917215111429177353955564858724172614221438713322568152759133384196532115199677667853913146767722973337475863557778288793162858354514223225815632837913491464515588898668864875344579248457262531936362113457692476571117895984616841128447169283121726126213343236665325185563713834193924537897792559296775864243385654332855376148471736946694136679494115641927754426139976446262812347527549244749166811472731511529536374568794236849741573611923317658741469514861385589194671588617547923697692119799292612982564691294571276612855755358292353636522598959663445615488162731555653468856216338815424994736611982383885564367862917892816931311251852337178592798521634445549566711941797949441252269149731884415592275955957116152866666198978589328946154451291685616628145793326554788171473123638871175541776653553138427685721335176466177374951622369936825624279125874641727543476973337666444767688318356241178746771818112779959297829617658716772134138192161611188394284396639624921354973935549763225265867872876119536256881977457758878826528289588876866452974232191996732231986134331325613315499562592747197239182984842369764268989438454537991843331126226212365566479515513988662645977374287827741394341119383221613741318866857651216964289413389824268564165843858646422672749143213329411242363291487433569233836922262741739976632457881212219277262594486426914445332668254115654299424562968213458738429729426371483282638125252941649526254357428492887361528814693218435814996553181933336641647583321991973282171779178731763844381953539194241438681983994899695226594317364478697615382655632842114989346174752931572449164321194133528634188374676421184556535438891159894945597463326287147436139275113831664498955942569586454416461348855485354948178613951173935945692533638525251587443438483168437839735447463563981531187878125977118316238556343345488812438768749641298337262117972512381458857273411897739224614299924539692974349959236936514397661581967338225938655338119727156892876346476186547823715751219256733914576326531657181947427354216396287353499336825499145539686426391285636593144855197782518915348433531841716474158764388243612913935515759138251466254471875396284453243357891655871796662857476933298555412681376159342742295798948975759618918752924787819664556627395629822971665228151157183671341317739451545275636925439718228631542152959586968732181511464159463869567629552361992648565362582597663364872362144471235974842232419586784312697494127416996946497442964468872131656878688441364192929778428924376789479276956629925859566912918589521488976652432663648116651123823151385311963443549166841624775354824475592784232424266328232259112249994349913823922836271143327453168562387934521995319644343611683482117851436194567467277539512836888175732381272754123288782937856474965792899193465956675526746784264847134618976437174931594246726615872456319579565262551287438651769987758819333554441447779178477474335154452173993563588698927273971231779665529894224628977332899237574124229395799787276878437231119175378682474493158394822484694589857726192895855551418518225285322745248327392273234836436283827316148659431565957385375173461215564671182178895527317543785462949567519273158447832423273356562475642465995651111421318731811237519914852849555225985225541377465335228854624531666565426416795114293271334266173155745667998578353277812823134527726369857551821447892715674375935129135395413955378659816118138416897153611917911999711838559395589825163475929588554426536438477119327341463537925358895568219969738855492567124486382816952416673573313999742428623836634329193445461453553616647282826193656193352229133396752937653939135648995817166898779432599892731877298833339739741383855717369231167694371968494387164567797322257398521769428414648193442425251712359773331123827246638555197661885327859321225383839763294816338511154611852182292667257776828877555276425745463516495397963638375834318985524294529243358927865271534914171234264518686155431335291421215225157259162169693668968832231824143428788933216596414616485531614726558311552934998255538681724268551779231445174189757291799787372321118991523419113131462361225117893284564136763358589589945365315842876188159782822556568743473831381734464161124314969513469562325243812742751476937298632246272832764165211343681459322614973645793386875381972479936174872719296422857225459171128466624143156119317631812357413564163446537444386131252276539812537784928981326814525845757729175292195399625234962341736933792355849652633551596696162421821597961159629754767955715644251172825821579168474433972729248337167321833527528413932518316317715459112417758551211668958831985239183295791614951659235125338318467374221322827199566375837876369532537244228653376158223884251569964784773758648919192867612484613472534731996524457828683569662912143815583626978554631928563483453469695821163483965895615142294188762599133713957625242937364517852253719778247665961783648254949954815459535329653164471331261426187731284734861441577733182471518329317486474691811649691423577539413786994526394312165572915845493833377962282848472725812236245617668694253928697539561226383328897167918652592236162159148383856595691867211176319648963412755523537119699518171323516164198711862124397177333895956442923138861944317185828223385618749171889256449114967711536559734732537472525825812295325829169194496424514698733771112543624558942928419492337332348281133825826934249424719926395972995332293618981153736798385885528132642675153783737382471739654541752841651517966257843194525632131365414822415282337431222982178779141414698793824965279515133752235892441851694283812326399599311971818231353453475132555947363435716956968798591167296255214624157221919399395936891491283938183824634114611213613966369155949565833415533262939966918324372383312479127619237475695854648664443735853393296243899491333374842578442349971152151159445863668661541436632718413691325691141178814739559531616617582912632712922635911128331585348464319871145147366987117418514611689264842955143538372827835314254472896358989565171784947842129112768865566536731887167163238532148142563417741354181253734272487687925212311884821833989129651729364516617883758933886937488459384245771581854946154832825897356566325833213281333373158917649965482492844154936132781723125541175832489221991689579335754981154786953316849411912971823527784271235121375382754376843278574815116741397214675847414477398713967435175663743658332922254232567563723951923235724827283757783584756172229936247832394866672218514492688598984413253661255911347985796389899194276428797532859514725795572652873234111694357414511112723725866832289717911664444817226566665194158755398576468733891536541466535628763251231177957991788921695268746386412368184431626261251921312457894193281553821296543917665177571518686233324953217437174975248521212631692698769592161372241852128973616754243353495319794965174349859846178783454774215819167399415121612714687613746982698257887779963513284697996682363567325283641272656153921755445968525235332151826548891184699648221642675775291229473674157583391535369824532784675318344748466996487488668463188465216661468354179172514822696443244543362893534661719937945945618249327834599358713833679753617123287421362356488627217224944663617374259866544723522816275538666845335251589615312634459796161854485391229174638671442956498665164528136114449156973128263825149375215394214227925844549518583618776626836749233513898236249297361117241412417135429998333543946711728611283139185793593873261929722147986762946191551363562566119992151616946299226376674522441744228612416988466591325958817667517889861755184216554969441414323264118243737212283931457193448639239426775156657852239599342725932484132249115518389319233599275966992699627216883635337451816585446985259495426131764837273714176298646467438366678128791893734251731526221268847563196482697895372833173221749993145232528773963241171454572314425393215592523519128732349546321533237665564373323157556975656464931149359578993312375434386529342216573467914692189831111855689627192916521543943757195478637146486914489259122889224363474233691596836298736249826791935135546328121313574433789313124958272474484228468743949226352332623424469366945246339696278568853593198726458431931946653443354355326728563476952572153995535345998731876432111225848929236495729336526874975544543425581753519422295232877244952629993341784334577589482393331114856479145972927985859623594271953254624891996148839113125282458819277525722965753913786228392613789944441616273235199812136214891529654471974137372994124212147629634713553318333839674413319996255786125422426551928166521468729422458176961119694121122488485659176249794899782654874528972611111322638666164221734173621183921677217614264848973189549774892592358325382824266523555196526236398461967314426962535382992492317285155616716383814713837352119586492237816554167838123458736237213391378955233281415151245899896526153439217643943484121168497296287719564544934355189133993155236939342381721159224446293448638391741459116497885555139863177424564488219259886365543745387245515566987673644714228847858456865463264835683743233965422249494639569792643657921581662713268817854341574444842682463678678495668285412971585598222775144412796248739434896493529948755594181344871522128145495543535374499523347626755247612484785811549816361936272698348397349115287647973798131722627562782599577369823245516958363417451892154992481694394967712913733592293828132893992839374984564132571663866811227325773125569194962952788718184143417944499191238859783273394355768312449254194131996859138643412674448944999875622847823647284974362443871913181418558939649999341269194866489546121516799726343349474558232288311313787124832674662992249221835414332453737119644419225476822133619796526362348581945163141894228215783825259526821531154128456253893282321254991831518334743645916928122169665121286913611655614837336386138824321171339422985674759143657997294943176221416492393974779457586984811166568332189954494516589393731565366127293616915775152164195244631835245122658617343665532772146159667929929644398881382673615545168796548961342327691764728334419621741543424931458835241571822433146156539958488533144369126228949591438596929149526634847675214541236558573975735694451742487163671856291374353218299844949642326974735597198692998759523896283354312342672141339453129221369435479132847889499164262699274675931682672135319232435334371216446243185743968462288643616743864989898465486697659541969867382171882814939928773289634176618866898511327358266918621137364842156385776999484723275575477381449738852295593371628386949661371272375514647942379117223459874333466243275449129989648567395122231579486315476413716168335296325646174179669541991826755212616627153623733613911615177224125723693731124963322353888981589996245378296157128287848486367472761123644361822669589951144446389325961898154645196182123772627667232828193753568773525256599141666971697517498693985899952493492128984483971165173286331659337349811789426763999235882633164654472921927961323331127943988385134441698795128223322142834873434221589533124637239617222183124795338229142558126229918287323831239591796445822244728433374141716738467226623952389664366398837439338267532227531318983453766297641146423543199676222462126636594842685688356838963616198829629422646478423926737491196979469978214511153574369531529473738236284395426739643488473889875782632834121117595247621111123411988492922346483149552231354678713145432688655465886329686541341583525467173549245449536628198177459371197652351132687495824877388543947628215463534787953686127879861934415298168718759472238852156223399778177867275817342911238867216611787375157534383834168733694147212249111645627966699282422493649192876327934757444881428257939415485399739685869228921218635831744151785594434359289494448535255158134894618218196156489749835275498622316214462864451559258913749245741681533324396865871156889521666945747488417184643281387587637195849994474887536769485928883618483968976216618964522241946123126884815568321194914687841197715818232466939762346988527648946472423612494528987685345117464971399951531129793342998123216313993763922917826434875547914958995522712172197959181184131631115194449968713742177391679528925169632574797537298877434725682594969665815185141824582256217652556265688322152284231819383311512236392725219772939932163426394935661195939441129744964716342864549931391855941632397673652294326264945872596721828138322912989151149831678348341158329642548196821144863153711172939912977183146858481159676111155831757886362933375473433348685617353799159836226421859841769634528354976828462177115995524477793948326337113538736316723218236321197488719358382537236585192451872242859278913833499762312133297822535343113565526577397246241566864139446943242185867133622159146155386152711216236337917949868179556493429641784984816775827984383298841576268551723284323995814388254388583455381496242765214151314465221849597638729811968594654791443567793323446238452155391712279929424343385634143181915588222719614862619261982257273962139552346412854277921766365421597115252287487869375825579364912912771834466232542261264346111151637943696778665994619773522446894793435232995916376489817916451439183281181631249445347662877433632966542353925627128681363231293622822293256824615152326945983684939443665767273583518944147922149388572269265783619599396495284659266367179243842762621923349248241631429291613923412945348914147125456289719616885824283141668817785171872295362847948418513125618224115977356516766313169491499568145551488252789194431848293855352515915551968596956139722631457262745132283567734217123213248441483811422233582239545358344762842378716238561217719273241223737583721154216192934819358337528167291391863552157846523195177714157217319236573197222296815282926827131685752537348275285214141417655288532767296397339278327952757662222786538333953614136349439243723369731453535535781422436433718298935765222446825644124872335167154422761352545273879154993317358188736222824218936439914519192323555869954937195999199199997481516323258558481157652849734948598352113114821174862472881352349883278331318865115269113759579561831987367449724574161869116556652236365322946517797987127584451315858289741279117953996315179316544233932284697219625213936323519714733157819339979522759949936934337419687422449134565335171674327751368317291271128383152425238296847846927385657154116439253112986558168322253554713927538211622183224161466894854257951148647187124178715928995545558764519828273717847212922466332978344466397855876858896268962483327919557615636831889631872645673521116196453387543481851935334823493328459593797965822441295137788622332722258123629331172921334248827977982793542164124472138367628476719113691653183565941718785462482296251584295374216129912581146812497832299188499191515619143183134381561687857584285512655235369243566268461657738119756957351595871331171872579974725747461138372483311493413561893255538528867343464737246311894788954692221485554348932332438317631651697939377453227388516759118741386865393924197538167299598321893178348718395925192472832417654694235317167224338247237951536156726239241376647855994836131239258564978811838314938325277794447121427546727816569536589635882126215537946931287682284513832281423819622952981384673161146111259623511353978966481812763593651827636853341532828154433882962994279859968826666346429924193781541545339948115762825528952318431193733159854842299496149597613784617285879432627455433779631936818827944179585787122492642426411812692214392654255195524493614178761961749382583395229127336651853454185797248845294459352431684387692726231959198134623398251838743237831122623783233451945882998465828128174585716624154494271733712712483249755361473923653593694431177228478266543146493779616766149165148232736796983667875655721644497519175756512884753823293445655435198231781782631596291345734782161242818384121312698871325123388487715829656319873649948949333556949514475148918292382379166493716565319333281715868588142637259193928664334645417379769454667638918932258416833542883743182472694273266233559991998373946817491643515694148876822213548773832982864828382352821138812292811441326499726145183879675899399394449564571691577649367986735422927347463265289873279781969133176352461896491526179442634999211328213176839282461196798634684147366735566847278548672486954527426729492883649874868311577537925418123345181534657534833443488835147825672572387281613757833117553319539147479767313219642734678691261139154871329738137792227156693379648885173929326985371825271689896762223425249699742545473137825455853527516724129134863115814841686687326143639863724443753394567542285952955998249471497684715947862271885396247264567197256357496993151533436339682134492677341227582342926783475125164651516984841276385158743691691746937262151512236582239573614751581925987213265636997313948179256179124351762767788681541964451393231591442418867734736111614947394455818244141198212728259763975724589394217676457174715936512818348536618631826112143422694575798385113519987558232995459196392128349914652554743332866173845283951662215392243965451421522737814694786229149777139622554972412235265536112321931163451638614537841495164864459884278819725485318343149512448953296358513614425761726429792844872821422497894789855958514839431318415318523679194272793434757774142773963818354621242838642665979822114699335456244416719741695416454391628695694772163738434426222559881329387641271785558415263569733111642772969589692493313327141155742911822146222952231687491822394394531588714493447924467591911748221341619338327821724195322148324529524547241525969278448194717553832863983418396629729184544133292597168497446311166551499998643771691316921956885751591276281597371724672145334621877448947913926974535676733488865132358772152752572621945328246732236593235487796854986111718683735972949422526852278559335659166281724939384829137826473683775938366273477288156199621882626814728633323867997223933494463217343132134642733234716831848422452714167822811374275166727927455231371951211762392263237215151661658548582693126465951538534838382922652896315211953757182163955744423249325915422714798699753473513165225745245631861634191365435322686176512294833334716125264777763911346753822751723121895563329826773457589215331699621148663729835318334445465381355946238525963733435123631547494123111788364813478541321254215244917278156952626622995447265762912361965424448984191676441454583228197694122395891746418883315995293262366731274671294253396361357822429774862883281265792153451198183494916695679862779657772972916285952899348721624635142424591619564822537335544713573513781423199986996529689629625546672536932958572978593955246766624786722948869625572119395348856341149342938992674339756729932591183538297146191543316895513758658197261995281467221983498584371141148191452464692745585254126585563415735342112249333316512329451798495473659912799522317768399856646992251245522453131165189826948222682151888242525874636325146253911917523934691373214123491462991493555518583144848199236119661744348429299677118354943798671385559823961716824978485928353273946699379243139831736692665798264832531737137739864215117292722571299351923634485184725716172652824563231164447194419548132344853833666467221733655115833399433855295869157263393162511241819881256251491914394769242886515926189131585666629156214886861976975162473665227123517394289359427237244543656684324434838677187247989353286172714621631555462464134818888264135674767345274772311461858465862992761656665295328669387846583372172713982872261749989745167923836469277758434455596913423927253716126556839711155158378873614154565588178548136956285926226799225883631786588632182313817191599125922649175873586242978726975721549361623276813449618476769513941156781936538171756192554888264412213653269547326643767527798152962278156697979146664536714865373717958171493879276933542429317959993439182456521222366115211475152164959319153149841647162337346663252338497625712669833187299588469713261299526324618182232353178381494948621929371352519321352358429733222737881462424417215752911547241351222731783663198596245271471795659747988674764381341886485112249652132762683433567384347643374645467853386553157598318361237128528162231242248526182846164524292315911313755675241864643344536421325277799497636669435322645433851464182213687653955831728627576356478655865683739448733162134984837154661439285336756584382356816781897896684428596561734494326132722395434523935245144311711333919196235417683311431634827411378486226385371835231111241357921458152614293585217646882631361233145171717727684724127759197368944922453923825555979249495725732247536123211249375135651799517329765479242339414948714478413243263843432745392437512694873782584674977816476783192432695325615112811825658561576212715611948118785188635959867825984571343683512416698719493778578625459683438473214686126246636449125243132191597649293114539547126422513827314287251598882937477794313729766872589893893628955726112742645576397253641819938645942289324221179937352697143755842828371628441357995847185349826992256382373665989116186976569378575434185835313421287117353352341957626487814827599271469179311449192631949442221713257624633871886675592926561934536424812786961156444518458769778121574391423593437943397267237839371169111444872999971748958452866475752143474942183564729298674117536936484862374256332571834567396987275673744927156829432235516432354772139916267684681164488556571653225115361854956711915862429422722572132973699972642616811912479449427423956861576446252542252971399927712276163548811812571416263218291396968546468256111933356951778158586313153158112322986628527342935358299766373933688317319314526561491966266335937446986817221149371122448298312845119825321446192233411451186376452918389195128328389536229587913739132233851251956163599889172315649854246128573494477183551722994331339682884676352716521851444726279571592232333573141481796163517582221371621227649667595448232454582526177273212654228553571221384847344331992319162731845482542245358914183642989182665785218478464843635258872631392253923173791346552618932984835326251371542961943711759212312762312514768889684914417547212856138915922724562743619763297625279182892219795436914769264411128387439911692922365928176535973633254771533714345541213841857173619337712571553298132643891318865748914342678259729338527494772512681881584191494558112338958645122927233524333432428733298121944819624328133144493171415919296221397328135112279583289492315797789448555133938156323297824743571884325195313776121717852163649563186231375892417672661117836538323774887312187189656143253633227797349623956971851876443423713532694981624752317634219459756379669311154141911614859764342419682132299585487524537937186237517358764447487457846414492319319956319647193814699841348321854138711988623874764147549794324476153423133829369558864375295662612444462966797685997242318143881358947691718971755226658742254467433261733565235274546489933192955942282991855233753575367823513923285937446385897859522341338475466234289262792458643391641854583628613692122464937368276648599123959125846374444892127596826436989341173615321234965778793318587245897346361629557761943865572246253692414366919715821561213774889355514437688891884164872813243324686551357452999241989124936318643433931716678477363681576724924241353141618671871585173614164247345515638245525944632918942462288498552295968135515133362161675244273919241774124582655239658133859551927683199557917821126489148377491185991375553717825765558997411972811193536784634477353867816318473394357654429572783311512127167272491834792375179963727135192847521543251111652457312759999923283442393425369585863217339826591112942415613829651969872712457828726492744753261424953942525365624336434495886154884984845632633177368718972353621184295219832263827155316421347922575846374665517333138762494129927111912273214657649727892848497542781289863871666165258421273787295689583694231617563918843126796134434684645814371223881972645277552171192454711124565544171171648916741714498939823655461496856411247146943731127164763395443531116513416877758226179842269818655968345814576564754328464498142225271279327947319297442381152147351819456263888987691224225897744217288227932478494939121835755648544295424654855265668374447971642714976437528189485698499291699262221256762219552676543847893444621919189359436337231493618859978321548242172399455988423646559121153988669683568369883157135773338114153582798136979183762923731531391144124667785929292453397524194938696336243396742651962727197135616135739157149293938613653899689176658812218378385494624113787149586741489517712928639217719551881886658345942771617696649469146133198991833735916511692434131674123237281427649693461982342545892553212529979665859379914498132585722319678427328916154274754923543658535333265619865823433741734363496966572162167354133765272244185493523582135633289286816312186441553573318857137932121772495434945388824285599737511448432676121114156981678164422148213397565941561328462224423526935862344214426378383693761578922144578654943862713697417474981594158498343216674949173466115893765318469134775232812329981232321532948938429377649561634517693781572876793358183541288827512454218468449386982636151462249844986369111181646527583995984611924839842977414489669919369734497355427125642591759237998677671387678254694376548471747792423459456629226225682398997545758562128671595656372214886929882164875395237579638776241968734366388185926492949693652349545221486636576466351769179468947319793119222543389719617969685939888643996911963233616571879375766484381313167148961159335596255767157122894113918253997975145226239661884525295286696582174857694754249862728366568333121355729521321482116933171892236865445518951298799289218256448777173127463837694565523163538341217162333357538277153487674828628375642693952195266121159439442725679281429499596754437913293415937325199428361971355357473476717188255684671371569861251655793158513841167445524459225829513656426944435991661368758883497237125277184893182227432169651457771964516659392561536592382349855434454418513213536378421254225222826348361163823757875229415293357977434874932115117875931227177682612914217777223926566516814399486665988582841171432211928157422879625659769389899842322611539155974617782576136814731118462436152677915179351825746945836726699398651332888519761126166599627797544777574937524936516642397392674415223397869756293555978669319697517326132662174653719396929719634571577957827446494353271659699128883945393632765341424551854211661289792292845837986953734354184333227244691337337711628474865635751732673599834238146351297388135891727821712992827883911156918411347657542712567692753849928896327416123414768833587766512131277164451573372628871742836416329371885421218128421789139495751294569562439512576648147617741757285235622956846572756815161127935898636169112878647568341514113746773126367624969241192317714383952412323111319886425422181311498225448642537652623119128393459951512876851866477423585219895431332946935195517733843471731462777776551344458379813372556418762274399623663376448851347493397127253818336127532773437964735257287374339656345299166152991538971744761927146484131515991732761229132285532621252537894966338629183947622162717442165462979964653891748312831495543356796699397499998342686868814381583138523674926576822635985811283755522533495321887718483392496224556644887861272367861341244586739554526622953671566517188143274677712151322849434771113384599167732141119862652133493726516463644566428598129595524341482894924113355912292653273538685648416426513658251342982423144899637333863321289215518781684129928987413424513923817247134929914521382255848817482771352268645227459823333626181814941135552968458815821694486826756938317261916845779691336455218992988765515499134321663912665123843627625252933316247697578859434998696381139367658177134576341326399624685461297865511348919712344521414726173998924581524729544616973564871421796986196558967173135795183851622654714395526541245788726773361298676893934864543415364494921262654535881577618572523582246886855232667331478549979891176461241444534242531999147122314982149181498323816591529485843827253588235462163149342941898472475178541351174294149156835844855329648255811931737297317543117351431129638325383261963534365279271932659433239265227357375692545251747372551817855441821353566474882225173966555946184477423272477969366383994139228282454857566126491772838933371313215357375128418184275929612562711983332864468533213853486911183296944126393141446322127627669534642223311858965447315749879849191923218311173731996216439457399719792324294633561522744447681865738412167754533134647762486439264845266935651271764291187311839445429918124347779925822354386264523969152461667688994615483824459758366484913863585329853799454558158649191481499754555512923176634552749713344126341166571445281793954441847144517113191859541373443883385126441252623841526731236295359645558138265216574614695626534369376543342464828981393924373383173471359819952847129577366344643835631515349421143511271215734164591192669415979544434155745563926253816145566837422294475391781358732673514582819363451321989953729245393451263714898421988651298136232864924992132178488242951847287171376417742242118588764551495815473238571578266159323599698629995729425817561472553319648342161261847411151964113475217742888214583944328972442542458469123782894639776764221283557798489786246728818494845979898622319341111438674554373543615974233925195332238215283224233384338584616693152852249454671278214264425727612136159744675825763573927881693371391815971211367614762215154943617719938552212246111392942998352347599429482675587232591184814125631441147225391795187359232624818268492271347619166734288863622451891262478739821832177268912964976474494556741942922526355948736443828221717475746651147338987283248288151659834783925738685331923499998584156852299377837552361549933516528382661943743235342131538261376645393141161829469248445988221454232567111389827212829398862637741669962343328627993238155274644747268862318466174576342799835683412167758933785428957484376632293726525758336268388127334498938324222747863899239612957536862926884742877985663194833287871958172922292247253275393399982945818837449668168252895354212242674456753954132311283219282634933768199262245443395175375348557396851264435362154836776536784472613427397196274223128262165916155928653417632757757579727466923445464366796556147524183661924217132782942165248812424871466461374838534875328883238663362247116868936741292546526921312991123445549377445587138872321462889831347469382188414768553223731315976764893495758731657695611363634231193791278197449929756991123944126554462731351976525265782512867553686993376917118319891379968413592534372835781687742654346431686185194434866724526363483778397132519442112958659616848145353154257682297624937617221139121276748431768362455428747349278137719216698121446964764275967699686819328722195139656747496585884435469161653454168233829941516158258171227987617677662852253823423493514781521985115147687882517117421193928773449654427582155912221777822116216435576995818184491259613423423377215633853654885799496692893112195264428761284426169725381561521517145151379578746566281316165215248931294452737888365851343771975581621593546666527261163659282952157813618484123922133213455123962724783911934123721876836373625325483297639641338145786631732244953353432659831448968351992524281442468248313192586133663166283225884566462438562339445688525916386133887138978951737649279331855631449644694962673296278249429637235696476114984997146929216537189837739325913143245783776626222316479784421951858773465986329932452245433933819227138652749495873792481375832211118867919247535247788618527258954536249463743929142436618541962798948842765959967222183366214476237293536544268621627217163519772587237421359371265438517649363955961355275364456219295187554848129443339494122853314769231482918721823431445735324465773524577473144244982289253685966645115681136584187351969635438615654347437991119332858183728899124973924678793597625183291782257172194824363983313336632368497187695146768283411865931122223278422324331899961914724738217451566597481326249771929733576892489176866717137336344275757666941358236176272646147526396183551787233652945246241115922424198145266132413351365522747394574894482161832736358275613385858695697559175224795472599481713598418431419286619744886431115621113451288825134963579444211212171925528465224359834216423992145128287565667141781278923318873612485862984165842444172995285984142558337251652433995381269619366474577787247842825535466117524591812123846324832892879122299584139113139255275175584747124678519297787885942987457813389524979517821625863466867221614728443235957612365163214699648558329943546143236963312711937415426741773857389826669614157414144533975258658217832777955131227779462281912513374243254165347721322178268916524437779462981614179673779239823793355929652573224162835851121581123514144968456837681122157546313988471754389537884336433521865738261276313398297531728435973177613664988988317965418137359584327779423824752718253667434589922841184164673115246995918939259926749479915534828638891493279716466476442569934984456211521625812947954878486337296484678185254946373737686527334262686253378596154888993572182311475531352227764323163564126989129765462694674192754751446162139323465997219297824335662357457837932598157738679313233418385889921666995482635915688726379365762596117946298368779614122133217495134635548584626657518347156339723719923113358328214777291771745763859854171958986849194756733271478845289923593578495435566335447484593999827733265844122272137297866563443497596631956573447924561832852561652842833912652795745815765476589964544622259494585416771635196343337486393673317233632574521953248731315326722914569336452341398142991424491316937356213894315867392682725846313528852955449634514346528948916353414681842614531253711572728155565386588136358699952543625196868221129272648344724173521172927743289391157322932739512576725128692476487381912853324947177292966791556394219286625699537481359135427917182747169918646556517546349933736318915393124522952384342941849341183426372782494513299258911313381157677231553111913699315975333564835433718481628255449686729725325717648374159147847297633299498948299953646314754276851873828599734876943873388379293113537413549133434219488764537165626154721669218233619699265941963826584394129367417965977563723122637865781844664847782176724787392393715634811181165935972372279536444536231733899846711927125535469538134613532454864731152149717748124183475693213836528124884365459463198785623597816524835353293247294672676772441553761718122743156919722541114126726358549429154891921392621346779123442714545699987474386135548672439553279248816367583221848626946434495666685547399984689387366587279954419697642321286358582394373135291975283297652779992315496337245695624253382471243581939629842221841314734757992746625174632311232169298394513231286416944674977498515697241326852564773922366787323168162331453699824253336319196688428746746326288236211572341891565544218978267172569218981473351865592417351515159421237433562411536716768831569851319735774994273933868998864265343311448838539228615186963434525426556186316174974869677314476284198222346538943284916671246945755812539483216955524673912316857979448658313855595424592527451347764268891294966162694816116347687836593947143435388149432499321682164143138417916447318946213243997927735642773553254138332794389267545549937385449478425828356263579531371185749373379434728633381851356444257916791619922721328114452987751758427313844993856142638788755848823458418672337142975331668482965924237327772587428146921589949167729462995391563779184921954861815944782264138692413642815935158836279363224337491832289217471259425813725767218374314491747541236731993332817621113441538995693253541448952333552555456521345732143657129638136743362854978669543564228183151868241119416214381749973746151221186452573463483544358885715552879448357155677323443422877732118379239522839525426469664272417898823345337286711141869234118277777171551678237295288945517515494781827833913365471941827283568264988919848156731357773111329127347459447488486743433873713218815334521797533169871436134173258866656349794715993433412693793787338716521252151282873868753173442823296965155216919364486614419543922349798887737342196969533694912364475174342461324731877616586827757974436893345267631241796361268631992583687113489871566969868771328435789388643442599919913691187983345591262129255617514569254179536961773737117261638254543822846948683562839775217977669649364364538825565348214991986129983947429611586124587184251781172397237262372231696329812115513465936974791195552571812321471284254353795278893774453491257116111376471384369565712463211116191644537833489312434869362558667321263294274711383588642892574399718916314117641124872825562755175297918289247627625824823123479585113471844477898945448931197462826853785826429247935375532136235857828918791721481935496174214498553297949849254938832565346242196694361191337656262267717754452229798357597113344718134517826512561536456942897989244568651718454278136673193913592763799254925682916631968269441898143842366229827341124342644412253275486254363667727837872371751644687268141791863588958486795143837626538515822545168623374538398657593129254184745912189543792567813941226125841537928388526587462233367829833362711617558128897273834864267734261565858331961294891521295417834528223638851343634225616784716128541257418451337782538573564551191267888927275277752325194286783873561711227278318414841812433667729943257671929658963955258688813321976297767872159396537397733861313936196226351755355746135612739871349415382121359516118321557927683332571846235116976695522253691428853814729619831142577518742841922227757254456123191528647132763386955959549594862825439592178411338242616365788542699221422661127421682554714765671433913924936386113711538926475575868945833481221628187876139351755117282724172744189254185699363948492471418522725915928646496241155813883323517795576629333962686443184437775699942633715953611569372293332231942533943794715844458163692136634134222145935214368524331611848633989911232646792462874566547388927847934529353213124516651568472444733414966989322624275129559198524651283717471164663119341162678574117617427516557711126856468479363176136985485927938233289528692826797931127655955193527833313674458213657656182591864395393862691177259835548553677568841861159322183389866561695767335518544932128723582942938296824395399712471142429888196262335241945637521754236215672153552171498426183978267665288235437572212148877928769595811117678952781759363713858641885878229984328283358418338995631423753866952318366954666478181619677822265647343112488473828737297852597547766395798894295887481527747541219125574739467946996882924664818275681716118114161263222167781642287351629188274343628885971578272523939251428727969196529621527877779381692313798125544377732813995733573251946816137518149693984321528316996835287221473743824927177172118268555245132182629916996611175529587583973753261964498742686823769923644899916321785143499143281147886461332821947914116122361154447344741821185728767122741663752171492914214582711252287981367589919458281563736791216524442791974323245132512252389439781225973526619557536512639364283487819995157116299328914368342996651864651187934251842353167574242249531552182638915285114797751975423375557622252235334342846611395452118243872737149766776282722291326537781956854586817489577913263115994489871223982542312443589114841666682644267244611893476176145145728146999113267164131758182883656746883259723416931131544654161125238396318275867231272649133359134527291382513647662237353112456632181313167326738846669233325936795941618688616744422819636866794332355735722242375437551334269672737872322136711635744127757454677452263366143498492425249513166994885762435246565139653592725625152845259282475539874375966532915694868284232585893861111596862626326382232236631995129481297431631794396637999412554314849265221851543591268656649998789978741428292814419169526195958454766274687787557117644395428163485521234723814135968867622699175989154666499998176285882855255146458638522891133896257384374488176685791466352747281228167834677853983755681833489461245343819191337445541596253313435581732552234378272165831328635299967813876128161745932763425272636633541279284527726627635595552248273833571913662541319985588975398745266833185616158552215812148342578219637651382756422833439575357486379726914295376594712113133563316127492684269564565824568276224343441464766448144594269313726642691939356342765858254482339369957711177151818685523764843771435577917385413338977762555991298185948815521626617746713152114559254315668253863813315916172263669933391346638151216577277267628798672552228327532148227134934341681492395538584924849337611412556732897658394448586465758786286332454945673447438213596424615924259656216663419382237654424313825683684623514817937931778381139239892936924158326273257946971649765437163574635415438267244356873471595512557961111489912254925231112972733529288577427193664149272286854699925341237333524461696855939767675134361344839446115236233442782147788342247966265469916258148916214215813617888795615257111541168221436153918117493443389382212254682538453453173174183337638268177264928249627526372192737793984984515239228117879447618488382212345525949988629642961229971812667284851277629632498413914662255662159261189344258686435278464147746218262462699183935271631691637121429475646385464762443315768594987916428957221657445916796236843229839915728552186919767697779976469429711749343462258842681332871511672911997716425185437115574262699424969768629835641291954366646847176741989552177873526988448727717669236431697526112846383586366978948592414813132282519662778549385449622598458592491827562362566159318769976657948621484424183935165258435699823319454199522764751311536832264392612777574894241661139669757629519985234887396784824944162176998191889918123588545518211894991351789727468655586429555777848441959694645863371557824543476951322183358286125875451884772535464624427573756449534132141953285522695774465146693864799551215564489794274122662188167742277378772174232576278141956139142755341456535877199125964893316169665739543216493591127829827698595233945215386429428494131378488661161719234421131329173313235873128781778256249555485635144225964541364618769653563948956316599333853322463217919769173112411234936928993826992772339575245489411993835174219177914778984447418693158269794944314595596148146953536496922174338289268176827863951713476498679131647725834117968719291962124149925278322524681364173978184289419193138827931273174613378141993719591292661121774385159197123414225122393473628769976597751967461918699789831122811389226342612447938918957363142292257693839983921236947365271111238459576912112555516963433626648116562447876161211611727773347154341315354872243296316221313483114946353771672921813119124567226462747493256257466385391721853923156299781885151695121291232413831884399898764973728374675638561526137563364999128614563421593484588943625565451461772229273926566919293272114383836147622928998259598674585686672197968142634712914776471162438379815135837533756685363845879212746188211239497895726318431456848888723746468512661936389959762349945752514293891937455613328366332428241322863787951252412789742433163474655658143798127326322416886764969962993187958586691231152599465123117771284376944995457664731197536488548445522184589185816246418368436312733443962818777522826759432125429324957316282527967842167346113631664585164261641716581527699311445996888916994313421684772283548561485397921231489561685219439428623391755958599161649742779446892193753365494138813922419715652562243717389733443327815493488147961955166624563789379377157295531217316649384124924877368581575262452366681435535328455582265233742219684587112489336615425159763898248375579794699827785799659895271214348457524614892252887924853982289882825864571263126888266187793869774214791745689294468119298399446233561423948297734411677752966772151589251482136695734233533284764858849552638278781335127872865454517331259891513166245323984712551679378145963321374271646518938477857848614235146861347357523389847436164685223791678357457755118457367571245934241793327767411689594247625545763373831425122659941319699412537884929711928156984675446852311267137891963865784857749241115325711767864432412195784824126796461567144531121346547594494758594863511523444278861746381482422671378752379337147633125556624618926416122844673247261624157232162999656289433372476325427165381867793899915778988197522428432599694913313181279516234372613419486426335839292361376822155615124458251841667988553541889242997896322585131391886334848294371152854643166727229216732777328974217438553774155736523953254418663783713712392168491949548578293766824695219383223345258892582611164913782753673385719737531112312926781181587755489194929526928549348551434526314688268275234383731966226145223532592253121915221127524856131662537783197785332848781161449624247217713611552858841979373596134316892147131192624462325956678416888174954588626383188215934934145151533326144368812136426419118354816421272552455365939142639313212871388719474257181638917854353489763335616584329931298649224289135722418119282172555374228994344664162691291483184868229625354843734291829657839989145756729585412591186138672946485421623844221724961716154221625393375768345414524833537694229579543117911859569251326762839388591269656319836673775654337197363231741539372247449247379931338674869391735986747454681636668624251326779545798828196386995819846459713792493866884625528154121272852694492366975755845996976828449155143382612414128613594916751692245125928428985489714625488385912512365435636825123863221121413732788123743383468228319284234746129274962765339445737717735333245469271971357341516144932365136329244799724239724661652393997668729171261282587942146911745768292968733764431455233529961414162872524711887332113354685122858111295682747154656728945125982392724325811285843164353972498678229249375159729413286886863684355622414984754267163421628231376426573116869923163251326129381418526881347447498377145398813976782666693776565931689136354182554896947143432557769197763136193365226951335981261343562712361724227265385413138374117216274857692664171469224414987681211357426119748471292752448957239615894687444351874653361118372712772338612873236156525921298775549773666842965376832223675226687829734912873234635841369261517974913464352637383549845857116628741686853897349248813224334143937999218111122282111451617286644936572391891956862372576436165724322728835746277244168789221241316318583184154126318655531729495623977378164476352152453444462119184699677894921751896672646669622148311285457697145646219659933349131693671446571438714458263542472527979558648422711343572564578849583917495266152975521612794817448238388141422687662112112384653148132518971993591228515585132637153719137141789111713177413352222312812114927258161657854896634147412944143353472772643698362174297791945521583273445281375213434499853946326174914721159144411872475742171739599892511788457921857383929783428589122734455312857435798595512265937846157319144357166588697154218664324237761326415456326712287833459293783642844979862385227418413942559616693785698123163822215954572183171323783827653336988648234792152162748925741587669943921191637381196372796833623373779612484984385264371221718772424464275877233443621744124469568941356124677429381397349263952536926284177332652791488262237696165328178271275718956189271424418151393832664636892748782171392585151163965463461845463198125431546557873224382728368324534977629315475633296499845579364232688758376375948392375922978216782433519736249216928235366462492674119361224426422365183721131955383234366639659738679812271251719749145479284689174683577363411838112962323477233653518745516562458676732821124952594121331364457273542534864992938941166769149746272222851249274967545624351538412416723399158114789222956284462732717626321534867937436872367499384452154547924562561113231172654292534286589113398891981794782439586716568857328859436175297916244675561364369469325183168928135261898531559912992538253351519562568288777816368255877172748979661873361331619842523956569816137953377913329381312662796717386319393631597689244713651159726529666119657931585167634272943815397578889539282582731641245844296826824812341399418192553714943371195132973667525239285542829679817883186196523442215792674297322651869518855246592497618231734863177831629893762416918458294125934645611681591415735627246348842822695371615513993667916166619694475714136193884533242642331272928439437442889249631942587532463711852625891543766753566838261817334732624751131813654984283276473393311288168461428149738151367463779849356571337926943189339186667128315633455545332146135325834733377196586517781145514163192945257287176584393696246362985181435566311362415554842346122934782319422443436789982316153828361237763768522462464158828636452566648499648596337666776482846679334197146538958415346752512121184357472389234788817367211545498952618216364877928576451211537626658492154253939597412678261949535571295338597573733237475782165123785219466229219635669477711464211814835285454215637556765857176175435223729876266424243982777516863675793785627447264143364878275214723626749336885257152287392548959186447379989567256898359374868777191334233296898661676491166849415712219368581324962377967294879139858656659843549842433342891353988712838451188847553591678954233738711221595435646385771774815485392887327542229227465666151613329433371656395538186246477526295355194775881998783849588918777868839775821269811365198129834662274777827943717391669132271552173652432811976974711284443854375174964933349267764355785227728576311912813932237575342348187112265991321135248569198778128664988932925771289945522671462362415286211891385141419792797712511121226977246376762698526996918634242924968326166784586741876459268272241195461737342312749329931593891792651146957752692173414117724459547684367636257393655977575245465196957388842265838851123492111734211411688813268184283138711995268145815834746447121694194337495294961165669831127935316929913657254742215579849886575614665372872818969821424169626191124378685885677116943918284423385257191425497538948629192332433876523487438625528271196461641994915632243413814266576684632368728294989821753245282354981613872137855379773444689263321397568324753689286142957425461129227442517324615719175789992813289887932977421627986369633253393417957685974459965779366764327146413836666226996681969752435619313695142541798819824761188567636868433694428578132579373291821737313734834995547183643299982393532734683555921542849691588715271295277279115772664391626675275169875817591141529321896928362878719952416927542586712562376416532731534883167764969299935443852299576272222149571633482761757366991439283317444631497194783179238413771128712649959944731743782396346716769541593133132215998792828499952678121317357435458926882274573485563724691291696396169425832447417566772389995198311216482997853956893852571384818699723752365793137694975996396397878712119424166836125187151251942795591581568639291539522453756553958868238155937577415692682222294312897529659954356638782443638982642419238153667815315118542631433749232257936478674268433928197273472152616122439282945795154311886533236538468758646757493884613898414788865271143247583739961231599321269235716379651214571899221346767459821957311718229383431133854245852249861266224861285363113532717277985365268538196115999293956273847442352838197974626394786856592616728781655432113384745415775869718221123443988325387863468942311736573196964419224742262573716534168257731935913211654776328447488989872296392947232425394488129122844962378976136741366973626529167346193219371487492932362815188688543246338239614314328445437333381261341522518833116735148599469845119183777256678211574924485924214136895899893231982613131159397189923261965944113737958299156725696962664571645992343817278178862275197339677457661612418311622619343434268452294483118432622356294378433453473268162687741311131427343468813232422551621755775146592226124264919896152733695184631398775862346152782193884195528485219799162857287774221829233759437388943221248522874161649283137369774245112316472434546638269112867754262418658683475663794389134478251243496733264114352683416354629753674271767494323381884414733526319129111242881843871761261716423925338641847957357928191752474461145442859683864913364896311171574455516793487431859297473635166892325365788761597713526944363318133224316123381611445751311344616791976287218436781184552413811944927759552797429673966937721299681289219983444381926185273151728843522169717413691132437863558688838823716148441597531319364177912395741499683764185539146261852678974888596745588215691963955862322681116143355586754577653462114713474252882553317263522655973765364849229572951941255426127464192294367471487151375747996631373574843579342235681694918262225857973968643781692589154923933657694576429526339293688292873957386646256165414299683641742746118383579427799398767317146673175264793981753917759298577656412145534977699423633588669611522191339724857547519195953842224998472383838238252159965394837265449388899462612147239415176754617271883152839737518552332285657596824134851975115837776212562791753182275985273694417265696141331123372841151815621583228495841371821931687483818619547615753311754236543738778559614157151573167898177386555337267947588624121145744559649729771146221281266116818656391473653812338343951941525868322186254987383969241586563423771534243879694118355477343823596894195843225577432192769345356635652551196665514158848969942513668144468142676167275164721413484262817774144613676657717654153915271926592394255999719259253431374385333873935335783998161619263387451431661425743645114397198832621765393816893415449622219666422629332137119989499937661392853459882164419557659978941972864284793695161313953772561539534245646672613338641282174375635229758135969159133285827936534656447389972548621116375158238529288341286962996787595475422415672911416491616366775511735213779763939456155689239373327525253339269188976471621256447689393555862613979394769734553218441588572618832413914827146358928575254159191417964496914729797481414379377615154175237114749938461135264136132991722149116876225345963829896153359838936176886511973124481894218594523259475187569644715851733151219493344888264165672911441231445253961186472782542522928244291597441538228553545333115527343192521367569283321112638844817471798779185825574431484462274259379269453672654239352413871535277265451698931328681832933312294356838749894281897784542612199912588981636162545373213277988476186914617116843821956227723439544762618343696299631361392423833384248736779328197421869158161977567322566357341575276348966724772457271471238764496348816761918591738622743831216125251444576481811482646371541265739866835668271485666885825951915862985475547974432454376724175753556716426841438258876361522488983781835564443514786362712977195454213221848175858988697368615486776279255724688891482125351561597154593866684463297157339597591883755658915245783221341863243354337115247748883121489493283599916737916225657982134439414666843355111195664915337732997186555819584333712524389443552929285963437418112377856157468181227148896854883472492317566926658617679347641929192311764671327424135185479552472388132275879484159148337788162469214716371999332861166986221198831884968288377733847123515821854224669815391699834129222761183248839485264381277514683193341296243178916912117993351543749134728884144613938234332689922412391754756625426643258363172323553991198381123384524631357923335275415338599473314728855984629427989747811771352476434984194778563436239865198228895753235839929526539763576661921728593556829582318526669883297517644141632321288287911595328289942179636262214167583432686169119181219948129596276936441571766861191162974894372332415933784878244617999711659784237156286741115794751215899961784777157225499149282635622919388651833546922825473741328429151319264117562878983194929215324273433142777183693773911634755821992922124123864698569271227447747195611168239218213565133224899169796377968873214448492243152432691419374118788249331288764754152431933492534589182716366925784268856494592399449167485916578392614858315127271118493311173392439219154725921998481212557343995421215551126725782642925935289145423752875879386911649122553956446351384715211432365817627175281464322492897242268943214743121785491637466367749953967244168234911987652991855399733712192924583213744953938212156515177748218131383967429296447847789578113146273979341999963863292534969785962422463667272417332292637785367528577516938431135611336837748358853543567735172653274528179735161432395798537296576261175462782946914526329294231197595119384851372416945635263785997592161863413763127939537311878869885537966315947273356833291878195854565676618316443447922874417257758298354448312269161723139599259372261399572432286129797242628232747782257392838296262674297127869161456271488228176844813261969792184924157321295445475292276839396844221357973947873537452518691792381955112334184563995452534995836994364438991756314799634713424334651997561644996857986236324195616277733417964983792498593428487466217251511938363321793483977349655176386759424994334331741732355973146125521466175257464219555326872524849919845546714638761586321927552272847181541228472743569448612225369811575413579592942397847494656223831166438391232587675292665392574718332287983752288731437539513341339617146474899414343677124382992435374928227843687651824599934355314967743281412845519993927148522279151554834133116791924372791784778396935531278777853163354812177685658657723195119634682585516331932494222631725851179314754615235862374641371531877636572322865674614432335846421521543674973563489612226945434958248525283862661815126173193633566166952656254459235426148859721791599496587524775111744368733662267466317668824393373196514558944638456661132636387431251932738651332332284427317877554496353383331221893881216977633463829733612167234372724328258718734153341623684974959231457557842499821219373438786399533486794291649451358322921796679934775152678246298174979244675775735655649132754589539743316922411217758799895977323715961295334619831416192364628451465429542347992591675513427347467292898463249163639179623793996947991976291294929819394321627836791213132399462291642235833651741294727163854531131912716552349955743734234557124625575388238687764724282521449826323671217631223188564798345178582979359691381831857732231146967171694511754373878986235136418423931716142796454572852751655639875786798533234677689728111692866435539622654872325813676448864266111556865536397575519315749788455119172262245915631453383332135213941281993847438427842553419577713334345339896663995345198785832718595322589192144742253938741526372177954862462752634431944653866634513342682798749542962155335649834954137996182237848496314494796734845568149812936869528641772289319791614143115991423547631841435633294815282149945453619412539977112159174582323584485628755956119943554614189954119356294231676231624344712314632668646168495436391133437592415747237768826386426156469312167965198637952288971635253316474445497622621236716894189365251181545484826869735172892215548875468532825218347344299622618862761227232133953952614496594141531352474427645194581821123594572742567461629771817738416614217454628539158743929214139343223487994187543815658825951542318433426785947828232558727936242937179177295864813574414728752398293945729371529843674951374944481532492567648771945382321128435731699792429538253572863821833584859238962719341273945317282987895545563772177629824727769622123253268736454732943416244193894254289169542562518736994245985619693699183894618284712545144679992113671124466213557786781971395792312786994188625342773396742129486881831481393894456193184134634747146342389236762224212832286461323768214711572396465725132962747381366779332395929292315368179939418984159652231524527814973773578172291385862557857165283185734942649163581629465355459361673774557151848654967174873213291228353323427321596943912677232361123399654834626297483123283111346875524728228311592714818467358556584327769218623661442357498559173291892911567262361263771351659458724793433744234762121219413629393828265658436854674741356387193674135825194113577442659473285968346886498845212656738888697946366339618489758658613578496784319815238319267386984787199216423496581113887952622339261646192358972648276656745327388449398181329949546393858385273384883479622356619293162781526286994117568297374687425569635532681785173262726156682116878515653463828296962264634753813827882565117339233946461484222533261314175316633564422435364921498379626315355441385251764565559341272375123531116315283748356321296572799427892111429247646119179357372462834523255361991962669242144355978977555366724588177224137247351122923436217243813154913296826147757853548229391134924438131399467489384547121399513552847497959233274145979173438388499191619252753486384989389353755182185594836638136927993821379177461272749838246465725487999452251432627652296939414188885574482693635284289465195123668623396685134767421184663551153524161783731117828767774522341631449657526221781844482298179222194188692157215273471222352277187722589868685184922388362627522256418646462965952618267946242747843248314993514724664588423278162539558341717476754415714465362676838644321191555199438381251434675484634591793588637113288724262341222616922351798191213723568631363892718627111211967136162678135433161828674395515852872984311947118155135151287195127572741477756556323165293785148675696549782827349453422971539285256179894147557199444184771158256629473178179845478963956137377987496248295336676921922956254442222392182339761624898281265353698468417485345256323751123981672517413166193173579385385231281722294393171435631434468589599659446989815484982151822116642163652715584718517525666647271467185626483199445957353985791176158646175768146752331751938256855714371311373339526357522849664559927224268992296797327344545946813465718729594369887828357228128945511136161231172137852476184712571383364674751377196351317958996296341238939652589611249663473234763381443482561653341759625334461337325778319135185661758367653224399952227153219145681937813631147869357655536328727926325734377874373753582231911927791494672458334356123564573948375545753454657169724728739997678581384786199718213535422947448174583884581388322622914261239233784248522714736785537334825652361658935942387278927394474812222691552223673856586286178811767672261832614581962444339138754381587524922645362979574273746616612438856116371649856656365742652762785962817536999268721994134185654743728274428223177339442283858235835837312563516215232774847878495283321697287734326413321495728414695968816293164484185678223893714337269477838662194513537547439839159721728382277535481271885793157754636824865457576598224451884931851155121646765169964124415917726643826843383899788724817497463126171571481631153915146124748518442743836818948661473988699645644852474126936915863213437627263421448663776591379319488352426337792159722384544649218197717879447353433793117579469293287966466741212992996637227465155288425951559948324783135771944415534754961523755425617916265493795136539652779141626225868765861955163684746941718916676335836562668825926926595353961217584228498582759843662478829197747924285182542354132919892716728285522743832582426843481159564648877861744948359146356962776717444894554457982266281534899243745293254749654551318831532362374395134863694679337298415656771136417796231435162529438556299654713966877753531754393265398336318964565468562395167327748976199653953342915841262268136223247719356146756495223653924155758226291783596552989314973966964665776629155653739682134689544723248252384899466247567955473435131378212136873761797369545827563575145341793392148757374777739855116812695414145518727177142214124722997419164775764352367171989992726558199337544961282837874431173246246681523568339624557843732351124653512354952561321749267622443528645777769774941219777316576734583244853219591285616684818216898428444341787852414134389758191386462347949589937729428495683413575381222468539119213251138368449199331268381526335823593565959861619321764818389522436263455586593229584246167438838144133648985458931355116824612272846342973383137858991113949644563849753183362124223426856433151581346395927114418164555784337239861785797989593661976168666735191254971339577142885857896652282164232249612381683524325181165124331571811861692154327845828657872866435629994113584869871691776969623555974843478968384515773263775691577774848242911539648238242251129662549849937188342931673191968734427979755912592594237233889684679667572673245346419719843937689439539691511819138722275678827261297418332234511517754871389181246345455124677317345971584511345383521982983121454351837489612832467284559156917273368574834259711886671952448337449945321646272891472622429696822211351175486971859214978311374591917777146621893199732914998646256769315196243853676231961631582726332196193463787767725717152232879895236952324946321962734814178295591287233913688787989591313674933972212598154389325245328472558481796832145349636425633114823548513975375917969422467455139356769116469953722289274863464465211261785824197118235948468547242812222884882438572722151276239838265979116819185161747723786467833543559193121553521966685272861142614935171789318479138915441172372753559988492845164451864993235652618361876561571916299699322234569264492465226799113792189256552362834566857954332762782566239347969711862156797824646426883154139414446845268783755797852833511823494477785454731621358822827711359498328448867458312166782974177321549364333614671536432813489114376283114629394917263789234146632683311621115147264423172747472332592231342454177589468137342199386788665413177643164751432998283916692152458196318612621841774265117477541764251894616855532929641591993818135356261939769612457183336755161772376216699915658277324921535694959514269417219221955532485536385841191827556698372455278331263476282773386456635865542569499239649267721179282764764666994212827234783251344764291542772721142595114211299187162776869495968244752127571846715518223897232723468218426613593112916945568413899124588535173269738275337931241633151435863622719169324377483481522753698688519812296578535931236694145743239563492221524595524151864831936872287227515936872872713154968952751638662469162887554487954281738263165349924135976954341967564311131796938743253232536155379529221751833517132854816197352649452759358644213827492317187537569434579688487573833213538651941876757488633314253696692172441974692245742933727457632828145664412128475313541517583159156116887866196434533246872648638153624726324251517878124496739915258222321571994511818594317356277694658418613876834835464113974981776329313915459925191215761421582914459885334191232899254154244653675122457372642513617169196375467258977266859254374259842194916356829567761585997162164114562188199655892198466915547871249166264521767416812187284165721853534465125134748247329168326792148553444463774255999862217424441665512279784842316631785116314356955199975296656754762869951281239567938543161841171553637717675632858778766874192833421492116598547823451297416123149612378884165893131539827232277361747749651132717326166636777562616651424339516428857542599762461596536229564621154768281977686789334935486684974718829816499935672693313595131688239977344518854162262863228291623542912627555392234253869387581914859121758442442219769911336993325493571668967253445798676288287548574187565881111363836917122784117578885443247813471835352764529951123147488482793544895964188767418414443341459632782156526917362556244317288966138166932218718573221387818141932553376329273247374991682933929791555525646841235513933653455783674119826357796975126847684775462441312115315275854879968185475472948127183881852978229533267843823965252547235221393637357724419294217281372211182849185779133769746524442956656268656574465942815822413487646473159792147259395317895334635496239561386581873852715396368285746889728716498254871232814862367941323719794111992675533871343432355557893212851199333894854184945921248776327715452719626179436642321145956519225856342932488847796851124927676925199435588825228491478257437118178915998192192758736423583221654537642655371186673699676797865163388524292792117758258625344271444994289626412361529919147283116619343151832284697813613964463587429484591583991821665514115396211499338462719872237675676477611287943138425497145146777242888219894844233627681883232468498547318246966635828756457694766954255643414577767428528723195644119688816134751385335942593127141754317924623548276856412484324751221533286436825235758846148665857114368563162745551984433515318941542199211542653469351615378816417795876141989273126697167717448136444637396848264464585319132318666547816239249643284769422182251231155433113939995127112586729167551573588938381781335612239479477168242224939734956215262949755488683351252273469324439757927493711177228628959456282256556858541795446241762313757163233968819216742635678433627636726536877954523782439393487292692498418137578657791372378931516524537465286654235945512397648151753715234837249151457778928644294918819413375599638379139337934151312972163338161772328534162926171982918369347655744495275929611453522582451429574555364796186274263488284941211429141997245176337253896847272595855528213128721475259245899352853759918447746541899723457266244324171989215476711837916523675839119627215769432111193211966329192186884653769817625978576595455293947323745985127814281188326418123352451583791339246242253656529177882965538519238231948398625645362918725175452225325432333625847949338516111433331676939892921146327953754789193158441716229297345812944251756656851371279962699664341787758445925634345692339652219544991636756417411945442357562725693785695173457734354635183514686742429488546724268937113426889215287859621724975386448577274153453288911261184535159288979511614921364259557915642825364132136663416322388876546492544437942591894112692628592958737918521516756941436992435587878979685551759991139496498683927492367781752137277531419471854971937359828127297847521895434744719566736234752464564585438693321483156366333697617175664135726526276123192473452772437463828739454224152172667273789186444872493523754547514548475458431889996579585871429291372236335989126961225518892747436728867724342859388273733628459936422514916543484549584459774533934576883225353426654955656321659358415681629439926779872222789928794133256968482148673698934998711381432764564293958323276568717687427994525314722826932822897146546235186264189415357587349937769912766959849499791954749497795691174119537393124237223464194336927994917186571787436438878854435424241448715868313441864644517911849248443495373434475845831961693161942761195435157635557926446248417628993791359684812753569476946119199972174663338274593696911814755612842738977421918512851298523314527382315858416247635583488455286769943572974734374267773188283392692161161229829233183283123313974659923746285628914217992311639475739175998322553713794935397334924811784494657162951287379336294279911364779974949339234668915242884261634443169599996111148211831125111451311398218171882523586352417515556464896964183156947552635139915731914482263323749313469524312315571766492875698632543568441584165564454987116167594999137283442151777689221917753759842773243734365825478491222121349913874868359655528616585948729284438492673158718988943413834722837614664144163492781951615455555172262626621127199817387159837211254972525114414943848186747178457512419233376172321472656573127437922156533115216215594861384491661229437725925412162417681941942863916863168683833755493975199219224527634757239528632812992936715165357869848329163514965212591373968275218442547235772785127491673542384912849358776798938218138662566833369436814291136145751253843533129416727339274426915187535535533781613314955424927596522529993745717777111442517191922777147472326168666475379119338182126261751346331732755991262873751983538538617663434223588148151272975731788919345673684372114553979563848271727531365555228146574779563737155467119434327323747635762328218816742225948152452252692549234265511648563886175375496147981184559662743463233331433447937196852231537863997411344253244569151649181544923753324298321718831643789544511838516352963138555775881543882739625611917786973145895769627116942364819956282494532427857334695813652732627515847138374338515352392584764427319431466448623573734113363279684484174287138255162318713733566985162916153765752987265913728966581266148913577628972345236295819616179451828739493572333739844733735921222233416331455142519776872914242219975558763467779932986242722879538755183544657534172216678826629531411463987212154345913912459523613227868221145647998777566943371273341337723832923175599835318183645463357917869314469583451856963282611232826482884249472614329265725252396343926947793386783578868955499845294317445922315818419224974415861931913392637683254132992997628732999627375589967311325354568265683227959165915711846251678552267244412747989379191873816213256566935395946984376692749123599458323636553118445887255351892562799927375658464186217651488429343944769457663785297944831517532725825799615573545175521935156396324217323537935322977358917739964323866515435926463141543446867635568792241889428478767562119411583195414964828824642572431491695559542542634544699262673869328492478333366683347191115556631233641394927372237648399223553632159754599977399776773851223923243976956926564845419784371284544455223682265339444293731784868438173586986643817837111588114992956169911532189474796823271965857419881597693945543474115456239834862713927782839252814779557723948197318693434713488427914276854117598462628851545535812846656551958231565121815936566785553715431598867237716117742648921398628544666623972637958211332947145123998438877439653878935341916275565248836482663468829894864744897868646828932199456111669259479527557811636241787487966491234873949827841658563268463612561315582447392122329126569173321412443519227214214345141258831128164131889237593733396461657422578216971365416989476749146114265241831488992834229167723963336687485227152937538452165122142733924448869871812168684627471328487314613265274332922489449463573193324513928967163214631297452154933886515847965718463694897819415982554691858877468341688135262753326735555412695976999295156128231512111393821991699191435621353952362531851216119184354997458866779492774526958122675116735965997991979542858125957123126357369812223368165286422168586988271329231277137972717636731823317138795495252144846843156461292712333392513819663495963574331164979459499111334945942533879325417148121967675714184319328444365478345573937582614644378654174965466553784216482275927781746287424351426232751471834132581634479741379933676397713567697166163143976258256176664333562185833979255358732813196648964877513456511862213294649648433983237547837489596171424973293252582974671952137133588982914196272252829777924717427456348812543915851439268371586199868938977432655639398374318294457147435619181494352587891686216613236121474841231387453643272837557393445521233825676841767839398661287516112913646155355477563839786272427712295375534323287727969631162841491592143297143272546285191213419567793791185335978371361261834975672559281841155328826799115333744712379861283972312868533871388251974419391771259818814397877922894376212347166323198486441687254262849856728425958228416977732213738189876394658275631713674915294816981115858737469713652271313425326412147694849618287473213474153217295756221894382234695183213644911399536664766927925184698824834952312631139294653421462911671335944318355832287742418432835588184957273936635564558184371254298586181813438431174289463182284564317572668925667442514335328289834951241192494853191716595984369951283227361916678433387894794415844674459611923215928775453818726967738426611135272418223966112433582115481772284729173471392381288328716646239915321842169726542662833142253612954718412971939855956116656612192218263512921825137116157388896242876916685437133427227698367127141615778312359627221353563897115365693342765395367712269786497335432779915717938878626879547784361734836294925934511695794421364196716791393759319872689467987131513711148728273172977642668893488526755151334882326934249218755569211748956217611478735882872235223853286673962499988884114985631691459213646133842392643981368983494854766472918527283377932196217934368526439566355533546947447194589949182369643696568432711569916547168361277211288567618281122876396324534355612459661189826557641945471674271183645991311421322366147781831617922538262171924475112349781217972525643555547568338682929126796924556393761487416424533356384334592131165911642573827562767329893368771617639179351645575957822152242477647279221244135798698812768934712295416438372419955422926297421569393427951961886424949592585262777559943136951245348455971771111774887172218934345454651868919389497949864854417744482311753582712246651744333394362145988844123532887219245481233966573347919413284296562518187742834256315891171841114137242493315538976635933621596824138462138795193222784534357228525942252116128517563843442133194673574449796832435233544181986844933864643863132914837429136253497125888287295345673613131717511699594421939925522233824256181481437833327463416279823362219483892656142398788438962281386496214539546221517246367335991825194588336432943999594592978137564318782241853791255831187412151736919711862544996684465416456856824694932249625778639294883639456431253264225323429455842554878711221912453426697938743829161642434838663915915425134725171713749724837292642347715622246129594287733748199964239121127981378584119228571985964851162219639553594722193352451291388762162373135669542121571448343513552537261668777159256335269569191998935276886149577316583572525757594255568252137251661892595146977514425493751519768919428378936339316842183282551968354396476355256111811564195378364843473519538726119358917815683333252551339478531128156119598451279426551921655277988727912843936799962927615112322649425822551859874364979847891826716575118326545274643245834243179731391955361545585861239476142348759257198522342727853863688592155878282895751773313171294167516997113621482369596563396945626238339212137745291969749649292135943898154651946125829653213797994758476452551687393635211189543774959132633535823611763835719836141453456867647475173353369424536963836214146164445653266569331244279689127758129683234519764187236782433181339647512152865861945178854928717397386427949226687933438759785454937827682941931716132947112282675189612491739574327866541128666958455828388688589628659946635329882896567377926471739856393463221876433421661126121494336255814185966688776154311324656224253766464913883421923614231696852491931756275353735169894134817544421594931683693949562191266171191426914436118344815685379691581466145265741152139253859552285319612438832254952431499932675877333854466696418751422911122551146376141339971152866564148814383474958495695593995394847534222172249227916695142612494314891142634183275633116297457953341349589798687111976264924212311835381573575511128865989678427417324381619247298527394274395256539221683887181353945333978111214674481258756597687228542492267441662924475941626795139515421823342456949374538736237125782615837182269537816391939617493541325236142372526472836271149927441481876267613564342969559949982219626351284881515486534652633654269122165628124689861789252712357556854784613427158127252221211261375934923588621117983738542563192987877964437671727822377772777722557177236315218825251925924471512442486852315658346186217334953943281472167734973214845945443682675637243837433734297225261634723284954687415229516486445677976248581196663721853428199232198187689224282734161879592517373775952776425753875827838164829466342875313232891359942126731478652742954711882982773364112622252636241391729973912662936471283331141585671249659433195954614432459434617832715742925278471519646872625217175981633916851389692572984399812682711871631614122634638886292893859382362436231999275612781964986298764171778745829261979139146816695673595728513772193456241375871629152496389614399759876386987717778226263679866618338978656568528847671254723864482514492631441922662972723127171456191369161423495759952568519352213699331496266914654386981866841995855926553814269317314472414134635748377145223614956231992598921633281999886614674424494183148317436643659718251995969139492332114585594125623216267835741271844312728435486466345711273863862975533859219751462494699623537972899144116861286315296356923489462664915976981354497243651137346924479978318956482412986581668912866617827861312888244112642964195632765566272473655723366453347466333447479371263883781483176828617519832437875756817335266862569195157622962912352372453821221293337544718812277271116149652143377721594897516697923562711558791631535748795982111956787189838133399417715819362148869441253937561117166734989554535943277777786421452263223964689199534166963526944281951475134171153338316742331253551762392667536546846511399395118471994618444296195537243621846343543782296548878528828938424632161316557624379238333154617553325179644539156345962574724598492326884996728651324352412878793546337795227144913348276971955977253345143531872993728944287181856221942198326375586185167634923423519299723944351513961717129881419442491119654318914176779425587768114925155231189489432669475118793469532439186152511155521152736291318323441938978154251149832514499836823249535147632383651633681146426276582177465394478488552157273442378756427727791284417614824163438618393874245677682475795159172922429744281341264177319556619263287948718873858735832578225842916352267221478335273191318216231729324442999193331471515294322987316762291539753661698281239455524196459618952445214979587425215593768645549671713149942744953426335421236678238263349782153771733172785826347959429212786882576314193942532971855258747469785357761121863116564917591331435947911868964239386154615778317183466564673782844947691143487385388466422163173624549825533322653517674914643713531935598158282297728961174618477636595723442545686728266778134982664245128641229584485325248132419854162977446218843198178728462398681637215572841453143417936957511528325534745746983367751945684565883314623472855261221475266241353771239971988371273583997335343567515782242237417541157811383461831578949924665178852337457344283448715512532769526515527214739651257192168543542825832942634346488122468218431234289165314571217452672647841943365925998932829833743923359463282395615572249717456667344431112223842249241698282856743436957332937927273218545455186354299939255433485566761386899259284789656543617232315719119121158321195594768691786162326386389539367761337351545887519659642228349872826617671659675737124478743827638516443361692474881616139229526221643414794947935127679556732554892467652815235959867422772251486244345252634541152762543162664946513555824991627144614375559387451297432159269378848362197951756695626744927375358471294134912465731921194816293272991345367838289237989332663593244745266535913438472535929473428234524989192147451434394655289674236583755244772389554974775989153993454489933712214488334225183691421873146941915438133521956314516387827973512184534574542419918519743528574426659221815741836957731738261739131833149613367696677411379495411599346645466524225419449356722242323613797918471698334351472214468327126164944196682119158761937938921827292569144255756931397878626415212723454115435745551116911121567337364584428822431674211452174444793115329242393831149179347198814151164339491555621255611379891285453428616416571335975923847538588328867574913543356764314737152642317213417182155753151449832154816841748612438445855819775386882174582177955619953291757379945923956925123435737611482382932198762558434751351929834611474149782275262821468632484889817452521197762352276375421758335392432732328675545251651917794225421219471546738357339144835334342759553118888385552259299523239853274433722777571775942128824374229338613792947131513357746823216383817124181316869626546664279562566559865929463357121171728193966851128318276571239291155198729768298358425251418386582541736995793848912828981148221964743149845173597888679139846143689252156164164729152639392153396422773669982565483863518387757358281314266757319466692182793644349313925839893542965388228561477412153819335185811841324935664891184267524654635189475572495752165764419444926527139555338486146741743247455294263532228685425533529181451223188211717883929213163166152567315621113891345873972913265524785238226197367773814766241613536428438798635196854226364874933512265962792377575911226468669361685613341247276537986777154935413231155744295149194377443962851681972899452531299875795595534923631975728791618735167741817833195366338378571171496339658365188441135494186516474389224343415154335461351638772795613128564174564956216889167546654477373892925158149165565414174532188679371243828324164572591239326816426768998137266824631261735266383255369695344794465131145236585596458611242884394956614393166337593772417398419743265678717941925322187223195128344592928168422138491347873615282731982195277444352624938361979275212119313694635524961644126163227212337918389762696512795697592327383326549879278835696783844957721155825168854222271727111445642395384458829173591624838394444795386313194374237617998142256448235486645341469193214124272294433577325531648373775463667177755781483148442224189383126538432474331883281527521525535511188315574523529252869593346165664136572653124713926974123369352586615569593672215791291582955182723864336441937691223824462223944422866458875132771277245382954336413791256749961532355799443685144519876418843312564276832492383117283641237313745353324813879524379844717867128823145927346937853926691734127817474692497895432219223138528679498398786923418228147463771724139454983754115966322723172582747947782434658592149621471255173414988749977344322597368487779383713578391187485921653151269695279318191434248145275728633832524112385671991573113484367684862543391957193863583915333325559464929515683492633799745633725331624798179179172538758742513372352454896872241998622173921629664741975522757989934672413639454754845611938638716596347988616682458959339243466273481711243762629576326667863356667657972552284471982322349625954394677183218444248821421885163131456943258445137513147819638495443711355112514224561599784447242342592348714612181621651656769991328616574762936662421853444543266222144744768339691288422991536268838451716745327567245618625692477131878825354141375553282537129451553645343312344864322262113152829444494463786965811352452964567754398744285727613555241278288686649327758223839923196398259913958463179677398478199879184421421167716344811833923139429928851857142775229417454772397814227894839664271515346165593731625493128378687411734988444824555781784176122797626636129634938613771561784223613431112798829911652148126254558472315336768692793318256696952338342384195477645712271954362237924785491356891991257133215349326999264153766913928887688124565132166433959287541599189265525419916572983828158782413437686294873114461272319166736613433315867971614934574271973459642722674511392444174493172283432954231489481369368292655263499288117353928411621476219896469179516651432418774577246638747619129432485695543844992774951623977346878655342515326959224258424336794953911277395985895549376541481989271121227249471957827785993827561362163359484983929562272725631363492578978261484614229676557378519776553779637535615926993875363146614244555688429846318152858441479881962214359659741453786917886141493258956878311881589813971131894332931341725364785657651319543366732633923216849254682768965124614778921758776819165752486244645492235279114277735775883254561154524217963149546548972445867846496465244937873913268917298542796721338525823319736484276264562571652963245143963537616631267227186116755531122227194943565793482591494346462851998857351428916334368373452485139422522847415699645541495143943716875185279425163723146333915483738158586579236556822194334626625419225419924757265413216184852154197495966757335487793326787853359234421847739394572627539961616283347895168833999813491693562922436164534345332354656666155651223214573243664411742496634212524669153952782581285876623558977282317296519559693212868339653221339742173767399356357428844455696941255666577744321841825999917795299244797683762454325533639555955158215945227522924297299313755641217521957842474353619645498896194579572953434352422171377135857132881881481879213631166165912539652766177857251549444116178523213294424299782781928324529959372616371814124218493624968117345219112655497335848934381356639833329129551143249719742874444734633186895558518925466363456448311187129213175264655972814231183466561932799348459843653276872672182292444254787727653195284668941873317398413571125729364918636689926446672623731227496417132956254934424199313836629134228849569743275195139398882334175652922135614648229165721716283595564713664543453232794924676565737914659445781415983793351222633625294495789886934833627334555394274499945268816419645149682111216955934941815144719544981481254191918165652912825532412843326346629248223438181332624157528292942719139616972842813434762781478171371564489964816712513932578468895727323966939259741458743755994662193919982278313196831775286655255752949732257839162294632385165843335535435324771242379428281496365184538828597631456343757143477357136837243642458688149847564516656753175793937249733817631216828294877267531512361555315331232626558554592152424312846393172763264688114844397631291635795554525694215255549132458293615223392942179771575789253737973174826641935427989426146362292889249999497768614524925234126745231294171162496556757849382536341578659432817915161826434457856118685496193311261511493899637872142296325388276147683922214812493155512525856975866347442822798611625816183713615471988954497675721564266869241713285874373484475583548158765643493414318241469958318118378751424668559911875473857857988624334184739123344284916545638151441623986924538115345629989156643591343412955278964983673786696124993572687897149892859219275991325375124741347483282662724117681323266797224694782213713419491598458475319198882339794825735576933195573267957387144854665821316159636587948295633115848164656649913675354834696292721754913338586816951189864149671845872134556689513146932494315537582511679144425294713416828674524154852966245233193495319527269921197949927113354954269218714818181876934466452319516683211497432882736727344759848252941343942745254943264559826669359318641326515612254421773294455427839197792727658727111513579996991598528748695851564171263471495869566441233631312831448143257882216848744661963166215668131235354156253357787856364374136119215764213685376269212643544166412344726585745871458138683412862494943716345199311934556364735452741672436231193829438255157213225999393862756271538852427428617796694344775362476166294929394466194915782966131447681215878958328312157514321736534849733749434541553251212182536994837646388187418187727321678735127419943336777113511291841112719123356584342874671556756351476673967921498648182456316863513261383916527573936114495351751342634973518829124295485815319322858175989637753682422122172225956725549564637311133429656464216626675921531374231627148962549279242217837932557321546528538123265914716966416416521747328424615365677717391353438111523469193331421399662679562917471716891564367639211459945247112748512153442396592713716255251963989962847963192722517339263429628495895271992362165456229153229273917279797897264795251331336176449415419686198738276949661412471138691811792838347255582775147243135183317659563284842622538898959938277125196759127241573125755532479449459517779636776693313873647972978953783637298153523761132894893394326734181113922733433542822521898562744698176482869212791294486167416529256851855413759119929562346166812245563926611316559761452333411215792177526878681968513218866752637181812343362868564859453534679975846864168295669277936441336728113993812116455442736598126689359644481361332139265489961836463933561919344244363614784841741946867584388886787252923442936586727171475851749236223325211891458111771746544358431744312256615266453836884364868124245143871171446174119685416429613271533115262274322983433985575356632334621648762252137786413168528194988746945766289915468145962671716533217923826666851138332268371883414883632969817788352391932337414498383225131633664187966436625893854712521135562797193236862673292619572795958369631316789634867177689126643664574342752451118152476372231452493732162159561181734311994396141532554349644325462986669312111695341934316659316224117496647385494657434427758626384489356377258332743455265413213266846792653999328913371159362511952527511238753525133743842811596894654898275429152921292462445141635715943814246673947448642252962293225447197881426371913139512755226216295923771882224595567748746253733194433589338732228638671621336613891651676564247416537811675159378944125865699155464215412645744131875492418369583499871616217888442542595225842442797732769369162883487952325315727136567771439642465163763396891665462165412423463985731228782128485332586591136226476622838144164785421379835782478344325576148934599662722621123785582111418149621613846811615653979254296427426292628635825652621726583642998333781329685942631321682672631313382358485196899192197424725687824246782697382684869915162569726827192338567927152226425324232951746373825147815446621312673833566283644836667592616464551964562777146843928861655113443498647984379878892589258725736481277418433436726175981311957211953852418951549146743235324585542221183435494446334787124415279283258325246151162627445889564995948751121769818726322288981626427285818534272129748633429833145857197148648589851324827777595843812723923611656684719697233733962619623724927851853154394166697999531594737119575228348432971443433371513216833162911439141972525694171295154447537143766872321254345373899558563911191943532252381246236752998669445119972349234526772121434777551817841135641154762282714216495118432939713627886692562163452363215881789865199169128675297555141956223456438935921142623294934786524821267547162951896247664485431142226412345637223716891765736776287825228387119263954323517341633842792732438412963473477995515135145389128261226279141519415644489752962842433683723281259515828284943712175864514381772389411918551855354355176732128772961493497593282465114256798838419743929987317669539329395929852233944533359259344542735127977795462747815912733846579822262272633632941455444356272632214513243737679668853627481252289191641339274626324162272572572484341219428963859253212232234795825399577516817965255129291498176436181153194176137934824238535487548284392715572356347145592173675141554645346975186984655964264789891715115693632148914331451157726483761498164117124244634525691722971121561191334851896815861725162783193198684269591219625519593342914611416566561724576516593172626758155234739452731138243972669259182765678226828277982121326615738258884471212241452761543684781317247356725385954375456882211159766523631855888616758686472495331758711617112118617964694832364624678465377562614584137171136612975623977235225647673997733489335923535312437667518646217729191473758115917676436249372412427282833356361463397417265258272222552474334651855114126672639875622365672588483213941839174647229949647151844389151129721838139495117146285977371856239132642269421456693263296169842383435947543371359983789418317677219138495541468854378332868771111113522696423273618563526364974777569218797812682734498831623364634581254943887357253926997356928459259511797854532768612421157428928117127346192266792574661739742357619328953111797517374925649724997228529241284446979342139996273269334515728764557253633646538532745251747479373293414235887488643264666992129674432888783351783566341341715416992595247569839516128722539341114319717949324851258418322661293823545967559731845784888455928524966623928279428339115695271596588629889299338152942988337558315426945357519999784723951924151823982989672542274828926531919918676659332254747219192533875462981851426443467853222151628387895545423281736914224759588892721412616127337394532842769417624193498286566731771561243564212721323973641946845277571166998257776156122664314292573218311166837344179477314557629284186383669224365848773354327161364111828132293734654817698228117396479674241998525115524235554871448349521526218724828721975174487886884534139618912952777732885477253471855391722138473314341384113333968948836573595886433336996333632937693551723591128464215917882436762558692716162415342438332647814958736665636545196993252946949472852428375446653737744255386966569249829192247774194536257121371611663986853575497461374648225165564458565932838767481353674427484964143113941312916516688422664142288414824417287197733116362456248278912867669368625172663971922221328928464626382627595146478418837476319258127472821198776664964893169439859421539668621827949993324497393546431312312441548748994114618226263115512119248725753376254359519876136416116224145364114834488719215669522484541691916271286461612133482977358656943653948852777515811549267286487623437138241464444349647471883683997269345767973414561762412912225972738778478789351359152129511413266743632912848376286743747944276646235896875955741922182267886269375122845344494925569154279633793412834681475367247171816971584182792119223465189264254555577123139621833581191552313412683685158275617788265945229313388928376467151557599838971154345386254897873318224919932769186988311193719322753872112574946291448343552593217437671138442449116281779572794931275365366426734785245456535537595582277643134357171775915295817471389545296529318678786989472139676168923647112933747257678388192122938566228738772823411166745261626566872617194866272495492338875896119384421444684574521447976913858482869848736678481287247111719914158391481414564673366242178322699947664945526518336444934964658917744351957863253663554886481993381886511994931952168372266421282612431657687719723233364281226498961252829967614258334885641298331432734256185846282828623324763643585976517264363526953445398355926255679445811373716442278912761765892583223812422649235263845333929266392172146696119429652321226365922424419871966646146487534475432432126643628915672757757634777866872427651312754995152439933229455327479633937737595594855275322494442733479424878473264915767232528895857289391659966623195531729646264345162169123291762111579149567832417224123313131431937871224582225933365644327619868455547378831582513168586621385241682874343936518753665774478583867332418192531511769113932797851487461416786833791591232721687787973842189141569177775788297565686121221685491167371481579669674624415275156133931968316687234715245629864818621711225633681521687639554638364336913138256934518367299714461559643411698922771758391121832915142372461791162765372629146125653754328876837593371399867745572283586229491542596494716578686147862553633552363318575188917673984189484112937569428656226168729872656955142982877527444311234277717117998293563746499386992826152219729481181298123437219828155178269371676462227241346835425842618984729735735651892749433395465627414687964692595332642274954579975419935281839766627146555745843262347892751554732873556547976689976135972794438386711719244398124566328237847579143579213125692558486347223427715691579932184855542677367671733565724845663311673138516646549615445442785764455388332799475696413297524131927228724227321349584615392315271323349476526958451136694537373652552143292192359367135249398573725129435392633477533829168598377771425739874355916616695344445127717575528347177597661384568423921793287418568388359719315152356282194293361744789533722581912235435851929333221329226743495787861851637214966939593351613164337573777983529777182577948837538237433421734972887822421896142565113289253645516481364913155145666342673317763975435954372446347661444177838738853157512411255948973171487724694817713965462835942358697583522238548932172374854411547834466766633114286968798752891792987699669325514277941382584164974267474545213215733932877563163723884491768556155964892527515188444227568485657285687352929972332979591173382723954663523336395459663658582247297665189333415319733287927614521288661578761452186248186973742314215154227311617243792883793177351361476935549917325757128664115551282934114757669574621536577169999586734817593771644454553768777914125776689472167823155267261594897538948915261114536747698386315167282432611611663722332548719619174994911587798834174527295865175112739398244917181125895244213468961518851154821227417771291671452265297245793247165515443643778313932461788236434882348979343144942694284617139979194488292214796831747531952893118431132922638136831499529481128627497247229324485536493916695724485244282186855318211565719258385627483123811395235145273764156784884979245195857224472712347194865664222536357589589514344232587741445881614596359448912242548423214228553513119847837952879251266985119353737157782671672129639454354254784183673573358326829893882477939183529286626388586743351568265629722468128159157837357569725969821237364278861121852286676968462817578836177935288415633327678694293258983168658933718326818372545198767454878991328516734187944211876555944511768182232618276165354559235499191796337376151378115651958372177113834438695666587393346415165677157251168462826424322216427845318889775894187651214375124457398465418397928126984877112385728611874478215526565334436448948638292484433157775632837224383479264453717451561724342564136589929362789952496126764782924351261829887454659592247328425491595534785568161428522532946526697773591873179167293831244311361294331149995775442414529236748436674848634296229372191669226431423138362865691197884358375459511861672451514884778164729452114545162311822532481928986639683263748214317373231165652212378242159817733778286338312272922443198292295519115175319417853389914175548491179263485758876587669287972438791936132245986157891313363545215881916595885916653917965822554513614552837129118329862811694667945183191137171823978854458211513329212557447792665475137616423272747118452281467932266227325414692761739233968187728948229373916871647113356941139831945442427352445175921965213279954561243977189244591971543419263185126374821534475815329267767152368279516487998528756432515923364552725851413792275881252311281667426184222644567488145641822822476869616374171544711823634846215258255661216199269924922343147522212814762145513961933676269776788672641574643914148414879281888751338575312839684797933949725647473539318795556967127448484214229696392671282792219319938931329559454333772684749935517673614921243496647933129638414323937541852197838256573749243219834695378661967615942995296669199196954814411129444241839235123229228324166372542556135347626626886752844396286125914224311313991245771126214138271155659211926598325657314772196615454146735194734282357484684322386421371259555549572384565291291993422651984956258828841299571529496824419124155298198349862133489595261656257119733567644786671145594223341472294226197442469489523227299229897514854725536297713626893989721417338365791816426297125861991362191325235565151771977638135832168534169246987645158469356294463634988411635316439778544192288634595883198321193979561934366947614835727988233741883884133713499517824321471996373131539851393121241437479716341956269497515954471781448434777619419158179957241664537533639528135511786181153148133325441832974666481195611322915179412213579722239934463314886749993634627643151254141654468145825127678485214419895683996181433493923963237229624451525641441652821612768795989631953984327374334549768711544958468133136247992934399461313494947742455544612487572846884551629731372392262866394371662655513138236526991935421283141923845448638888398499252722253837664752125623776827519778445411122673593794838254496441233279624259572166968445193225518148255271522326666114916169429219723512748663411634737211455123851362437349488127195157481871653834137768728343757458636934261665446855948473844928589549341915426769457384716421793922929327185184417782597415326744313224631136366769289959336519184714115995347336927229877828191489949526247832214686343746557544422322599713686852862952113943282541625386198816712432836275781651817657996153685943691191582331563432928267454272195797686398192312496417345777273474334137533451715295394723786247513445747395782672985893526261366686381475632749732313415435929576232976191372759746693524343476338443726689413795134358575779415355768659898381963751921116183757393921314534364788644971128526281475781236645145143519485533888283297186311542182632352547825254596989278415653492579282392821299137256375866459735265643861783193531877963884869384371694329528481684454342884956514514242171244231278499365546562481943139996377621362957337386127185456693958235982424321852657389114644923355375644556579733362573814257198441669182534252935355971927837334112793887519451365227271335533562863284277336614431173111536117174549315667688926138399267234153883661485791689227594851114129241773465255215422185213728729218849766344381272556652793457493719995112144472378183159587583695114747152742927276946715466756449199581315843353149891142986895312235215148377218632189571491947154338376189843194466755315262898799616448481427536819661956397351145284468677252783669692481975251696777481718646536573949114766734458712664351685963395146717648215477813261441642227955115241145934559514987556425178123136796751821168769376491519618516382826969496547215196134118368383822634712394914562354276455157459374969382389692223441913154227756958444317569388954818146539891198957464432836457531828811344912296658734394482317872243546589813743146396597999948825267385648598298889542495175358513932436414327651721886341337362119955797929125412219772615579242644167415416586157532936573617812114397456774148327371163874492852719277758394774543711732219957359542383467958237417724937549429829961843387696787754895719432288195946895125294861118152737887784771581441181881414575689189292326452212485782141346812145136784174634617274897213367955215377442635341745281951827264842326231554368931335824252212839938591625148387952821769196171413923761792592495654932697572388797125652725826337652748923348841795721249134769642181334912952465268514181385465493122183822217228158769478113889749659328175249574513288767125221443131932248954655733182939273716759439226945133246958648489725765786484617822139924125991112663818217191139524333595913136135291359332799283773614932844319469568522377445196652627212374814824621714421679367429517544177481744182467195117928286864464332774239243243137813499267521434514761377731328329383153729142573172841496522928397486979691193367318312337193946617594365474458463421831658756347766852764413529161224948121235374234177722334568429358166497111128844214261899432332453157461183145221881115315181829242741393867176427756598553764761353752958255395633723535633528355863496112145733212871497484273296281922376471787372236947251947657294185727794763984484524337882948153194569578573879181968198823643355373155368573954932584441423984363552691145115324988164651811366314612819321117535541926685222839873357784599469827269141895897754376772231669134745863685725849381112564785835129419414451224386517665152815438273859745574386295997877215456228731238832818315859537999371625434364647755162438584635671934933926541496626198653999273661576723589856283426475377692554618223213986128317932416917147142644484665334486227153472163289191323667243772843662282333648853264366666566915512353317895428242621376617163168123327157962751128296611946964588742761864225556141222662332721219428268751899378694529943355237831245256826965424188915337874412313172182624942697827865255486937643132961915529778322621872571436439154946254916515191149236371758415347875136761514681374371932942242619673474612987898412339662331165438845722476374148393581553494642855598968214598881328866618158984486166963144753392684556753229776643558911525287672166615161728498349229139993943122743646657697183531169412132959664221466185453121257485846453865358836135344518519324455477733387252814582264961436979221578422843123632189376478647675786983526187951835715369152599683596139122875425574264176528424849836598581511588115149376636893988458974259868918465894822331326874994762447573474151872248312612976967594436185533999318147285856766473975759911481281147722231776217832878427668822554323136233637147639815915751616292414882825642461799848843696548529437112372696457736111987541847166332777481694399287818223477248581792211911147448937746684424236871616416874343381669281453831949576643883966148646886858747927241481943688753412951718496368728846493152962481595535487145346988664364445881369297193266494265741327249539943115411339335544841874413266217814852432944148362741297836137826157858474187764154925296468217735593261641694561188964642461335861388218918257542119238768287798946689448851937355486592742255629247815961377417247241713592214367751881652925129269578143248596724265211165468296218159671198542988735982549777897692935315974161195724243586948383438119712455775765181636482538389385344134347145999715353383222932736991749733555137835458823218523351354115884244929735274318848983682221312152521117493136565226816371123971748996532138671633693991633993344784412895923733381787156143993926188892685996271356541461764636938943797537171495142649698742452332829168695314454383176365468548998115132419366535871689259182551975156352459649368642786579515566772983789851685956339352861398836119541799114412533264353546417146522712687481463887214161251911636443482773942133673545373639685245113163847895354434157219176131233539556925765165584252671177687488756442897454496484926762576154989182388159591994133299367184342275311561374429217149146469839848951136937384621415153594556729627457831311842941538174177239641327173554118131215399725482169832184873556914124514482431364233887879615276493143848631794588181991173231942464874987426135486259516487571468269364117317186534138816744418613376495561145788671148268717194121949242369357533125164884781655117631975368182828192419445764978133967431162119513355865381226727147116413328971388565273722355845716171463563928475884373459153113911236453126281841285824897324123123858873599593275383585951496463874967217472291561936235157473524962625397855813635213127677352571331419884987992542616127815893362261994422567633931254535838233159725591187632232669347927376162522374341629796342928336955268858247589197493558673127612672786847349284662324723553843165996315319759159693762412344959616867287353299955386858654256255724573217115653572796363769634712813328112861861218519625958769365129712931673695261273155626594245337636974717774531533339421735767524964121917783175417471396328728331522493424988929768376292772148983844725564155687187528977855364382834381299526623288648941754363881534519531551526327796779648939831249896737687837855837244366357132432951788974843775264616651443455756759873698332429913711145771542418729462189444454395722449473179279859472287121967892356361314861324159932539246473572955273279458416311215882919144395956771538464769431318648851238893296586619231392292132293129498741556962836224354332623347149644992444668521599715769343659113822613131879622156861332649387867682745141624382926362742535177912221929595896451275575349858592829123622492821887659136117739115128553877285552375297237878751193338784649611587731416287264685616234111174137738711887236737373764739332373198853524453212841724734885636793447131128216371941651436761815279278293269712389178846487129582536133271845645294521815629969188498712981944135459596284629195888388784167896151919957785918911462943464982943943674611855345273256311942439273893134154963324441774161255179976562951672182118163921977747441766161915284762753956875987411467618132512571718489248935193387194116165144776963647852677841944233118385649477513718161122611133517863347414759536461572561698675975736437738299333651178346157353121421824821562561211331598499596455756423141168947743235954899299322212186372362212535337832528839173757146346171568737333154219892971277741512553511417455745195419967657959817993476435355446781199197857256547417765665261652182213444781471139888289747722798944857961121881264859865658916285156539679463847252727812636758992541214113216746262891998586626814261136283777983875173972441722696768191226174689951994941721224322583574249722135618729362392279167983774579479116563525558538988512957451917383117313539323719862559186912273116521368318359792821673762114355121648685746112624398777785375411598345368568515935186871655333545992867389296524247926235721234594769777425215896545126394471732581918122254223211574582645286461615698896195421365611334229246642918635225686838579225155492152128111217876192194628753766249948352848894843866943575955638789113615416857984654511453524654747681897229242151324482592839169549386487973884928531475255475882335189536255152331513993943283345884191464851714499294516871935494428115367321145943941949436742839983894251297219241171874449898284144764738171675941586353887728182953968136851578822128933218743675167688992989637465189437331547399461436335866174231494249494494994131999717952327523958125234225245323816141635316278182811645399288617468123978528578411277377524961272339792484433413914118341143443548633871565938434733388619595593949455397268814154671172684791126272285484231638152996143179581689225227347218347199231245827439493157152378152995625848147428147721872474963665379171384545326422192729484926424322587291653253981233419243592271498442768317284762473714849132114278411431579711111761152646149193221429722885636145552579969955597971614177132529183596931378116489693162818483449755887329721514345383937391845388278162633381164687769882557338253151358167276713421671418523197774946853261321295461795355357314852963856539126292545212149134984567346829871437731517425618255811873112354341763414744469447182582366175783252583265515522172799294281718121888354563749636149944693755159841497212525319131821576296766834718146127722896324591766435879629148868275716835266877894889654226262697674379554862465932775999496141221263382951673166887512318848618971441914395356782134623447287596559329483921458584416964557297228851179327714462682941844221168444121517552683466184578293364235197363123658225379858161315828746965824391656457437713347163554892173235259983832654321295389581678911436314792119865966266664221429922326542493343188495343394231321561891923986338911853381881753475187582384785589266473226696819638265413949997464428216958425412625883853169928852361652728487471823235267529297858176233139448238568976917125164852464949966278354312181712883586535933712999459162184851491739682491449413269323698449379333342753521257757324749128222383219796264149871592937631353326421418963782826524169627288287655528512668792684283932511561113333442352144127577197963224755873487879369443152478692474551134317926462952376659239359367536267952792126132523127844214933759691527967417279537329439449193629184173676448734982452357785143323786499561971158111836225414296984383142232422715575239214149919313519124424921985847692211759551888311176287832131466785921418926813262773176329816992322691398428443349934332953633874586274293365254148158691975756165273733566713198737779639436151552921518253411564553521624795168949925921184761575769228643681312887761579617521476622849111139116352399246681669424682449862875429911949735328396659227914415941946749933344287143741359369125921549778258419838494826565641758272964222653745611435769342921489184124979238218126791285156696315147577315286118463115862512644443241831746448642871971564325741452838296311362971162313941157295581426174372263831417946595465352935293841298821659699122121396158251597255245761111332847938549633663155941974445454142864368157624275172996464943754761416424242784372475617182269159643594845779587153657178832169429744221819457249321127419993196469838717531673494919787345749272735499316694198671177258158713847611219956235344787281618499262448988715154366855278525384166734839568459316381728185884287972993288258633179478969351511934746994128912935649757183681418146637939189775463732114752227522787334616849293495959121847796337382819942219389322766389637399659236215427178625433836157551392187556512261335775129223837991485821697514291523827172686133637564251218622126224836273623953169145671822821667815265652759447329755324747717678947184785199581441552227289358269359127275764294754265957456829937254135161171524277133621539577923752616266591871759836848534898584542134859142362391359957328547357529463494197664949733766221515131729288946459481865219494249482656795231259197212678194567221834142831729122761515519914619396397549563681596112673429157631749212323893584316376145812251719575354871525259721614491421177176781789993699185574185586328345531416945974547746553762315823396916524162787543643264139443385955522773961187746332857783862915254726612824161997817453335464753684723194158571284198471562986919415432533636585574649519454371159794297883321234139286732431256919241258226343461441484575637836296937998395312691153485621699663297689213449682639162794192979694999239914362211746332917924716263916163496376967318812761269687939616738218183522219527944296955929244966499298647732153315846777179181369547993817366183839288225461951236167962344779611692321355918695197771777881653497678921647138943239247347637337387398716566544283448276345523641718185622717863796957541395555484434417613987285365823964228272277283281314197738137361569665377673523744365154356111422654197962854557239937982465151487336981387359572259128798421816788587658237717172121271777775214241636411833161739773451827599882836631825922532283661233196756692219534177819284924976348495533663581759638863379745281721491742448576577341988491241185879973946994819198553458555678173313548562217248716594199738929335565253122719346632958278364481287635667361824987262571347333192273745167222743554152918668933241382844277372416121479656271115931827938573591715719631581789956688732447982589341814652131577255238191158531853725889175211717425117758346928495126542141494877931873588172827746771395231532211381727646752837128217217872831748616757672498569253519843925634233114112935395111116215487842711884527344654577452175423218945216756862471725324724188147932573465944112227767966572211412713766625953619541694147956324296129292839351434873826434621929268171684813984835931335271967124791394431961175582327536897381156816346862115318339587114234187111978813859593126714249994963192948155517557283875182827551214242768871712656951597583251627385551638821298734613867331276475955193421866795899813879892768749573195513871839947795692234943229786226397389959851965567339573674139213977293622833265263169965957714782176113185982554743283157199399381992312766186152341691194365832551144849262492546851482723665315164431942318646851798391913229298591532883875229476134684174367183284746518361368691136833439186871822592865378515872836963219274361274125287714427172152422156884769373944913477264244781245969171953857313833452916547632273991327564365273781436415362362926931135455193833849115934356962112944676421225181663519985916737454127344757217665414511291983722398762857963327174724581885299149245412227893157491127544252213548916486381214455812699862293387192485541814643637318732916874429948293984333799626635757177215851718198357722217735778184834631733549696367576686976517426491587213481678291347744274542172656149195319825397256854315829245921346223163472224794286723489374444724266799344855315474461545411297913139268422995247479942674259153263554175833885969549584614464656633484213385458782575764821161593351354529783296481518269642821451641937287814171885692552165979175354255278612138467554197941766231473297521516347938176187763918675444311433238345497417632834964673971259954857991111382613464192951728573463725623792379445478973885133318839819319334627922923456953559352598771371723784557467143179924523635828994746111213544469596338151993826745451147698738923839493516161392943642942694784197944484389249914421267291531887399837546751575295838268258118756835864963273543555413169155193624692634248342512856242239459222654762199518135694868165434369344137672782413395351721368723764734742711748357581344363339818994145373171714543912271638377898979333766631493286457523811333317387344964472944364982275714539276456449748767422397944213284321593132555749424354557723488463853724123123349596437731614541341634562531337951485779956878919935786112894962613148251713456667647143615482849292215715915651283374173518794695496976527453827467892682413527662819694691252256366599787273898958311243349672724296137263489997279917353271869984239898774743583573337356872173146456329655791916863114333528175176415487552492519943157472222619591232161266836671717596359365212712645969118752126353714213167235389115654638631221236931936444498827253826984117978138151675416967676255816524213325933722125145122969315311734518116675453185414524937795253787725173932421917429388222178665575833186444466194551782961394344419627635626822449143581335693989392168623422831711754623768771614258144712972846329864245984449715918315674478326413139322417189914146971797836815172596427518165341853149533345259266888448624944127164839189642313944584152268474987624167388151515657424381521354796783721511816863636599994966816223829475122819571965362251693153782818357111188188529494146449877816141421482297841167841253368349657916316566842139489347256484948263182621977697343192522881557242955915612984112818144937383111549232624113168294272389493258383216815579642482543454787686912121528199616629693726361355229279696483813433352489133144722231919713271885985422721255114579473956984181452851134962347796335233813936297217692593157364838717797777824416735557722421844218569456819775236658348424943992954598364588111283719945654421772781559175842664223636974141883285343522795894695439493821989442824498877727418946699963712399115282582596758147176822197495936937359418443142567221958855387686746581534978545621882333152317657952375936744865393956394639978122421111196884422969792661922812225951139815325412552774229941788499639658222174577589181736194835785483385921598765837584732361128649121859798423215214157275664373131162818569577113593417953356393328132465981418889976213225277223389118578612286638589619851496575793248382721162969324172827115365875659136219561326814768823125448819632493634572474681931355153639568899235897643611626513269332163424118641491891335477217552877711966195648672225732992398638316631394147833412367198838739652523319532122972622395813241512436146891688482797829712413567361366754594214911268325124394945214562299536529115474854733998813727346141517832525853361454329124497941691431653828865551166252394573744286388221556883861321916384816918196132235678991334852456452167348769294168189174523632518639453854146927142519823797582378866979125137686556836213758995729541448169894273754848814311674863175953352219194659728863915619965815819482197599892927757282726894258414119966946962114679115235531432879666952436882818487115531175734734439961687911527817964651612168469467497158872885337275374283776269618547582273539565649139542368613379231766922947511215933626344599346838526394466116232292163838314712521217266843796359325248256875769912592591951752832614264411141246839923733499841415994915818813152421167455745512245814553619825562552776174272777964122911476131438685799383951941937647768156583137438117291952638522263611767836879223422337646597964726572125338713925519931168921432757396185789375556612459672925171854772331847416337442145292417346449247567659478982495892544766329289152534241664455655974184718816264128981735268164217188411225696438869667295884832143296346663336489328893552726495429279567975347325761887181746911336221772133733493914127268232274568921664863833818625615543918899113954312292321553241334275693868892395194934469937374295911642526277998977151268666972915889286975645497351672332729173619331842281564261292496611813739263692945216931274924184917274144648841226693835512792584294855614474462827355525753972364315366228286678939262851491133137565513719232172961574698451988673476445295856533397161593251232932335594777875161678328777994672991137826558457529623448285975177645164661284541714288843686391624892928783152521735581669119975575659598827479887492268484222164749237493596443648487126232243294163253471883765627784122177212452392139879216786388823978216123564657348632888946959826398435114672121355748833741185877881752781955452747198222232187345643677756649834439313545265225338284271614514173423634458628122586443258565171176858366662923175245773771914729793315634565116912545823324993149383458495753482722918915532449375733964929154896167565168547126948599395644715337871196687587832215563652319121117137119242715718324947116285469453781563352253259832762981246122426572863262488339934791941446547486686155926739857124955786336515573471886731816647812896678736285381113153575773828974322354922649392335545929271254829914128627725693676699395316375581551332421626537673497353617263235543828824661745978186744395419937172528563489762625649941112433327572354219479261559745328349982376291198789375222915193715164221868952318673192443225417541582491991941695395237751629264774267526664393297614181159496115869617591841628223348325137277866579228647297935889388735532317591527411854223343725692421421167575962323151414918567384539311418277249913253852445659331915515912212886114191346854274856861686799479825572171994222563346683539765896776992228952541267511851668257211131623852687952458191358212616463829117298923548914568632479322785435187235285118575555121615538763381577849626371595291184288891576661162372258491377521339364873432485963367722513982588152658233556685171434928289747275699338163248134293168267121142874635323372114271936858586645671719443247154772542891465638787328722958923784759168619493748179312827372627339214256783113392146613652342452563243342998637249141639853299384218749595981345612584264391332155286352151433117331497411173347742941489963332951535114766149561946991563259481714586842851525186321713269491183642821442867717587624747456592579628634862798885143412555449478413824945271751486436378116182283221214798576827192754582836722467747237594981538764566728122195186715845255734574336914186346151932726154468317598499533443628868733621586435851619456371211257247536877852282743191327479397256446975674657111659838961517459665725828514344757774853532968143951184468438623812324146755174197266365582826311654412416329445349641212112234341331379786646672436254276192885412115862984335582492647884935695842815496682644199187354256784338976786942273647689954157944682582693984973956143699151616223226791818445718422915584969152746351928162482572139464136993518469841874961525476114883366317232684121643882996644941773374565753518927658141146189786753569368264152544713561519778941667526995857561262268916164373595516698549767324468267139832484574755914478157997199875814368894971587144663249171519424233744225412266868397424585157429459339734646788359311336425421596357499277924389816836446974152251811715231334198129583371278574399315196761941111351612738181789252898128439641541615143859191915744196628982512327129723634213448263423951265328951575176768916911689276575862532455543173193146823593922442337526566555946171267264651966961776643992899943571395647932118992335644312154296636614612533363452222637867787714598318187886622723633635254566867176298253694484415159558258571996191891113276191852317158812365491347623182217414451252233852161154154263969924475596215454891595331446811612863182572516947126745634915139867488183145426288641659264875531451672628312114438321755735768726467199189511276974341343248633337134917293493964941699719713164666917252234697733358834934451898382388715576686668749624566514349923352624591777591838984885284897297114498697641634458537995511138645828265831393716668949511328833478729852413183452822674914473598435693467432551225639129583229784951232174367248656389963487129113882437477622952295195429886442148457193551974371151396353176991252632575926782929566114875554544313134285272733296788154855516195639936644392815519986446769755771692768723811328524671223394389264444523318275411724843176729322842156611154168775291783838752813661697322882154288863621266829155791748342662245566288379959612241279736168663919698793657248245412844481177253337752663782341466518277213914712519124531731686242156816717347852939144743383843411634864183665945139956539256144534252959263412841875127385492637671767318262732674747361226164135972163482643913292336531914743129917227133754195562617146656919488355183244538836857123483984262582759897887692783138847524341462558357973946422451539386125227621124711794139843249661114756572748325469155421549479594465852749337766271529371996154841674792493397313268868611241176487159142291712914213191354559465925661115279144988154131926363213291897922736742771266218449377764791675134619327512336697262325333327696829513614627331989952392943919414211575256682993516194938284555939576233329474917898726452397228752246334391747787732197463191839638562829789196942249731427224969642593341684827598256582387884926264722767667684232349194917242616175338484553327755276273312494323922466827355733459983718133636762868719327435337415215215727979297731893772929233369342585629118124953474898931181573471141216454486522942629332921932349835837632364751222364231226921469921183664982675891171556237213429583966447757911512678162939425631253726228599537572464182971215896297326812281195955927261743747116225419747131345148324761362613342681799661335229843917178896264148615171625171951614119716554927896586494279439736662379721771549671442567589381343226774512134127348318468839698692725722543941687531269573911399466725266963616162113724974326198379458453334611796632123376621985966122921918654533732837814249745311756742286452667795975284757229763938335421137377656121215267289674338538173493115338376913375484546898651188351642564737526118366569613534368644269322851464128788493128694855492222973254419694157525457231798929685146168843781253553138778324547124386799844453693676993812671141872649523369916373722734324923181468581978323612831613157682412243454449586116195418114354122367173126293657965955481517919368653683143641929625611532526115378972115319797569141146595448619537191714746993953396458617537159542561353246358215475285425347272835443781339247248673555332244861118311595442113435464654687773223126191564396774155677986138399994593381575655825189448424417463198721296596122441682251196295234186839363945423762367724173335613731376237924313513573467126372328626241813621594853766529592332659737974189355562977545887488229528564772981519822455341592325332464976543829131636928919211291138385359721466441523597658461287831571197916329499616585757925675224662522421387249271678623257453852256911751592961236362868552974479924312339523679944619271711892945424714152992413142423826622152683391294838745996817319185528699662291791241395596222533151776985264528464516625442134994553496582266451288982296535135437254676118328558915372781583546354584983188754425371577353357167861554852853285465596337326361812851619216826125149496741649621718897595787422828513589716683838636385111753623954484522616642547145557863453212464323118946482252276177172465794616677625655497738319255542954453219572119365621434298114529273295369328621482366349381757227195798333511545215496172112225331848164966911691298941449256563725747794676745551151576244568573758222927984232259113622127645551692322996747795856637928571993524426149164945785753114977433196634152446182184468983782445116338377748926659315523254537983275644229594551746452526356978757973185652792474478477629729546833756758641317213331159431863144424978783322648841346693611211274919163179543922173761774156843555137885567632895882932833713629131214692331173485229825837381314951165855777593215741718831279465445174928627979999257699538844383112154784816385121551463938597616221625114133955854492282772872157975817275568744555677544751823484745523258555396772513792948138628946534361278368478813379275762232979858386987115287855667937996453393635492471862346589129473461883429122178963952272332451825559452344246888593793971768127262869635363358269269535991943578189898244383431154156222215116298882262188687455953183918122784893998833137519288749228561875727157715827451319995813489719142217386654891983253933667437923637712524127457683115781927193698869354291261715283322943457635232531154283444639124864873238347163794867936155317429444479286882846232177917382219295223944662832315229625764285688615342962332421723143463522325641176418324333535316185673483298414389375885373191721258596365227243423358269751716925371281261245473179339593195156672716794626774138669565642779922112245466546622841281822696831122518259557918245999522219573682697315318239369317746541662139193396756732339317856471722778754672147552234254269424372131997791449358173251233325367756257144434357167166433439689988847763245644268545345888216668433668792327122162976761486468365388598494187421977684557961172785152796297357523299313693135129435334515773844441433773765112962793422557547475533266922561857469522875182939651493657662512553334982832694366931118821644316583431722855227364128429181663781661675717647996191472867616575783772881132123691332791454391633326933427121922847725678114567871924655384241947236639246719382896328513136213142768567263513869522589633727167944498169267612482451813986628512465455941736973448184646189613985212739351326731516598451975314471584618993215766578747111631273326158544763448733377684827251186897215583581594829223354857921832533744499319787947895788221863371335456156774386631664272516262145131549295262327236437938578426144597692852491466655162917255331547412592631463282845479224718361989737916373451299123725311755138343932327631352993371876332876714911354644671214229453488368389748561396924768249749932561158958784974378389556956656764917221214145857966489362953874559323954921341831659852629248374369877937611816763176811894917441518545948284882241831319159169165752795941342115412197415256528276984345928876991379144343298461214195695929869239285589421616114855345627239794436312474699127953124218524616664729391685314334323229497795775711652459596539993782549175661275838673496249681551482982215665312748954516243257581826229866913353194552281921459444919532235731413236853171712424786223537428337227331359296593117863644264525817426164353624837967731413374741518779829265982532318898467971356444163953875584558561143843561475513952228383456976669491371136173118113499334249229235392474251892333163845753551771226954345862728826667353482825559237431832332555137539316432863835386476263628336312754544471283888161453917735162338485199952751913735943445326871646912442393466734193362353613223729725693128249477558582933933578489248722826323683525316937547438169738192958361641655451134776622771782233794466671273514366423173174269777774586198644811765615334266685228197989695924996998731614531334332548447935333171379295163814572265427675839126255653194929912464854578482164539288127363373423485489523619222125272545328945997972642474236499591267182973798883794671852136188981653658499118166734213183782742233794298442694965753547142563596749996836497838417941648546154989959939336437788239623395552455319611226954348931678454597535373471996444691897622364292285242553452537444664273826388137594553775752541748563496158486434195695877115539911445592693297292859832849849145441422715116471232665173565877354578671684531462642831699269913244832755817716351181931362898551442929887711848419588197198731228316155397473165834324986373556473237896642589679628813845848292717415546453276368341789435531537644669457936262741551271364279423339711912327294313726694468718543221333554312658586117694642912757927274343555951686658322936155238683257128247275571648842621251996259483732749746996811421441132567916992168435325424374172913441324195352829512713742633191834568669538188593368386135842774293521825418135173312293315266629222212754197512662864133627534811878837817758112919612434964763654158211941117377291979418851825354437564891391388844826571674545313641792123831615726379669281332876728698197723622393762474319538619882419284646178516282232584129713834223192219919319757567971342797935597211962278139155457412526628814796935142375448275775417927876154546764891414198679843224178799632319653573485818254613652118742824581945623342379456889343461914977573618668144217791845451669533621523993678597364114889517392683662481617418392156367319345616627311746352615726258729895374438166372975699647144782354158522886274158227737192617174841711767129833819915631881699963843132131644488739544668942695615732828949971577768389893289166348928254776288221737352546997229522821295596499793174439273875155478736494177581755656718876953918329693259889345877616942131344541328391275792316883376432592735149272578719663346551119784266624747158996178175337731112771682543216142539443763647633111391194831218255936349513232632544651556752881988112334247299399949333831681247353984362326294633543581746758434923274553448131272911332596529573851333414215576613496668635412891354578764122123776727941785526283595267546398828129185442774342161143852396394636415452432649823612912363226159275885619484487223642335795153669292265391991599686625431566578537495657285739266957387269875493598615911444376159428844259363472118222693778485999119123141156531492734548843821855427191923134137518931572145498185291139815279196521817647239369232172821315462946488546444287337492581391496416415677229237581841557232582419724925556847742674135279977898179549671398991292462754295529711388273548821447426265345475469537245663217457932536254524217763421735726128256271528748432968812283529864122115415823525641928612381965137371422522277338446931544457772169611251984647959883744195881958523779491272316498283292628624248714866413182149214956113249262577787327969154564216235974937291684975868887727522454977786256128867668341956479399279131463613853396954437412999583254623172912245464338831521972932714434978244882199943533697619975398461919827763449756547738898379522868362453226341884538355415682279938224249959796427215713679313131819167217485921234994251491658553664195463167397515414949329138358564775722121951727231485769643577691161842779764147274241119513488555117312377244881956194576387141261359899285893118128361365492594438491899451715568239438815195712339671353354265532335219731955187443261232693374156418118471634299287293361643524376454167825732375257751949956522668257254131738437932462484541461395739797682624125549322847293671551156319628264583537882744695515946421157376742453999333272225591135546257681452438115424531129828342511234167245283524686896172676392741284747713967948351718725486253599997451393569542698248133413836244229481523524718886964457179377137821913349727453432291837415115489537624995335416293158952182834249487742384676811593345682694656993278481123618128427514161965335164658711343645212253341133553582647342944386459475715146967477722776679369611871397325541611551681396729961161933559492184815182146676754485659435182572681331555292111319264226553121289433743575956336931435943637277213815131113285249154928924867378742192672723155216637886974165225148771694368669634249496573124223697744192646972585479654629691436938129578651377422293357182549813683671841522529362686774734744254455399736188727734584471253289191722323256934837828813868132265114477758464241878162554911963767347381214119398811194771643519244249579113954186969551962148721184577942526531412852115375823135179152951413923115951654141548434953527741973598929395943496375614948494148571798223987378842641691841262622312196876512814821278516351524831388359922652721645373866195248144288947564579469728675614427236335759664251293152375131155228371983491776564288682898627166842246977943319347744274366117822479426671175229846213952443938657446945874415517459565657665425561723435418293729613141353453976152651271923723432328623637248217399479134636867751249618228651213227822431241498424919131722139573546698314714148514254941975854417199453586413718751569199633963158297464989411737888625419147563575868658663582543636735831335817819541643191153779787117741438681952965422493869775498336961573987777596214466829537144195724474651924889555688675375925949126987242974381692533365169853281119845225374694312889382948522391827363627272811422314262649583797792172833933598685565873965242271398196376112316494845598978661757721299767551616553192992292641617858879136442273416681555777692131629319275785426479115285861171386143323339273833896994636126618714419958329483656949577196277379284257549823258473387655727674977666451691554481423799981612556582635332818848539162698996117127216682557637449113851232125576172626991284631659462595928418797118632455965513132612584425928489377421346692457286462443975277126443471759594169595196181537735765547264799475341818216367722565963517626227677325986734186133247611613199821468238498216459223569816753912944339534626391316522932487137321966925478941124391112895789341979124511581957616226845341595485959584679199333882594445146352719921477292283121134823871398614861759789278526676415462226351142251223663691433426768747121379833152491599993976413573445283196582744986481495298295884998793599929512625466213366457592934131317925174977282168248313933647757624136729885825281196578692121122346617984154612388269687487934153342695612941221515747529443688716563549762965474632569854847123912346168127435977619436531895243559815327124573343663176531979531416655323691249669125114528567142951125916721559692234847533811429626381356591562983132492383621381577866162997152584291767718393174426877768251173941214211562449212739851744214315688828877644915185282741521436564851727231119853959757681891556448154621152312949196554159279865249954396472716987342247148121683772222335162436539221383844373163231244886795311727195517188452274184315431979343574856555269293344164683935632825831763712824591439236728687229413852135747956511917261164563297536198667811345253624458416185171735181343258175742959256615545172698617369221421277642554264221686473148818435637572277827636927414696818966491148774663764826936993365475828365314652225586938386235829193136727277912638698376289989782289539338361138787743135589268261111434234426285172732245235128612124167925121111294116222422788163942787616518772145511711978951144253772956237452794924818211916619938412197729796257825966118736951447363137446886656842765955749511498675425282725213688779594393336811193346676316612868911593265556931336177977397441944223521997553397275782257213383382851212866972641492938541517226414834975333235477936499359182249993868127497726497454943849321458477582641759292826488886791151291675685828722747896122445336533545676613629191882574593258237695941192837462347847547686232616849742621289769953112779912476728319682826443564691699657971425648923575937715239658965231141211892538172774692717975583814227451449632248761311423624252465883963366998483341731977339896564366245134445263193761324791659587782918313171723936432239225164558529234321856595212426547676357227625318597746363857134127568267975315422167523899523652552999935936923567445274643874888423661267543685917258251597725389124793561722223899595471925318814396485359264873219625566959731545161315441813752619529595817962339687325638767383458752836282546213455234556869748253111757332472472241278189464966328394586287246964229126448852374251997398969742578734529141867833743839363127849351646988171897964888148261359519142269929469588678433185237636517514972976354434552891941529355598457999624115713963935682572947452458813989611475889613557684627344442475925273823147718484422122442829149215773931751591928442147487346184587869195235988946253376625794861793912241936975347589762944444199226385373281525398843694538271517975615986532761318544671316936783726412264831379324232396722195383773168882664513593598963814118137346718362941446548946944645435446462717368191118167582728929383386677936897839739689516392294427669112117684763775356337924494888553885712443674821257333221647141971645269334313217674259956769568349823795752576662847484137624167191434516124152432926919969867821112325484961196266917719483392644469181277233492838629236198173884544268227218562725644591956726613473764679155815131222758898161111696744881153111228326223177432572324956436738222754376555521858652256192655674638156195251899475135449241921184241349126444872152341745158789626182321696166965689872548948569749242734755314282146985127113889844228746229544426615659316245678844168736218675373841539729279638954835734585371544493813159689973438446891273363813731883348933936893343521722195339392194591262382397343783478713424468618914674344741941362951448762263292953744464757138839235672663787235482819266391143752832271592141414569576812657162561434128828782614955263412135146817557164492717153799189881957792442737889991529495455427467191871516291111671325949353994621337165621122796811989347378983452926673839939572125438495194852166419919486813782959784684216938371851364521669742227426933825943338822419644499123176494243557671832572631836311386898115354622516458824945699785364611212834376825478458117444348993934738949299441182283776894259993755283276826443823659131454183512987578688469485627478922161793385792994326963579379357391928748843421738667254958712713126412367872375433465713865777543832917381249711268826951968577718839263765227659199714923137723818852754491893319971539153152472359567726836937341368638574634736395559171796414268972753279599916646324159627499655669723247975934727721637843677433535359236612919254753636542237448617971297312987169137453382995381142228511567753541996745214471345155116726382771931553842265715125347978223875727715982394428335641221431424938688935378494442471192764848713316449569384157655115384515499812819532378417883799587949481461822578866236388658921145653387399674361827451715171131534277329828521226463119229141333362369584597546513754892372767342987334671999427558586918399527227681627445931149466227454616846479446877691723825271654761248698712853528984597747223956791655863413658751953593891833617391228437138317995997732542881722112246772546211887535126528289921417643326827973338282218764292513624533812741842181597189321948839196676779286968744769389444637418252164779274491884476954146515376553497452239768163616467874429761124654695243293719232559171845138883811538667272373674867515865525142811384213185556767686149935571477918591322462447736357746671498114844583361291218783379576191488113988661425391873637563951529496985489688394728116187663411151891164643191177545284235126138214988139221962756194542796552315344235911447337383566719944281669128123261526474946622154979959271219254617566391164567412541832383971327512616867334133377995837741453632897356661418121428693664116417667272687527214121288666214854564711834532998157736274587767812781896726917811354894573986614872327783332643962249767866416972553637669685329676312914184958861756754646688573476259545125494286951615111757422969183285861614436169363944584394672258845329328495213299738656521183139837194963613475624745415471449471492547514655523528249757384355433435899426287447773849683548165927376962242174335631319479273635188387133621962387342847294345214798178331688136692544761888763567352363611163936982912547688841738246873664441599655495886911918556427311968828215966115913235497192451554249337831543852784228164692464823761323825599862411771121348183516797313481228266874343333688198251932485931582264969445471266333524746836434312879873343388119537633683898294874517261497438721298358837525743427758992513196337344771238163797274337959244487268833299456266946584193869216727229192662282235658626596475799823932921915556663334182431557774546165128172393212344434328221352486576767818628195128469928448761921432756572674979156338343535351459493182554875131855392782521289177724353675545126537879347327444597399129258848578235367717714627486481749752394149562864126659147732953112669969264373942741983439512476413145212649999727321985892445755679259962594189157843424612189623121218584419181611731722293352767874562465887751264311447775429995127359526676571633811435248449455732254214221252781343282757249799121191331721662648157624214512227174921675165837955467154331386688165818383266123812553133147757256572185182493782566244276268835167565642121975724359771122365418371797794442461528366743318658428946175728428774997199367378429734854853193839447189458551643348438322515393834998713854144619225244199982122378997483219842122532983843286111248951932454914658277592277273624812622442271517464957645358272528964769541145678151615473136171985628188249968398697243278359456617945181436246932274559413163953783187451215279297392495662194329828956995197691125873678721141662993365878418216995365139293174524454741763262542112551975315334395221872216758969414822552681565882942989754594789632881436363318194927372124286148365147179364393134219548236333678788345823384427663741595513789319446889311352856297196721478789784596876431421288252642622224475229216598393481392473213346795573671188417638347669135134734892435531923227431525961336265168137371194429234618594394643912632627876371889365923381914593419194543366555717639187448141233577273514414243418882582282348317512873269132413568556854161573696284446286125811419441714878778234514447116136144346569464789972592421752293656112393642271144686578426331365777222329835216133274849383226516847772665828254884695956218925519589469488924191616185963338964289317747786812881422958612491867289765758364746813491436714252223317964643487324946712252629227598357118925783192662355149432981533521153673185418366443768575775724713119334514186978316357858422542742963382989152141898962879117611273377737698665648353166866564635222399747413918238827146574234552292395662377532975951758173124928124936155622671333197695482685558523911778692176991697214251327557168134196148843626328494261267382281674911956316285119561751115243946713529241997181654395871233275756215616587824529647146921743626422681763361425588563326581342664946461963952262961985613782299268361442382237842146178458792245238193596689637692171864286237861458227225663354885263483253616382611626249313233461335321512423439112429524641492217116922882321211328913944625493331326292267676318861954342866954342316438211351423717417128265647191756675671147521276597756434661825552141847712295994843135669717426732264942747343436666226141656361582341824162547329944653743131698483242168285517381159375383946119531732694181346312653871878519163548722998716127395891193722196127624895992691724994581525641749839398635456721393416718625293968729433988795859391863963945379196365336923847579771796923636988829756424764257276436527553283543323914539737316431888548733113266457264416641369196595483956479824498569635174462419747289612837311462785253127148594568815318154712567413372889429548451682912157846235341255872994658213733383175372733531499265548948934698384751756837211383625654355527331751161429366634884535399889283195695562136597313525711926385177442741361369333982614256691499112521532769449868337936974194131799134474917496898918853789319164642156683664419647421686761754839549491555243546663479632825355112343359712191438196193163924514239681328135236698275813114344944243462425227443161793173272171958932629747145628927293184338198623818833433435598273577429628713852767687935953468312424485531741799841165357681185968422122229513866725912578919181449597195135463877136273732525144721113482226556957595282627929193745948492212658744289849495682541432315922538463432415277396837184754171458353415123283163417545758937577681464361193588994983282645235124717448769519158414889184414467773939549453552735597355194776317584848914227424357882584133268491165897547684351727235873164658655844364164961542997352116953373262835424314953678957594686763821995655774112489124453461594177288254159744978915768915484698221682117947779349299311874861654726857486224498214567648693975549952168662357235313349138517776272927148924935937823666417294541826686227442635734961145626451191434951113458344425241378438534729248716122372717235151716468776485113434711624259776841134328933528311823611279224978311953929896211251276146485648179242222278751972965461398348582221443135831951759451543142872223595433419821479741521789342868565646228158522146556682799969717336328352662139917236286596393854631963168685951248364993239151788526615896798792444741674783169356228586132647621944438277673982655567987119373493544144265115927133872653936452191628173929787627848172671666326326251434493149185337345466838739536312911823295388394336159535539829488436918366374919784883489581473432453773967686897564668834595765178595648274552131546928874381977694561736555448165829287482118382794169425384398223934292638636375333859425192371154414297348347779198388986463116553486175673374423541118179617734181328416689715489161299531336374667286622614331942694151893536554844236226552122847251118695594174336849887278125311981798321716543615423846468437344412613579964712783371779214538256846112148532271577131195269867875839394896135449369597439682139582475825845462161189293384454858662552554811453479498482472346672836933789141555763582358555833818838941572811143772816734536954225597823455916166751723966476622138669115679588989789564851969158782375211763735549333475494397775432151817828154829616515845133528513281224585325271587957297411539777538799426643711773554547542413311311133223834223211438686334752663134194446819121883865493549554987195275755913395625973129981461833853696969148737747286655983536684363416136289544385561251327918241327812511295996354111327779298655655368377874793315718611336974593698443682947579731468536372734526481287714156341971772924283552123729563439363135449159524945155615185748571773985283292267117267935751152917115231119362634488457183698961896586633978928627198319488488138765369427473843877699131377963377231618212675124358219387755967399193474647514447386785557537964655486429228762184168914765745385692874921321173262494776416561833846936119716119272864369237258299131426792259773274257667793753963568135551826244273735577825418473999462856438123628245217969673741124715633265813839323939471911713316592336885419596793488537442858257398431382147266621574182451766318922236457797734468454328724285292682442437612631318716332754718437456888345393262778134774442261485725124667547743953661475977747784951995375636658216692341364246191839345737278275892453651161518853743441951668439769721633157823689624533628361337168125991456928161243522734763456767765282445675791655851572693661426882177638561739572896564995574999438275891834453249275415551569536698588321638723785435621195561441222278532782521573116815557578639743913647971131174512791254332331236274818823186489825433817433344839821651552348199522272562315328646945227358977635391574326343211621523311394978376596797185732424646752179381585466212787417692718421187142965463549921844275994588535686622651846981516583347277339462715233776454147125981541353945352538717555596873877427361596796113545614514853614794592237864934314211371877742752845963993332415369622117566445628725114271615557828226175639512441687643522293724996242474956846955454729294912768362374311586591741222327149473518834172971974636292593533891335955865257247196614618264163452315423673436134813369816712112273289784711268953316821724639324429738636699443845669661823986731132684995428158848756384316794571341472678431118874993498718589654388369288426939487838156185836999225551183575518715126562682662332582315139673157295167348747414282693284196975136518595827699812872453245571651241543157895525417299833275843246716466519372358541143226623772124563586478969885145528447929279725259821234368964962199762768721619339385738517569118175243247273189635269732897848544243975327141955243671372484381391422623751269368735849581458769121838923219311512473551315652915152846518879215976597132452935567388295973845918828422832188522118753446233611292822141241924162215113591445164182339879381555691139694767683561314353117712376918397694455259716458917786794194123613327564718293635243237989851292623135787776611844717695215873342483682417468271417754345921434534748194556756828465229713845929545933344459281468136753521314343356651823444344964745441125847139654197442447671977264556965528368349553934916441319913351664283192545454325717775649741584512651779494524976383448455426126156664449545631215136117571319848563425866365518366912466934781439162722716562646458848353575857175288351792617566473544866617679361939337186779463713721992635136765735685673664555666275199478751346198447383247499921594328475965352849936592953314267594733429238514316999496649546439185948391343526193988455867749897225486518132724736533837355514952467586554253525171936687363799857727212818412868215473124595693744913622312463619163925177329359628767382985496325588712178716687455175661412995829677615339584223222954446913673342857459368798353985353555598626125524856537145628893237661769362649431751255966671879374676439895716386436514477681846637516962755187649214781181416318596157636394638111196438571888425417379116482946157213977273695532865823368555131669321824542457447994247162148778572586552189762289427648549323145659684744534792787842335676353423274769
54112238423945672237218195824515164498378483719556386727259719775883664856189657724947786554258378731919328943386498826656732225618745423445269356558217923634271753896156737854921569768596545888821921549216966859536375445239265935573179743384354224795538443784236765598369285652781858397941515582661645417299889668231634683788456722753361958587594867671191213328995389719625635892253979661189248531256958333426129937233756247188622975636633855358497662141434179331523278186418883683928267545267242347117135715446495558787734441834453395295669237853315157616278896953725167558654733728552953557556759581229111872566556637475855466719416923377389162793673699327186535537595555458423542893925489298256715411971471737688383223173772542525774522163965296662386482416433348736679437316595927341779669981692119795671892653976764129499411699159743319444424257234881771632429758848595751912997262332284795737148451211651488573844954128982274115815562128131511239326389994418525172719793891663729836626858936875714383624453473577895626162934587475634423619561394868929586241664336819164415797589611151386845924898958211848533328675743657616887285628147136562599753565928339428842778719752458783231477978284242591132347858632113475859616414552168845398693913351387552412149871681599267966617795883647443814684963678428995323629556611629974698788933413411314569723773466961459377468493823923594924985161228672783298566121411186983495598826752696817883746946671611781423579646668726782435194834337719527113412297327492756877365767858399889529386562121439182919934321688459129113947893611184536364265224131392992838197288622224583376932568737375719566956498737256979189829271674773591121559211562132585132595188973599177293254994986787876987973188612279983198192195999274474692298316666322781433195675717528429675225589383884369169769933161186578214396258896676932643837538841756742864172222899768876427893217652368181577874389153126459146892736111889821416994728768275231824717251171416343867466198535354739425528251287873926427155169279249388691416296551326736968557395993792684819625629634649739193742861168644687148587179754189658413846247735451474553319461379845773112645938251474913883133853468467595317684652479425234333289517898475764854489454636724981185446467574756134377156722815976631886819229125115188948345929676837984515342385694848515213127799841752526991995589469413961272167437184133955811361953497668756853386632273196866256547433999823677866532676732165942928357383666276923338649449654644258496623242654635481271683118589126446732447878396273237635848876763393923195188631783475583864813643499314848581644686696638839719122958789562234813412267172788392284986525175398926553171291329932156562948591569925484361485637743673793754243662926122679858415197765716737565452417759491956131248752819872817779774798946271927666194438589837688148542245619286486713214188339897698433496319373811223716362749462471111762248878277975367717381678687982673479287294498461111734876523128984774971471417118187834694987642614886366368518645339251559566227476364236711991756971838933911794935376475347622545185387187999343771441221748729189635732716313185247626889157697441895224388576911486395478916956758327295563389744796273623827684832441325126216891123965942833761597131578282763516615976583691857955264776223876869516513291815177273724834626133561141549898621884574955683754578724115355853239526221251974391478457386253634659466376719118458389173556187925566349994425874797585354374994472937128886298718962451287899179934662824471759225995963869251154882984674978541486664838942319773548136273382663866123964582431879367779374667978682836954677816866893113396492942786588983449177299797586279329342917583788738631498784491175683376817894683743247221596929382352599499213999219462657326881954847172656294487857454754868746177595313826978648338334612731747778581995148499758215714178287216495183584611261919733393543851686895487871622861168793656622997197488961986785498542164774759671567465788451391267334176797976444255575657899669419959415765443776345634313922643713648235997989975653864542971976437311898976911367512193258898192767131684877323359154839741768572396396582163988963537224568116386148613798118852223942299196531923164192853561573179764863478277569353834412679637461315589433614622566953929556682589372795834321311945159729967661991949955964328985962436142412758363582748196598658493747998241521932644216974826219956511714652997231673548188146491479342823567293399233117377727315395165124773115768789831175299721628333285343844132493564725681738739856651999721399917471389383687579582897314569975223342399615386225859512527894854589467121161979191758282985242879861396524786232942353961761561678446594845887417432917739889751188966111866835399396237195737131889119884985377586967911981655539292255396258759871786312972883685933358459683557784351624579763989894998197691268575324577872725896255287582922981543843184259332296127845388757229739457994616332963797979552189766824838985875548328827185137528872919346772416282159445751299837288399536533517645724671821413251677271517849224469997524435887423421245212971667475999488989868238292492555535696787254175272568922988776593211968762815486882814486418171568728265456882118532618591952158754731626291893154795934975745234156375388547738674141411498765874482584324358644548692787898558262982523754384841945433123374766959648291884186872566896215334891786792287976425896693465761774845685136157422146398127334237372964537641154818257312753236333458544936882844697697833349914344325487898823667935473657884137261263722748638246317663147143951565457356821997528618965166189828957814956538296669353847619999374898349956528436137962643364863712294136438787218936948846843395457272871376288114199735253817388127768472627819739718859786252423647197334635457625577465864736982882328921171869953247888874641356869397193371575454951821178561836598974688326235346675553855173316162259762154796958374766569881565466593717481655625965745787444223533594287266278228948222798765415849953572399289483855263888972632361948438611925222669978823891751669377719978132162575653463823261756415316928967483597141653618844298714879926567582554885791587626218157844364299715198975973395335839188393788331923382794657867235997219118727961742222174129941899998315789815485485197544485618993418791144245728147465537752545451691151963878177869879571545497873219362838416318631739629649187728839636812128137624556695116494742423768963745511749749821957255318781619995643922614958874761337387279154274118578887574324667753595332737673851791515238687249724914251199295557918898273867313328587585534149629919758489632177249443862783225212874397477288158371436418889632485779973829872264642944426854197716124843289889972623295795831547245645651332568886294593726466568679637133837839996161453489981591926196515978649727624683224597384489927933554391911368411936937112393849764986614773843468595982947911367873723168787676573673237444634232968617211954827656435172234811941673467297411971298523214971355484292965929282549261687618415696549725377415179961177844619495965151838145279246233882726993381793563679995829669533719784615661565386188261647113392442568983166983467999134197587796494981696748244477324569498854837667154472968112253671322289892228752981148837475349166278595117288971331159413621753932621177693873947686794827868235367367469998866921362855721751984481529138815917777691334448456154934988218711498427396793412399951415317326798313344515854735774678635898324849323138293482523997988869253851749218959926713669539979195643149634564834589983924859622139446762485829339694899925677251354129749833987196861428284437668463598959888145463598729392436554486929387976492679577191111575948182416768545975139215784537264478853216988933395577497695941194727358583172223529491659934894877486345683197969129592811733563743198926995563737675251985934476978542419694381762953145997273153874125158992185849393726777758743326814448936927779225566589637367476841462399324141573993353416481411231116942348774536986794228353821359999128973654767841551576397835819649982952219936921677491258714477484798766577223473654526795871446486254347154995434997246345889888468798985247466891562158373199277937783728132419755585935139363243784626841598317357519828387966614617831287878891354962975798627916223676578644589213985913516335538366531268982821662388862831341227497287639312288894867189843631117252277226485984544883157562581632294179819973493433882961548459745773414237428973939464178978919838681493243688868544598148411198443266937145563674354739583611429966624155111858752373679533473654936827396668892157813255567922762285356795731447512753933852945386678151661789767119132412728347566549198989749398294435791249133986669695559721592968949795975342585426533751338552766513338441933537451288928312975689532189594853439386786627574771841286195987271319844161241518315735999511476495543897387462445897871567977564662226237923985271197575859134575862679945792246565488626528553617835182976921481242441621491899269326341753416822269165743365151365528676476431211243466857281963217494348479176788313693385269759383927422945675337659116312716755528534813531932682147779874295663693684711912772629589538717573222386514735364619682477376547981313478117586653645915619788726869531958444283656198496999471693211664959681542699293966794194687384312643111326292113673926429317133159836114479988815962231593638728116751128745392266338769178922923946887867266295262716818969596825341193739767939444741229662779487566699495878189725812727844754725648293129272418322615183151628341345515556997541875488379878455477837621647249867971159997264363987996672923572933167263728788159664126313621147443348953193366372621959569231847386756752628435519473358826521299689543252395147781165777186186937759983482624694439993445992118843544772455535594597546244897929451388395692187376569614763326494735937188377786425816867283227733613734465611142616692381829173195448865367666445643858956177549735534128145881911248764581148583494976552981878436689986525283156286382111826564322913616114866539643994973798845822721243827864442674937935995233375713159425793366531153975721967744687571749967591718276466938294264667278334385198276137279377167477317476248658687456951244552162768885193583377476976487983815485246699945826782932595181664725479454362935356897686787387673959971289366867422947935457274612189895262943529411788344292228625232769194933211767137645569995671524982968477656264751557755834789444264192256399914528462583259829191581234267539382767558372265539363528873182339168421136333626893668925948987121238769834764288221548611287123449261539283979442919168258454487792375999331968177731242591881482278214292282298789652171558798696196734533265298639378814718948694268243714645149968416379435639181325184761675494587327939531922118612637973619135778448891771297694736858726899212171583299132836241965854644131752576636422114541815663162999855227375982811419178117312852328519722141574637843691476983825197893676191352416878436668139988867164764176892274145853244834823229621423567779845915312654838262138375418981745522724827677285484243116489486436578529892813462289995242366424934643885815861561549889959395799363457162186613629542956675995354612488156921486794786794714268495799529622365565961683815592197989356868278471892727387863993234431472877583852619334168223583776299881828985999165465148778952745281254186733848262319456711133592815239773299188391747992414395978969319275383843762491299919211874562833335244195312725642159947642889512579299241177293266779754425857469971199866676435782624881593959829829192916943872183891889476947443348384484175742323398921417615972764178445565757884723579797818884275453523623445775494952627829858155913952129566993952785398988184567154194635854856285793367799733478431377474185611997239563141239625879736989436566433577173493771155285475615953423113189854398962212148818896688597986284598639589861956585432829512878692699147877742281796249887494728272229111656453413327795462476618662367351751992764689328756442656867842614316575883853141923815323872151189826668796548857335922457292235967476968868441459277358773194789741974616599868544486456837819555929578198484946835477641665855661794192551765163114191348224655348124733713459583414279244676558481233749951552449176788225542675575929141632483797545297688598691785495421671114397864647497359843392889224418285119787548597272661563441431738229484998493578356916838617318575967824976694682138284928357643616429945654641877359761938183745383996719817946222674916259575892122669192182347797975613116579155759414975118941779576952332283935574935762667492245363572473372385393318777831576988978672186733198533254634481843133943732353897291139569648474167899936925979156568867415472889788444866366113179489739336547711685295898999968746863318948312984148812514887692656412241168739368974244487577588176339513547746969143836532295533276183874626943726457532721892266789936632336826989963815147325371896421474752874655919458613934643578152778299989561595899483195895612614119982268959425877566176447831765785937887562959862168449678971384396324529798629919611711234634541318667255565687335877798989989111639933269427951641463561275243715726752488778779188891272174767747886888169324266115452366384646531793135218817891795688799484799996875393644135198432994978749577695357185995869923299798778589887888667376314363657887515157586679884434371792346465659893924616638954929896511928446899774515181164568376737939186972889478827251114174676126923376353599946499287876668444164343227615421415722375159848885573923975895597675455231579122861836517746671874136965869551473657915442764351946725181676962166475962387427665118549326161169333192948999135462897958919677918584119127337348217468181678133858511183783736742529188995299296493588553251847752223396235742382268997398962324485936819678874997399927243741923686828573235427416781264919927452418129536896591761592532841695424414577892866487953618376521741546811761855593481584788844751367997246397327949717338897186669635655576517799778783369831399329568252136263452223852476584337112753939711642542369818216574688959871783725865837838839686767995873966815715221593379978222594492541263671676188133626565146629641594758216514311937144524931176843988523658461373555861979955535319687633228264319949177569551552616177721518791998884152349767963638358781757214845296353666351219473428712655113838859967538549244992995726374873611134657147622814911113538141726241528781776449292998771813697254281145749465475374513452164626244523359876533246839758632372588223144621686955272769717282996243678327916514319558593884316937279771688395867673143316628481542477149959611899897636229926486855445838866388391196448851541131656436667588633253458421514163359149563632693988961773794949557148463345629889327767926121258986228759353666875524475112659515479671365953354741366997513733245579761986743744198938869344687892829543984445444454157641154388871471528616968627112368385122676959325946437256738157698617997668638986662186493573486887275897252654374198186666758148725376574945119685993247521337381514587874937237128864877552292257374996962618448589938987165574132117498442159716799354552534626894755698517893935641468953945385459215454647849656569621825462617772513997229764162354431154798755777794239763654154918818859185778751164525791889114188765315955298753425128379131898756974759689865497814986282724634649487482663665482678619891528649938955335248739479273192296965616754233876513973856271448649484815255911995879465497529997615222542633385636241799476985594371973354428128418671483589686855136367535635871542972746262492886959599437984321974215214479464734119315335655761729867324183129599759929585372142975322211927759225645933487126827974211141271822731459679229955893728398826625627389313755822878974886659856351464773588641489816866623976848257819253744736226796398211379925799386659267237757481589168727424196541196578543823688882546418639778779917516788393753365832126765269686857125815738868931191776872837479871865964924179688217295719265688868638836762968155649195177441695765477351711827579487554693284197257791517891942939343423995917798626597225634138612132275658884566332546767158192999128662779284153954425131258937568639881439893273512198744665445922776621156556452283133886925692296485272247221151982778329822896979731593648658651698239276148857681647185844677739691153798817846668281414785177978386462815271454897482584358768122553239658597482992824996691679721991711686879272182492144951477549671567984619911631924594211779353357998259685475985197118219678217894459813728541591361314981442366295911479754657355486769255891678871161364657187754581917542958744545559639944455513685769224925739454869269389345772682676166119926879635283878487838135775151568691289518588883951585414115282747386151519398398155262165882649466552677695266826912934496373568329471522936823122458852339968665115992247125786593587465533994452631736483453668919747871746587299532775156195788932129384516757368754598177485315168568718843439319419435985579953119486978793732847247212126586114932817838676856915597568924565659858982836889999919474734538141652631927592481197654493993743849358422748273188695529187497796829327761567897528773858556732461933179376618694611193973297135587979419949581859864382764478187594494191585855491468279957453996297748278758256869977332633116342836518339832599197693678176149349717873437572137332712673715939426999567238311283837459197834715389793924554752886974766265335387444619812484921595117581888374746486428694668229666127638472588791365784827781682195279367953537967721981951469865581131678918559874873853333484544553972828781545347418611612497867127584211595295866594645263758268941861871258113372895777221162718392661783611648775526643995529877963914642212165186882525512733719623329442544346424853717983328276987529714991297317593184673661777679711827448559195695878759122879649799255334836757189865562697649123233894879571914735416863922836139891152378435893614421448329153949311793833888131836384285486418515124415896187387116459557752859638625199472979642141824819383139579786193523266324696948949369648876649628865578557439654395886337225391246259122444711663175924923192526282656762775534243492288554136387774886855322772764236161599367458687794749886852369194641397193932112423614523226975112967893678628574475944551268365763822295147632141185789168658226459671345478557496946672613965884863829426131543734944828414342542495611895153276312126358851175183947285612575756231691756199533853658879183364723761827496218177518293751437642564883771816656732813992785771253439895984916989965124658834983216239686634389191166877984651563745487776345123635559637262271271645629775199386387691756274773758596491841858224552767227427349526389695785199742916462948618228355368888841349129721394913173992364795811673865463918483454885318889669663323619796175924949355517169381154393938297272944654278565895329196383918948854532949322128139668624288686647319884123827987454378151644784787996826998876773344525777952499952451119962924666812674175629572544736281578184275336677582978468716673812882162176981549555467238174694487423618896868232967946246786269744789753363996639326941174782336926341995469637996249651952827895536571594869875187847466997436163859576656953121993748138479267713178293444883399465334483285573798729969579175747769137686829464371858697933324761125628847658983576816221441584523229598741475425664933636418814467848664635755784296218827173229989322412223651325316611678855137946956856241261177613787378124928871768674189862636973756237387631677663175275292488111577825989148337985926697753776796332199952947178239711496432167429875179317593643317736274348616511418435837637966617918686639748286955163997111666161259369484535636592533786657478111115135889532984128198329634564787697916297628963848989635699951494633938374381132839146964697193264556335965222669597657578321131547175643316396435625381272815838938226527393119593424834685938711299372335732486794239919215378464957121638997892295488836491743911827396671473459191178937165614379387886513663231443891968966868514195227885652628639573188472798262945573883159658318833796587191649894525465983756628781843254112417621691878865144854936123338789739138969963829754638661478587597395533894126596189852485269337176419912684833999377783278548567217434354683766413421893969877227588147256499161832468878684795631339254266395874258976392636916577718875983774638429198642178746678817831883487746584159419833366279354388594412286814683778749981179728545254977974466353859186168734742129643297321768368823815199246821416448641179896949841964569729952497714538686677137568445824759967676457643277678714352388425663895659964387528745983545878725585586814864346289823787342631583981846314312971318136753886286515992296178271494559956798885841336685447838483696188799396599224534388226882977396539717417546366928578557328611419429557647761268891778232989919266975165883323817641469411914791477445846218152477882933581393552799528943483131964448859623785316433635483917452243734925765472922584866384634943617539857271843389943931438227435982656583862384372718617793156632127531234936759551355859792796798264458662484433925643627315397937154839951947498436522543698674829834194622627565418893738533257273298731627469448536291797235879958799593692423396119661818215555543876838946557316525465485146822564216646351337951647777413871962684529661646817511877863323594388172123847346898758656415429791228892277328877655744766765914398517743172315878417654686772569669866717534938349499963177956625955298278739299929126473725923498346782917676679724837153298631413361831484239215555913417119919381895322585347628494961324278818981318986537335883468973767276763121219374179968134557743413925464312787185353551684367199139197857595885416495443971845894548816868349427196797832761936488554687855287154653698394217116157646459652472858863895494837449736887397536194593935626974574349655272287521744242249192557854481779259791685741358849493468854664754391337315278376625334137354879236769657152435673134485659793388311747655229937282438858568419313776496145943359353881265851735463642112799794639869691349533142784163417237998392568941215889585646921752754562328431464847229186348471971927895695494618794885268591937339718283854942973124673627435791117692686574727332988496396549877624498469678121179898497217253259818875358273686931932499142982419354783322912987688772116996667494493593794918949895644177283724466766726431123195531676856235942272377492993859439524828755864249552197886688563785844333193852664612957699318554916811867394412554473868686548127629695691593226452411971628865735353318576345114814532396314232586916274977741287127494713459549882519327712671891647265371179562871469132796536612953157869456147487737985135999319329272936916218524869334199772544941699424866242727816727856319636119874892689934666399799874533978556642856332849666687294355369836461394899675437937653352296825955977237642992335123249428799224566999224598246668994532626783635738237136555662842949224529721353789763856412679651452868513479373312781232328882794719236136379884359147167251461286572718443767189572293465623631583561732491127685963941259643621623151219735452988983487929954192512133113436868743397668167139776983127899616426349579845443492644355823422573972232849819359897717281728983275893775261427746859926626229248167541161916756659812413552222611362758464886157571817776916547668754458111753122737972262955238149868345942963779522322327981138399561863921295784371754783788367692835312375215882951935137451171916242148595518537741432325489966714686687987834174191667989585669812467657322163736898989483249175716669139815956983631665432584159283852342727295767477425866555899276352817186795287542552991982667263556687837218149817711592192925256194431217721237757644182919246329115892534758845587582117943587663217881178318894193847898782778239885198669633166989267896262814658273147788827896584936484763397171268588659677845911827229255662514586851879728916323887261735451791931868714928962124858197146599545593674341994772292335972367757281932695491888448532738858561671778715196845731273487736973586521764544476378895996285962769894823467521667428954119515885281173328145539396559499799997852353399428269419917262694794995928857756423935331937831637991437544594998189758757839684551516167183682819869573896424651448466583324533482818787487886826736778852767712999536467164673685271444444617318915493868329573899932785675671859852583923921434448577164988759992768347779914493371993456587891961914173335277842595524344725194351784295431291452334712428737879232969958671797918344567889761955817593748776162988814784734189638852929897658515628738775826467582281892828479848873286592342491461696658482778361554971471241146236738221164326697558956542475499185215896723963715164315123333853338681661544868875584244559342421762588966647945173137171851814436813471189697396974252729978412558631878975964669867892213236642483632866415499437826555894379168237698869818382488291795843848753561787985469829387753772312469438689253886876373629597119998638373193837997698335741872953484985527587526475892237235284525774775456648889536595731477996967569868251685224662188525399456637354825287829842799794411985897834651117258296625174854315492746384419338667439259282349599898916568668498712552252478941674853584996561688771663859813762392189218575993398952158986489718567728673775266878596639156734851564215422546896523967387641722931394318343312337518749251893967594676284559627365974493395919592271167951351353347786485124178547459365269589213343337572521941578885275597547189794418442591863635955732151559922175815923121625829444214194544657322843724315867361189951941858759771811582578969591612983586529131674941186986235968748412236387752444219222129959829851648344758895797238711634958427858388136278976925944235539185897914459239565719857297259474272758826831869675289173615359318589536172692436737466149962393181762921761284182428499824511456943965847713757246135476548455687587724571693164439367586251975131238392672522675541871795786445148276589929167549689732758541698738575414298515695978631754281229997514725638695895184481792229292115726246463576283664425856791143328734255797527462436948227474324692969629559972138773775282233291723792981893456914939838446911756767986968147514936562955919282933487284429814454282849756987772591554845568215883743154997351571242956341866246791669179672745284646969485922174187818876766759849583171428998924692457787256696612577176263595936473284546995452297121159849673147759958872955388113126925742593731215315921718677716188752199639931783286729873679881812918238979328955818915571371599857454875732598426165968871411276246133795652651175447192654613247432769957514654659613216384394224543696121384371314545287262782152972494851392112676462186513739147191842181113748584817528997689338558529863255871828925848414573776527565681553254728731715117617556995912586934265712717795474495243858852252366545413427117498633958953766779128515561634757992783535545592857544425487993239522621125738319463155566967918381676665379969377796387318969929861297181258877538172215783579753662236273587316155236588315681624489723961886825466545898758833489445142553734212893419184898863238971565383686987351674931748124899666612955253293792454571636265782925671317913217774161459373146661968338263764248112694982929466638913162863932818914113886935173152764523786881579137429847644266527777845211784783966438129415564544333415453976371879866632878799454415649729641437212284133899459348957988324533885361917789253625957971696985641412789745337294694562459636874238912439196746197526196281741939888847157199129261451869687495544927313781255487423959599243177752914997234742587223947816343942421378198867266592164265156568994317783948371734341926925445229646943729339115362123876745925689327476654197312814776544213659571424597839674361528627658515114869173865644666486772841314963981675736378262319234492472172989382123431681123478427916115515563386114655821379565171756976346144241215762647584716793531169777871559923486398973593758185985194382836489568743313734784124294444678577638484925616357418932138471553636638741945141611685658863982679218663399785619147879113291571381757755266844413299374933584148567717951793338595496797668665168177229117843971466345131128755764588846339395433566979844596379551545562555348179568881525376997311448944795999714416916576889126877199542322769665973533189726359863743597968313474115998625373488886239744782711189858947233823274676175889964776488412792244353441774368961135564458523127168118712178477742666787614861927832597966432984932495261627945579698917898927526674895839855518969348216477857171159241915838497195886922337241143892848951734889295211993864497525379227966441574231488969126479311851714994377689932789456358734459691923826776144162379255548187636486642643588761899889859176871824932949635453773828166391931388987868929677928349454642783162447477881351754919572895847422246478888672557974621427814117389358227149777517684799254548263516361887687476352226786891836143832767759776378651582781359576541689545746225965867638154229528177684893281478751781448765242773553996454664135859329228686217621978958776537729212423757637142726645585155111661857674513417145589541518723985241112984584827724377552953534317273118218951787435548525977633287976172849888997864356434394442834759382692888232759877729733191682561692884426478783271925236387538448573464483119645196291284395176776999572789469557323212597758956162357743819491363723655828538698618573296985838934863854619799577485946126619419579477895678299551464949494286227916291932244552672656488675851228984842833152691929447448625923756175433852886114847114769684358689474556651218935693281975133591122416452463793979698932444622135145768877883584376643664884391892411762572198835952648735221134821571776734178434463989651447422417855213689636376371512898965525296987736418563712479699984683759111697917428684665917116793195538247234233557612511516322225234123265615337955969583269622198647376497686883864878215297865344625689547481687862172444663122991413489388948332752977899844318186319622868626622619369433972825748859844527283668999224766142718337439296595651412565476364937382839217648496938635599467963487722629367678161298936132392796773396798787728273993883785493519815349529499392577154912117614915414925929979434691361436687829754681365617692418829616355729443393941746246683699784482375553331217663415665559321625982161455973765774582993252436795876735836744788945835977451887272562513359787899518597949261818549117486977356641187523782876575194496831145653187314288748935367194854769771877514875748477861248919912968479549986863986898799495579333181631258198779482831173427567575766158785689215825649685396839697815978294714178697153264467297599782692546187121717432438176978217464218324237386815277354295161775657985696886994778478549546492744957445218485296937563779442336683464354513121889438469538462367577213367312255879948363266562124474867872682423173551693995929759787573175627911327579194175454678862698243798384483124825438832247325176167672981553896898914887566583431152599266597184818566258532196541425522536962488175765321682871256121741928547963962495438779258273588616655925225252128419598369737623641878996524794991239776397145396381989327898897678658261492615267156825681431269399597671224887852835195881339948254488789894539634716748612268261939165354218986984993573889184446895684721793185111317471375789882878598526738586446932736495547418359766918598249455451647657962444558396985178354739763917779946643429716336481141919141719849942513856196193398524941997831598833176963739156649558235417169525383159754173269233584629682923586551719698835344349417887292259344116146718918543414688685278596486589638714919174144397382161116584976576821166639116632855865524957729566698955354985463356431855614676728762686737744131771533256139143893115538257456445864715496289783585168784326661689614481569773892149165567327176979791344228166858987863838714965216883727699338633146386778855834349364117161947734984141445794657867714877486627194894597733448554688799353115798917684234642579785735483965985992287967225696891456693561366538766246988585874766916517872922922853358869895639237172754998993741885418758519665588446962984247779692518372721377851583544938979872815319995277694681179578798686889362866269121197693676296268134448512125575652333138779942243237815278152391474153771373535288346252229455243722322194826789659782923174218976797131897485828759566973823954581882217347411671769776996234455182767488265845229532587687769515466174876692834616126272752768477195589943341298265354596213475332877266726855624619781544554673199447153566456344267821138986365312996677366219918825621244847886272977453588977579314915897257836659125184982859539932169682918511739428298995811649274673859815614288657693583255382873191624671468717437341952338848828528714887629889421535292341557999696463111785179864743444485196916923784765425637413193649823618895552221662483184796831594229544547779918649236963589387789495719724286626639826381283114399288647168286689676291752429463254118973192331493143782776468882479381885492171316228465372352285998146374615984343469156518992977991899867671678647612663218289271976664914881942214181287463162519987368739862119573612662288315829615248159796621789352417428765418768557387333859547351876618777233367439642843717747458574543496184993585611585927979158963939949159932774911491483963761434514998944124735162856642598186336746868267242638895155623757724466277145734333847289447719324361228982396689817834511429544299839367158759939115787781553721462927214679964726769563571115911632498356871471292689534577227589852943989751327951994726469287524419335658975515589616568148818262795372346754473739681311882142466492162476251589529239371589847625894957681491915143321993895785716365315746512919625853436567998688278864591131874458592827434644769947836272389736989826948476286925413958241592331955251978326896677811658549446816464825243244879219597514344837243355481853236968719592993493774276118253778362295525582387675874156263873638638654953213584586817188913954581566272435952799682277413553448983445985165771161372899742198892715649698529859936333479187588145299484354422958428392462925112316885579291226565441261824664773644615742529821326665558814597188213365572296947171579995994837752531911582161743152684579688686825875974553673795775396448726721147198399294972785251144735746979699129646612858975313479933143678399967912694842925284173698241697243661927361386194767975296899986728137529137529395917989243545722384299147648987362584712489437625758164667425881966614485492182567277127796353567843579241898138889146466354631529495598664982617459433869586262235982346759126337124385463677637589831163696572948823432956857666517559665615117734953411894538268328917367832154583616157541128778933313585946892936646648958685629886296713471249431713152295171814173795828382534647116981596994665772344857479972737664779159482878382421795151738735677728142499593972192851643623723491418499246796625427775585594285989117715757315652614927657136389617448948394142544444624129933599188398859959438791998822861539116512292763893463532369975865975915219858537469174698941941994494556431372541885727665364765386929669376775133156462522747278726486552165323696225161836563597414879386894166168775814436916172412615149788488276732489438379375396867873556398465332596999723758654626949438231177458745744669976954287415532871878672217523426269811111458782873777359464867149836549145815229969322815572919948942537776827788955347471568877579276128848351922156779473524289475666579839554526557587417628452599659469318515847446545811487599752349282858229974729819998856998289956324856317444856442847244628593298547262655684637711484873581876539692926614469651721116686669776488217746779776719297488279855657334532965391597427298628259623928713455277966996166847825497482255883223848971194127552615134149685516483164929134264478141612973388369691735998915794931769944193344154214446958693439188492394967462996841947865962836479797597389593213262325946919857791713988475176918991886127279951396662255854381464878487418272584143982177294221288755718623397691764943262546125183254885686484696121854469823632879547918721896112199335639582532548211718271542665595977155698812581766221873727653254637429638186393451659671687119456652235329987135925344528222698536629676346979415594673524536544536973674846526881597892195696799539736848862889399475212936279967666669861227766196873941396469414996995789464475747927999736218363436837621469235183664217469334441272778532492835625641813742377271986878189167598753284841626318461551754911439381494662825681382931396149688456428448377689379286257469765947125613569447637657865553951667499449829668118313693464926263851497844971878377144815183852226411851259714781821861528328598868684699168739293418879582581298728733674674788562655718636657769552716613762977551749517459249282148769134532723495366197783134515456299895121981952918343657791461277824856499174584357876889171931934164949178289839787376861347213451889647411714327962267227565669521551985478559238531594895477359813383345258986125762711131299213446191674975531567839158286871193275117579737481514922634419753986481198458757783772615816596457785599973599711447144763712567585873754155416726864278371857633298775863299235272368363638546493671923731561772891477648766167584862741514698393647831591651327557896613857971431722315316295411363238495756868185254367159422955856672665245595927879248937817485829725892796979273519679946136349241367886711544419773454476713421786623693838972751629147343589492888757699165742197213324321914421677436958445564785793796371633142881435536517116458736663347982897722318221865721341438874635147444688128881862456962347535114768733566345277961611232417326813139319382946839622671177726831188999647748457794548133928429498659174194975742153229982673331649652795228548962568729239713528139495916497322598578221585199312329977679172876944844699912999879471897975826635271498346479814843461161537867263249711229558344538926846152169643989998191778961937473431943573958678944471434717794638545763276592862761266812599279499787879514734312597742394549214234884418881747718538251654312416232297452723732487744979317452326641629526791344418921299769129756477917941474826968362344688947365985976911267572297136627113819933584618551623272338875231446981674428272639946595888955297464939845376677539894821848322531155647291874556884618159522911438912971386198189494774352682878192771757755579197372699825134811131291716872254811384677594836449585746993549469879628314269642651924189137169785737763527918629926433752859153388373196956238137353345143814615194688169469335754193961214455854928876379299281251653741233894137327115424542218813388282895689718892148752285517165499588412254715348838596618119793925836226982246636453399718595979711412216938848459926649858451839811757236628319678215561515339676755668549464348356574415469342733797687137687784731599689848334753518636514568847165338329298294475984366546343194119289485785447118599147132391649779655744653278912453361449317494215775541596426784147626938179893294374579234639859387686177542613474616494239196747368546733862485592696272256115955157949314222245989922588779948376568646619888786531189487326945969613934459439445885129169313913877126436854553418144346469345437813218736915611791279731513976248655496647927796457973923696931888225274186246735729718564419534781628241357564285364393664169219583625787182133597591878152438338658229583939165391776536382328332224168453269964339856734989128917242511329962467416239859854472749827622757563767334152623266949694894128721983879538235777195862753898569416216989587514936895187725374885659234758711781227342876589682664915966475846981456175797954626932135383437131349661997634966948671324636278337358414344794853911456888422738988122357376488479179985594946447612664693752969399187483429441877532191614611888321877782284728928458871828861621219876898793946242351742431299315249759774149211418689271831986845451925637658267748973257653336394787278786614238625745585685832549616625191161447321525962714375427394999592334967255876827486729331658993137354742357897962786327388354198433134859668975132863527123196194662592397528183565659978136995779615663525964144955946968468216632455247665593321297187984287389148735298966319517415653199727468896992685244621995853675967496951678237473677222665818869813193437729754326134116357867687634979399415792617994476728925655462195516716729282953981435327928339386659638467178456893475377763364398998888751457694614555651389962144548597478748952769581768961489488161933359551697932865127257798977267885511979718919527767937996796891886873975299739234929185645917555695479442695675165983982562586188897578529992692715567161894617348215263374465211994923653146885463649485839659312618571666858967165438674425155453134781227566128537576268595583343766918912753962977744321423168759244152189132185945948283765528857854755419892173292491625222126638189137581132162739646499196755292346791849723347423792882592721376938129569919818893396739732215854222516588917234335476584898263624961734996172926382978576936649348867725636523152329461564777598241694245839784853162788712319681496869615733877848774852415398915914594167252861444953383156799259219552969869997873221915342957444256636522856351598612272295894943252277382231297984957331123989756752762143939874769899449733163963224744275431166478459444479195699336228811312536573336286469334444238739114423824945478588451217638288589272483754811789673485753939724756642917761834881212653768623472736829695898757918618565556868154421923854876735513381152643284137724472925418195326632882268821464531915344987519981534191669194811568816634654451753548458937425944937966273436721672482774389599331282717371615158327853256563439321161674119628479365441274872163854798159556523149771699648698682158249127725295793386635749984825386912572567747469959136238544811869367819176837617245943136243164982534993879785346593834779623429581828565278837254182468434653389935489896429244483558324335361133519636486984477252937521967273556438373388148956412821425436562683757128325992569746757657828582974114324694862838712496787296145936216692475643458159245289575711653127657463735667898617999888937944876698526895879312961841591694172811322466415235258878335129983224931942966527727393825696652681319869912382679985715575957453161234671611974426159497747763419316483563661411512562541751828857856654668613976466163878886726515718469637323947335661584832358412489738598836191569299571752926772535941275945172483252766825383277922576683687791221167615273146671965517734482369685187572365238393164147553524295928318378549597846273864275535632539158936145658357699778358665513811245172596384174568152366531676928394523582787589848794361755417735238645481125579826558441116598167997273138266578971791474478359588177415896668677282585244553819435637155786217983515767978459899822828413529173786557933343949985861492436128314795942689591564356437736687955163656711283694888214757549273438849726695738647533471868396154278295862616494426499328857855583368455783724473719365774975664481962291928492732578594338775941966167353738385275719162892788874941647629871933491115329775568297562777861136386862363914925377931787969793599753821312963774797957991372248957985124469696783747967895499717487541325249285393124353664191138861414286864124242249596769972496433524476459383175774594838229913453147265864412359792826968213775289671889418639754753256486874325473792628339875267928636715819272894118545561997842873974517797115846632246855449534123854312934214974489591761824288646112722787641922871833618734856652858197619449942885697728189547479594295358258493724464293199366578924725122468376547261644859725158611773268188772183866982742612939399879954894895959565267448568823362423639854544811181661487719498783462996948551824825648884389156333584417965623682634317775727197446857139685482781354179936441832518953616619968573399981176718794943987819196793327296965747999399794994439368638198664918296199799315681418521281216692542619948599518567984681981598581545722711566571923798774358422864791495621427975389288624947958338568238541252873568727759676423346248359333492315966975621275156174766922853516689519758546313435118983554784929828837669244794428447757222414799481887952958143655471698786158225772618126136256575114178988846385599192196697384119299843217883318562117867223364867186987846451432482372188329441931787774632638423159786928746915454296462245981388615242455515434132459689293616951951161646637198179967699648245625978363147237149755994696184853141637692113126288129914692837971929497322399254774952556325424115764368436961718587788854247742688736287691412669976936737752199175926169876731371328991377899944141665458228951447799191953928993494931537265644859356126869877422963827617642873958551971895628653635598198339881417213389571914883981424778178828155956481689835373718974529864927565619211857771691385389954557653935494993518447593553945269161258395699787963797989827451689938769656467711197746681975536395596629186557449198985213133854995614257661234887167495124377959133787561584157118645345432882629999999862287533671176888697226776985414535187138946443189722629515329796391814329649774557792248881727327996786939216328992169925627726769368861948365254257931731177917177365332417872926948685332133893496131637192539178475373856523992342414515585995512685298658441886174515189889768993833823332811639495682437756119882977519411125377792613276541794296692931288714613181187654726485812971996475634342972182169373291798553588155425671194529253626114252456149382434226444889731218369741821324696212257448393975111627798545789144532236758379326214479283157342859754878215869793547164697779834458165497625961558349362495657529636416542299355773537247147396764375978842829286698445199993867862527364539984686779323325797349514882373491386987839263998662283588877683125277323774523418272154492247223197555787895281396522719738725896467144397416733943631547969883348793995918798248521452111711963666969885779267113647565334674762813946736423749362954473878697273945319376533815985231818951323167387369312936697967285821283949745224239136145348778984374527416336955399883861263433286339499378181935555964542419112121475124154785782632688662815457638337648936463476355786466888943325371215416116547243827237676586761296522688436724591513945264663747979999872287245362445664992496574888952914918362176327319171149759111816617923882978937524932259585942287825263916977196398861486866351372898981889937322537194457258175976515429185627446629873456593869665664172541269466297299435489146936588949182117273868355437845779495435984796965752677943167956629836928556917867785165163314843398486796534593838485792696245495226619927556318412265857543235696996726895479247889573832973652661997892686683948291867689413577469965159833644213677989668365895629891359734257924846458811765469891987591121882937397367746871532592771319374215198914874786511727543633391563832793989965834947137279579478766721247369147859371874665235435333577276844713888839573359158611944895745888782956895162823637277117315256249456711858584315217251477832848568676285539669416551146769455149561396778888787387817245486443118839462796651891619959758448885431627393946454997331977455926877211296627732721754956863563718587461549453987223633959578758152548717643551238758654263333265626663298748992491187153592556775658189876754197533978991996677446543885456616568634546774276263562315168759142866658885111294285746719824566194659591339872273244315161426916892547296551599362884577982256429424681679758989798271486296691269626258713857883395885655378588277157622842986727689343792692861284588231849916669744852586648439346591494744279844988333448842992938348589646941634433737254681615683464871172971181897865921861936731166713934391873244681543686888756274567246653496955156759132921995487938383718891269364973649465945696874816779937975813847698629334547126197655491478627165324878592473624598432491118766484938878863767476136942497165322455434426243934631763345517389767564718549496813567145514262394595164294734434352784645617282887956719742167893158967851746696752443328857866965887334112498643325493454818239361715516994521824995297397157647494271685819285716446848147925728666773319378162677569476756579482792627377555386153864665799483693542634297927585693828288969541417329283878513417996681717358731457241972494347138548815535953996851811871497198893561391813168829396426174942362989728198315385182627242876585993489895668865492547157361849775763982493622581312522385821166546947354772883913882471616556663748116772986155917487211854825691736557564481739255628564444864916869933682495728667681821119631283326615673539799198791662239816535687472652726318292399512855982425646368941972216989724528168387723245658857271527891128422597392963134319432664998625593721843787357834731593876495757118851497987477889297561923713279474959786316965346285489635521671193282817756759966511748277945491663381331343398425726494277731824117743775245172193755411955817261594977921798692239768696915181286328232194861134356747524362741373451736496397758424942369364884292428419817823863219522898138317416483496751741694245398563539678626251941474383864861399292828367814945876485994149962474683471645314521594995135222715347673796178764816427762818987976373711972664275511788577562857762554725338642123283481528462569716579217754978844298818981721238885497911813629857719498576625616511553855656169278244731663258474873581651529757278849562471847945363512195788835685945371472827123794239997569568171375741763775465661422763552452772716469672641281183874263332913998796762936163345855535547537225592252997967877598634351645279713155483568126916659517499229987972743771146167111789572558356515942227645849928397975274864856484117752872471547296418481557576642814269218546914845787421198951312293611964193714534984699849187693555622318532418421218453412966299175934799731676282655422185268646184972321392785966589688879292286189414463638738377659255275829639499334415578648977943168838874695388558899187966256369841898974671178858886379174852745738838297688821829695514725778369898995147522112958159973851912887742785394578669126931728428428768513694277348421981375926983673893845396582363831198914777773448859766146664198629246885492947494284323855219834335338412548361479381331474961212875817165178876694578346385321811653875978982273996196749585769549732788249882774957379752522645652956873629675797182298993583982849649865659561484697938289991589282981959476758966185376991623338829977143798137147611212936887473629229788337199126472962998725526333914612796188899894664692549519294815178997368849429297232591917398623648264156213867371445877413987178558854171219144456195855124322148851252266668746445752753583762719186288711872668872439551843163988117343391882592133524772476665778237217822399148487449971747658488728142262765698775667446399966285443794714272158185981443735457986116564748377436432839118152361513668242827877679557272427517566346849195999973735889311319958431483738683885837584778813297257737247893189972412583986635138931642938118526519553779724614891141879746387148849351366784661741947836828339573235828698772754614871441983783151356488447485793687288798685195689992513227732753795262591861764118344169457565222927785317567795483666471944522527688558355581338276467849649172447526927373719932668725393987439171755664161721712676944222778795841197586249764365435814153826557471896959873445268892669625448874935768647939337519234789861615245388189831298482413292532744514383795614422791864891297814381813144936783755553162854794292375758121429163443847839872526158529516825554788652656691525823178699793513314738495735141956965914757762411262236823696212852892528535412531917987849167942389854987278916618345366335849752185773868395638944311499244284594816773997363412374129385549683447165165669851744134782169496268284692368919417571946958964876162768172266324356838629518365932341545281485644681961732935746429148668828499289753866327281312831255114683836795214359722664261263797554521668737237546953275874788929958163397444519382993646852739444799363588575556634261927611137819864878998211628791841626574442726983495891295245196536153614198286414915964269642611572676557617981843991251991946954961664565292917156942288734271992428982148891431853183421934894373122578456999533679767398285487383564465497653437643889128852593824886945737271696359916157911675499298545783288586923915751583936285172581775747432191754254489922274556927339791795686948494198336273376871723631652879765695155296641992981364786955379994714791945439599632359879247857179882591566785156221723428824672872242299389891865596347888241974716829673692788955455249743557555794211745963943569287312629953145316217963361465964142834387117524663977891539825843462374942421772569183142336777224561157392418944169217691698853276849338924881316711132611778661973963718849681512777319947815177642136892289431517951665697425683857226376143555743497717799366298623952152958716291279843348513685966733729293574362312437267316449243168241646531522659634897774735698888478376374939292536683731579857789413414312999766161473664886664559925831849536116773889986876871761855773457881558496454514371512722478482339139393791918266314628668444257918963336382699294957568552153584221412664751457352727939565457859897391751451549985428741947987843881198325873177898748128243224753774848489763346834961611567715925555761773875171164639636838281511784727165129918111199844676282726675455571646984554425743998973557881557491981826674753535366146212277936358656961768376661676374487374974887593971234857994648519523224152719252923473719817791124784463989619884186523459658228596192519427729545976352849966967496778777666456142821931956855958213488639434391525248576676396974255529689377668339412612794686817455798389885328839731752328238477734395847854498447358494216337637797347792325992714178839264919581959952462295292833524449119897129464847148853719886818683567582739627968362714222225863164456483388139166478487496172628663776411323926825551325887778284511513889222999536891531481127141631239597976685915367599714696121271776533697859434619597291936478142946354387796397321236887938663655515956389981869291648844135649114673638931691179785842452124228895836576745872267969774223287299832284197359895552583529337579669713881884775238353296747334641434158983982158755535823881388724445898673189889487333147338724732658821812833341696757541763368991595626283294168293636833526596662574517779828358871773789376188353161534335427974959711136944836569542247537235663394419148381127374211391733764615454754826716967211341247191269732158612848652913741786978665651418966866711249423631722454777669491363617672575335378955258221331892167538654515696627465981398688269717889334965674416265278316635182169427812489498572978112977375176561597871319489529273612866537992847594973213896929465291551214895993636522346647815611831611222782763768795377381123159898577158437857979468573373748412766842517564522433838531773966833597968291451996657989794396249488464873484687776428894446982978158716922756538774881625141565487798454685957382685923451929524193233799173643827997587121932213117557851456466458323316269814743878141867826341862899876684296156269351982829781122185346174124268159642588131411682174428998753744272631735777787472865789959474213723283925353486866476527754971999684452115685869913886542537597714594372574846899923888529159775237975483744791678927735489515951499432899473881487851876451769362646192184663313545744497638968453258282483792164531986583235759392861136325579769213578915732232462299291919164875534412271556378494331356886627785198566984363138153923446995631834357322883456227217465623573575284275611911353789185962429186855265557386798219858885591143991971676575495729883464925553645269369667743841328815491994314597167868752441694273583145316432967626144814922596249929738312111123423782833398824789561321711638512498453854464746814879925285924256155625727296794518418484863666761722686289366239587291225589261976624955759612789667917986252172598841597833714877391774124568766584777881223586767447649563898657593431461718135248149668285893918128595528692371637915611426584782223154625599754267856244588723931456889316352365399959876676352813888271465247619657172415384514216443246424353795487324547964562288428895874587628787547723181253759919322986131825839898868353475184267281746471973387381361579262969826539588326918424653128191973754783871931688593831914132764321559516699538351625661591713987195483599174442248758649539474547675862177437374837798286835176913155532596684784979661126139932377768973982716944263865197885274874257952776488111788231344519695322636962387795857367114156556243197617129988528879713879462748796486498796195177975394573758789216883717689897853747646828885235736264284764861977641586677669647496244564456823981813298113967864111597625772299985596655724499977683976618399191666195576134573894945593969563758814238667328567851348512781865941686846257474781944985268447633412513571788412627319725738371645375182651277684895683544312516214532549481861812858291329156741826498787696646516241579381536919619367179962334267759964676958363856957827269357521578772458977145732531691727363461626881853388716896233211646739573271267742299113444427489896453151457638597242254689464992391478317864686563321812368549512375485471659739218247966692546215179113196994238999653958564181945829665452851638189757978476111195785455245784344494216154813356313193533187187344951993514586445378118966392498553538885719462728639792878528695883521149397744227569546635479849486358742886956399989969483669233637919737186951438685888749559211372243618638222887712273311149817614274318216295693976591182819367136224298166525715364731883968972537997851782273552655711193456731845188739737456441593928867563964611681651872841531121459828649575993457467575186156791541539913925683591323642795218579635586566161547396799743587465977616721842491173571993529822848277113593764588461894245248959348432299797482323263253934738737472366474348661825846886732515979889667261982967548684668995854393337584349424959428824896122587139867753336199277817784936219826561141791351177971232894845319649858857863687128814442495369776637949774279417512132782934883286434684556625898493781839643378399163416133649476764697557684428276246448648167161424394865983149187527366352685315166329296199295294388789687583777891163817914691576967757733339273982638716566681811629395814328656341416287943623992154519724475758299634758891574489272779887492349679451872649871866763615228563161567327216379763699543341538128889518681122453765434929272511846843261293365158783889595511689879185795377193322183593661181455445976796841851189929939161115131615633937417312963778575895863784115983928675792698353336114874889653413859477945629789619186511581891892697242964288648273399368959699428451688117293556396911753166761369243812462727798885223275646125639121567334574168887719693527994835467687355193535248265968878249116193385949465981449629589186484873946343384516787877368981411329179474539575884511483189855432695539271446813413718429398834697952467761355599764774179166428999498387117619847354138416332872376692986625989349197742166368992114892177818897849419141865134246495892892648753114968925568577667444139817219241478541551531998862769918554263926376949537477954876326611681984955454379119623381317583691955577212999499435832134878417949361639192312946657785598569679136538268667889136583974178378147641692616339542216114121653421968536165826913895435788966536635575922584312485962646335317691542641118137276398521544111338735693568119437814363233326941327814756424571762858522178484628662316566275588775863885733236314333517749361523581223494756448273298733697364451819735572197256393167795571388328362882211399761288715357996321825364218649628195853616633749465749784354946937764179758583997168937951962876437521758299958664699726926158421631123948692326789517578387528734776916177787483622512816477238271879136338427259753555958679748675469325822961183113711448268857893992289554422988454149179768678548439573235323887226877267357244241783486837117156692837236557962558264863339531788625317146781177128161178564144867633735375223839326113151594969147581683548793253863866267783279266829299879619493879515955576186579783975719655746249812967256112928627932842213796611272641537877318928531811613855784473692955819251179778674561586974998884658212473967493923655454666171348148579359798778884847177296872772622487381765482254635991958637114933546528536881522479881946969563578616786886217832875311677837985747199779992847253462386821784425485155522111226153667434758631738368981742975785541334671269569633779445425368113114199143183213338985558195453724479898766278751488995229463661447831813293555576489778557271966918496461441982484664497274434761427568194771116348336418925536654992481893533315312846186998876761385599968558697356155515442481758975479157775827595482629797146578289755699644191918197684774952127815488674883438957478827832265749596322842288826237124453148632518617673268776194164825337356357619351749666694634884596394428766445189554914592715235588812115848593826474196278639989876485858122964715139929635775221294175114911785746985877661751418268625869535847152985289498929859752143993353149287427182167693335874759643259546732227491372881242982726814578595671744971641515878867695724239963627541922573616533874455564153851325673854781415368299471933872433855459638757668244722782177832564678539183912363814797185877825165996754675451133667447158763565355491366852892551168199476664942678215723689467922445946459548862638442252956996378555383847133198376473745742588794217992422218875728864913857529785776232514667829897799185331969548729434272347412876853951136294548565827376382649268465758682135248113887367241567335532922164231432156874252852475352672971894675394813517297379116655473827538763139185753465378287386871714674854839655681732841961765926614826578695274895292979387135447465986144343557277394667886837866155799997382747956354696996544892389378963648189455235736422714936811364551923125697698944778588228932436365123554463492868292228224219585818961311572351153469614741698821941951712886399581728784421415889998335735445793976728648612283181763144693421969364726885665716595794989756653374537586732321455429735218649887143256384675428481639358975244638576364726831383646614685746367119518611894157667525694995371938429918819499975171591874334623145719694421317556585499321465659397263765346777926489247486584994889587718581186617944716596263598911871492116993562999428153396168795384654415816772189384841762379759885688644477474195172226489458761574971186187526353231826326228175994271491798889359982422417938592379752935652721667983776417532319844748178697929584861848926112687191221621958915671498461469468517543499896145589739761199868442422915835621994351288831316185928976365945651762147685161691113115911885558816669629965457794255376958553411185535388798355833756368932293996294919669196942949831533547471583386797675966439628475263714516562226613629593891177674465179655999599418417417718883379972727347597249479826438563123653435576534889599739956778243561983991411261226654699695914522344186737971954175448956929667587195798965638837281987437356464795259641425798536397678361128416876125738815158299961391941122698999796965188726359675463483461178861841249889159448776437754772669677695957656524878117669259272927422753569693381185652497228629339426589314964861582658251151652341534566434245877925421692347814499597326793219583649368614171362684385214836486957571449748916556672894797221174754936652833556772312952466627381271716535534832985396827167253988259844891978176934242935673749783286284212329624339246587821268343818172581278184823885889866798549369272633784382794457375739543928431613733197622287655563469997652311469299949971244628954642134884143324581645479595999235829481931285574274611685828568887648189876933242256221897572736651737871473999739542268371764126594328797737379283585568684192835131195216274785719348422477547156597768657287597972321444819795981256544715896447877698313385993839368693731353758211133148377983876485925576397941842179854315148883636599587763562822917342848361544866273517412951911189322813569574285266645526264197234365124242587517423279935292928557146594732787149549221511579226693874295756727889432526456472342865994795317876817632151926414765639217989757621156417497169596195189367517932871463192858313355469367156211741613944346373134879927333532746353817158995473698525773752519338167665421719327542359766694772968889441947835511392199216272259662596725346391363139499995719987596373171345214287511137175192346811137458172459467846469981882848399564778244598494243853456573332966318395426749898756168854238711748937122255785599576494141773867331934694166189268369779944566494518366436938239681125539365648378993245159971724998894687586976451899967679634294698142198599257577167736938798923149333917745618286851346124898189189493248338561315792685984168889722331897744568488389624857478645913189612485845633987699214719821426133577389365115831354518414745925915394882625667582621498192996955239943684847672541616991682996664799895994734234586431846748947474541548685356692385253789888569382932228361527668127141732136251625795269949377921884467959414759644428925466639415461441163383532388111976828659635381926388616371435835954316941695166885355497668983896875692234168835927184485688162945993818246643884123127338891214725337553993412865196845194936876978952834961314641463933415269137539389424618774484452595797277418217672816126733729837989552156912832987556755739865389794845836532676473971414437218851949635294124577412136379887274453524328516242789466196692467878974548821852769251893884821537645871431212889931255756524581521532493516552215865165392578597396748816555924321329144528574949483589954418127471449879258217539494571813149895373688474856182184181249676772784221811647243892779861176623581961775572776249944937168366357555857366383645759627196845621115535197651945657319214395945761499698184128975944194322195995893669566887598365917458911252249582986727663338466975764796267944956918377381362846361422879953486367613827485879893382758736727789976153365911359891616974128113958547993279869312642835223286731965288578125294735573389923941997533773218565188361221271982479561122897858121169865676742561996329816828171324359314614492198812613537475717825326148456795238976862876794986831412468451746492222641291297966245798457714299858783219343926588928418479396662564237359887312377119182326855378395943847928572672272276496288187891241946443685576589651591127245333386697877132887447517933129337336628247425818267652569324958295664928357959326814397299734688157535872194453622956566574129969672941759555431391226156973587642389381443226616476384193142351282285955869773271998883712327826164964218424234632371716441339864779926352797337666446921868264727152857398397493179773976792374882515595992162639976599789583966859361885983211917527879163861613882228454681129451234417158458777855899572721765946763384289438195467251175893777281659497219566833657678549988773681797771962816638726674683655359792313993295494188955489299992942781479172324837423394859825274882412586118991452943932928786541983356888847153549796575237167473527754487829883972278752398117493566768513773828785838897535751354889363988936993145359189841263969546542555516971182974855729188884553439792564719157414976966956458466488344289516466382782817747283364851396868782415567617669583212449497346535779828385338338198186555255966236481783799623814646138298845476949793756687825744411529378517578993965781352295176623122678165724143177845249995778577768911793559776592192415924684598761633257939614285353966273764764846789365345546688237844159218926283486135995756974144385659639928569863781734834138718344491178673322915538211493187269798944671976982249112271783385469386736468667397549554698643661627113911626671318132179662978358539736541355399318719391889773635261986989861768757275191973737974751311528226562216643668126435655533816564579338848917473162277343384149528764892689128894152857642441862562178288561514665878998188497799396165956927133519967294899224855464236644459615781766479411568311693874979727159127785176919241175492979418288948174774662636844628552225246837952441453298845114859699214426297959727628214682275679154121777152576429694611747747691129471456663487286125838723584572171916912938818264478168948849516663318793195673357825278732473412955833888444552294372576932644136112359827699972896438822479863944178385417934741878177418567163695975976939832931124954782138677389669166785653561726148541979671483321345371295443861421158518226798559464883876692124573699177467341171893299777885958229676299419719213837496446537784146612516581738185842218792544935257667729681466831624635545796591585725623675258568598916612427647533168377947571285761256857528385578378386872481282869246322563113976536951311369766785141379543444982569372253334617221368197746725426557328559178257239945731466942379335844887825865876477669838285343853447928211545626237424377739599346646575689851398864597985458995148895769651578789985991449815726617435735827263412952676644458785698188762588647726966671584327736864265885438199619321768267182923381889611931342769955765381975382134285839127597197433632229643192736827731794758728172722985758841295517219414886565649636486157171693516123832329568146993569734446969746394668585857787866734172816296811992272446325376938141772615632613979742549199181758214569935612536974661734795381359153453647249682158598914183683361424166211769438672181794738321693235414894317316599768228323486775845878475593749847711674355357766771199718618194748577429827368742894536118943586494758412329643383966722935749532889357273596988183645139746851383254449424849254131495879714927892826377857382738341589492479776335178934282868991946339635563398197659156384158816215895471498828566379958994888913161461173249197947252856722832849327131144315512362927548756931657463353838676369385396136846621456871225273227651262496274283874741913431228965735556942961638639259168868935468241134766414988431737981663689443356369442115475955678153259226567412266987618614623618798557566877654862485989935887818475734154339387941199118617647278688435827589978186856688329755292634783637334194272286164148853622894523397779546593642765877795415697769354979969621178524751376629784812525363836564781587796892724298773558556583552626397534478714171958589996289216387415687373443536646952247663994699134369998979745921269733872656758188126893397387953141542236867398192724558116452186299467113596421619638127769719614746282779322857268379797681556774815257955134446514879162719211659526654779568527596924745665522611875813192227227354481264561187318172119265287895332617968326979488142787187964944122295631779386731764577756381366199298185257376579784332972772214939598787711483694545977185885916647764659914514583592189715183929295689925243788453691185355499138239552572852132541538799318993631144173732677833499385152991155278912668111585389951588269416166366962987563457872123361511859428696689556957554372123749819148364193637795336667462164483325781175726766446229681435892147374121299646671564293928919145849535731983343757596614768378142876886149498821973552168781825175697247874311743427398125299846932746664614771742878549552335312144647149265749116354296972877131488488828526888948658751736831559449256862244712749618636847466672711156735157429256465918486384267665267792933776187726467535246691314973695355773421457695183771769737338821752356537595319189949631978491644979185188895349149836713796745492829443817476392695787177878399261191984594676174151751879755998186536583857721426139168232993399891825549851716719714487268283977816282712719765579491612238994653961416629539429588753469161167517332826452128387836562775117916592985982863984533925892633791752946899627786157829952196654148769759173138629451392755199776664162315883693483567835925341572738926761978613549881742884512812176892795645619576934125441762777678794157495487341953616458697431846743665869235356631883198449862554256929425593769786996795354567655692918926792962161338539825235369995434538883771679194811328973169293174132926491527928577478273493918847173498836563438673867674797994952981412334844477588298938861795354717897763663844543859255327533584563459718718872574623171449563256933821727173961452153372872599339515977367149924142726548739931149494967651126962815814364532827363929467277381636751568818652313661579551129379179564981794658999358958194976549651337798867968967469727175617762547687988547575663471619163788959683451669283293734599635244693599598232913176984962681955324759836895769525349449278837621145964214342437179648292886463197878368263155888978967411715619579892791913934589168788932635716159638297237136511415383395663848527727379497157794369883292769338579731366158375144895998449818518757968725726593497435467184554239849845598179994633438983764471997786669268694784671371141384867434853632464831598371577964346698729576142596517795189885979473451159996929455226429811888597148466657563743787993476793995189849735884376944335191385811766263154349723588895632639998815743971539764581435892431832439584625974821918384757289981917732541716689847188774469812736358977914357722456938669569734814243161797637329417817957573575852996188661563178274595199445868186522398529877888761698635754695981832142893226444681919831742358262886448669415196586558585161394216769723261858175434166579625187985126552869715781283143828734677475639367924358882259187156654273663174287218463567243523245894548617394865432873867998679568439495381476723562724711857113264132711696212869677275492672298112891571349592421653239255674914815574914678171887189299572572738758958414366423985531517671179427959556747518244684896594535623528715488113552981123424432162818814499268288691161567723989364514776685427693373994163477679568381633557212313924978679168639344359627938761156897664445639551539699218122513227634558877785864954555566254958299593177255545961142254519741121942162992412575949757999778889444388535378717133732364273835987575835985152938292115826543448723518319839776577417962868562717258522622797515912259373159158153375749721112612751474364752999277895744682127649432621638118464336897211911614647546868556356887886569583133385899611929671373459171442952495455564931933738153957343849583233562919839369688383649681418813521174546996155671548388325822969978878179528418458277555746861658434964966528439191212812725793316269316435629847266491252826577297224954482677931972461817123455992426238838971894297857998185286814482999762779294995795256728846257824944551527317839459171227797996573459394234556691618788575344355558239439569658454845448165619799193241986673975729246634658875689592327689216561841142437978378485571515767677937752477699976875448795777239484981682431936378996473138124219782212754298962945978157545598867896266595385213793584529587537135566677116114669962362166295721778971972769172713188589668741112841558919518867738292369274199714393929476889439921497781399857217871786848491772939583466195525646567955549359896613695898252265829793716322387387816778851598248542668556215213739435126913547697995929617356435919776597853614265399761285537676955436567443131671769748728419723944656722286874685952658156923392629871331728487143477331185194141642563916817475982256112816351225559998878279799314594996815659252916545543365794765356761229722913485789957796628224438849953787418344155162876726138781277559988514876538713617229699614915781938294238632821179557742187658768219727965454675891452774982863651174566793684784978782738141633959211239394679294694533867677618662677944365318927589194249823412696691444112629774761849499998433126136924676136934626653134716775798925425149872984869436981721885219477472449466156956722452984946996559747313175778698866469995647556379979924563167834876449639213175526157825826947393158523182823682439673394193212671799193861486369165669379642616222873638854793927954791672957885495639293933327963142494167467166675288629119724128288859799128989996485382427172817224367533132921926747434162725621315519756433132366452656664988147465757893865549861636566792722758646478277348796963497755663994442491375121587849237779886424858881155439816336586474764882377272149669291741959381688783913466466881535678918286491752715393256349767124797798364182385952987858281446725758216675195938619153273166531551183926127773921566944447182558394323748763169123984562153916687338972811599746267856288254285398143839538666873532774489348985885933721723239932671726575596528456788963829747514148555127696679847823796162268854366467875226729753679338637895179781871589782374677761681894353652343764924499971996866113237365621492492958697334471232559821536992632932686219191626175148369978894555484337213183285564869171667566665681159899638259971587663777336588219476138663179812335646881945822938948282166723627498698778725416943671724586351165935698377636264191481182391814996262885272181346518491143916456725612532391317894433276823983692757451116314448929839534378675313928959558554364677921986695595565695632112927675841993598986715548952423565719745768679299644157985262689898281984288281869928316272379276498986217414454738192234196289232922893165589332112858659141482648791678361964876818157968985457987893618661883384912619932743411854393953653734279165799772726193365386756156569152548723181215824984126134697919371272512552123532595156875968381124157914867926874497579367423333853585112473959478616372396686192531654598842999237961228443992837589579342711566574383952473399471557232977775582557452912737963615986458232786937338769436323478863448327842819288639271236937112281758969266316636686158446571448643885387775933613741228692719233845721848165919985855274864849734775996682857442566251296448435443559652532835772879984842796795891312397775265651668268711759511616611817561382732217972711567987852591146267915116733779789497866614875744398238861376329817689181424969817476596372337576594628414266481922374586478487889944738487519819549189373175917496336656674843423658431165675367414497611966884879236552695191979615199255773728712179896849276627828814649812856618958747393178564687326118348144299929331827593143965289698931516187962514712476148866472821922374953279988688496187488859865879983633862733383713539448572818876489422352324936785296328589665984344684685713296846427846378194439222478821639397568846985555577732762168952621868147145315553811516789999896965617671865187921477957595692433768466687565515458118835173172385838717272626181289476446544887756523342199419687277812647872983688946418584846133117184482764859815789855278778666487691824273737656161874645773461945947873151848966719793479287558187499795752471817886784881732956334324495913959499729444113533393371296985923928355922747295722413698342998585994358886679899879569733244781548948482687392638994975586293167698936232652359388773234413126476386287756679673441855249381743874791816473272456411761687159659728899988297789685222914388461152876963141114855717421418878826127899733573495676958366725958689434798934237519292385557523396851433484247252737984426661485882371987758793391579415896596469568892615787142454565985451527939353368816356332944835889796368815338823484384698514365646396826342589549972897827647644276991461216432496139584369765697775458392997931374978552494214911754327428656429264618613979175281554664227537482117654641111934767698958983156584586763592287775636585729587187619945969234378456948237356549796695131697254385558494986319145817825818466636716269955126472596565354688156939257228475153768287365984827293764773149795998566182746116683921498727344584972666451434872626323318245366162345915896435169831756729411627355239793894457143374683791466754974746594361388643843745476619265629667944551799271692896887461575229765631579426816222954611311198959221652516178492688676267773597221649131491738181637456387776352883865893449623964191639966238876167182878865495616953152564317946378349664718963613272796425669173925376761689555598416659169688118573282881844883244925594392288743634853868671392982225317457487621795466214971258233267977627188976637928741735378886744982628449634889295939959941798858724438978927347989747473468885898883689186969639373359961362658167659593186289529862546812167943489616745838492921688767938242358517358163243157782953336339619479741565728478267485894717575894781657328156419643986574758449537412771732835191972896285269591731565691447962972847926898476955481492358855923424196818154922324734935159338291966724899918927483665124727221231433462652168165743632411557928116355273697464493298759385886624435556732998475239337883672974932759949382148169432852338799723137888391351188316381624655242589245571697638768136876166457541126345353593968586595144577279271971294597855768968289689575319267918854298753598893713719824954933228496776268864293889986359287438378252345159841448524197768497448913855373877176184359127387719127418187674273721964685565888924173891133974776159884629955623825428415839541815939836984869545263478714224346543884585444736385743734499777954917825397554616913582184883125999589665623927628466913189657829853921956854376748462468269912176156912394587911174923653317934533198998718454574135852992665838637899178657474458549822714593118659781298883965639132571899685669458183925819415115966568257122437421334212834117852164664985874441222446393364411758499398668488153659855454848131518359658189599281979653977325276375953126887269896643286868937871797922955516881238185514955439869581841934649996353961553883389995632448395269274748216243172954892758742625665581712554882919992434358381696335897975433399957947923742114745178367726488938698456978867325722416736582142332567972542746188713583727845836959616645259258467496915729355121221459135789283794744933462453531814483525789769596343753173355968679759636853651672136248649163247934176779556293294247679696485436361719415566524284161713857977759966142968158216689987679164993641976999643433943787539828427895739287955699942532755228896646869919863894916775187367957346499572481442266681437217772463598996758814889891696826218533555672522597871126948175294546263668885519988626178358571785941717767535956968868279639287423345816837961455736955687118368844446121414565352851812119578635829648495134712366388463178754743463568244663227381322827579496857447945772836992464884349483555582491229887163897513393499417939841176596888975639967889343544494136113318168887612265292685991246399429718845443575667614492243384974563279219416645414174648869915968297822727515899235483918464396245687978972463239749765882385196363291268744938837838882947685262194647744881347981335959915443315883181767888537838995819266814739691468363831848871881334766876123156121279474993986291922183395189256693888266418646722841531665465456952242781898685289472563524559592339885394589875885681973178416324639666973179732432129237525471685727455495311873748498159254219962956281774516918774441618728888561117532245344969999949796878158979885568643421148578819185433915919495183369586622534637833663421343329782226826487799239416267931742568594129969169193451747981313945268178152715661781641777784559394754162429313737637288794136588245674486814754365426573832564655395687663647443356461587386856982736538958196712914624585157768224987952119132615756241433573926124989267918898352414694678285145995476989656529254651745355126458511174725157868666922945982592519317291794213737251132793746784366632995248256193514861911332745419491759583394855184143587359731693969595957618938738372147446727379289914711561767472294893443398567549529863734218366259176542836295548867478765941458762249535712896412819788583513726736528915489344746596988894849722554437376857999888698172383115766852188651724843561728468484357164925271481298243696827778444353663493676518881837992669771795692738548428672837579685197852322897758985479753779963233856745695338894848399419388462945438381999258473436961512394731188494957522983993537293467949574319833118967143831749327754136599848195929726382876832568639433591938943121245473921181672132497589956328893862897887567176583195214687957625746725253961892251247681418551578828143773138941952661981241783383659991683218699352446382226287596436458556187566622249224988893376435156589856725397141284934276883199988197371131385942168389945227472228688973596359788929437418916818469365472114736872173417957423645972386973944549226742785965845227731657978732585742728774912928314477965977288759844248462968569694612696959943666546164849327559711242378542275345813265451436455618471782621673365874227998936673672855859613992634256814976394431998277476119685118827952147127522398799475582925569178941137715734395622653155293226814466622343638954776189487547238842496732355219858694928368382714947373957418489277689934168666747683972689776396329167882784257581441598622484424428387176826128715355825513246636699578852969288439651465576488542828345629827439279368662787582455927732797753396663765264867495518398168413956427333997968986662148173398995226548276721749291912397994828876892156117428398819742395674955117782967754782952869433934692912698479149769779495111698478668112711946954184918517921273624843696625777472162575217443375419756918949718551569621472368717193669262998923759199237941876419747349385645799198339538576528237712624116149828789934691178371325933676789213135447338127764587994363361385757998355377666857775971444699919846552686237774276487852193663322289499119883399335542877792997861487317783588476325974649628162848685468867267835457144611216813371265795333454811611569483277342534555184685217543368437361449796317625429531796272563579237735891342615988961273127681559769317791488315969697296384237488735952792426613775926299935574696313615961743884981734694617382984597223595577278252734644966539751295414911578443991391969758639317575683746387112388599839182177948383711252282926733198243478317882481793515425849127566664359166359244582358251338839371464594111383683995972999239642214414169816694873966771343353589627288329222181892754476243128333599917271893567474184824224955779922397554971651655196775181664829579743594441227777894793967256821873526585962986271151356751391741685577767998163541779495921943172368719268665289698476446748246389829377541252683292471673284171122671629574354218377721374554392275923858385485373199837533887743317562563555799471826588822888838824945179955215124552587548274127539657869549719268219153597945585997188351298938265764832419955295651183552142896912946978356458215575432368633259512762628483177278935817446142786268988382739892794867351176211172796788384312963717927574599935413178985228185329579746891651531269167177841472997493198278131452955547274683755479326585158258218343524556911966876416639149536331262935318871678221464242616879999793627652453181788361525677697515393586772198941891898938718583478566352193939527346898345884354484845736921456662497656755841753869345481484454174425889485625524358555646257999499979265898877848274467298382126713964657413531113918619225248885232674948626244235718768398256556786388436839545663371534633679864398199181618749789875239585711839943771579191397382768229836869899642789888465965679745846572516526979757247726789856746793847686656342789676928437887525952658128545563688732962776389933454916362239642172672627717187399492854567639697453862138495669534156394444668844676881796396826923717513849244158558696915962316258627427684553532996285278712284617783285743488377462127982667419417527919351434854374646719842789845651937711437632716714597986681927159365144576264238844714785925595662922654216398917914762349358652744385429875271314745265199762922342331678875721338499261544982147867744738668665246881175635297165916776486338895711669787187946764191815814423464159233565859528599322423856781799326229996943466697932754163679989395238178745839228875457355517458833778977864387999674777661998767947398397689431649585451868498745725932651165777417178352292489186126726523299959569132314735275886642714599373259837141282774156167286593314693444376555421667664179364525889848172661785141964676867712798986198699533747156753176299936149572746291674147353832488871286356592111718686435656379681657346911717555184958913745566262441182279958958288935698841896113363668997494844845516374616888968994168816487736916386137169549886823533276924389339966645186348113733436938415555538914752652962112735962951254922193598999756184294957689663684117859699622383768339988951515691251219122859495447372548694893257766417655575971145797762516197988639894989258127334327447637471285589993446781777486898181516135181662812212636218182288163489221195873231674128519995161851587296612474513598995273654385396381173786466684177723579254649573952836589256542318179828149436676827766922528746433977766533937496384616226896268898561749882749141272269515299666977388989638869797925874747898311466522124813365119385586585352799438523115559944838645228225766788715554637636122792598788297334682317436996875434931318174612956252672455727487937536852397998571757533939655554665971722731851982922867876645415249172447686611568229354883391925851877226961247581769934352238128525262656931546934546293124519698439778418729889648226676788553765129447386483359959957348786667763152223593534813435568538353523814279747339863698177469747198121251634946125157884471627286368242246128197318735986467223623755595311799877541758976111231372537515751336499374996844876299438173523925588912846758351749235523294836375333721611563879132154777933184254328582729976558256436928967261151558899681479967839173397461863993719272856526965471888618766466826899924285232964194863554448639825882469495769813477779273396175711589468796358515744815436157163598477784729699463252639879184521281515673524899656983777234713724966386511711946949411814111593732466874814417731581429878764378523929245266616539986775252342339515376141516656646879469178378147545272224682372282876533628859177969615342773152215749858189124996574551325726598956284168751941994846889985397783918623172415184497844489913536789329842254773816779419996139911985423463196214146333437237456951882721941588152212752726359135182218388283752724366986193331127781788979466151319558733391373893152254663831168756599992225877661341155693797617617569566172352825891975766186629248161265263824863519962493743383517176365316258255597354254919739352495158983944148134973558628834116799247763329311935798829564718691143857523998311943913796719912817275415766288154934775591114596538851357147174655859528543344833614258681325599681769666581415784846583149597522627737379324446337573577766164374525164628936665499966436131545769227728948587465615795221569657225871539933617391888511316775855353688179136555253717792137638315456328877572234978452777684731995335767115132349356129685816414286844134365118843969526469157474936891299664955217161865126119697836478762243647394864115581389366469776488771911116997547323773572714218233134296284428247273984127187947858544358779392217181791973959187192718779319354499663188914919722829927491983777367923187137892451396564244661988294999181564538223973996121979193958964613658257293314369315689655749342238768244491949518716613162384776998719465199452869619369783576468856776139773875223626785467136185698313161851583681656666697877698596818137568775396471747859257527857992448325568468391849976155772393264696733519712465351874815922863871577334736364239647532763199895239819543458999752741321497194715393313452788722955951274312366848628556165789426691362989812485984351124531487282964561564499616387342429621715374118421567282673849561832559446718552954954783716931563158714592531264597129198878998727735852954613479288438379838541355112922661995587116954969862898568683652418263878899153934181265486542763427595876783695218992455296877624572936575936878729786518656249388778786989977565678654688444252425248614765978293962887539982495532644598344177647997849458275346873735946237863696619951911719874922157778632154234163287588914781954233862151411226227624887879168469574275496463798225418465924514565164457116274361295229738488164117553595846435336539592737597368126267665262124936921197117229679793771876287895769139131471439452811592288327449811186187626797661471589528884844322916199937415571256463977544822142937619597688997978591964922348929465133417164261491484215962652336487662788685733491388622844662299183918738541649645238323756857278965565296933328293489298651656812516926635746591713699967468941989767356133721341969818761524458169551189758719671789725714669925714974478315147647167284661195974588749198743866573571687683996676782987319865613867433489863656285549513381286785916664792259975197529597685777268215995955562464283737921868916671782667398588316481591612367395181927186145988691869953469197891716262892865246459746269199486399868218154477969291258495254445867738977342145994956191563694537698399761663765968552157228238973982655914315849658544645717541489833191327146814435297225494622444869746847734239943999489738775139786826757298866671362129983736525635862238695684799334418181357848766985295873351499341984369845927351769686439424811121529637426212914474191515621888773394773659761418918248259599559351456549694897311683466893639834316698865696272368779264667795589729455463779373916234871576252714913122513943779641168411333334677897785843964558892266291979615924876691116172727736977165268515233625894198431289774776925888686116745953355125674999711858139268691159843563799224743237874946989714125982463949125864225471958957223583848447778968759641542986126378581939375596778984263381544369615872683279767991296932781892312167744471795842286119865179518537625511682554495712226343135992445786843337975159933582197719687995893256286784114884695136372257824429623813946432283318265564574399813995297919471612963339683773189995563648519544478491233195367294237881836481862633717445948875575682445721455826716313758439134318516243255395899863434979181438959632695794829185822348831847879371951164251161266728973833396395734968685628667368528929522911335626365294718349996853629159919577238747998379996157933434148938395254313848278168387176961318752966129857288758239538897513938771782994845682946173981748874519358761957684813889987438135547434547676589583986296792845278168698332137151523573968164813198414778773241268176269518724194925523923895398993912957424971881374219521259689851194159495124541829329763836985187719172328844295389153111769829899446282644571392982799361292629814398294441122927535668867889284787173356153453886465572431357364986796876658563761861182775782238692338718459359921318147855889277684921761371438998791972694862192897475877395894899826574426664892257574853222716194922464291839196472682498976891354668772594537814312554796863299211284869153194336276998369998575392783617587762946539798899259755388589488352174686619677258567769382672833293316578835942226718189846453384193498452979457935827992167965822896685917198827195823396463792514182536281456183717453878241319839583828871947189178378278626959366532567517272473471631137995821397998725634877862288939857789275987359249549338582668763857566483723325769696555159666262824391475341194272474398882242122417557856866146836281297692777136732543927266347928819886986768594762634369674524494993484454346943859959353886185896958793778491338651118725965635194353632338645752311763722867868896917776798333152629316567743866528395147314917476637632247978655632468537315911814386823363625483419791376149957878161363866725652136274531125419474313571317819556597959811966927188788497833633321987884897275384728193124292557262818744328285648989219157653913332217236849912346172271859499311822592693471779248328856553434555138459835362978183385761462458999224744648786592585688675853785767415625714734296682971156817414537728591294924689224254977671882626332934149385464777522564192312873792798559184649392183999823361444257399793618139513579195257241362643959824684688353241442174529676723289911885844557987919735967167492662591742697611717847236337782277939126444193831859753545256513421194553845484554467836573282365619583612588566233545135488277392566451294583815932549584954662969535486971222737935547617385481123242146889233822739987798923583341683443393511913956449998361495622737879931941398522347664184379386365245989453148359517911163296845881169655599791186817865266193529784942418519554739849831629812634779645622864211954676378976815973669255742162497471115523732856449216541676733545287456411668249791318744577627425253964675789759457753832751953598186518151858369542954888965669645797212288716968778915155172139926473951195288715665631716255847854427878957448958571195552558987595746348972334314269221846214519249532187863336324747224321179572589557843959132593466497983516385943535885946811322425561121672238662737231498619551975795341578367933626487541379811649554235771163489922516547588357964133588667596994779734555491135668774187875664482136368139791736369145439717972448868216816835517358729318599747996155193742724299534968131576424347232172114761635982548973441529787676533697422758244474851168589442692956797568244866752216631399548579711492967284921522291735757598443377488539838386619773357791679891689325946912491946627547516165898535248191444325148789318748587864987793857755767358182197653748645852838947892661751125631538151175481542697281569668963994386757377364188963958434988858589429633647934144296594627444475761342131955763948765324658919244144243413642765186899531792743236734847759292998912634777631998983197689867376269373454361987917247421317178688184343353963811577749352196954194543999619583396974493238828169624981592635741788947256975384219857352289466953423424671864417573276894211656822544625758733211273985615555713462243679355524673859432295196872225576184498593682135695978963741766466728645822131799272413468893557668585536277956998552627138978434711124342511382197797919643318493875185367282884678973397586532187389132957422597743149356839214738992984952394456791162847268444131719163832726625912459715338715953858144622797887756352544648132446658351617642719239733963176745645719821494356798186839449274243734481332889658184429579589149147566724538634124276946147198975577293875333214829668746958961693552126615137954133486223844527874127967295921543336767487564488621597184352612793784168937598639735698718694616648443865288167291584268637524567161384735864194548277612797898128132874235433929364879736158241252296289157152148627171548978558466136658831418289324585463253971641126919872638659211752313573856732368735238511967319963136677793362545148315423919468983616665671287947839827259986375512911158726255357458435554848528579926533138317175864264972581277199746528411921358641543594877232362884134966465641745546845821918527412295789198517771655326742115117566687851711259248452483832726487128148952263617626565417685444555657818396311686945271228997131683575611334332311973973243851137638617533854167244652822463153689532559473839486575592817437638558744182362848553539549497512892828543448857664231629141711473959118992695488325844385178716283945113535186717655217937351281643169836233714853529547292261517865753525561526781881164552588297543628582567861684966853366893981983938692571278646419522223587347996844674887117768642427959262774488489359931961567739686297167281474979459688738159937685242616311274696691569334661318813868663382247976687896662376956678938884477636948584386197476263765356327283667288822554649276153719775697188848944661349241268878744755258255936441851782985231742662421731694133117129887373394818981182318449466681721225162117998235476568299316918262451226338124243653262315995521434854912518965284959169681313749997871152467191425915389559388186211475275593351188891119756263154879325246576987896613543589613167885584473165114466169598315268617811235861452391966664827235478493285191556518213417622776616424441777264463187119899733969346235732794114784874917152796963955284292465738788298438677823491624969124442692129956632273919878495882141717189962789219772559878232878417379253786391319788423615435557576149961787392762542118439624723588681421859315218388519564298366719963442177661926625757854293999972911765742748634996125711388715869231666673777746953127617716959393799166439625537469868786666761721274727156896866452175227232617517127827376659296276818183878941125851145519416953955926515123441739698772948637426221347954262733963961596775876181952839187342711396366558289273731179134583487679129954285294424983489434987194968464691746445175492729376556552646731412289682923288432593389427419646228238622296998392637674693589213132473441291198844496794819961332561725952839635517139416569264272237243773328959253296364557962718558343184689984476939414886596326435329391637566469767341774146862681447879667181199142923748794566122636123442618244664169973864368854293837341198469684112486226623856683825956967388573586742535731674236447469184911896755522552352451619123961577516682716532964768891193544989914338284667219693189661433494747311898349935737123759929426883121769654165324487778124293919689476182629293817897473228363525499989582537641685777798494158932755649953512372425175836122372355863485513459561674837411337448171981744836579335986466394778353222729716128366785935191119829768564895447531682278616562897443651734655136194689941359316728396135366759482759329229845964168338948318812165167944453637393478372449513752512279333512669888845573679997248585437449842156271383723886848898338335135144253735595578796289445441874167592551137124464494377283171181819824672573928451598953483484976564524771939641363621789858976491996948328451159896361544549364823177915362468143838988659455358166633332877174764925746194554443772534924148518795379827865668438144913162766528477657784384786898162823432878762152616943643988367499314499951767394975292812899693229369997579116491738812724662556216159764994311691519356699185196886456599733763359628865265949425376784867564166571546836959953999642578966464986547795965845833553931412758317772376746677266838319274815478951191637175993538473531764553474343865446829737223281911291973928387129925217356534513224986645319266835288294638637184842418442486751962867824173473236484831125425682785564494696688793213844336193879929244627118922875753537461615738942155156256987694352486135215242994589912534281629574177998659886678149551886625287497113846455158464179477826351266297827185553811288142638353861534322364684937732274362117745993951715356124554894264673531179758565697849672919714445512585894584544429285593769535784599981368781758792414439231284228453129785734334639445935621639598829565923883749241436825757431768825537379981984666874763964527574517285752779543967578643733392562356884843497844599335726275119565676468584976615563324838661756994462864695988443436615277664561863634737348166418675799516683171818279531998352623898633128739896115879266754484914327421188317661311511884745662361458619451862557762987538675598591252786566682518478312713156365434288998334792179413687925142677995248962621755342823711262997138195618838348433976833921767115687631395262452338379989842851548875148875853742496487794749952656713751786951967859948714559896892175165116584994925975761174537913943735674991729226574215667753689893198924531651721336977536589467641589947529173528184572776292426112849433291466254998884457834262828996856414778716993618699739446731518317399434141764277781326829297656834812892962519389995551588891299664977857826642968912873364133532885146248616869616592232719172651296444831154294692496133951349667545646664189125891138143866642543918156594444769835733811912262746338918527549635855969168485778673629297985641162138133821925756394872696444383981656343837713827541817381657863978762451891617563913461779662599194163192288579534684135468525415856715937819239119734937752596724424816652419167837113974642744399319738167395333723293795991643265334883696142732483482323812336229532938366963519392132381983668675712489688712977477933195699557547716614992399252884975812997977998742861428362585974665279552981293579794164323586572796273312884997256981798546797743271186149748894693731667941169934572694979238881664546466874882124285216141265656815556331378321485679355269957117132836711743876886151623515992318365947579128691397194497752781327711664991287752187978569244439278416553433967869215839968994764231893243114469749578823529861933585796368148196151147452627652346526814861456236146149513775497415937673654626337991487867734317277258472819989941569283663518539894619622479428123686971488343734833133233247567976791773338458776937597679764182638399972438359258599385943471154696267777633589792672956683827996724265948293487218463859286249464142825767693373385423221711575837394464177289449341689792696769669581924187447481389199526929949244711399375326767411175699998866971342918539467685181429859828935612556495691214262261913624471566319711778393728158411948775486549593838696446323635476588684422981887989595516676798257728679921426533816884848485732223489186137864366882578347299561189884511129524282185146355813478871515381983598378526194938919342628797257347128632767572891933851254917473873799173327892778223277953722799642483162918345815318842198928738476725411635499478766644164445252345537972492478154759742952176844893753854837862739312249237771268931418172363636794563911234368519941796269946117799526815234495563925336938895886827379252836859289212175999778573731631926775987196849796877293143454414494819624356841682989897635788396339342969768919168493198665248815282366616363621663958388224826219986846723644275948383177126557386371189245571435631672944921639794254328247451635132855598733855425822472872767992622522757825484775613381193395622612919259964279644916678157168145728238219423996479918561588384467328984224886199375727286445799326955714415428915415612625315872578925174619518445253874496258377234182676124727244499463261388867858958196833458425874238441372185333855857627617659328697566315594717629867916343218149874792124648273288112735411839585619833526379958469771113125873998767495892356994457496378378567447489785985551295742148498422628343779968169797183459674772474788735519682429137177317117782527381895579827926577282917961234199633622175799895394335668479646113969661659593745855521392573921436363495561456953997295789823759395432316436635987399862969587665747367419274512222488115518426496325964342463329913661365283274858445863417899787612864544662694139629813245936418791641388164335961946545626925747185549624851424375687314269445872961227175685665622184233574274775315735574295581558381785894628635596287574876383341688913539786931863258816354942762363149964334797213898736688648249929883593948689846485224364219886287168568288954219752141854525528663297337274368669244976943685579166493881256417725577437379786416691975932936617325347741217714211597322776411426619391293313341841719416193639956837471452318593582171979675265796911769416736218992996116549379226877824971647477177132742586152955824953258189555521998754824318276827876188957284737569632787496728599984719857554324559688657426158481793128948948658354774777812149688727435453826741973148799923441282689546755579657457595359789831247375828115637482846518847893113631747638519563116761952876564693498657957985164898255261798568391926451957965428537927991817595756567878848323328585698184773549728525267889172133968297388486467386684979555529782223733496484318147734928169211688761239955423586136188879118261122365944115895348422416197536445481198835289156623848681452186284728772823696837481859383627853652298376192721497881965138454284173882563653412764851565794888636731745928856585955885479889291616536482992743262184337764717317337915977993535821741678847238997857782193862828944428988412425323753717834743453634275519256761844361567546574561779886724733955839579147416478214174498416146899468493614577689696578121913532415516497745597446547893546723773119583858783746687677737219586829961981613929322394678443912524479755657144371588338585585773997985358644834743588354936443531139428951353672417764584574766934237591754919647171778648845342667956989868858299658742738999527229688152279886297752911917755126579238457379552524215695976248991982678548316633596489299921616368596787437648266869283716425718816476739274767373236261368654711399549839736693177937722552528815756943842424851467721535986351885224784184592359925835757124799282317189114979443733347532671326584362984244675283863321377545591987598658687733137551533122374783935484648752346159788986738546878817239137324582755397266396965591875186418127176634957348339115478462497663958847599879689891365729114678191751758215549972855597678969438787565934418317379176467772223851687941548497328475236731834292923115645332333438799518533928532765582973491484958287149167383577312917182964125441188246616881575747868526367684227127994199948199948793288962126582843818547551694471663875964667425446838223914226789913338476442756329682485388516795353833773175259639689494931149593868567776775223361357455824131915334841592462739689719213687626813523613391923371988288145138985988222153133875274193894142337147618159631176374133672458674738753284176589884817846523566315339481886632838318179178834597357791351474737622541274171438453248513864943999589642884687946411393968989729475891753255667894994644771877311957917663446841797838811686116446739237677857856637649694918387172448937123356587193657161389426144387729188376738643945344577231646315665579142669195734756827456515727645781696266275446746357487992943725245845617584528945886579643299656114839587686274325694439882515363649482895894281652814473131885815982857889442424825583625389647552288981945591466418627398152934778615936144925878376291964888693346517826617626767693678845546455746686112256676367648487682789884332251779317657994143217821332718848319534535984976279182894213136625594581776536468374962349692277267191392637812251552816198181465458923286918547168173634529829618358271419542427628268278384799547553146258122126373225616691497473184187754684528621993873861596425385995642853773799211831846878359398339113279752181128328794672144966992357425237588992118998166264249565572927372726179418325717621767942711796889348915725651178484418419454247945933396328289684361474925365389313265499738494624475133846833588519323162594694189266416218644778582429521855364997562521529654134669353666861443866974225297129979897118719393724535788628651868275593362932842599728741448557565466918234652839763381566467478711544447138994776562477432562233725418212217551521665737352215449442152836786932812747895537495297554867456412235894171577214355293549132775488429548562569568874249721887419523916185667461485975868191775526864783266626689837765581871914281654733635983477639166694323398923562138864816258555221167985664282812654979724976665667163314397269639265365798152156353993138773194357171488153343988937614187866787274898939934187165984864548478311867897714619282174659135795944174572851489814592989754477748884719592371559935199161621658869596836787726278843797335368958242797548411289995462629852153534771423641924181821258269949834988985585759946321162661965127317193139759699712242863234977159156714839832341581824835917567713756786934748498858396914438469125221315415896736653351568952577498197643886928165169781944755858859922251747268577944895763491888468175898592555616686588716995596555979791366165671994861159376221337198782758242867941115747757677247665211544788443756995579293792156284127594866278448241158244251242679833932971172919357386741599311789949871111332774752644281457267297292496178595312457761679346827954573592983547818998593636185469735335129659423632935116255347413547715774575942875261299916381724772876973699699956125475648325645349497591329688778325249361747658866631824718428842266452751197549321495652786553884733155231784618328619939746533185516794685147554564753686834685999936562658375852576771485461692165362721143493172717643426199698876318857728938153795127211658453371814349178692348391735513462719633751169677471885465862397226813661716158439946466867951217586732967835364697464671899946828669869299865998155472765849874686829173196226398538979944528363188621681716454912466885996185141542981779745251393162621291127618492299468525294588863673775349593924178123899629973355789494876257528464712334299293327987461672918676126116211127656271736123554974285785468971191394121241224183531262892357877327878729929245311856343651623188983959983516754337971477738751193632111224324951432981139188456537281275221842693198835191315428545122725691152683196965118437916393137184749522732966784698815595692351173877997416573722565751731563122698563192823482396152128855756569929232936562624278428346658578349115275526917433997368597373397858894255779478347261467488261769924151279357684318942856363557989898663766166659647276759381249768458444184966127187643659395827419376553655481411748633223276626329762116975774987843875743777841833864592524629225825874997357956419332525815178692668714956289114199661347411979331972991851694719367515337972359338218345999813672747518594472658273259849467921252814766816954159286931989217441188951634434764643895471639374216518669476268947676642562755343894914467841764161989188743379571852958622852481385656327494169337239788143415923385493837376583597632151919511637649327489829785475659842923576399324797882292448331758892869414672371573211476971571477977957786884263763429721652845163397239994751137955268173891671772788813681692572875518288293385771989495774592658237473115673784361812959328147344266574919888646241925798953477327929895892894794866668529835551191767958649884863138445876999491434943896383114873559591665912241693996727951114994738675789955615618121386719755991845495475855723783632825468437198574625751374858351921498549917775365994827812895894391834745426279499984625849216637989722131342576882639124211486221327596386423178219526235916948816231262382372743966492555699436812358696656678653355415458279132284869476447919146946369891261948644388638178655351394568255499963435352511934678756543423657492597396649461199598727428321665222735931869594592535747447216596143913589718689126972977296421429887684621166283944711238664965116668341121828869296667455263682962889265471123587646752751244887451723142961437133393413394629292675889611453963875586991291927877926547449331714914887999571732137678771374699612296662295347743594269923212655339526656687975893687439628234814236845298539872729682649685541429999219926928589499486358375456285568538145654752546596728778284492381866783983886455983636321235888226927665791328395827492794555765448493658614412417334273242567447787724966354948582698432589416575822924977315634539184576778899446625657647817181432338785776597115838374298453874961218622845288466637665978139778462513934594188896655576255565772722496638951672926687519142193479871786793182796871565491682649892253138883944792859382943492493233522461855257486592469738442582953875262568679228469111883824565278634672721122571933268157715386767597189112154853584585148449568391847223936939197848471594377447214437712853739733435785382977346793753797282588664469323338742857134769996991284684975763884723736646684226755955298819938881781661569756368998495614565668769685818182713562251599834965379678861123846486429182536277457814147137856643892747748412449749245624149397552624657681465583944226117668851649794317588369442151641797259952633287946715932963144348845419679942738925624184717657698557269882444422192262581489751677381758476694576288739958952616734961638739832242866646494967524695697818358362459229332353138369726344165194668342951562546183544998923572354244492484291489757697717321535198285325855872713127991699727299671833357857387395914871172288568266549898428355895458625591184294918433668168896459279412216396644876357158837662928379976346277924139392743517668466492331847451529631734158759662482364826186899329597937994821741491829693523386436138857632832921995131568726592678882684699615432383995172334581153794495367638482237467655626797129732915674819126376796176631583818774645931967267917768619321494242686166825771127859182721668386488338834978859432822822523639852615675693691364843166258788965511483694871517865769678522811787711169995142533879877382543821838472692337312561455549879448522742943117694978771128639711462249341832144121172621577123776359966396699314673287745891424381257247534897335689919422288598874537269166947983564984116423596452524572339989386717413549194197875465715943715176585393879127854757884844189579974792846723771216344387732816781149434684742196447133716473737421936419869852393433674739253764468838919838254679266634281433642673595525942818488877588675761579756234361577134647519759721334874568957173875722479656137825118343965278475494859199864291465979869857915318493933124676584128759479767886485488165918558913235333444518978767776757916242879821954439757225167714874719647438394663789385112958396437853782675391159549598321184568746783628188548771629469143323449387495427127319731739499491425555894737144666489543627554765327197539278424248196264141311987523353779998799847655962533587133598491229953765971559661791644757795489913146655425571347521879748614443784899942638622634381996952136352585852937118865653887449494396658156257592596459635367445916335829579161317989694741581167236725364115834169421927136656294621985953396844594856763752124447377444472461248487919749155853176174345192547385337745456696191461949248756528715282895823644833797687195269363781899869296674536812457599721899529595336453274433924835242432437864158974222827881648861788732873232687127871114558289845154473819191194414577464653357863827685641858396674477717545554154285298621768939762375877835826964891538473256684512275954447886317128565862429599311635285312323282121792853829931195138178676172148948716585666192389442137286345715291122959456466957235982383646973786711772847374442925822742844491399975521199898563966489535778617296662845644882744721789916486577357641875284878441995837214796593679532297626344343217421756532598787673596457761753318694397563466876648936236984535999273217366797776487393419639186379173816636948291936733474768512625735134814134511288578438285989387511636938587869721214461443487582754745376124111916677152776922155168586662999633387327793655443555359322121522999357912866312858988422187256652477175179498422972681364436732719757516265164959475322276492628243452482526458156759521589858135156797594895746225817898983672672857965239569283878843681155471874392226651771252836777759891279754749566648922958618198526196599441148147211497257825978681989337434294484515989486565469937771249617791985465679552599177475974386991991436117565936158954361663398374198711757665538382788824882969164527562654448463783264274751743141563625122714986584597398453237276918715763111371799986441984479812996472979693632722355888968711335986338368266568386281763711414131542535667888122749367389585629477871775154648173989657767375749323449918356318891751935527168298214986356296426661757449289659638489381923423996598663377916518452156958767992875874782744994335172828669948568627233686637343192843178193741773198179169867397168238251158386569224837712415179431288691149883924873516681162899831271898433737627614614349615768173882993757777768294134651437188728387797246549696771412377359261682624947696981932839981876821859818285465615139388858884553944882779851866482434828414488637294417364999473786941933337641666963719475275312796478565471332664598717294666692621985112778582792643833998611599956382891694219337488889393373521153324989625247424841482858423491253293521917995925684571473249285343332234649762653572574659978263423525955933344999315817683693554929524894345914132824425986569666985112699788297347882277578149652167379222976924551631727538712942379645653575878125665833943729529564941778158432551287191716583459919171388692676565975877759631297864654647468434442846461617467555494828618927399592914498565514551196278271571858362997698566923166684834144499779184654185577986438741557783427595728255348619132519888185824917957566859469466169989619437845498231689673671645538915837671477475112969973457882381422526855177587247881192289828717496128618368442813115392992675145564466764672427927868265578515926756315458246459657862653734758813585959882876374112492958395564754967398947191465638316934916231785929884931554816977989349954568845997391257594522585985477393443551757881227222472881922312599778412491167973843844621957471156795765147694149277345451299799689341376823559638984585677626912844871917967926232425623537486686198217465134538313236751871948477331147576696975121471565255886356667951359725397623444717666318891758559426872654274981276821952851979381868935137479113265788995627629569593815287564799697468296371158611797616138589115142674471246779828237519758622295633563232725477891654497478211213874792898526315412334814174296472959195291729759689397394634918127626377221696382525633947144486545149645529887432465312546457562866726432681585296888669496829462484292775458273483311376544889387136846276689872757184861489559171724537124315241272823894246822321278698478935627544395663914485467287644998294892431617775756629569287246693877361473678521937849778262152816199327822484128312464947791434875665457921646314641615528851753583888669669637568696922525925142478335157764139374644896374586266732923115648427121895231798874655876359862678858546869989281597619784855789259344818219843777543868679684821751961879542927892361869661565948619287582586478543814159636981122537222988536474374678714329225951898467414331499997867897638599841493731418685649481298487212381232284439692686355267827712761384866147423939982466212389393347761541582179641923247989181751434795885836919325985716891383646529564821668859926521666393249218164721982849819917873866767491397685282142849788672563882259498273189582497821795764245439486155753954741557929948433526592258829865983268957368671851715895972538695584459949218928993973832284989218661135158841235847887627289864315974927871192998823849591744727938357986797541435263942187128276777842556319448653312591189968165764463196784163556591717687517368189273744289798648494285413118287695195756755834154769172136797484963949118256132288786776562884637543214837548722547132571134113864741349342422841354891785449936611688483914415878842698481229947243655261316768521637673568739179899194668813916579815654689568658744635745124879264925295961919749434258275745968743617396295487769551946539836289649555676637341777812264813116954953293647361225174381743236485615125318941349235713444328472615575198874416462681927886988422577688718996118374253772886352971328193336459511923919333914918278695299863463934126997532278896468529753693265899391583527179342823623696867589655734995757649832579218675131996274318483384727761669774577676776691816638859229411186997176694772772267444458766164673832748925873815653813666981272787641367552521822972733473122424949197819725963559813288838246649321651969828529515665233795157328484323121566298544947179934242396765718946383218649268882558588932689824493713539535184758213195395853665517739877662991347746181289955652782177684716127121224757446358363916594392377284875267657949287787521122821698141771446194443614658275434223538814287779634756315332328837922695517395583663586177771484863348962746275218342723889916886467979661386332864581865661162746871973365252642183592855485747257354735144459772788475697477835987358339576616398676667767485957831928663165297326368718199748492162656141211531554684876457585663128746337687391778547812161812427212291799283183818867533972598421446394352883723485296831236381475178266943216286978192256786295288186717143177255879464444926791877758542565396983871636899985345724615378649617637968821958575729463343668912761936519735994695465794775653538932488962764513122822477355533865188239778248875696929597172927232954755249481122555816148399194342276861459928792925199255188148249594792378475139742259245318323378735472185299937338981887236892674929759827898851869534885231874386545169327991249898183787668219616339634119821419779493737525557533826443189159535863915349847833568985999342985699353553269886763188591233115867763131791426897716768878591842254325862848824783357798678915834786866666486635189115428996956594266932387596531399468382974311957364923117633919877415192731284778762525132985698529644383499558786299732981353138241651914818819985897117228768281124589487977666337378376716473864678599342375747969299848832696346766473666724977837458777677829757181612133963281586564237463335941393987869472798568474235528893575567252144775688492947183444858976751841795398887654826842875774998126565579619731586858141374374561475813563732393478367998713988215565434874348969175716498718726417122144273328776684832329467932219621246217624378285382739826694575999917316424374568116931196763257559598711187521915445711472148923196456197569119176434257431727421228288425296272128623433894958163726932539899984615227299877212254128354985656224695769946321872559356964733952688238288146681192258645716272267496558911782377195661525444434715678611851458754799937699712193496939163757234754841924199264184544248831685566784518646575384268523368984999248836949777958268282735355963551746728438711678924694766187573743235625361743874448681817284461172327268726586261193623852256589721563828859538393895572779356436724358747196283523585444193342912113849789916997996511742639136341443986596399836952129716693136741689729868334532456235765848517852931672147917839325228421645443167934773272322796738888367317841936584861578799856218273492838483733184199572362452661218169372375539253839372552349979647649624725752197647344268214446437696773252223796753532696763437666619173859786912582434479912198718411273991425976964471951214759845949969852163762659982591532317152766876683978923886387859599385737976441928627492761538232938758417413218112323819883795449582999438357867695213576617886997374194785879481379323929776376766734846554751292562729123536935218897716614978331746441143218489573713471664744557257127898692433468398132962959128733982198655142186718266882351254453399788457673734497267659581121615977761958887667784516666269752376328566276713632982193133848639476492934644536378883793931785785426969316626995455952447698846832723835626299757286892634187952655177418441851412899778392148446887837917361779892524376885939912949391482239771588671236636237459983186979537542846269419638537341185447264943553673453827891178398959796847434764741865415828259867759476852943552827754869591989811261327781384182671586265832626194976767851916249654495132836896848156929239856264951942248399545356111338873673127491993958784553986391742821559469976213297538494761896654666596879148491337352396666586329487782983128466889565167861722751638987545967726363241115679519582275453941695129191779724288253349645334613677281174869177162759769551311846917278648227742734479883945166154549875946541659727519228539155912837137471648481694431878484781184976577592976879122266757711629178138679436453971389223599592881217828464599699492876366828759369754753751349296979198447758186779652389778778831566554643886294247198725199275626811922277396527389459329396298676981283727562864586341892879381112847969198282415529861476842272855576854882489164761577115443524414973864521967872444568814674741987222372864718183978978619553858568484688559992325934287558968835743154679549723611181871663646953366353482112727197823271216746933876834614357528832268399511887377135789241162768636176892634985538955783936624455546364865949955857438244126985319286878381394269916436938995454339187886373922948535868993753894469294632332563239635427363132264687718112699977691663987628128374775724786968197589262848999577174692894812612658847744118746181369223652638837236285844862961134476585659424876251595958826741181478917697933537825622557192712188695235591959199261183561864647455524892747792827766965221859141498349564257258316917767556186816633214884862947688353863175426738927268682862382958682588955665656863934474254676964664419414352995354776816978982454269651676538616986633655878646258565513425645471424345117572265288714948847225919467615815123547794463453458314656193959494465716388462713192571574365318281323165245464642678599788799968668444921462178134262773499621829917866796795811459973251769295966198925725818476867178248784858573849254966915687458971195615684666927911244512877656393776863738978584576645674889271396373697348415681191634847398179852485589532291469327565698988673179735331153989644698426853983616559516374638467684119244526995933354465246559952159255953882469846225738514134353123453884827945293769847351895617558119979889757443467669972637441625868437825532241542645583938789725663475639573329569829631178229756367525443586278691984949316738183961499396883363763658281692227642755796993496521474294993675972876875866126295896284918736128387689799723338178476497819435752326592977499138297238713547467666628628776739367954128317596882253321684315677168114467573586289875814465899995696785881756798959675439763288285615462144689158699471669259714367642875972386693354896784666887772598325728782778855218459624421831552542819811514793783246997281379665948383873425534735786638197535557757441236284282559568421649663656789911756845496363353588885746576194635111731769121952567898472782935679548423594171984983462696468667351513879999395135446184672178612895664324751969781779198169362776391145493376432215613672667264824864246868467387131539539215765821168875181814882211763469697835536842161346767714548921191194662797558818786785211964837198246486637692436558128129998194996348747213677962846656789696119635779694897187568398639175419183795929246225328858454971746686681618926515777966993681119487838876962424932339422966799841885179524226921776347598315329143517395988317214499856676699617635821713497449293312815938681954787385749187393137137819852827934191132377295773898828298896586732398715232689924178521217188112852636864617682918623191957556486613926449853556352637525121187499326757942427655266366774656326332596795912967773887249558779431256472431986292132953659467291689132522349296854521973497399917237764626332921569288618157924461139432984591253926866857954882683632884832437549536435881272535381891738561313811137636955697661149564897788233162739347561711635224776325533245814777842995989397661688657214217996799144786837686279937959415114366164963855484155697647274218458612132628176725531751883125161472271783464551732928649684681267716699792572129175958956169921761913244893552214623191565998573274764612692894658839727835415827251782991914797694127776687327741364774732817561139198166675851946684922942282325644673987289147598798179471213638527272486617968879312871342893999784255687746335898176466956158492623387599546667474229848987241242668687666118527857381231869343986923493671453821646496589339479554888142529243691669461711834488668894737596369785383863847786265458229763647112477388664356718195928663721178968287512693685562559269691593992742352836264978143857152465349981845276795168412382445256277314465431624315246755952669514615532792166543156917215458262738288242153444758331254789949797492839918435969819898161397313111491493729487998751858682599945832565272293811886235142641481256454464558734315829858446816135946541562436363532895839461457946584433966278741895368645624757156971294257416772928135982482756497179522283944728283939995472248893633243874361177499118551934588889372199683861357238523276473833788139363794538545362554786347586794338291919871847843894738683797248396592933187717958774391632486816824551798169971393961397847223453472299933967669421432666859765162985285943691984124799887298669721438781145663552779399369352989821382538452211744157343572641819266566782949278151254395296569511853911386847923747776524492297546164277815399369172275377124326513575646612819739864671171372785982641321757144321758317968466496973429382229927693768774331844415839374648321267178611419633685642189771929468295661789312957137499213775873336965832119554954326314317959323457872452743238387659713838771753845243695438963229574315395666883779718981499171412699434266667389926244498218277416873979455656321971912942374968867162882919851364923237589955894889543419267168479164278872465185123286817151235583589876553959232897837694672233677185178428125651586743632258985276941214922713931448533248929447153593214783796787373566887743979574966966746913947999941722875995964899954598823946728485851638481728339783738281662878697212975849958349968769891654247486276181667362275938567195285384178175997427318954946612876378966978596193838588962153794745359851927326288924191166218994295131678371416811216913715692687944499298476417664496136675655555555675976114324835628586283549798732537727297245241579148875599395889567912689682281856391181749372873256689441374636413827637896577711961217817558698372119986171415893529133135591674572928284583925511759189964933479567858685227764169685617836224828945746318199562623145942884286413784446935116968712756823862893819937384474588847416217538946823669325598516116852299511841883453981264897688665816947927477333439523112926939898656473625193121557849574834257893441833141318288128937684125848817734453558646181626794791732982438942587615153124365124138315415347964856719167992352143292191915627898536536449913694461671394186796371882125842693711894576498698585517827518854345719241958897969852466989348911119229531161188363852573527376491254613835156863289262493763398878247535764631459669195961858364292378656978826119431773522876448361154617917417638635884581159778827288715142363386945638377958461224519251539218896938566897631782267164894866212176862758696889753779434287694997826938619652593859649628445927116914453162674472849972656976349747173321534759236762466212714613152278757759816926743887758127571711624913911747823329261343338927619753639247466286588263489634336279669844312166251879371274834825432489932333347719578419756336489347189112221358238764624527496727618323294663425482554469974188959424431718789873953119848245661929515384466736732255685882249539396829662823355424672545562158374488541135231469359949694987449373125442926142239962944162942334444653465787996547448219221679229517298732524942193734215486939445398662886379392432323188384224198995956458633475613556861699957773489275152363487482489315717868665816514943538223653373323922615829377615557799663276445813488535153184317955886161632885515287874956812859893981816686723875857928679889672819194745598325723737933552728736869188874158589518312239935537391238724975242753972243494419193762395773477315896121679973918287475594699678828579563293445291192735648359153861375686926329644986765384448672116923477535348693259868951717738179855654797873269574465873238666965116758951837675544648168851771988949819368547926483929893936457582528717333758825649778247555891581992429299564265747795298286279532421118949169555726724778442952411196341226167377948263179198433886264263256747367278583787288829415413612235969272392352237642763614198852577295245193317795641894828641467727836843484893827952957282889697975963244767299683124776286798238933288294624457963985277966518643996429153423192269617225592722997839617837727916278574376313237889158864853881452545968688488771134526525993585178355511784154759636961556346251398345584866534349376419885222954531598275574439641421948573591432965174336923943844811987144589563681644714379467679681815643772375433516883655168478235152284218133487717437998228644648812177587448735551327753853778194721352787874775539972566186563438657918788684778197957315566739831678883158339931992861727494526935491162542881971267213228697359796575243354952814292247256149782335645638378789444364838431734141935534717472262825621269917328866418994822898624355255768151844444745242799684972939743835127175567599781977473834332359498667965999683387357816184133416876968994453473194989985199189417474543969767959819834268888737249998988177431412177696163991625867583894886295712631962191547477593116997393619534669666133173549936968694695644882481248637272165247539455752513865212432736425812584668369558945656942994378823829566933814562666321386568998943392492139263629664124249991159252772538543537214613139993864836395985169563187117864769877697157689441875863563591271181887665936987344691624847992744735683565991563472799958886179341879555782893641972837611292434344423612859966763679296845299713925833676458537749833939252639748986766455748896626476546148712695152598997592428242275569694468116132984211225319143169538448147576954737899617354789898111244979936836923219579797793981854741658799783624544445356874298933691447893579326797327441429648635971164864691632976426355826293191656545621346873642951169578711572274848586374691898342666527682332786836784325955132539143226761366172632711825835363862958391299582282917249376419444557618983839126841384526159699583998278919721158915355459449179592775836541911224257975191845545646752172972415796364478378943787351111565622453846768547899744617466851591428656855899371794492451366867759694636652138519656789922772153119178163298218872619928353523577811992249648244841823443162522848431246653639859682228433262875176229136168565755969624939636339134884798175881129132146428491453357159337388843649989779459648774456973285623278615495198367763497291614584235879954173755885998797354959871531452998534165719129131274628292896427318832183187241654712151177469948871922836153443892555886237194656116218869317815254665846355917856752687542539565786675612289231282495214941934446728617319487842942988685183756847111746589467962229533357331773499782595181741431396858999895365928986459497113896736472949669385512199277442323985584642298957655257588218375517893553581656958379681589475395994515386198921398761578288116989417669675537522129388377682191338582691173229297156423665837763892472762183334157452225481349697662813198862576628911272439722327839952826652192744592621488117547428443134757892365636995749744919369612799825839422146537332284148554821145795215457676613828949664153357236616387418859164816363765856992591725427537475114135882672265785489113737589783575388154844441515874581683839255662682778334776493853849634448217525435553573858472289238892179175956878887986116478184554658598217395669763747887234811488154477598654643456386553774667471174587318222161892737377515824786761132225633738676694349416611151217634377256736395673833433596781527684218644547168599592515483129436134779434244176987949894658445944868378277148647685965113398499735721524445392152116668638487931649797445924118792955691997845396169672171876738157555411918334513273812848392842734533644433495964963854547698815446243448761859331118631329421943659581299116261925886139128232791935951769933697682618672588575547798227649562448823398989939483184998249815495772879461679759854674399544378122367633165291665514834541974144392199867266398923745155565383397482913142365666339287971591746859816575882526483838979861628482968862879659736729467315674294593424436654597556355553419175453777946624194376981798837899675966289413421937332392475958198181182577883382293114925716839297279797265866617996517675791897815948915534569546422925398959297537153173234957879159821297399574185596917144629628761464515455212616848121495853144316998116692348397823199518371342238675296274676223159683847957947262337418151731579479689954498586922674484661446897557394584559562766179336351773124826147274163863199298482485419574697965293666297916769299657745566682566598171995361881676846453735412263529816212175776262437439389353969214372353731286872695776632727932762897811464643192133968729742472732695565496867761923253515632766771858822881518633435847431875496584438982234962517954476458265882824243395192213294865662598955245956814983686499951322639738359313867227928577145433971868168135418185652139262489284832463688473252535996549214848912847563441782667452748191645593974177861622667572937612818546638792285777851443559676624471159837266533856174378922959835119473679154129467957691936324763461699936787533366321262258116622128776261144132934165294957269427988781384464365861179729868791148163398763526127639891637186582123651284992283648794671253764379446447871544367448933494357736798576887214518411828262165293538463662646861215179643941994421136571746869562299494426419123368613859371385969536628589582425342815715895341719369876564665159534738383469985947968127594339325383977517216932585352841359717414865979514424532469259933987787891492192425863478647386375835532768991577749592846437417216963772954941236164571881359414835179241988473374275932583182968777168367826352693246539845933797885648728378759973644462968861719214363887728989658837293637475648956433671889984936634151678377618177367468584592371751976672981542874163979477857219813453693242436929749589933933657783541648189893278482963683845495511862496513997261464455228299649286484965498983496754599385611475756996269793188788748971436911122121643432966624378591652361423957918683752567189377515685312259231828844749213823578737799999765563384496619192287347694115993872313177186168188865938749191435864619996338297485276295129264486721643846325384586652769317999764236115686788768427866486927154529171976995954728657185852489452248494889371866622439436531355791157374367196877599536528415867914569242694174594731524685744679595834783869637881472988795519529446776753786789497829515879273953438843779416975921988627856646475482378329311472168897632154381695391456428458569399887973974767899984581152791928879271688576732826327269326494454425437345877197216542449213581296339315836578368232219634717291625166882435759731283799234159631874997778258873523279739719875435446635948333578258399762988457622242917666691859775917739692947685144889178328953964352137761567266874364195562479488364836119145141754253461478667624598866621462875326157139576914668232615316149618598358885455434694481379322448269852976913482244152678795456168821116665189973654676837195697693696612435841734981119879596154955189665689785922132227763972986193761339883737584586778212629453227763865357129396718336368985541584364885269886939993199591553664562421262445285173796336424373574981519681525368698276727446986332728514112766536984294864161188718941929581933829919384678627356518615565671383354685713813886544351933646732391666111224812879666657474545928942369549287753288199571217142399152897233935521692752968635831481624693758745876838558396664561928712119997996671135627688661578649522861646782897276298162626855589449256928169881276952593292927298816654889878379669698513569342229194641628899185862986841297368552124294828261969681232691882352162693652452973127378392675212454745477316729592213475398685831515116151847296778579416315795182164668594834472271993492737466867368533859889924632883646556724789695913237739219788295261898513288526529285243482584124578463762481412567691726464465699511331689376517162994522612385769642789586343122493649776648727987547439215871685424177546777248558722277389317571351518812397325499651477548662329436958637838746649888457862562994353553541175197621555579265745882794864175678868962817466195676264622729638353152991917835774265797771144867191487214129479397367974258675768643628339544987892845735789557158384291716659459536998926394686895735459443787287432192954442132429948443639649279647419768332276361785799567319327199341887174226645261916215236841613354754746671415684589196751955478557482327489775894912857269774653572615915597895795469144744396146127894861136814417545366316948465546675845511842719364428948729687824178351665775361956291913955464348369872537428856654945828653412188618887749463595428478172728946815322747815284797938836729146573626242286742237788155298575341349669196354926391232378871646834482781711628664188198675572547244369918823722757158915438776468116467287929119559451947969681667819977648684424695922498485435258847927436573494868523684183952735589722967853482537698494815196184223315398467594667765959911811434922328423743689631173911857168922969896454743833282696547135293973295869672443276682286642825972989713378776699988257634773964926632583758963223722695638278739138424469413463764559893772732132217423379428955235125889876491558419956293824381197985698342462242812818437133985717588166133745924298829842835771491215583622615525844251394691238427443535789572418519654994172895597945944357227188983594691828984889332422773177619853215976736465996298393445915731661517919466997698167116214824757552367966551237868996394886767769791985886342659174513699531518219895537112397188274173195834192174626914947746197393133814472444556895159629317417427389775627213349344684576744188598147484536256771599594183398624686857555839389642537799152467642378896731659839539927124557671625139448688766589245262978667278141455397631696197772664119966884821397493558621226415579931256211886676529773332213642478325923726175522882276457747684838548882545438983874741331891183773565759665838588462598519694316276113522164836625747651535869455435262258455425918572247946189536813636214622968415519473978563252411779154245679928561578763346389999139472381224432692154987878585677384577883396378879633356497983912792973156678845845579623238979872839116584151119636944534619151966568611571671595459598959217196551396875679624198682423263313732221597693196917941966717633452851948735795935814913274768899941183977821714764767612132873828166235489929737863863682927799139235989712591158129123499919487319575558657686266279775884124389756568981583954453157924337983816616897598382717319966978252157364879353678375781366815461639857957915298677695777146988673789794346499923439976614616174352445833953659636272831971227669881794942894838454432291678181535868649211432257513888872298966563356999378987194232822139798269695757363767437835414869116617767649976378423119473944545739816872154426667561729992934924999274554832333729439789497282617378457163466831265333921861595724281751928919337966646176353483889717886146862647638593256498169629983916794813383152717971778148175718146139341217554864441827269856628185784762693248674667129788793146785723571426912977782695741212914393818897112847493523947552317697453676998811225591713431626248434718439216977142132828459476662744717643286962536468875451893294618951161145216642354492597197893825564634594667698772462722813627238352635469136562168814813293989735657924569315147967713786661555483974458877299723849851424785856921972938358725366136144979925511523598596745186835338689872769537622336981586928395176976114926783964362848592532549849587991929633156134248734327286954333674625747534679883765573975893518474111488881366389321913692319433172868876495877956651421243856669459818962121788735628998792126244819435989729119912148773446996327431531613418575863569841939316769862753998929577791435799241413276815766888936753347858548392848982817181963233484178767889531391891842532222181254845953992924739995125265153736354343988545795786259414732687286882232926199751871556454846767979368159189935941649246688534682691352817863553974535953325672462438298132574749388322968314531569947837455386586676812566216281334634864352513942999418436488796857933394615591133294841676295782475192932335159157695862885144914591228898645333799618258792311448838885872274832161747494663895723276978919747638861827356797657197652729537716271569117384859588432255284153958674296739122527367567383136252445228783511117955913629324978926654787957951497162458399562552952124336123846566869129368971456892187922944723721534468185466992114439477937677826454987592832161268771699371617297475938193941697184494332621175932164975397991799862331763816713318494189431872665868979666844942125882411915294424558896539856261893364889487834662292984745637427954867975655283195536644946483784135253767955658812532938289933539553297776194459537378846254328291589551465979675257892287884141529175262395611396951893957168891845757195319219372173946333197388968247723225923278985282845138949688323589817261692425766221122455755845712888398688813195851653862758999735969691365529767523243599914275135319129159398422299216356276299423473924382946794858885371662983661652491987814183738936149128857455966131197742225514869894636994493383559339256996966324923552987856444758485768581475678217597541717174745316288347614977527577319167664353426765779439488539657557774428938684379325737374177897482761714193641789873566424716724385888996576268227911862793664528923566282393666852745586863246951497279234697482655841832697589947941992494213821775369842465446569289942169216425566731757827188452361526441338283373354813323681247235997161288455345992154929993382639752469498459868584235339698918232913418889953915574346715428182358746298515731387618865584829533442723286884141721854686496694525944679785579278928534312368639156512638393938685368672592196352982627925996776199381682352736994793138826794627983798348151927196189843683664256992146296159875791993934524265995399169767397645886675495869326871412498767979374345718961355418193754499667852258122486767586739159229569989763454448881559485679173218816255869495661246336661477878573592638944118274789433333156812594795561877459959218697984499249899856879923847375849438944938684543756717219753881184545381857295731624851362358677121739872661678611422226228943571579511977432677511197416941689489768197849718845948764657968719843969543269339716343211174756392666447911645985941813684653182139127586312494651477154389924723318723534623997259375995776434784832123387779286262397531127668431163831781172284875454395522769513666513977585941115544159357926478938347489953589962284476212439471861789889885771336382393768391295873738833654453589158885969876521617979134357727783648667584841999588149878744684332587775577958829472187454579534511717719238729231885697469228354955932963823915365972746616445771546828434419481194419838376726459341291367254595116219728941188921111323871611449161931298398878831531867949333776847891486772981566278987257789423468848714457531231271179771238898492642455811444328937311246734418561697432293727973853537212326131791717727592212432533141729781593164692466111877576255191417822717676129184558745354796492899162596858497829199333943474495237722989782942955831681522111854445676369535436822557427666969444165153139598596514258821315877159793769294127899442976789327719115344963973186163983867715436186262763283383552113499752318654375662848618359129639332559222667779718535488468224269563457575418472454788384793646848918497377565928579288445469946924415258427169998513628819474477919467737834883534453518831427298934392793319561332237589389594141443974932769967927941791424261486796663288654136272856816429441434525296551297979531918556858916298462524511539372471644952191498927261369678347896549436911538261646159767138211557584482539913688471337726975188629939761878679659197729334862654384959658563661782131649111385917675336374943468994612133819754341228278312737463667672897254417319897958891651437938195966479638816396433713749898939379754557568912147753346174473522549449726782731549963743892158396545949479535647914397164846228764542586377937356683792771627463874888212364274832712489412216698652899494547391483269853166555528423723237381269298459693659597633671289882785761769939586889586845971374488734286281584478958962388761929428199734887542912424998596321695276141112872892958637833659111779998193843684884246661788648148137899115763636478248192888473436438583963639478192646674137356315372499528717389659857432668285161899198297939256661365728156228315791659674271913836686433119922674392729146176855148726397962917494467986859262724999869313539681142216564585488186784774973449166716981193424288833925512194486576834731613164849799979858966378132738455438344121663534314717154215365919655774613442962349631275638835353198597481592372141959888299345435978999973438795694386254326845857887212255152349587825261947492594738144718824686315857536154698972717215276982868469659265161541975373989362713784714788517285157136918464145637411265889728593371465786299777876579465155446541479825521573368828217921955422925659412319466297624268367193679895778799317732955264384379616717213469331691868326239187665547232116874589547839638166895688465944612857697478683927517945813842395484235632219514524289525244626299715561699821487459412373699174621411882865162398317776736672567581386518591772483124933237679428846851873924675499827159549591572871674418827886977687442533755273557888641498497978417914831932339781344937462469775355137744948856728946181495455312471674462769411774828156857558446376329169678798978532492148571315734758365994746399286269278763995753878364139558285246997966529592666337613428961828314491644319622177947355884829487658879928613485377461379649185573796359218943899866793536617855681151453618132658593817899549575179943286512663395522864491297714499983745212963679626121324647578114593966826355816635738676734299477724615881863997958744751423719935593574998759962563399242831823161831848846115944723589816479997238288141626433338392398796889245334717618564132928925377997267419394899584939187427461797639297894278342549525868362873197995345361323654821758173581839478645993218815874655678598587882148369297287629393977553338754792879965385827894912899741878987415455446581845978313553417753472536141624713294416958858799452641297676574575416878736634731926965693885715929989913858784217612874659723321468669197127193387677557683253688314137728929626176563162259951466199377613886534562765912234622172977386387291423581146793649592984894766916689175233149386245773138742579625326989972879719598429335529698854468795699158886753364317911575725562814974389225828155397993487148131645731366955248742374771483419967689982692789923573399743257757641163892615837836376965549299759978883529952268617553941817122763261988511497255387357214131762749878264472787854887857551263637212733794129229126722736647637511728875775419744918174976992528957641518727476197239239319839254138278168631874355551731131568579328463432713916684935696953769213692413958342273692316234643212831959855383934627986478578492929289539447557543822579999886486116963411784654187541995983482962769285799348981228923634399657146979726482294851775871949919611233291664226738682456662287846934437548348449832566751399927483517815222729495772696645812924448419129155723579153618328249212818351277544657499174962661366576993511721397483435832628986668351845814449518262417678993813581349733884729634533124988888141286784788144441315944936525849483132658185373596351156783259312216725291888157196316726977951159239256979566784547549183563938743243438948326367252779531616875556328518792283931936873363961794264742875627954785482873534842864989679329843699759616342611872465696525564512862229473323392921111467512899277144833822766252669526958622285694824192197584976336344454888577621227975739645121513963289996425463933235893565456451341495422653184834742746216945622598991169812565488968872559228827138198498978864947462218784291217622647744642861178889973282342737216463547887612779638556297232666317312562723755599195436592312665142791681298793517185518367779378651151134233491856932982771697148539472928714137162246396428113569855232491427171225136287494447285283979123869566441894577387665942149381475677985717784589656254919672388927123762969457491496651185982976934653727636318224737575548656353436533282527893261629529217167916916127343344272389794793485512745879563169638551774552262733786583486688594871337497946896566576663547676861394479625661524921111491653196388389772712384197667711898366482593152236229959725846582773761839881658871149447427265763893256394281184782664216521171788937379579739152916645667163721493949394632878549622551928185371374769827893142166727919866617156468322715391188158499675839477488257781142449856656537843916382969298248898859443179776455657861567175472827365657926687561292752971988686922838377933178989731838247919782439976669921445186769997761582971353567857615546546346146162162988269447879929233144841768924846785851989577776291142357981872451913496894534215568452844368984145378787779757767952224661668479223933292847622667716933951458321828672998417414243157947585833729821836844994892889381854368798544917626913139923663316669162154447959258785181745238741117175249848483761126833979391312955393916452376478291437893421746236843932963365211277624836489837877579895743391519667699739479533731351483944181512485497379689537454693191922323946388816817384749669761898814328912529734833889989179269651624353959347315811277742191679827888859699653456151491447621989141748643393397642433416852264249652299114931317941455933563991589492478683264767212439819758285687571158172287216321454859987675362363818815734481862398311587375524462822217346965638994875558238359986165658618773585569375781784895479825834667821393571756115879373622783397319555148185832889189617389138234239466786385891129589722683689678294744739727466383927259851517539238147494517387375146899689719236585324572873123735481429752365857892665779824635447593417931567813683429558629963798312379878426374787894645274886399314136394498832581991485494599785262985743572446345459343834347385557993389597547179343484315158599641251868524337459331976982294569997345673478574736112968839644822869299953321139488593314916861985892614895991898294615393241755496754387563826846375841229876417186291868925972129285695968878467222631229882882812355913757288732488986679384114339498696255614739818979814216454483863865943913544127695966371816667828399149819557941474856272638169647823734793365118536541625475549526699263467568998498397641392759928923359946472611998649481172632976384186421169343224581833776613769426542891874498765527515346926444645485784683559113518681666787878788414281394282138328717916461829151732586465399685687694276217291595731999787951611386584167161918714289612366192391747396386948164197874971948583433486984198522462789471551375398517811972177363573479986833969575928675421864396241699548947326949544851788799479765822396451369579973452637637984853943375566551538449592258994349658652448161737982318559599745558496511822663844791287836597953727746688187879379842246225599441898525264585419744665444112482756869314311319233438858229756337652673467889894131351433854668827431985557275195448167548958374811432563513438866449194819325966587341255627215532924516871948487766487893486795117816549513176592989812822632277598121196963975969542452441248985825562177755186279168883665627917645498189477856848278647224279124625616717347269611426326734945641879259692598784653456689628899716799126337735539193324184455647698383889759598438986863185316733481989562218864942936497756673523131274289831631377282792268566183946618215519389165778565633279353495466593435352347767586724925584819536588224866359319842786871144869768463699387366522639656136681276374531719541315112314242998819128163459147953355349178473799559952169549282399687374339683779761662495754941548978445939174549486239992713346414425924461272126396211384767236896489622764669431185873767833163881117957817369448971711989135893351978485114788627571873789599425784919436348328787818222976726889676288271954684136756986166959935768466398355633978386575255676569155292638227593633778538193934776187215315495652575885757672545213885283435663631698529577222647462892635976237683672578768979573766392499491947942465665628521868395666666686425649812239298699765191382533683962732293977426558319935475323991937476565671187726486955468371369441668971573176796373161899828586324895487798798213681646262585476144886368715633476978474952134819836178953477951178514758272178262769431143565159763887627611288392347835466313156824599399626991159664633913115348719446881784636974975452545998458481993215237662675458437389583828173298526929182649381181124374478747479789144942734163216541549454475949265732579777977399934376132452988448824715774873419163416787274667558566726856341488635461545175983138911354634563724122893253782531838796763836434556848385327856974482683499935258768428427978971115982997935679887595869964849919876638248357497177378833611912462318778822857343825119187993568562783369813163437988492377833791852242763241473221667941459656695359298175626346243823499864887778653219642299748856868434237177556718377737917457847866371338649786875971255968691488485719625873426881636115895889299198615145781857894792696999683361616681628392623644936463359219988347855894943861581663529515641349934263547934668611528597238385687211147766151848433767327966827789877745847295354134594632663435931266863977832777596831432715426131741575689259786927957558822219793258629281791117221713184865933979157723816257866874368584928686518948461989878377125291494169229547237963519816313294561474722497244673659886535768858714697594816552562891789148784754229121898227397548873576555938662641862826144779745436627196149934254511216968858136882373418365948644846378931172776984529898642726437693385759522276299698862826566431643928857697863548537178884326948961352181142691131799317856285172577895691364671676531778756667613749744244285533747734317773599244848473731157371249247178926496166276227424337993853389599976367654746187719391495117649318791764549577486641295229874598819967373867639159858759182797265524883327829689868561828492677881688836517363488197394254338161211556267293368118985288226439736677473848793818983884687752169562237294581424212896495647367399383447768694666438488196835158527897484233784837911182891612877622354374555284887273863123322713395985982281875695815667737338399195323377987948898184999462496145794487988848994881436429739992133235755936844369151289175811198315627125445857368346588161985971418311761979796111619967299659366656714617556926483264857561618852369316584343583729279211873896133698234897847645976979762178323954585189366581263816375291998343631541372897789917694332285434732261254147219914336482748394357984512359583489783891587892887976825118877581972658573647272921897364991799921678143819781315792899158853897892917186497819172911831748841231475195824252384774928714599317758573236171249863368536584671999625954165311423575959587882284653581754486899299482338578328876758544748444768838442672264356786866867373483515579311533315926752437142963426389293184223128919245518277793672821638925714448139795519789718989117646287552772768461952364766636235697938622155662621256747276285329265193394248479428327751723558957434868932449656788329854299259997813759474365836342286594297867686758731878888617721437674781511552982888789682916453866813559313113926914824164176898285582683189398724839641665227634844239372613761741135932461373149496786423531915967237166117896988479887883367919375321231742568648676534253421534663635448841278693984135138775491168733483624472148237824891358876767895688189588577459341963911376515988695251276939272413616947967784567641281716985766353979496175654219751517958492427662638777578371361669831692984718298488361758573166453332558857476688353298292229749133686767878299267643148387652171989833434558276752698897249121257669294498356988837465722881348319975964879369876272127985659942864638897678863916954738826749837792143858734316566438745751914193617657914159143992793864257383249735175823652837995959665764692996738199415879329776814589958714765986751349535423349746271545682592117977845879777625858499626889956179672887951376646489364817674681149479463261639824654797648779798146652624184132461976779937213312653141536898119812794841462258816256331146332811241435986369547942723899598912363789565886795941455962122675127677663941435883347863988563458587178237213249558845127897737285937918741969274868458764556463567758418775418292498919175277281577872774368762459368863965725972556829991173667295835361293125472645681637918267423533695943643873619979667181995344149884772875751837926275691775397253348367531399788648824944673581518396623218193283555571118121767817956155718526862834647871495888218691553624136848879628737627797656749835382237765848143813936895659591696623474786379431545598231181449586691963748982777945729635893128771358736469721787446484752467477655343837988267222711669245525796875343389318712914153651952793765129944599869918929477369482153696778761485318967636763758916798175171889351892357277283958598675483182162116593878666335667757643353481159654929429822371595441328886331886589634579262887298784986684252284169786735891373164593794125454151277759875636429829921858129811795817135325818883558996658827243752761191989447227257641767453728921984799799562225314598534293423958336987561698351477944453989944567494249888442684797859983999624364111684285877653929668473138642532341648996614566839479561827481979747914143731734749652765257563575213942656976895234721587491948844895585756427829355758998144271181228475969729231697387662158518811463263834622814748777241668551692649798595791221841731541819965914669696694574899845881882499456523568684517934979192814882898774918886211184155947264181841855849124725357846628453949849725561953782789251499482743317624976243277135279972173578254678215595332655327358279171262318715286745739511355755262212695358688127286364391988213485852539992153948189673457423872416376969249929311173961986485333884546565721538749853754731637772327251253187854887257485881359776584397695826983975749265443979358788498847843798972569631974474548461186976874398532493298699958384614867596435586437741757847254152548359984469344186838396752888487323473194671697661269869549975561628797977858296953658219364651692484763196449759396648882635786199758825754413876336939672727519575539952959735786667946531189881917243263599836981395456174842331754395849853188979622954315213254434619493842173549919369683566966165511376878893263854419674293889134411186364584166844935186476673257399874313594184168119483628589647676925621861388989848439428991312424318479151911994857484373267677151549978651657862997257172866815819729673224342845544613494387269159639519528651562748359675638678788159818664142969686323435717776364828993218145366132345679787288894818575347558367912372434111952838394748298649834916746795735589838686694313848945761185418219948779175725668447967981353888685453355672656443697715474847259875481626411943298482813255395151623387649726476782522362459957236355918531671658846636647878928767379495599396384146295419964762294436817229264923948181779716761345166295168996523819645599193499917641398867624473279451328157947314962189748315558795973557638684324437132885328893831645542472889698476485848161727315888317314979551845465754477322926489358381389971688382832795951112428473316814981597597861335355165594564846395191558235597183945484392633696591744369266387779345682943899663791659228887792357758459111849776755235442975768999387892223273442993449745161367288463229897838425199432841152895639832752855996444288717681234575977121134522854599195719547464449827354952287888189249599819773572233618942479242355324366373176396878763481281983743166896547647742386549123689785616573179244585444988643944612867734951447975279558876855555116523184527978998382423178114555467162356727781337693717252249645678121858299853169839668761141417964555726312393969347533211466832861677531863127196349476879243447458343441465691891653449845681685297675656676858984667274997779788756978691169541665516675781749714697776396923852625886611973964336996435994393568946821667385374376839566369763316168632967565979388886211628974221556169317719385177529874921372673456888891244113381517384855671976373699947678381669698773591798864148487169546467569993555949819489493482158414279722881317788994837831769899572891591617593974417668618179849981236652117928714697955773673263442997693992999393439848826474232446636517565951724418471962671532185478897799883742729981797646991983821915389827318963496792554923312464789412749791755473637151852273247839139794752183125739856841413153336537398196259898339815742987627993822983844731394761526876579341713957985932764539872379173848892735459353868588691181952255546325749524667973378846682829988236815359374318988657938978514788368225345648743794686774299786589713952981869585218865681887357189229338518289842682827241443285459578368552365124352547643237279225486148897298495438257683388447982151918867762562587916149647531195543194817657584338197239555518243469921717234796738138464554156682586977832245961495945158458373545642745611459161592139154242654779395843933184353313264352613837534273972496377939471332129967939533344243675399684631948294338958825361542668383116967562687888156394342967511174564231573392385327851978188557173785724936727372429845913739717478737164599168937249595255635772254778852571731522334845246454967518825781935895657769763494722963965539334198166768589179885148188924599952429376794551459489947127776795949151317127684982865394419865667149854765237456843418329783784881551884533385326557948375276155696716372796275158176546174688789174438251779216836793745652744784398395129649825592114919976372285387455694212528768432913663627664658515579731918964787311648944748436968993662896248831762188373688138113186983548683454924856915623561258899725469914135568486227922892314856133486187184794575854961217131852379659969777573918568939296432189654969557966576939998427617664812829651996379383757779675377866318114192419495467883545623947512774881736623161854468244627891876884365358752832492418679923746755967317455417338236592612835288918413756535979552356367949464396148163731551511563795531494468783642372458653969777323834398698814974533386238846655561486379788848977422927747144175384593577255618722784628296488376419679671275455986526838918155829773657797841586288565539266387792152544173891978479791972461851586639187624326577274563456938922162628837692926932817549666142288741931726278693864472188939579382197897328232679946765849973836133381788453178498979237554217868586683357231457135564359926588196427619897253693492515495926382774729221824299417343363882422291881576999579212175827571617588757571622968669853944535371379946218636419644676836897739516156699661877113952123364147417845653454695573322861292118366899245293473273788313231783324991233143415226834476955717785267423486723716492518964956995263133177983973782634399338419653967455137824867342642127838788364365921993142975229899315498463311796813584259669777695138982146318156266232449452799869528282248733839812481576238392927763112621857494691574737285516219239612954534453568545324656964863215525187978367482293348352614453478918493861999588249438645945247224264483283977612391636575988858869683751543292321434912677918712268378736337366132787422584687969819492937441581887795579529522139614251552461476898183151613859817816875857339331941876843487866823427912979876463267574369872195277751716737387895933983548267188317527379453961157694814926659683151354764294483968866735722681499381542484752316133383817454488465836168467462941721319814361873931944147681212679714649345314831158574283436999545689433212297733938241227722351882943655635782915111918247853377963939775375254291516131241843774693673281358629163436266135553194987314963415778134476787312188419319361538875882498836357447775873826894692538255674952315619726553152517783231162793862154512565934958581169359594957678322776491285642856222945446757779356618792559963171574976279886792799739238165461247322111999868299855423897688886633958998989751212227628863199639856381399735176568896394137342819785934191113588989792422153586767533621578329619679569522688548962411331179695815481866965841626454667967199734755986399516311557365924749856919278837111893479957361971958922127256779821365658942983447214778176885324352316481662279689754899543229243125376864361893849733625488273734195834885377786779479927686463943438389319866463898358925523795432472348913228481633637725948745257161836223536811559688428356359527737473316526564683875699428181229536844698341782451539539898654327438743697643387359685695797411154519278421117949472554859968842898257186197154581242688849518779377292924941736732592472567641787371878628254414436352357246952498197623359526364899774627247454826196755149672792569968172593494238946975684171167834364885889683454157537919416492793961648725897894447455874857564526996884954473969754257334316748116673211716912889249432976488484237182671538782773766286458764892934743161628473677764266879896117674549966821993425478927944494139611946859741127919249478839317694737581632677368292952311831744623425612517375229159788167117217548132533117616868274153113699986179181843754581317784749864739981583484888329686846832274697922642461283833893279888291578575248259112616266468942192961683182971618813977835725918895343793156331481324259597143986521263187989389235443829399137377982191338316435433245268247783682288627139499633879952582221341595839638511394389666214349281851711693789712947965564416397676224414136933445173674566839498547454594697468677821769891271223334264386553988141875513747617129952491651688689199257258978719991499978691532989569684242534177658915569712867299615388919453185711515947322112688415354249828222358584989564215533821873671969594677625797799422668886362695888214995165111793996856136597436827192528956933769622947357234517415692656953614297244195928718938311699457746267526189619183115697796123615165234539271264123455877474974577445387256645682714648693644572526961142554928289298681658998644937282929133843684171243956163594355358327417567194718628697435634925741414858558943291195458283988382886742222528741545348362953165483982736521679637265988354881136755539632331693849262515571779143413711539412611385919489279584844241685586828843737269319485515191543839114847783793967744879427541897729454839789781715353838845643999882961117595593424235956193438614671393538318559448741499961468138851129758286358456262675156364851693959614449416656545541958836594661875495455111561856697876657262416351447274769796149684582526372962594313838376162591295392667466968469463199398795682429989226377499277222155756573468796496118563321436927259789139952555171974886569482722811599287328889616477982857818311929856247114158657577757763245757649829213268918158946715933596999821617695867524193569219765377657463791462624593639471477996554975969175889872482816293523242785151818158836221789972324846555348596859781914427546575643745947221118817183559947623961951291815893299629735968999782219815376546794968346766126551886515862844218275339347613597764835594165413547366958292246476276414323984934942887374882846175199544736859941692699322659366285996464271377183875973885885914999742756655385736512873369846628671469662314496744996228446654467999357354237983878525317435176897184114417592326689453228728951423512496254666335959368623434177525488698299387764397593511539276268957698957569289485193675944849347696211634889266171493751591748178793316341919779816441592446989949532755214334398177377533742879428464444945259965955688577217475624984155266814178775375432533537576546386697582114496686882486321937441973868531686441724951666883533589446465391696915955128569487359823447199969933449757155384288767454815818479491136849942457868487469587239128926518628224719885282838713461239855742917526396741716722165957385547753359422369194694122383915727542468994685662869271247393843955832256591581149829815776692293633491997876962118194873946322296946743127633434689274715588837112379724784987724885264186236848188794379252977786746339415529248959921185419954861474739182451147585665559455993659685153714781677637429636351289455196523368968148283458672264855844879232443981796939967216952352776987593597552375972861121416274472671461558131616967473848663618669964368234863878837487911949975932791836632585975169684725794914356628347381114866849277172628265886682582917825756897444886125353548611235166268447375198178557695487876626892878889729745484956864488478264613915175351759131948712288617422381162922331979156281146275941667677347888319287936662189364131242749168239874994825197528457397634394212579187488584872863519427447989289418139963574597334955627341364931246183896889235787969417999567179951221914247119825757875854872998833291975943696693313715565869313426536895347787682689289123889855928998394775616818156745753554131244879115461157722638164237123557192698521898541149131893174274257765188326876813159458118627568387177917793439858781927649793948538986313339228579269822852751468688936616157239948772913977728218968833896459987428892583899328167444834164573398394913536252637893628711977394678722586259547565562865794597746562798428946965523819235222775966781752634426253958711252799929851158534941623685888429632835751561477188684869332428675316866671984665755459714257862224885382843826718851875693115854359922348721575677689814657392982395554453768664329927764969544937136891528472519949797297623591694281666887638295798916511715563778982853974319269521231991986562429857734227424593632564548379935945476168636258414816592991877285993588646271941856162915959426724225657564594259374594417783396954396215552373386761457964199779818772256814371813849986353225413833597487727497861854342278621914697166134688998291488543545574564219684987593699115287164877263313715285969415191828294725813875875225849968477857213313441982236129594471255879888861181975193572212724164449432677841648161685292285651157618755793241848814732175147723656495769652433123747885268191764317389575931459799457747681919396414398441943227686794768866635558841996486187818771864284836417896465829396575352877269837464161341437981494587293885915456546782195459747855846448795773261172244448937977528348615557983542619959856288452314512719667178226676461257996491154734142831515374943775212399141787586321715427973967516135879783691843953736995663986527341193997137634288456641859697423721796325196268698452266615921983889725535193747335937752863827236997997275598635342139975746418458636639741854918935868639479478648978458341843652456243744669658724959349497493649682769936438456532697293462114413921597679192977944224269731988433531196173436876994836338491113367354819362321778573915671579576681973495544385596339479956963416769224367194248534552211715996612826874286531473876784998476978479783461564575849468584268491236843952469758422853884887345743161191232385532249714921882126571611933557975239889177946517275548425133974349922825744246237434473378489778591158381929581612354958575242933317496471364411196426319621679844472674346141386422931639575251928293254545551168388861814219945338687982799979366228723839322795747884683913747922713861256915939762851557711115663588937755538961737986845717868764256579398669426111378852886999483886435965484647851448836523895986211217311543479965628258576261388686518967274772697214639922941641295683787511325783382455587799226535244914323847952337332992692298645845389794868731185975496281254895437833537624622433571448967999495944666954666685223193532249671619415675478998849982883866858517734595111336414523961162855556628242611761944882995982783234848529947943245429438975876253259294786794773291362922681731194542765562172851685146828386797977689217536517386662194172988635812181599248542324589552954789959953219198596813975421916994955317469677815471597838999648944948183951667544237215774813629422178819192477838295592522467534477667596623248947879876136178841721759475577849959192475785718863117788445616685879532537983726676495699828749926916268743125758544278322817548774734111949881881518893866156571181921272873111693452143495958283127685432329837417788531239721799145273821769127867268753245392812918825146265185643161288842687236612613641564937784915655472986614628463745169186562597957547883591129744176845594915237176559244532755565553786471637622583883313154322216286414929389164882346366125433392884895482788361661246534541619993444675479738929848957883625376575833376719654335897382869466285199699334767514466857577236747873755954636596585297914747437772148917412744787896683433533151975158971836689848751414781925418383862293181129279565121174789268317799399952359918218177647938771189477834124369931532549378162376162982829568969989561555695144566356636862583711121512445892499927214875782128766653882853497992925387527531876499857963664791473871565649919435222163773698997994867226456682665762387127978139298461172662898473462181873712519667879387486899664169259941574792732946248529144497497973582626683395129945336937934687619986695692871377857889659592669434339789184747127892822147239286563588242328798167993771451438696715829329832926181767658593958615847217244358716854959674411698593849919249772765266412834717149586376991641221615973251299394115583751527181959836418516981559892598879697676611262637672922487587999845257541574553723155139313844968694389723358483511229527717828148151336819343172675813735219122842886293486211578914456135888183748422151283836846752265489639375411173584984281653151554122927869152659713446679946564927637684755119327424962993819987537755968322956971925224996976348582878898851947785973185965824328785993539145373591571657298678114788337669379978936625741419825999598824176189345581974161126937486737689866873113987386584699742675931178435842483367732143499276376652324828414246994661691835526613513872919432747866491326646273966642198325724927868657567959767955969158711781167583876593598434536924634983498991736822757897912746262772114841884286694323673784744191141174987679917171717893867764125965459798971945894447726167672652757886452516757863878364375419659178672734813176855362554385914919126121499287185232851222714954992641991787228364181717326982799378555735857929882484465699971839954373589291831416499649251278534799881832516172964969792999943935544369644667788829269629655761393323635865685699359613942842319171124331573139146972113166279941794338718853648639213912692112969977985362948788798941799373296199239658291929545713575994553111452717582294194189493997615733816891456788587237651851678487262967364464821217591464916333897887879366669914123865781266875618655941855818994259925814984625546992526988662773638695631214237128289364782453725933716939797797321981734299784846324573981562746642654319338199279168725267886246763569336347898219565659196875291235889451182875565913829877655336435383992298321674531366617899976617284164983489234886297594945767275437981566787246766239398985863223129753529946855638891942341174734717134477626386999469757732665673894483757281753464213581143339434596962593897368371314944266861938231557493439375839638875815242559278988798541666957153774349596442924827569775834596948756768641574415992296973127232372162678672947291876845719982547591675768813213691848834513918583924311897938357411971823936589448338815722373639599956796769476628135444958556952643566622738776723537439875877958483968273247973918798797268896729126984192252629479674771262788257436353398999556571854926854993456275799246165776896158229444885116597765693267617334648859539877725833473826243955819467928392778193216793787284247154644116838567111139473334979618466164997968875422799838489692276765971584693851991476372556333461872276924512152433398965745719624287477879566849823526939812248839377822568493532884832119526696669854285687623388721787262183955576293445956532845191938794479795967963799249995998549185949342679184922998982824739751915962491934424313317568757948483998433998583349823597179778152782395616693996879863623413187478182989123553281138623741198863656863272974738419868839231382379286344379949167153718511469518532635531686274444215855528851362143472856162464455876289976888347366921357618986558685112599438286727347879918547965542485532645593647524653386375873436544569219195139343881695917466218528131281728141638516712182259929988751441658739386955467341254845139237191561862315667998667779527431462562467375572482949769244319579552787355863644615541598984459827988488976733989331986499931651789494369514157261776799875399741656818274274197375127348465676621422471157822273164934296353727152166684614128827238736799769716841737217314877827591464727823144283591199159841431119183967661539913463699711197451818494728154792673748238545728278796798217996425499938499181642614453214467563535974775112198822879642286349585155398951124137816665887911342148425399178558323186127491763784217598897648969276563266145526249277895577212645373866521886892451667894297674352323689927554598867344916236856762776188967967741417847167647191675546856886737783586738152814149947229183744769473814877648367633997697772597954322367783241852639128516559866128886937781752641812848128993597829814535286185543517889485173357511987888187615512252354979915182191989269442879418764492391586124479647784537484734627719813674471116885325683797517677965554188937126791275831279918718672894352236827698548737222719769457151154241713286461852999763296129539399481126172916988884787211492743263731196318263927648624359919758616698344395561797987125851655616633256884329291753135841163578438846779285131829715611898326489251226957376896485928737215742687973214995824589529474626214142182263879836485835846112431323861861447738297927836844715387251934324298776369476637622567666217279755311385961337972665733273598773599747149636925849932371825171579889474528141246493579958265118434744868748819669849971376387886546561722826952798898381393676812422628588554662214897815349937796267491177435211927771194633935588878297113925917951612879913519577879586611661692996622297979629834597676882155385267356657278111139418569999898895175236752648531817967741441326866999675857648137848558671466111675759166846553528716982289146843581294716295365659855871593883526493667733968739488443729624318362498127169452226551759636743625876281196745154194725388374293967562857717167671537878694324797932713954179793223675852894356494667226989139134283382118985181185195496539331338764356385971966738352836586133539474362667163343484675149358369385151386152967355646525438414158289765282827494867217993211979599448925458898768618378587897476457369747976594798459466565321494524417567946953131644185455289467125959531156611878198572876972627198688291116753433567478816675727295296148179972812956738495585868847966337796497788556163417626682362674818145345617725857732514954112668715677843139622647161742532716685584998235662335942763731549379864373398673827487123554163258154858726848719812958496998997588666117494185827391667647911218619942685394844919986625131698998451564894186637956387115884798494678831673613468143389949872686828567489631752814496211283845481866531825699269747874923984974773423495692639781131694976818438739739781719116679935881256243176748463139895897855918861678778828819869263524826243799363813346946542986527727196335878352627399679621994524534887697721632527873985536736736659312361946892199684428168485322667782547984755947691367946659835393967345877932649234753111566862256474585752311278244143175713831977588653677349165281378734419194454721791429124117936754748234485743365646682291491517157314162725947653447172887326223644711259547821267316339524211979113461299897585638915699912994629837231558776696919652427872237918571771591128785186394239322328251397945998333898652281842287623963369728655719432385549751561619855612446136789315757178994154717139382758876164339647998754785379848682847283384575684598539325686815467736828711326837741258826976856183566497894797914595978198564155994289975575917922867742185574635246624353715972151586324649497986556882871263413149363657519454243513373883149714796121374218239771878476969494998139454436866973692813557289732137382893388695848813436171695694899498678355635493345483742219775258983815263437986363419663197718857174179981756228278578314576519979538786785997942274449526366717491968869437739547816833715315612816853911189776319988877171282677331828386999276471528794631388891981445536499718284548857232611663145416453861139633749844481382387219475811791913524418219982759742823422198955488428649454172891132347723232381374914255821692872651684392954941784784492359593752122319191944943869832621568134364549826542436375235346973183992452126664551389191765842648223648787767915722712948667465932755285999594561952189444663193858559942562747579594467137278132366391494237271571724146659174931961527579423721225759455215628967597848938874453889139275624728684871489361325123867434478674293723987355554343832665899943837192481369538718638272155448915725986989649629282148852137756737662628332793885119491339665581751826198989193165648414128769673545585153312551845199889863931997443145184979653771192646378142162822681751273848725639499921434643761684675669155982675791472222835689218115129595839259958661193195248958216259439542399236378947818641663732658189544579847965312441913679895787211178871387612931457121742399214821249646697867563854536464971639854976229532437765233475744914667333673826888176684923397981686775155385197415844291797273963796695229873665475765198528741186668565183911797977362488987761544873136112858669671482112844489167335766293547148869744936299532335576497155964617643599268886841423653885797734853883951482179395174878949498681783789244126888821583971416967496783843979598642865748862433377754627843352435885956255866598853948584818695372418899545763326111641388258378266666385961368574774688718742328942417672856313476793498853868889496557643987988467912387768248651127435121455126246354413882618175643587581874949792541696659233521898833129617618489335123455289291862169959992691354196611729431396663389319928696675394393954713654241843863968533131862313287188481532731615129986598736689517438258227195894648849374648315381186918237634712726827922874367767938437196179874993319917649567613357783419612776129256728132752836826732242162578349386293929591649588948548676925669998832758578936239646559464527652387988859485115843664876668829624393859854939494776836496887244241464973188191713583387921821465448345763348639944152982371259496749928489599141642743837799132121569985482298339761612522573536772461859583457591215458436379195981244558418581482287591267826296767958394819663158485573999935889679373258336347152897888424991884726317656894666659858124188936212133648686351245345767619465189582487191138493398624493569894849299825797656333655849696643586984827113132912196222377854456152177986919722217937445785651235445727822397747742266898464234228691392814958497199382248287231488111119788495322763837196342896919449917628467534956343964632585852176359984867143168288348428261995922484823396867521182655748147826877462965912128667897266377582199328956135911166855177814475651788373177843274768398315949723568459757394965819675495195258961841644768368829376399142756825371869465429561723855922448388957767854186556811886569921728282711218897688122562598353122924762985865592185755697467444753426177123327993239232513923679167419532771669247987986657865158686152391414889984858724994228318913929521771563277249837377657261219667436891898965922589357212247895846784433975238661885824415475122953545894744668754518468455899896422726514273632577827242882158914889464852943251523818696417181549377256277856954733344347536775286456195775487999991569885478969151342447712593881266636652473927868477815734582434193242482197929739579116491273516186719973244161216897168372696893818428539647578298487215695276465129473995698668254696666358261535639269256975821281614959859497466219668675191144665828857674432962854198996373294995428833371959635876459928781747988422312113957499419482249544743423183938384283879479522536456425488897792774935117544476558449981359196342924253337841927996513417613996519986212279442716669184581881718389262974542988132649111961663873711385842517726712969453779518958418488298281677611986679473752289797486219615473461983444587962769475638253841425544832539126994833524336866732287536683163559835376221894316757587925587594348481961629737476275251292347248436133637656477116729332432514477775926786685921836333856845581592147323529849999135841829285633367667922354641169569884127673181127889747274461868981151768165593731847153633835181495132981569544513814629424819926358537535187655782626513856978825845729173216659146266544675914743963648251675558893133514358611768299178595534721652327889997858737111343126195196279872228728682956358869492762544795246332424855544417714812263171589988993644114419927978835115423174912939924423568392945677732887334475591628314679696935441723334851992328736566672367489779385188622493369936499565244712694424928773623564362773155794545356853684724565159596542878858419369122577916443999315331479152522644745856187295232244395772547987314427427858458542435817548659445495542936984655551132655866439587615827673579633524743359967599956292622914988831548188966434293387921636442431244571416419519195427885271255843819136586776816447761735662169563963883788715633185248955919229516342926881414414562963381547464919272527552886999963489956538255955467734456556914837893192498843385737169131975129665115419934652473382517116896359182245945187967774589829687785911156976315938364167749339694737712133169986843691897121186489357598571137115134823795988645112969189282751821165174969283121858986381912338556199659392699778677747685676371423818931126169361997688363877197728833874975248663615864722972419324911283393154475256886762737147989497694488168176531819883536515791597644846779966121163716495224888566738459333616398499561767863883326626951847758468646966377769845671818839249254316919615215727387399836687758663791439463235143877391962215587585219377431967347236324374772836755613635828942331834862749131774936482348142374641823616928159975393341938845463724375277716621335855418681348946945775497427314364473824758587341375961768653445169899163397419952669646694864695559155528788675831976351575628674178581849967249769898862845539885481197778458962737813235526322984556799147358269912117772178546297512599639593117614487645949688524693715496364761898697683431431746321245881246864558952562289289591958384549261276523318976975881754584523856887617992966696779463199376693231324825435727798292733264931843672226865336865591662144945826721486664733563684861256576154478347457837644623146381524827288716888685862627471878438286153384371827793276671418931981911775412324438635859351158963797956615965733717692668369534564679293831686347397994477786898916378936493794154299842813566258614528151115682854888198242279525578681857774761812663698317668377224926691865844119692926184267688352116831429242841839777473878685996537157691963547953838481768913818292457498797415131536257777741798183715315325817864999855896344599898198694822567645446172965968995749181487238795532651395992487154258733559651823886278867126275536484859181146447682665756698354995972884671425759814198519232553517863148258879223833168372397469197157643886965816783578183565347984424716517369656916923463674987718733139279313598954479377762563633239571268548894846578589932432615847695222881922723147489566752544625358259242491396966437326367845854153964145678573899911687478458695646884858984383974162715888645731898378765635646889859577711696715931681799141771962951741363318115931632948374869592387321865946297729147827128471426566833212154882824576978166991768657517321354434834516446736793151852627199142333351511435973191693749727961267685274522391394256323659667932869332866184176832288366146979897128285192657648895378626378879554687832129773631933759884929566951527145524366679488684859433965177267913462697433612285814258682488643656842776674649282184697347366396675264557958534429461884271369926599922462259937459144189232171865819178126269475646881331652857832725297647526273652824627646913916987944662922523358227959448421252766113883885115765573752569835339419837115646443115536689975349959917293316484665966153734315348597846576779642256462188848824966737289896648658469647955416321723855821257696762699475943781457652189124933366697449629268364469591622596288832714872521658416864885754266139138357563587466489837723566134226496527498125425951669795816495136846938542855552815335442913412984789116596917722762458972737692522988158336993682527683213776541521458465823512972312495486756573631476277251724827861987682556287618743677798983181175497994182946879598911288387392158728887353867587935239146237831452635629617944979981954812542298617922538728833676895772729137764558296683355934888795828352624423696733453443225946682338183187213321285768185761824834716149335744431294866727493773864412452584835948489967649528988993742159688376224649916327776351258438844516725484885336795443644614717788574487788846111431568793713552418436296134192511875199492799536669796289683862928299762671999573791937795391122753898953759538824986717278181241135733631739131736648419479368521359786614984199589639223812994423949236157829912661343816715879289818945799942899475996277569191947638829257386174266698278749173217729946951773991547477427182695689929877551776489469565224377495826927854663588367577696595988652952697219838823565334588873593667424671555942627823585783542227161279963885838358197437433528248997648933524615846874555463774667437772348884576553771786239493587572578191747993546796156949943228126386457994633566936365288954825611938464784545769741781612468475961431374343677456134493948383749781971558979432674766968835145618497899528199182596857365255716685842573841794692692739997877555856446433585391865617695838841444283154492798779799438842928681527265584391443587676938198978321927721854167897385995728894788176778143671495323438147898151241864989571782579676871492339362778915237274271211886327739194481675225653265643189863445746146348975175587544477434263169234616255769469333224853396794385239675545337989881251589938898924988891731258268774274865988985239851517367498827563759292971313819848966526458999195848569938966813659158698782657219152786456338143567471921218919192769448816298845115584427773971689841428992669771586869771559692481186441518491855132712115325887382233476713472922614377977441573583225896623332468526381815435395363616882458362183728722638811456125913549698295283199511436138696628966155621474459577666851459515458189728879729945736521836757769549931875955778892798325826653159854578391782413284959915314559932318287837153751973191689195436131856676849663277674441613874174576814582878974781916858996252527664212344729889753434252739285776967836623146454287465956685128858956156141352339574729538828971866679241685599777645998374846745716879528111844187599956199241363917363659481647571299737814653649772324648889649161552388131836744233284969739886449283788854967127768446485565749291689944758341228148525995283357681424285381166262673689411639539484838164815946338855725136668443875578367288137951886266433335152764815195858533982582781756746835811319858929229223972566819536377388518147327987924285744577799519769396852824526612446292414345614575794733118868348714339318843463328215818468584622957646
