PREME/G/MU779011

0345452423056686262238249924254089756268984690626386324646350429410376171669751329828087303239791546024918757317505881179132361368526877143439551104966957459330748923318875493470638593454267851719200592073171982347213754859012650592980596538891979964248455150961610772231915315045213930969174082770723654706986048634480494601636514547030440212175613303646764032060052691795079390565907630047736424129959370193407620438264132993225931011235233517792008190145045552016380338680575555180600946913302707810759647829335764508763991492170557171271633330965196748008808628367543451702477049916743909000240798015737541096205513495785113462490770564187247803704478729704250137833216181865838898309894040700859027335767957134946673207769464990238745167376532487986054902516620502007400171371856544613903449814610543663110548562127280087222836003804063738402098773205110879820736068414879694013185153493992985671905436796054187613173045570734505513720133579275197714328546305803932451363962952670773217594859855705119556267261157701048037034641142997174806543310432418514765700583444810426999952471376023009374143078643605434766987568955630552662601438956914540899704718929313982310775911746215011031877839052597319852277683673331116931605733320625902901709530874699070516877231879454113911797895746138750375657990283556674637974074680380681437445685409424841668045251010307504661520142291798690531999855197517093901977849557268504353356273889949811214451636396806747580191934453505083424934415874749328639404428840933006259523242852871882809041464622820022487097067252458327976468840439981665529380636334830782634689582016041128662678447908591967321123335049592473015684316052853479992026100371831036791016513160258183348164312723869981333546408521108137606136914084045171631904960191876759036362718122187659519520109265408810506243643763861853550631082925287870966645127841435824788700636005822838722414352542923006348080899607818611749191117242213547961906589275797117840729627198745614561714108182812665879740129789748468178119303173742785609338366215757637350297486567529148449292883969408673319771058338857760585370686376715241600090217601795753218982770793894436012915256633465565509638227383945420592514821282818850385677607762997343238880016559142865425538257331105584291345188491315797428898068384420843431474373381571636468782674170823146684854976279210153829566371090337591696316807098756616368834227800943723969420265101015888512627069964167279209688824997662393374506563557064350696556916856349249382245989934218906588347198415423323249320209275772382438339036662157027458066733175693051016585871646558881796498357574803610161073555741922385848011189620795687752828597180030495759078919102953281535543841917408088081812540661523457426274057399462993414428775684843819860304843538077121731348933858445268821312078698180358244008153970435096805480401303870429479942759608379571418139581288891044798324756373719277976031198775408886235819242438748062603681970298965365244338827013050567598845339694329723964296431136746319730596072784833912992741666978812102306748641316935737614900881147596747474709948516904199686695591119246883172132195116937662298957290146565825757269211777813746254417096950581446641382015381423060533026629982765179627651423272270164197059853154189328852579576913774534297210027803201445945747256692655977587669286883996110643168756377328789833114798255590839964041891526429579857577581604824935152548896324266553241491669731696164581071102630014897604961540379957154080889972265475723653934927075128112049680382903562590316511765275818168405859593527363783326102267749052213604362522058849969032337104575573983743111261088847827932642798459661298662772861204928437155419361213023971723734379028959154386029526422854438737617582922948896606249380119250809727552327836489001999753812484001387257580021463547639689346739677977130643707203315055841746519946602358376480132918961191693234063828187219835669327633881137431764087271633623913978999900091079110939595809595165722549604608895441150030597718089531927705804440642852543339634736117489011704368015585527399812539410394089219851476889822896379289027585991936074915750317563255528958927531691286757916565139649503510661928736543730127223222647065699903317520510834737435639464746230987808926754459879363498966797182749067155317335212468967122307229475638551445991373034510008085817387320271966546982372244490554584324826217497718154697299698467828288895879137808900082953634763798171444758450035900363541115221294187291430435563796894686535703436030457210349299076635298684427424781668335855579972370643254581669157519332301249798251288534658705249995412414730722402367008540581190123334187716477630456820595554295979574028699841615624501267970738828756530008631426227464242081140393575255979270736084241800003903782463294808187227414392347783184276696655192300784861066319532780977323947344534938319267157098740373813388407374892358071705599801995853599275570136319213298000894244584628410846313614922379430891412678253335124866890489907762802077332537317097019145907274910982011712128535376876044047524152504561501909176200779531630030211003811767167330934283560286924631406547217637914466841261439453904242139701077399927973937759680564693162876461340899252410651569547372497339259555688468882362086105234947998820778900320761595358747650380028788449124556215698981588972836924842000405775592710921224522596208775072079219137411822484724259518503967440054485149092787275576320901971835783766285700900554716199275615391721591065773728148956860906090588547709111959844772389251750750891705255896282470530498585154485522364319105006733130991798936513900550900571764577270262511067559507127576613345365052276551233260199661450184003508587352522565689117433219164485906690892103408375901524961562049071941497149709965424299863116537125135826988474404803583010026547270198746859276910260915754674995711804039213070819000285605774924441494616334433213729190885189205864833967106346698817482520381562747304328322095793830781859808812824812773481982822172195733694381101800033305706728506060048532867772856269652162479300074684776302594240862817334028859315346142405457276829261995216029781829801896809264880711731505290281422252256002853122960589291882988207248346473256124627991559952509091429054979442120290729392824785674776724090970443172475833192090021713228665129427316731720386857648222925825493087122240019370244317295708994595661413823606415849587782495007858001750248239711163124475822186028156856980926894478035101951991211575726729496242559520992083451118158768013388706815998460620501059895276191255950115518928501994393095994726689826404332479298936316046758362041424892374484771978541139192380333437906748440945486309127966916449152125543009706786335936349415786327979648729311775701125669902926276288779884086714561084597695427049625996575844383939150181980319762220753169954319866333539115003289782800797871547615967038279785178455656519515000875209410648037223139295896977635576964265418528244381340697055411201091501915652678447093011938203162993773215760089895926248459348147472723497934161037113876492758269280951994527087610363703260324022459961806896738254011344406856407331082479975205593706807045281515286898408724714646062736227880214050797890578607552880856923061668319591484683377691449704792613269648446431941031459817811274561512964080010436802055972995660456462683603280705709775240398194097428910297172296467726293645543693443121509789582412909908829720690933442758059000024347275100470075272914693509406428802122765647870065211820809715199037939866102949113055828645675649367857854039453410563136119316909490076720744720843800324982877478325759418482579572000365015557722111571480477635125760521477435900468982206180259824828642023444023956541193596199756433055047356485852532216251048239799706324618170083326439187807534750713044167921587647918760570249495628038750697190216364500328502757010818829255380018444505167148419034399434974262078580053261507203007372322948435568665635052048220254946202704978864170953423034897265570742188261352806803833527506432370887584013151181302319138281401990891034533588673117649346239245891013813410403452109661106124126644866800814766338020047322139629423816313527053197008950106951335195004471808848299671429404108738872976120012510973776570357265621408132494873135751007830770866861998629719255091173038401873949222292383449646046547290880150823214845080497658098904154432383457169220189841095720382517041662524424624537249334422133485046287169505961176417228648611414180189568410161602382956006439229961638908293699453556623235816200748450997193820320331155315629785157679808299972564130463742716242419094389343737010660673778620763801997865988715262706152549525559165444182691324885260125686913748927199908472065829124899804278652176114564834884277518052857715679417159819271707146805123841334869353145102296874974108414770557833819969740454738455692376345782391391915054496436352540678032862624172621408584856072229107652524120468493251392014880667190844358512749027287090007812564784040099592398355861754537779631465937108403812410327793873652699031152834847297525423102153715271691416723243434816831932515864847083410212032385010556909815066510138527090830637413250123816399908756824750657205380458204856913902068302521160383965574613037389026247725221648189479241851370627949732556843455091326342540898815979205497979337248369402884598384646688399067793054055042205914871795538771582488667598857660234331640117372316668107140550064660019496917754985451932042688412001213373081183173739278978023197581986720015654079011610170381568636390764938608478467069709991970040573170711336030096234023698100326831024815784807053282087455673741196562332386506961523422630603963837483085435168881251485536574126335388324979274622627325734665987732083060740193875959832329076494736786245120644339873668775280066638942069717847505878588098407220942753801177105695212448488885476042491745017700125778883168037037834006117317108196330091033457250284621403508681483701197407992546914849286361469177876416437036655864647270207820986768019464609689751638766861179032220273311957679335290035428049211607569065486427200044934060783556906586583604504670880997558702331224420010872147735519279105232455293766065610749713928606725680581087025691341276488399939009566950365730164242201059044564895921076713646780232904727405377310308274647551277687693319810863830933818509836597522637316077416114857311846837170316930838205811592294575166891421596048183863150747816085032603168606315743183766088826020828517676368572458414021585913082923209288380572201579756931053757836110499145670693111316235917671186965912531397110070814422862217012773933798823621359615006915296160075017860350612068016081842951919417749111486768739491052356283516462452630970554648725678798919738316685747544495154518237325352797534903552418668000102077228753619548823772013992920160322953476932000118432194513563225423024384052614954371159686325311464051046248399355884607890077222297048933823617431315472821688181230299508530311070302417941022295113551614592696515611219617421942080805072736369357324357519757958652241888677395617836157789100479489689181664322482209013358215574556393092711944026226283283644469268710969844526305431169900321284662426120519910281481309072448716532086810388449140819517065256223458601660667924837438772347890707539087098361421894192871652797495479580669403180572525079500065579042053635010036556855359884762857297546581053494157222351814872071860665599902116290219938961863777847547675266125456036116552463875583101708590482062557977972437265573103374312635850950576157354190830309813216504607457775612962187786147893895753477083699708769416257293601164028797911140918538142257622130634203290757426805623219481650840720084354451270482083846917671990896696854599552995746297059669064682821522827982702494881177360205837513715312452354604711515925092746765967195219824056188153680252821060034410972402040776573714968776789014937282946025857139663859380861257564381595575403922302237219269072824569382103990519837478985256649533952980990334109198606558233097916317083270697584886006893811097615943143588987186289651372821568601686231501074183273330076030921748882357253594805493274867164458522075521734298737644624175150937424257786178036558216638772717098537444819698976064085585560588953686975776248178288820872656314083816932700207373916973745337742233914871475512397182775322476045679630585176249466533939242569826524294216238354065465870745248189354715166299112908092900600277103941182577535775363515864439479457394826591070386382274025403048374075406223400083503915205544858679682248601782068053701763105370261642381212570145354995306078568609771422493133511823090218294683352886337140403869097989134511719514736184565894424048112438322865091423583099114468396349812953543008725132940375735237364635676198383799709654157889109641677124994752118251821862681567358402695904159421176721619239271637425587945839658787159934074331728166951101057150160883508420625912286407031909313289087083546256343438356961411417031705888680580053025692438230793678864344703597663672645405318748173104303505269900979542900338711878030517295159328851294171853353171784539205219673785821744460765028417166269184382625561704026958075290895588076491053475651779246274977627336526728402226001540924456524820339547778115524186962184407607261156330815775330608815955417872086019373693343687282088828741610534227724743508990471551971767382079173658349075204253918288961538044020725061985840236251183513572660000090440006675176471396934076602795476978617858436159193151243063675303548927880406175713592732906750796946265353316309287084749124693576262879856232054992844983269377537139392530223683393111687493909026476200267701352094457127917070707193793912111636446279255311833780277722688775816643793136644183704446401320067289395318338393584922484656845046230862086995248610590176227616842672213007658071520789333134857089516584444165855655547217376457145640014195079366853384045200564271879354914361601642735789409269281664627447385380318212690539033972527527721515943429725362775910351461001589283300670514118390982498170276557683486624501640980668752957484122825780582868103839770682236760627303267991885418055716595376682769056770548005858346035604622641696491989899774857183066560003499368033992906132107705469506320307542879087813788976402050351694487721229375801717075589741409801490806661744851117890811381399553940930676943626688742442723916021006452613318203295049347561488729359607473692387051051531185010808370962173052233546437321400055903355688114520181565271143035414748320600720345840633175778477937652351431015096976637796054352701555293082210922010552926643269071166465088679671138513303108874402888805379673760737347247129169923865179049038783941183338523396115502230062492347970843397172814768847353350996970965969104268958543710484789314286856219185906116235414961346397280921926414424285412360984476570113260637002949552482643585221519509693309599651558455428968039092187989114629267731958151992229002241630096289838124707666467590601174246422351952766717579280229578681965014950369006508473511757855010044435161503938799601322020810866451077392084185494767270311837678425106222800542249973889089433968908423138661760906487348931985263202267835398892990909460725321299164734682407701870698037696750949584266558336651834665534203590569133499936979971913919975409014216083003336911020605280796261725172091442462341163089278803230641165307408062061365667365476709153110435699260775090340434685671352231963313821910446633246086903225183176705572404854374142201306942086073240853179666163793960195377579448783779202826420579887671516418726857127680902283737240896306698931471831216268862665071904696167523657009985377588090096358779352503419653805481187257164245878992853022832827280352527924562614992041663610840607688373237287462110048636956409231063566421779136487932937236530137821282603606712816653494463076006817552135429987614236900938629825449465410774672281041022938360862472984197414701775580351422001620587077146444856643836124148151631704529264091903513580041688495944313195377725160997191160491761469969385971538983134506219875322320998660483265752265159678365244648832921965306432439515415351641560566989913377096870606536945215681822724057349830947966263955470395863378247438692040924531872888590399511017040194803109971186064856674185087142924361670311839948085342255713852803532584702547205189981297829997125522053220934548711436302037940809619130183556917148109825741075476137834517025773643896032240624659567647979969411016731426999833010081155500350280860520194225537502880391663565602071266282781589757618980592268073285195655484379699206726299732275386036971532326248158104210418477463007353013698576194019499627259004346860043121815945407283288699142182501688454502154806299267465774874006659844992223612623799752870628769834127459860095469354176651306551421853244105446622977836800486614635053817500831438029082404221292091763698756714072228653096593007950836515325432225427832032925221236951020445749507380955422245214993679039023850958482513888052894386912274377136028709401398672153201478025675226436436163890598685879701982632542084088610264525187636136141758307071638694972397392910096788943109143811221312758150239519580815427013509082912810853323856747283472205807777832380730030524226174304821107884777439462922796753500485676649587758482297083760446000828813241758696017770660590434951047988319299708928074524527135170409014402034008342364342100150638373602010388159145441442427487902477559212437692377895016898980523464415390209253169355232950343342270123723622071875503054748479637741411649472420316761221449992264482918754105101497315944877720796033916161719077641623755273036150301962429940001733150856698514434139562214927378358326435008080071493057731836407413334403588617177269141653296644018115603474229991593148731166975548617645764471990425581325575457852167307460156077279531172900475991784042517224869609425303480378867412963240213642735832213768214312667971470628862354507807382895924068375440292109669861029148728241500358325641300563219701785092110101640024616588140570187273130336790646181914229070045235400224985058280505021176742700011532958308851072643645555548659360954196451147521832510493339733410472909574122059426307419183970971890555893438726378225951156079625405465334411377470440176335667906262076143766629365601457680767830656863990903149292286741074668130494254971176771014079452085210319215587280721699080093790238341977317955181923348364662538575225052617686399413546296363211759879416293627377545025479595338842986251276234987523732318310085554408748065619120615790253259425064357958738746996267058037601641574011651936319611227509311814186352780916865595069870272815370971083189633870012853885469123341564844987138799445955091523973863178259876094057736902517978640327420263557110044853460271999407525637337754447684523591251803421106581368825135678286321749305380499332787117937991553484797776491606805378169856395333279379212930981044165636056980601913663106171974381959517833214489485695381890273555182002829416781889734930359711168575387618872789030140451205292224894606700256825031025849352448949507175236844956686761784112256265247565660315731601442200171952281506867172144162534557850705176111050397405012861148435513941055264846765301218260744837907713675514677532167926716280388124918734237445902677718723349835745703665336986774156276809430587209660982495284305505866494294865072908224738232418436732491950964692188925620384168979015368057002018595376140181518718368967234998735993109606663422887512352970817503786059503947557464182863235037019898211494592767690956247059158161922257231473489888287276099635818678044895233700701697934603122818380098653742172230769087916186774520357266945061681576096218746255068389794157477032031374143227960790888356847075155422513249145421628503238184033331217454874468487159161088924812047421512153189239536907984793119197208128355998048559485000672947836919147520615730902590453938138201200257229507504346284134490667025330975137415837338063776779366106101501722298199952370384761592264990901689689453222568199309673910362456376069726259545749300917006265878758259447878456269172433469658799196429135137079398710412075180925375062821714393887575803162052163034972574298254935561070018142578474050022156373481493174955325871230131102850890253397142683786738936350293521224937828465563913339201546254015210696579887041295528739188328877110850271658558657440058117782387687896304973426498327165589457060249536536911243297873438120246848165532897427035382279762701001315662839060177451162094253688995937978760653973104425596453916207505281029548175376024982129632485509734721962986759124899719648384231168623581756930425700792601640157315082613756388283781583247867561042329725633910061196951381113477961237755764217762174943878815567516584759594335530174409649207795673476560089262283869943226180920296248243488253704981402928635791400096790417247850287475793894692497166178752585342655949851802458555226921429928056589786691635364850383722131985716448386225684909662582873998929711898207067897368798987931807439519319649233979634853515008066839036444536002844763479600954826565455695516751599895130393810965588732355955956531139461264806859319280575247741752185718278576914537170621807780836815418531983935737917591545229632908643040372659788839341429478429615243229791220920718310637876138316206259916018789363844087960753304735998987977438841174057442842115992845395533480158009500028831841409148603732374697743860609053555701144004226604127625966782627570813184279842608855204973307566044524413686164000140707997191980303992643962915324239597866762508192625074693321483422174655555058393310283627197138437212591147301058453016330511603046430884410578202756041338002284647446831750572646158198594229333863553658832392246704643336364046043569424717042198357075747883513306404346106422932847520305234306792987752431983853717437619246973469274177257226147014548151721630683783698597687416151639808592795505327870994319506836096341141004328590585691449740615108590926640080376361361348983093333814354087907579867473958155370035359792806887429336865604090026168165611190406134025144997617891679441287008073282750099442278063491317060259735853212664297677842259090579378322522072672753237479467707681302399679953640325940538099168716302097656661273374668021012173222229522437523869742498569946817777336812578356888049770388596351484735958769442473047487053159649478608650826562074512374661937442155801388140407984395769191547276567462382687355507645619070020976772969185266857729510093129905375296685109085681485610658504319287995485172904070756736042258114475924240341185668525116220265002350996447817266565813578138875704517403553278759752488497603891970822040766553757361393818842194644778784388335714213051057363500152454249378351665371144459229072628039276489696142500814627000704660357380878927419342692378139137179930974823887278439445398377191103642479213858098210743678222496788729926908928959683914444674791186705675351011312907317437797464621905385936009816002470089691629636419029605359196114419953426501751221381809072871964352547490701192921537334352679155004244184514055080469726164752637304330906127229552102850848832262830036530697534570967382864023616700590835738527661730859637900420183445351038799219947387603480556830472881670430743675369221316403756309462574480147155272047156817135284973173515826745499945083195821284950300205994665134941341221022469981775549987513594960663597915848367239158942821806574881388070255928851127387126916042547890900251353822424602332130037121577627204064068561470301418675034780258591007412138088437279409004515922023054944379007286891896916761740928721948553465144832812117348910482805573829168053336917683081379623369135101323585717439893013714526429873406884321216305418902517520574259805472330402249965423880342866749117357724723457099575752668760963702749374099677384491371706832419369612154161788572720693583878630856747127930032396943571223966108417845619263956146275573703956224198327487719569812697908436841154764635579224967946171743046355721271848752631054110575248406572665378050301602469276342630806716736084491722986042516883159293252723725478502132914200337041857469984533838945677706507248254703400932749968169459180401593857699147742111899679085975050354738286894008246190280944424974407463959347740419163910852633180990351502344405389263033531417216516462686923766024391277271706405715745954431022020323501420379965340704461188294243646664166574619970556108886150455208023537580842815815263883529653150857695965985318902812797596734772971705991561059040179910207423281204541536352085880064918906032126657257607444335320828356036382532988628773927102888594771767535827763702799653574881619186860726707027256908863280636609919164604701979643112026473480131461593741784151302471931973920408208654134096672702029114607297556140837643132842581052868670037460020989475367448620284447840192400457796217687642601982586142274225756011721451258198203685556136758076080073572879395539094183839103170682555456880532841665031328982207705495271531725692617924343225388296285286299796474714080671491674211907791099132122356975423982343635840093020771184499624377449072696139323035535088440925617626982854214265793802821409508102788664139328415502538429625566655180614148505775879959409075449803684996977164270021893629755823030636865128926544724025104924350712766448165202262992617958654112652956012675682866468153844126955143189454033835414297573892348671797092228938771864321129840909413801889419775119558775697569576569409927751656783663503344279087643046984072599338336868051616341360384258969135339028541757802312637219120165072923721015919475872947818316440805715624072656980736803598324925691632470325508390780726668388288625637448710307586565387650196499124458127293858430652744563359776548338837315647141180321524329407290662750503095022309226985207996754071122226123962350436803675265400778823853644622101638850890339434913650626907188978282688946049019823394021470570026711013122303120186824187899130939414575336600655256654163323821106083684450843697655511295694866503631641023782680048927980235739661665819679065006668998165793997144847478180418801517221356899503995353995772309271985123545127756501618464361375578611776245318461566139262293415578960265092139979353287423723893143453512840225854447731215475286427127859094601501779079095073295130500894040371452164013286786230026268158965685182773078962159844350839130891080283560291452727120541842395689316614231338673479618239843613503286053162937596134469153987786985515741230427267097410747125374953630195897868863350770209809836320958659044433218290671486455221517013187576929540259939126761751244606198231258881722601053421261301786214035391026097704310013476138657000403657472707120666343215194895023615087617351517621639872401382000254758179131357167052537649360591889010993858682608398515230327200981065790158709991205237680206690393802683530527524586058215368347021684956820617529478337884033872693663468289353040832889305022190412459481348362215572466771752129174075505861836438291536620827787080714173103120069779642216716889449519851268821796564036996385634970031695316075056247998294821264189366747321950383775856114504608035323339224883594062657803599724337656129256222345948417172865466131854821732437632458109625621105622133073431848863978750595216523506520544765830552869256768964978385084651420581748982311100179464833631582546557519748567824099467947084219329830073311786784510654160501198101863950357225957477845436768040473635359582192962908829853439151824967359525742555867919505303176023321406424305027161017516103694269811874029649600648616258439345874843384898550338956216365880179410478382444468794484516536830197809233431894624329170120889804170921869923946038832948489272971435786178174641208947940752638797160832552685592211566782600960997436003452788312267032715078603406117705939699708292913937056931151450244643551382654315854763615894137890417865536452540979023984532991560676489154083940644523549925434543600176354105932820571394733450679341982870702840865782596355832557053671585074244965660932445730580433415174644974889016988049894378104189114592982923870743499125990584134716417710844920459375556661722636902133803762731018292481712875639036011492075383514299252121884793397676311486563461350279733869681699290429714193380203954247179147344725320878598584613774739995328218119322334874141500721525063795753686085986207196767301020676572648916362170314716136824732344536229820675930645733035513092273865117572253070927454781734469755996884139785952097999135108180482850500641949403683883601536693942797646641039354247953579538381664461561612421639866106779606204455886781450826530774235247911815005145172735296083078323180331898817304595409182826685426329531586391064224958638823910287457007238439410036983800900277156150946679806843685911773013678597401008661442213260071893175163199866805677975979946355011477118986832115165773729231669526537838176827787829229920290086232305889319825076171068156981443903502475397923570364273998473999926676058561898379261535844008749303173837284542990861058472526042504812594157105099902118254949982630185441784221261048045614901894167534281265406871650989174715922005924743513214437060714278404631740633521534024069655877002100616031217094562285861606516909574502458413770179071212468267930317136335745332333361799201162279015698353979998196896657669337277369325026863719270388345391772599026173337017853399608540782990578324142355009039672526560811180047641546399810091632159241282764265523544165763160074641248031213938247823123883193004873780790775588264992294827953160227026938333599182286294908007833062099580463663971055781330824298743522551023000024483191363104312063960533189629401669617917489298778662237260250995217361522741964232534923105047143332030523239765717461642015514199079759587670080820467507269113781224878384441378620296313952561309954277188042779684916057697392746359926566255394163725064944574581300223714383867715546502396062317479987987025137676842816004730474675170173820219642185907896328193808926721558172322927396076632321114916451332959574010684521326575477011223878433274826762752882758653122639716935320483614712064643410940188439935935893347563131427117321748971946420558362440429078700459877025607643227174280724092777675483918383420660364111825093899614118353324437697666545315638655065692426732146531478638279154108283563720445861296526730343492630362514327747588014443686964818813366598956864115759820352713425022834725241434762845242703823935214044391873187573461728937423479399728671055623290184830126244803764670018300313516327188908533937200652405720380461484889481526620905656038484895141383856662593850077336753571579147460243427130367338385142308253392629802287942153880753555940183427972632116689578246674439396979921630953121558222635108574092145281281066363994928188150552001499059256439740076484088449589392358494105491774343106754170518391785664586219622829908737849258226894869889977065666615085130234728139209967810822370671270507566291982156919853806299919273731790202747080221683588990687181977098808802457638448334758167300354646194781950968351745672311507779930327721341144861321863691400381106522619917090504942912184617080135868545371886057733571890036469892149807134527989816110168141075578718276631158717876564749231646861126797833728517116005657654034211708346302722423560404704839610030245893883332108609501529336814612916134662600705865620543228129792029671352693746717939995045538528165690593639949864125704967862030897462189897704807057720611750826854379225193559766224352404182556304909162329308407654510857377069078467797743492170060387894233279720879150344763160701283727762243457738096959197223115225763215872683645304056207153114151381375309215807205811247304742096609354017549806253131009956502059631299238559573564881223437680873063096633650220972919316513287106240254831923788491889057488926457481620199063900533487576208975022482723539886237058195706827872895410001535503076188009639159392960296682875564646808638872761480279184535572091825917135259079475469106965804001201171308546127608437341189586849208663292339930601367937310093257155368165012812124141861175515462231313394912505970962819319926143093806032173458328114985227945576067359879284310364657173458901050112560926734000918067904250163810701375539248084409421498521310087416890747125241956316220678675503958738140578301544779937706864401721845677121720857542784792265172335256203302486819054315791439091156152577939198285741222812806508643793600375816025559421306541318903454982293181659440714075562999604247962728342622724617901803045571721843429470213375076082344120305338674682213973407190259590212423815046477821682802572222268943420940804951282998262388980157499089156988785214467654058592326732017891444217567700623071516900919332785625993147971907645909511062612892469413811176532419588554725769635824331576829056192314182289438864145368233774237397048807100346220505223201368333725802668506777685718986733702461327879005913982011038192112817048043070711626024153866918881652319409278597333633565563291867696082872321892128714639929048194633045042462986695336927763064926136174115157941448540324668260240456264679792889472761164960542930895868402466550423594753617478029089242728363802627853568581008616477262613222042741799182816501632544616360151182234186968754674507351139879744980181407242125599243466899958290351864631239421144945631885651696507292676284203275850633464161317215041740988294439171326949730070636327601757000081972430760230304868896258661365241658836146014456364007419788933124977936270957764439396193053994417792827316142020235368648713263730279745293875810587252572497455794717774248096425131963036057205541629677160252686998425079314017174809663422127531907912442128594234957692542508281137095034200295737108454201921918611662114594804888533107665756488544947182764377781048647851182225035185086649477216573355491639554390220486656141558561189619839589271309441665710219061318683999853719560955630841101202891517620650262729763704899787855637776718671873551737152527402344372440934209330389067665850760944772538399747305095568382278350134630006279458157312962125750653737529150217335172457462064315701661747630192512125964959700811230055170899781165467471772542016311089813988780203838011750415166516292651299637132369185465141548791029156113169286930780124118971239908344053746391350761566650070280520884824752554451608124332994207990879546425357669484357547275574183476057659536905990747754639964772755007282383125810924013788091313532851397266885210240261381052611170555295937269010328068139703339178848562008952053689849762811983563216534192935854583593518234918116309634264470318207098816996616673264395033519701916629941090754429961191677328160943470498233319052331867649485099270926387236373518084620798455666977358313432174592205920800511072423818198658362335294078425716692365045655413245222988372644433246169504407263632713142869145351525296114982473247368456755657265701093037627813244644315587863667979495972784718671913916784327504822782950060581913071746761422222781997970216850802214927029240324390231163302244031293007689000404757425173817180962498015186996375206777346678336479864127466135448986587064430835342213873935593900910939536806256012358937901465671098272727856280407900564046316448825331507726910255863086639750740859270473352113862081145437683873206902822668275247952981924625248361801114349535470890109782341719300567414241831843944091670780917781188995838637331574687480788959798553771425649078322605896582821456368082931946176188282490981125429427774573663485173554524243375247315795647979191235700889263444832180635768004119517016336115563899465597827138327840893654123283622125116933342856509085817852436603229385360852054945990046716642690499094694989637085577891401991725805406887929532219051633715383447180605774887771968832477727170602983199235052244931956869560572623260751324897777421443838327087290675388605387534625282637341713957947072282017683501674912655977369191814195936115021044441058697076475653693559394630965569486655530887362596494308122592593983362185959133166891068368884048919151415137197130212419249009791889702172724101783573612550446837391601845336396405959823864245117197464059177791247944189462128508064885932092219194924550594540895688944832410623217853728096450233727315507383055516257945077606438158570777701522311283007903945926685659747542325778465671611179207392112445945940465530885720117006033403721244073535305630698807205071281429425123489968510225557357196098414165702977618007811445605280308256905008556679087297336473996246024993030792097627058169306023337825683815425831643296158655144730165052531336359373445371169133269424321194928929032074320437720514130659376557606498296441345677492432279838649406273306745920623081650149349696539526353427363076241992334789285392678776635343454376356484497717277549564419986996989928025815462327093024688863631585890146319528023419649572666914092014684360675452943912078247728950316931601325018295140114814981700623379240790771954090162871620835217032147766995704102084306402579112206334761107561326845196042777151311816796295699648862411962504968450112958298439350382583251146859339032795403843397905109833998696361186383423371221085757538342947095672732922940318879209153353189697450240050771159049824906336186109630922269174830519487022575916777791970397879449620755309382187830410703310266361535879007576432167902053594672575195521825262631816499590546969916187585961195666522538931036106815181279188383393108662715528582657064320823741792324848424412690665170887508779354601665898248221663272541837408143549800821787917206515439992082700168014805222092163705754590062025281162421070019866534013019869086465180597246155670173662773642230871900099215449610623651167507485067749925503745548818625661812576434646405170543261038928624727835233322783056125742237912282593825637020237267772129818829709087863678147273514075162181852351705110422239787398421234449487700103921498817499151979749017721889906766590195302266613537494516020208100972341387172374141787277058049412663128889017594066472056954504638560916077004234362861242288734493007736245797881932104674913003774998465464629169921707429694028374697539204612751717555621269156919134948792767618179997441738001362127504065800891514434204390043402511835596681128459075694015550344155150704224723494407123970363898393829306788490856110113425138904357385349477206128006955874139294472668240234900792283697959952342248623366095496137158004954216520154459578790155883722734578484225193302630304848758033517786066966423516323565044867744058065036692631378541078609457280335579603661095217508688288155437063377043900131168096624732793397288637229477689897708449677071133333921438946938368773185867383611460667320149779835030003602330409811478085562462728859027119998303685226814339171810292350380962858261493446274767358342381617830976734346109457741983961459125432521050942415076023775088470898685434041888301980759362264608990581680835668300356947022039278781647047718401953287621641484814867207465590416290706074298153220454792411827097377563806969719089223490802132181315555606867198729177052624704061177637388619390930454805762433761650692501938290820245307886525652788234896659194377675762427496623372361747554075023054096957570704111031405260207557890105286600462663951641336027286168054105030389227147824664252151537842678892550392532615683040535260004413254512332031558707973312410281753655637900388525105209328683773751904783576226265608830664915550491853190616530519015711047799636787727919183730238541049724645038987151498019687968542381460233371795386572188113294552412068395679057486665159714139658864493503929909651127418152943325241322461702132251195256916898301948670523115923233681906144129632677586573199600562106096729736615308356839489290491864736780599925653590048586361667141832755656273689131202810169051330015467491811380870173975472569950044189415544374974759026379179275247380899435111000467886734040170057988626539724818740916714914151908214950409459129150926041250682473510469145776171335291719183479359946045486528632007002712890637538351670928114825577729925306842368195394748997884735795208803501560992641313182299275028458971260182833672444728952123682504360816955868468351004344444136921350549909684547599908727956542662441865242096974449727641521874858151450867825302919409201252193821018337531092316582876357284127357222588816096299812868973644406735970184548538001202975595022368858395774831013453845320878812254638733620101760751031936662346713003580237855430618357310055488779056630779131807793646786101614479794012081749449207741234876517460801186324428109365157773840020473473915285595182055470955374449103428954911672391345496424560343537438805400063509619793728548878134582699101473275059100401808943963260338224265650553689490636005559636428921466371811127210027209481920043093995009854976886252581429212438691297699982057598894309807194677700949142197355275407859188243619271821276173671611131450123113797921082749112030808056212535816818475530836406206656551178856891347826495856848947616616607728645738562652004727639430089182247896120087128120310747640283206464236477606530922317416233234734235778649202350959131229298975311281390765932491800576470317218078450612290860825110467252802885595557399362374069456457288162671679240583662152819995638436881316012694860224898146259497810118159794225071590903320850121882165740920281574331304553322987241269346343482706402562000791693646957266288966362706049984996455407793925122808147937440149660496410796414127580326070793266325710850641081299819956019139892416976860469234500008599053170053277477243690448058473229983083401481973076275541277143438165751947822035150980477454234006681324730379019946867386909820497575408999513332061241431254652740182885509486104286878662317967706512373213225678051695648436222710002642624325118021610122470775601328913797589021680643851569784476089127101738166914581192676992026047963856075127042794401783190027533467718966910588511014288020169139143802436850837355949116861026811813832765638669482904807685132524830753294986838689146228809284095485028471459871005301905408558669780959224818810382054157408714259748651399663177379843640769153465110431850682245863136081445876969459213254459609399288751808840926631038913177056283229778615288629230801741830414708916553191789809354932051484690231012234552329710672842365563909485866259410688028642234858670624858844722561133901353168218482425272302720931360002662242603213103027438256304038781086955590001069605579544843443369975243698711176885417520101458314350819047155604368019523825208355096844050458526766738946478702347518930221065447471143310952618073136336823859772470621217620638055419361359195474825701165429212207915143705260182953134691605790685633187732252406334997047519851178280495600993832138303226451870776371392865366346801007550506835447012049470241846991822239195908139997780906483875664682042565810078914610984770691943577134562736365098736272408950861673121674330929708587277619357356228003705552973493881874150660999174109807043538678684899590930404244614754427864857423679252259395654174389424029394233074220368043904736798881493841241138405379770145494705644657060544111378854243312751680531495805841628710075565186673238440882820452571435540209337053866764452916473769784333643187118236143138124370222886470642224161429690982154645133251731424926521425396782041649654402055273315718614999374293840026418943471669110720660003348306060594443367013553269784847695309254388429469230121823536877328246700550122070744147594647938607682248616378329520011523213565087698094779750285399355606982099931958348093519330556966530244355010690844137688984546716893338500887452848030247435343347489180848798127254950392745431570616540953402780429403918543067246284853056433534186003146694211520387353702243502379733306139768852744873610523120951151535919549716937024131278685546096318575581726335509868553018104625930365682544041018794881256437140582286107241000106564447346159837985247574680983865118688995015314767889172186899307943247176444248420448438270799050539673163068044192520133625123626431865702774779822140251295571545075887232258435191806907843564187020078093913269883527327192106236098470672021447885390453275692940523026715917316881985206052339172589016067921497088491752704588363564081423663467443107910516943001788690044478823987743425328591745185486828592352524666335615214221329472148139128757496223705287831928196936824273335749014965689820895843529433807071602962019700996802123581664249077619275478671233689750318395811844993854585925516062672514220307791653361996332036818901733105287674220246780059864401835289017411971064714987739070106449423503603463597422408860432703683725316288806767625523374576451200029259582324363749529106677411336840674250913523699484057579288981768222539698034598770889809351701876885191135876780804517129842413723187019744279299413110735461429552469157446063774752325384842847253807643290859881979662563471666171105369744520150977109751233047786405618468425561570584024252432370435467698012579443712035560799564020622767064111207527579020590097569326653507910102046824660628904878974801581917299552376138059676717729534335196660533421891858920319848455761307722025581401233368906313329396232608129934035202200302237019872248911346509476451495765553039486596466876826262174166044391322707414404217256751653887153785956310843111534474364794597545509111360322889184723606181975137394263075151681231658348447559778431187246318853225801210020988949027699498320683163698548073134332250924111037166501941943791049746823049798977938749400284463788865783943900333334724414247783724965906800941897001054119689846838648406484881750329600461868552705166588273035138293134593059652231256981220078406073959309395589125342123758786084907469265035387610776194734911577514122289292153129331423061364818749869813183166342007433848348322592570718871106703673804747684187696292409821448089515862778959665813772607923873328074698789581533921142788230055417692416651833333707549386781904193083455342844115080581833869749545997755113373254407866813060120840058799082294986786443585344571858946711552506269786035623924540767614467769878880760673116138619213868499832269119241536550000567953438075750601443949122760789412381925859824215507270624447637873200172086832675396914137811494772709759874376987738035953546590236337724978233894221290014027664423700199335190941835974939686359206348152761982130417547241836896241512952745639253586750057220940451104678671890137079720044594465025055843053824447109502009316024855741014401446350588930008852286804969513425675206610245752861963686562234911318635052436448117291253034681669211333427642231025489830743498700373771160218828141813481076576792787086157889620339738009725881240301944672147042241482440836356075362364085150834243452261757118881968400902439660226069258006942853384700922235527394881528621483166827379158540599523135860761575185295056387903060268029789107518351288330687287250552629709160921094944335736502263217357456514417111091338560382313134439621318396251784509167739906972811243248719032508060784209684080539688235630854818061974695972980431642452829524306071810079938860553215078196570067559726259639358130953157628116695439507814640994413245890425858029401113714383461429190836010885589626054581129522828109704745572018082898229767218480929327827676642504000363924972911704928523036831889960716095141872916992381124680648363000307439648333183728905464633841527797508401706292337768185875601595993189943448946973400834666013919699206752770862992594655091425003705086266463108771880800411296297486306621966388663538821265413242034951075883973516259863241506115681045724254253222996942221858193364224390212393130073122767602620153807226896033450336447258532441770304157064748967614019113543594260443402738987148300183082943568058473237360171982438107930394844175902794499097977111104812362275774883039848292310947330440547666181141177613724160412528522819414568581919840166273556764989211411036916903068117922927609044052977750315675837250880674192163190431824830010673995609041997852564519830256746698052441848207011046603438400647208901508959364386712810369746783972333749800369150064120353801120806834540856525951418447519702942940311146850866195091453592346536295989438107381196580983235893621482599163950889535635394857665522702787287474279842205780477126678626328966388262605347416787435029825015640898176712069699179282181565314401349585138710938593183802456087735660937892511632721791071578784095088521918934044900048211130929238316974821412359746259122617306164700402282645691148070379260497134482071189344345807985070119566558339386550869235486230828424853031346662216015154964502765317248554999278997566031171167701761878358003613791196774198895947568779824391131703776184072543411890978655261641670414222574938177059248874518014700878261323145616164161464600421880980424858428389087400757964871517872203211114842295289793624915804831741740343368597999698994211717479812594743054154378264026393476044741510824086273240808919257078452181455424952301700776301872466866380307711158564626704233051015036948111270714871150528422936442471915320466606774046615375356484665321789714245267272419296635170348536461365865506876100752571226453030966282503248519562183184913998327420216838549537334626617829552583534643486847494143333111184903809463283740317365633262040416137255164955085357266417268299784014685725776572225673906229496381860112031836089916461105159616796452260728695191000862994613408737749693280403167364151966637707280050190638108455634826458561441626736086531865592744860887758794821183611283055106566687047488738630100391125675733495575046147941274956282372232172531634016220710192258743677334565470061437849778770455873524069338133553783723385583943539891090516935205218857259177865785693384147704716716974324477284831155264911914760862904422046531871483693189629369636385702658814271053294550248004209493554886023132732421295965140601739112972663714696514480442843182096757116259138500531284844945513804679719844045119067995828502096552629503442783822852813814197517023387934263654233164034369140777284943000347437650568933941981236766212826006683512266639676990570959501942037645091851197277005866024439162129523986667917889874933081684053453257505804993976924393337004408763450717571076065858080954757630893229048086258622188568793543632389877683061630765880476002058443789497268969055958737688973583467566557289470885983701371228217225480988822279468051126583428887623315961008134932841510698529283233170533581880606511806413013537782879254207494792954893337850331866750649068932459813343318509417474807094642734221344920880263894818829126225992658998075395242879566987760994927159338832939706920873322034299649001090481944318935648738620135798746908292411865698797226982052181756059838245372828958731218092493426605842342865914342818137415210595184970428595101147437482476902029703123363712738055187027110926017138547342390172815916557970802988207517672431620207971252621349775077544134454681021999985031669103402707100177913851031872768585543989777667414255979543986536150819623913182332359243230814101988531485862730687835662251408446434795628723318037436736439815293327212677820222827105679323230824708121864887962195392616148988476703899685173028280848167576384148354636699326916222381063828078725672614611806938141789341226874616788448579109074962008354062118022995113942698423374971409224716305867594392390511292072410627855915698393850561223781045540186949709961628573560390129077384577855015786113282023836231332290940651071166971228318203312577616858162108793837683280828500471879889581835992473494729913845311489924786773746279886672001998742047520463872562627805670253813413360710406681783554835156258798141089315761144569268240276066249234385801436495740634801214328852820482029180947135044445066682583993262582379596907307249999071253482040721392965978723137582690940530705624643379592598516151047132170781053951587586420074675734902924314164248013637643215370085385888094228759959041649964935863804847473054966395703617545939112528085950430117084081899259914856341661815995405100565437820979151467226887034628525133008388048872821586865435851693557686599771148592665608924496053268245425965967168593628028346250885832327640215059938227177454197777036062267687081653797222329770632263841526750431807016033310758316836721338421945085855695715713177609138172063896464207616031750636852784184733310847484877827185318967525459075447674000620885213081370245198783112897641453411061684205740066970723710417548044838454319475600181817379402424796566044280262222866903159690052367664974959873703577511214780269659973455714187653421193123150711053456193754027882896549107243939872970060027893124656437846183314726358665347964614275326159662945490757243725100862873207574166225725153530765768951162730351298566033401601967074798067311866250331825638107747501263270009760473206370650780279258412475761857055405884663005709089964375095072799556257813335462759953008209579107926337092130029761883956782954208997821708152892828175962893658880381187279774684809321451847256547083486360626470744450318237679911097467793191583730902099655221409720397061067364157523636741550347346557252140779224666824912908918314092986557830700675622314577705268220468303123016113328374882235226805224512921191880984110623954151459870466662972596043328445930151890209930672350045540764201832713754920604755971872815651108358063423483010179412083655603882602958923247351662123620135056842357886175183510359099434916269683821439866191851232995118036164040803546834312854304692362235985048538570635202881845694743934515987474781302009428136785594538039791043440013466974494546568859246606075525722632355926861023363345173633719107427072210931049166128322560453363319037896712476969888516799132187756848183499930435587731970178453253184866582249844851287005701578446421973353119932762298874627394806453118896913166924036052838040822600921311007429078253157516050149828398134255607316429109509595823654263212589516357299089007722217271650291429335990397536024277510273947546938596628862645531120645089228163674913998465570821278610065902736222474958158550497804082725730400653064342368679289335869359087953608459999096934157773015462581556660378769181299822195335037497857122060832622860242298806412051975586971302986355865610148488787621188123053679450562368456576069575675139683402476470628614094231372991817432426324756481484843927453155992048383134220421770623576496834984501449451782436361328909629162126590608214123894916685056673932635825825989015928980291242213620114309637832578754759087996006695610016001837041330857646014893960758088208058351694408461484803357380626402258874721607635768597472572492247646856774433958132408381002692718215631281410568671827176200261728062755799065410870656566891926360179217106915812115485770094220158092029176341386090159496202301321664660537763961091296287197791821424004685297003213819910922528297479795593316534009223578049537218875411420556547502172838562459011792283278159731901521626245068329328601262467079671889746467503539693761229012751272389480338006097822979628663673496366999501065438657354477948399547121360467753577647606167171178956817632220904034212337597504596621554612987803059916024082917551787955178888068050178183430983167904625508173342701027168268388131611335146922378507646566587038856684748828273411622234850185916922836999016457219236922253772276418215958715189768848324515692114912946681361750782969256585356695608467673803401617087382885547265232080217065750277462233926432940354652188634006891102094832912448262539945377762767152297532915136441014421694437419925888866002530822153999393473809658424869212063285469463246646273964585419294555950280414982237080938249046156369136403906455016598305172474839547061539942223994603922476826014569957231335853129179409650824799891011710587357257399920314810707898259014455920559612733720331619495397297020437184220506695525259467420129166714813873717278389384756010220702382870769566533726976529110676345405706362067778823849021206925453176151317127049356557756093921001410693435800294905906562462089728974330813505907015211394366990689526012935729706371437122470800846843892209815382338415793204341915510041139434087007117652737597537800197202071199765888097803543167850768693198718907783392372737988689670739151591975848102984951287097634735673373635122272181317258834178861538763384454675444612659361698789830638287187230921566911223559010192323935118564867806310809997977701072664406036872821850206943553715625188014178245306094717993969732381545831286124877203243184976064379825140907432400078350686201412905538877242366544518764784562426870109031652348588445070545650502468587852633636295551632588263499881301535623773405567554900721696217644104596880731285332362882580271611205952953195248910913595303893317283307270329854520065646191635453482925199183584899833973128850346565654475285197907493508580519350093803827707494821611634345667507710874686791340073419785957303089927265264739926288955600280273301487320976385924089108630946226966759953959636238368567637225436553550455544875636355382419387297567369711491484059149204786770054366696372738327108259686179522287790119308899562309491180413421625995790534923004206818748314683870454382599603145702372222945626856196897050273040481113720246046617499853313280672159456228701814697309045991861938764306155094938352939606874997524684972689704799790294587422692283406062362255891353420133998675530186004986164589671439438613129032092713109320249368814681570151536344472611070030454176109545629659971870512233207455058121458889136631703555626452292028633081536985528908589584297368336828153507759647716891362766830764951354891672074816563452231344518819832448001528632191152993217335048483930832989181442000608098812203081237163933229550956435359522671585904898054284381674524275315494609513478520604926538712633715154035775581789316917241185952319295795806456655182363332338118947046092853127040582462101824279921617830878891571777696479624220384319932513644033761935748823625736650182323040334076158361165329676382034776687976685423258363866126215345691507900780446409618741466819558332888629037863459720884102088822018277763842716067505971554734542270957154754953108360873760566943559360774286404831366528028579339010811208712079956066673409837973717907226419153895040153109111663007139015722461043105844416960852858715991726199661361881484817624522994032664674533955290999192260759921341045860866008649343125362890849725786479436450628715508555209767250066793924874046652133933003746478106352750845085521380514477956116412695800847832717680118441147221858417724852634571507811843506642896301735752077644524767610108089848663880910817249831491544165953731993210958445596302594547819238951677026663617007579122394929352330560791398199364857325592633671851245314696491362851390027071526098394488173557044663814448348788815482981820354830200253380291233087940455096993454641591845709428563366685848388387056791698181642305501246813734415258669849743628354822675458333175426102739037338278379691028153725601328102261595680010253307476862924104369466613036187534659653645027426749924244757641553042111632367819800573431041225435972978986429475807297211991688727007094956994129949735669288762711437914466562752144441392730050898053959961617475673643043563044826962763834436633561908886755642766918635552505493951997146776436030020087018704817213465077133580051389135210822195572374813004119524698678142249243034427308156435560163385863992696712650080076141946306877318765330543694679872094743998067044094539511863626703890343642179898664257734044685553952022353372008193225256667016852583077445680023904980619007045994653214649695050278995291399131486174461164710703324936759777839252501076579214278767507676225287806639022926122718320215574923705311020151381591306964493823247320506486825787032205386014807060741612879294137967703672715012774188510097788553252340669131672173456418449037830479341150648138601668762108821401986040549822086312407240652623023198056073888617524139414229467561587767967399528739727050591574144406058900075538806221183782553817201638156354703231037356859459040231660212971457732966479300325924936944696468504350527980734300498243087137863842848773912329686225954380843832398290623900911229142387857863612963746219705194200540607381921928080406086996931586418360498285540025689424665870938351336293747844271494355419468314852624253341511091125246261216616882701271344757769761716876883011751995255966575778131737062827138640423192502546207038064691793310310391575260588735200873364612851581377368563682359902811942045016650947562407980516961426364768548955962612870399783697732001470375484052099229050073489927156242510279048431751801329450736682168244215603527010926017584430475800498830131840663034253348474685894584012987158284526417518306141924579965712669234277902631249154111261064613554432649163915483203686668939431420369308868693075514041513009705395013304875174153881313227196638283009388415708282901311884675837212801637727563278449739460919421234705993897949580914019818460271136362327694603364531419886801634908401315561260853413684079745580996818125495087029955232628018706558866030256909880167032554791488197135422207634821012590575555824493736656350827014243041845887605049972756452951864937863135264104818178332366779667646612131450273785189693745993797801073709745753287916261610715382449399469148725529517365520391439137782039645181592934474816865525432496711482004054224160541455537676231311956792641750269961670360852240063842533252149724989476215441971911088200967402375668847660164917653736597863109727379810811881904825949088967363410772228532981142327114310350015925178382395932369905254746883698351966386615276463389458109125978747795347658978144778870748202419325755274589040650743889114290000594816141803485424758793766000162770326097107120321302765341399988502084890342902684294160911684286990470453024465143106517869245343018039264326924793479055152792001964483448580303705158511291458797288569873296368131961804975874623681929590565830677604125847985554552792780752393374387811370720767271545474631336861257903970613863230283400887123961356939986843202739825891483878424800707035245256500264391136703665416718617532468164160153331552187323253184656004251780756578514783166414170226347295954624981153657561455981723468578233038162291827790916520356365527559777139805192938596167508117061024312938328976009561955492213723718331696342358050311665680620149890708394028495639669808740729466967210438634487341374506412479687178010127708324761277510492418037143554252453048503962331485689077167754056778883765004713011601655594494316933713792334549651858305378493027471300285719447935879693343449244707440894434771858104559315175545822386729624475495447433159157607695421820098686197143318235449185308504813449918545744449653214039489805937935433908597173869675585649669465616588496016403431119381558577794657235952516163326187290927663805882468042072089920284716315535603854389849487382779989184381720835719215872629377308259964450326266444142474731062741699656777749129005288175839115129929196557874782045089773104087962101594223459531259371673939107141602708843908286293434040575734782880629371608512659220749061025126355484704059746420907806704414426327285810289024109189091434972624151540517406245714464781284107091275215259904615713096628071939101057825109019329905682040987456513542586132826932863793579161146153893021457357330725899333027101548133343948483095925417548985657692337401249849281823644260001588904508259586626828497729382887532976433314202898712460553778336308297246658442458648303714923722257827090498300463768565589088255493399916290470887773987503112560111853124448283263274480002163287809183038839030334467560640860058590185940408678314549654401153543599091607719687872520089420766810465009609954967631056050760112487721586057992387811399106556039027628226024376113066993444050836822649774186622512681711516674241752714777499735690358520040919250259075837201223280013617545923427823886759845422876648865583339794539243126787682340634644091777424374690847061099839955496918852682812308738613180210701596339754131597089914002254688521457740447891929136220725171102465765114256597128478935772726913848861118452559181727239165691897752890896349161344816537104360981600060819208246949334986256972032640244641469216212562550123933478911127524873663391553262410322501712102877228094371221322712186143648606536216404717310146435393188437933386789991704240216155326525283049174650841424585627870234889667176781952173948290241966953805272321093557716955140611943983981360877429272972008890395187260722244089918870723719131239227091737174959914088881079510360394252438735395766151816459819659314870599067581223078254935227916493397352937521518672985017794343051681150944431710184139378156426590921534156446969326726361918705239001248233899140211919919249539199997913676565972456687877778072939809567777029355428748695417351123940035770844627378634162286937098245046668106645522644681997327983554842700951472227446716623506357699815378036313707844972526935368359865084439248183464662402273310604078794661452959499317718705260440643745880467543060932078978447788576202455289672387488290779057874020807803782664014779031104314762243261395708466484338081429286389244251922338374437992979654562515079696685833809798538166105447813248250291137701405453101965851850528691250319593725113692028137030992765796068878725437639877330971620154985103451154275743264126829060095667292332733158425082967788345671225811140798558718338388648067284596612410665312233767640858982598339015078334719500061506658315597877375047564993334184433654590726657905509726766050038560521551861121735553524885001162187048614264924726767729759266920191288103652110323828365935379923903871015485297981658840665933755003712396450529138138765668074373011710805479124448982808120658455681009983923532447992241226930280485568656890167238449301999197282897701471260387142519444048400552860837954501924893509591797317939112659291311982232198685635106912940527932371695334646102160544769368056296224327022827588732721000407220433552858661085466635973143195449918472870588484127519465914242843013933178210209304196121124259863922094439948899038524225362985665160767279186486123015389765039049670605072104914874787149582680941482741052990970235797249278439834630452625015415299571028313068245824653851103174142410099383426695062085844690562862750456251275855364118855584257910853835491577634230133107361359736548216695440866257221062079441915457506368334663928759381968117028219193582103436707301797165534543415456777934301998134310634063516944164784497133040584008206817287332185586632152893560521179289875336515438192856273195105832405020900427926728249760409837216969673748871019747712228529778250532903178460452009917908140211379259899586543543702287797972546683038162444117010852458490900891621555537042094086970281154822356854342583165093281920952287448112898599899135207231381662060556192793342225393145176796971214531182297936377866553013759980335624488353956383669290130303391403230744577868518734691980281140072931315420957620248107403519504039158136069996982385145606863212327376248249737337660948928121482674913568056402355424014377454434468711985152285140314740657769063697304704540716230499266343493123651675807550969522085180426296331506011716859421146319522325003268752706284050533236065362763774057936186333265009154795155079517629586101982820769538111797358348745043309055301941333394301488379556132842188528585536144505113893590659161083767695384408258082315049891575180716329180613310949260434481213792065389302145713770484826054271459395825107701623147124774560752158667526266851765124382324650845784417286591740967720865785558828242727626343576075032435224746547326655372876738432447209086328728343592196258620902060966586315771979394676079074993920476212845759493397809510526223340096013379915018830584529238264533561624574029907078328980039686563736729046224119231449889878935998403566005059361765368050589375399880497751446978692834926577650669161234034449452251159236004837661928014346102534447460705835032729900598141498055969371905594110252227657492450265794636678519636724659687931265267603262479744237642729372830007622286877006871862804992254895610880863293856296830638452722950264650683662560866155894541021365857510573436952714929541172895324075765179589250187319353054937161580100204122740819354538927571514908971498348101532024697493710916065280381398180154204288097902494003603290262485593545412741089928791674523427397602720873181108763671422851303820706154180684298211222944743462223381927397205756447296726036260443253624695523579099337976601931863214086683056065813342915513683044833325720461774468166653243005060992693786487816371893875824370183020822072612734650670514923491499282667957115169595836521793289082286168288487580554728311266502874287802538000996976973532172635698211354605508444136654735327367218814569231540586981255722434425156301042903959568485643706108118505755305439017554387180622952540478077456645146173201303464176044218541628352336369456248710895430556478271702921081307834508314405894779799535918675747590495242790845012402357608722586857660167876902787365236865319414090850134194831510328835762940948984716477103993598260854884252320740694334165329764584348615900640475009357042378773845746199877406525801408109560291697543114234409635564237880893552469893737353275807010459060788423401893210479210331802845016136562929885411626732738573602447303958201351466587215194337611673092073977575987558767086676760461096016371786352809421080802992416711580922097096060583958005870234680480717282290435339944678175352441155235718114456064126717350287702665310603487550878337259550754961984276511093890952938774411736470039325777363077104920241578429969779178077403417278270890875479353616319541778062835268723891337271277245305786437783178970210391351626390206870754389595596903398451131103830392117571356876748845716360493880007902215332353299300432286961696398809623822458273826727214852602294540580605882922339417031804730796447238612535949369569894191775869268118591569234369033570680161456899198636751960468025460404089860717429381212464047037372012229858251548659498490373757102448376967307645099263104292456594527955570972079146946560770751653948004405250819537594375949739781415350470929767842108599195713231066907685548222716586449243700374510402224061045668945330716138282806175427357763584410281287522215834636226552327506390499839635455039029490468187060798845092651010918754813647057524452823361491871617074384177491381499809986226640445165091582286336333929890489018519249844257339224327089105047610647662736282095527225636245391190974210398934009574847973342411749034226976430184083498936185467435891130716874745041056588528673149892942052495989669904884372520101395125466739483673864251547546134872955516453692822270291318196099508466471371383816117018919582411461201522117201770301595800735652717432738054179055550392934569324786641530687712761693981263169356111940951641051315178682311629631315882960928595759440877413844076515891877723599257862256750824647720186278993851486158651793528287258089798912147453227536315506888903000617968189936542068713323010022222099438415503653711807003372263221955923162922014577983101730155447240558833374453808627381778469619168982740599914356877765008172992204132726826345176937371560784131436187402897152661102973121596768813116915950693106357363169218849289040754340714542259520065273553676576011444532004393538908985530800825266486728812831335788075390195438606455012311749779159170310878062773129905322422328089612376873874331665906333575358404884172565317515806911143861508559917415986219207262238464033148931391090486306815590031958389477945193034976904731655746887468992564303339699371989621723356214935933126315895477497189360120720362141450613230064774634676773081383873724206757383889362884024824982155617986719744698894566044095348538812308667348529342350473125876900685165927604938823643797566200765794576728817209801761794824911016746035618291462616485680665827393187679030726910106013209597175887745625470443451616391554100153094155501620975979865062957689185764196931861969692068540225338758185709689081818370777730148002412145212529947924768538198417958094945280424298222820000636822244641387266739139799243357551344115562138240912349487558884492988452936545856254442030203274166612469391732558815847951187770463215035582050599371088776218436104215052453279034568024078028074632035344735988214725960921031921051317579063547568679043364463101373072055746920536957952707698793371757713631036728064308379869491903552019560207325613686118141995294978671056926321835154547621359854135919281977417053463360726448926708170322791185954551091052837393873188958749057944400287005877328123616016445000010777804551846148461715025695475930310503126564464841137411473110995467688918233230785027782253438940851396724204327155893613417062781378040219805194631911805077590617684037117911010632432821446879512014885907026130341184960732226573127882752439123538306836732641870852842504523274954953035055539441945270800579728701631115028809456699659067090679443587790019586226707904156761628450680134105616340338849726010945190825272984351387669463769054004025542931499013057041189623021151439069675074709845764235529267448192822618968866816031437855169610742775934031977434072687185299976033577457057702750809097492509666833882474913466232864631395436849784844191834384595729904451874244143948340345557723621680232403676292626042046656180434389129098700696928858108271932135462060181136315685949792899978369074025112992345917176559660367979927012182090806268942588970823303083902550756050380646992443603206304111383881802984808096099988649216914876839983465278102017783840018693303604818178840606343552450501782924866727778586448416552388527725373761683606368851005254951137579357597996943777294741062931527075401812379772796896450249885653705664801628577078228442722987638206057372027827945492557921524429671153004783414688639021225853512501757199275424606464002304067975861413948463795829170404408622698211916849229219446114416946021735996640075804706519863502170481309665935952349118215203277232995114892663560608581124890730924488197106771661044657010300180553435562670212184105862671921377318596986719533639406904313115240137759204212548040503486051305451832323109498451685879132446321346248423327437085832281527810457056502149474766740874852696718743964429737398929388314680069691706809659909149688833064453584325572833909148683848917604311909949408370373384239332081186722717774751567556677608421464786620095933386592731819122590333154983185881022688402066683563222693527384424151785939059257502473503758688055035086475031288938462008264017755276657881258116542137788412099038651366033202518798215475428307842971030585333070450615613025875515474831144827501505191844416690757678743320991478818462988656665676149020383364820954555122206945561265608262311598154029527288504121582047411112751893782202552177917474134870205194151356797994477388177155982985285798586905108270027170855295262167682443020116691622694560797334165735686450034147275600531440088552270873168246678535844568565816300658102565677422387032129571759302294174616546842718757049219298751821364874499094744330764410256923103166862277533641212324809396726320159371878474432594274219053070254443001696602780964626099259919070821698296112401571905649104227984265724245738773289827628823750858891316599234088248691320954128515537097358895892025898598709863976374766513361503589875460079153045689685377682987151165570099508948348046826613460579990714648563093927368420146821725887110339561281021704880248074420818979330947859157010218484636889044244268905135914177142764908594617330272006142896027229468079604945729894071351602737885721203698581488432501355433097502116054188687815127610586870761456796469301153012091805828095266429924845008035652294224924639490079665679292053536349403543481755277171296301828687162304204743663585282772416956523572859148544454966609245214408390188593178155494870077953408764450389367224863946120972215212860419146117829670889153290998250978562252734948457606031842304828713686976745105854222650543023000655409249510968877786503786900045768473239104231356831306978112497484136674967179651565523826061724856077182612331032026781220607532769041390912823430204575111830085373541342003750947098818387283333186965267325663440811800906126827048316181310340824721223641014966585105720028197462193592137254351787001602551174302297649026385109548828988398839302744775965380676481092950692157094760317385986539074512750077535941221950225049266714376705079863834262690044455577996306883877718148633440282605617091407614427537852907349494011575975140173615186247052475865049318219557573690330816988363883767114514510467077210983647308675113766084018567426676742717167176530468542236725939039334447802338431173894816486211524965096281155611336053215944697007674896705530731902169661899484798277708740549310994848773686323992253836573744179103576583814533641278862943537126663027846095740909416134707520887896915851902837912869298358771847590429736552573815478740233949689393966666881523153405089686749192811936839565166569935674570849933402214373007852511597178763225658986123097575763522420155246790961115657562144738685569635181757454560294241179548241984090578906490818494185049075949886050061010614646208585554340931868574605388649400543849317674982256737970457317939912812867932190353741756479083640950703051234694888925680276023746566230919666783927199684121863633562599043154408008143747488964203634438906042203959457699746622387031046585986589519615881928916872665758677482504896972155170603938413673264002151672291432052091825220813671864399244313924745209455102742312880073955707942981043861428823843270808951508601999261538527703632623502450181314736122068750811448698102733548736637184061335655041740726685537313403862122401850952518327920723988811098583376511046854514032864452351988827999540188257343628405000911439515802983711396423894322984226788239402314514185326669497143360887274318537013547578962021401313656929675818412806218701652239801255721774152524445774369786179905793660306159759619711937993769716101844529711160224389834621586707471389848101874166374689367788221290051866767940562118405667275745912721158702872310215008011181854311289908977733725016848965429603018968883674742741448741066241553940864043378149399361631049814905104096804463246016304537049977032871621513824054920985720551092653451973781070475194449486578126464737431219027552051044068597866564097463264015536610368079397726731880526651372497949665528217914810285685829277371155762390792095876396538330791465274971818751924338950078857773866952653117220394335412183955140583878664327234691218119083867867376910761257146193235181505606975272133131730740777644320101545194136483191953581586581468192276514056223288261414272280812482009290945437245666919504323228237513273995217791313848068106515867218649446128833271694764228924198579191245735000417259241939848904875746073690638108809334880037163115422614599334834961575396406096322887045891134958141357340271695060163062727994061430238326454443060828466704922891170383647994840569519127803361007079296304973886249946294117558693441197592307289952715216876682172994406424121212324697726250227102329250825698057967947865761217120110237155969894008367710358881514337627597068879649203049326460846434662025398239794156296910829439743413985386870818083659277206594628761425312628848703647744581234161345571072955127553201847692742573023245654855606200268191081463758164522349904202460997138296847309221556840989648053137900848759633063491083662446225729845501344143894610812016867404389918592396716566875428598649265933674650290042978725525130908386105393575264447315735429383937230689104274601716256266547189602003170294308548835991080437416265224904523816757000545820817396710226295907267427180768849870350904097141098192978196272581350430601165325531071384430205372169587628081725165872783941704649411100874329623972010946294642796473329998639879415606808759224216254990769545220063406118209622351445880581388947390241182989670706665026163195470014556381924402305684827768922510588750493772075293369804161130549621668083135163100770988825559981830094242732033376980243439478596577141915853274997845403075921016046836771050167182017606088166352549682107691511516511292552482016400089885685616667913777406634076894678556306355482769459096645532064592269428488422064820636325851020514791353422062394847854133169855994903411787578391687316057510043179635759910040947407774659944630778722361112256112389111341970451909017909631989224352732603773368930457732426203890499583414616851360475235443167566854323356846100875458555138179178261004917687996403812841708062395121249376074021228704218034330998775010353146669924029812135918563327928291542453005359627127091176186415265542977344903553894660904753324672232976712650519558509966262941246513572490163867403163531082045890658690591096693056320678370831266723076312080129822222450811925149515815062623776434411436420138174543689281920963016172024476184603114732563906277736279972660467329900311356131103192270380276304357049831187029636352694047825503998741130959021223986930200343850210231228867717209244229812093179142204376952064711069308710146495375311593385444758632221861274044503939164030897930612451045373438965746526265822249815756214659755687396247603489548362526672593279627368570151059670262625833137975810768196180804800807240891471438055357766745799948249443484394427060783101865959785556694219394654391307513742685461134823877177655658301591689143978068190267270832897573681250743861628147529745118440414880388323675325076042625931566736539814292099346709058891926365497430189909567421442164331129408231999842081005981330857979286523357466643268845002989963162849500803481751194518327626271356919155908451256115141258945467500254623192479553168602363239721901704965802608364503201834962443445804539765038922214645554552425983671531462147107836763936912905952528028849020693885252307424593488430869981232189574561344482274964854829465446251405301187699354770294182106865980644782811608072277240965077801055859109826465372335882101952388378444798527610853079567163454816487681829861154858094792676534048845018876763375918039013302249863428161146152922392933030435845724738161357120212701440829331069405623126104379060667124103900345173280521857905791438616804853104623883995333098289214505230573039475331537502945393902179122842154893365954881837648497429448926998468941132381565711923727867371139496905688096091174129669023601152662111223232421128236709008563539303354543349295681522506370935611556207871852848302068609761965904733764953289915227771157323078092956270762319783961925404482005237700802553512607946205384704651604931981413421517052796243085989986591770943468428275281770222383283561046184249665699670135321681573034740121962791557473733667234782005434654149006438085606849052122543360328521448638319592860816430188497388502316319394281414058509116361302536124213034404351923727983826004406346006326520261309112655498968357457739740393426149440118729983608759254000503363306591243370618743371084336743665663180073293974667920161235290352391339223334100886876622544868697523349369511461930848579179600240170408939253086871569074117022533765989621147357130968686397285058308699080933619555930125073065133688668393396393573829819562969327950953870876323752050964723255941855695158098540205072991915150865683547784728782312096228024811713901676762175959175259542540226419065777764540171084552288575447070653315598457767272300686080144598361855133226439138567135195275999514199374133542404644983507542753978645392716991491400993888673016619495687899246105909553593094795380311024216672663391763909918000091016643311427750082234834066453124349908046742078011752594297254144350607044998437689422894766722776941109096104133487642384009812245771136289582598479560098067497370841208446219878977059263618146352239928157016332768191416058899006922883762429160090514862427914688765816802989206205853306223812046561635836250627875617414508783769934652082109871543880462584079132827584633329305651194823322320151928462270285732459797832255206028573246672331332104069203891277466161936796856908832124699571778143043087511853386026326889442748731668346431377141769553305552658934799359646551023636233931722243322004673723257972700368034077566572803518369909384012539386731170695150904419283777012397423568827908755344924018577290601842301330420441601399859981870531438962627496024848681356685483622012274265412885095356627840768197911452056969949044591067770286968352862382043690173255355643429617491909987797861149308849506145311049090258894207190237714378607051615275321830876840287028189670502574807551519527791150835614839804043856982810933972925067924287236730609801266810030568229782184722445855076441848741419681808091497095199326904322927951772348208612028534243463901701728429538547035555234934204483564797358478727482354353832780560152719751079549351299749009993246602226440181225605740936693685495121922454807211092683180139812409694497798897572947634097366684282861477754661234952555157676488185043860363164503274711441087410804869752727771560593046377507585260857418479723430845660000457883811363512840499590673321839700358122186085240750209954190884241824739118503990900335367054366916505489970831455671992838282937539312700212386471175604205607329126874992921903328731824931235195802049220300535571288242294821909811239163928139841588909476338699469296232018375209764021288095430040105954547877497912709156854819248761517001426523104075124123703366353058317421209591300211423918642882258603821406498019027333164186115399915476468619274835980925635037514088064096153504134251867214915583363845782926655850320632976167509163143174877301790704299723985047577166102098941304270270409303987405557043059486996722580978633061424610460552742366476349335351153848074461555628802551275176647606271371909662467729013304030818983707194340820977542827338024940563775281157398907072880255073910689584736757940453862071539296978991561704898672124138937411748028818675905638465189136562396211421341683159663673457466602137682758380707345663425215322704353454387906198033608299351927944000303087226963727880702439877902455469470859541204001176342180255187231579222331783137675750459845203517284470046894667461820246384792701484933423781204067557514935412331881652069103877285325055245187526568403561751075981609903958912354827384904149906411936232785235285233845412247475538885337341762692411851453880537698110509631294297605420620600422517195339431007406215339456870785239702958729275035665466634351304371652727164107937093297713108201044684639905844785618286612144441122337980520996258932353698302535973167706561822525539935655745700045219617850457631767867059837482590563471338123381458792200806278983045728577402789912335590960166106332853878440640900643454406786616056601256265212378191096810440084661958369998014117958011729683739057005097785640432109374974234023893232541917099486004631861015342089545990311225884907001976874367994826279164898518146490699624765489657307517558668057730643046890172029628342407678083449905396916752401403278255732532890726192112235676826860749333447984642096096083159669502320262546164693361169684174997683098006256604460782986782161652776691814738718828696359211312611000083156245446763899815242514424097980510902201044862072394397506974348215691576016082156839269159072427484063367857799827166711980198793073430707820104882979680237707527680469710370985799101023575280019293534331267412888806342060863497972269831662723061623443262420662015079730257553150544690648116625942115530468421417389705464129691702625395912911047286387284264164216012423892335769385741499139961752166190338200845695076842285863996929502123671126575419090252105117543641483187953883963822102131178631571823969439028167759125891855768300816573867869396063111931173178982137276217383707363945738588042003399188819687306985473262288861543904978761990964831725916555728689111690899279701365539241312556017615375271706018520325385554542059475914526810409017591058021899203653795768850660990802244181375677176482225388402631062236528502428567767121612700817390362042311203116676803866453389047098336242152286773043305367357744366959083325560069038537059001640888445740951326526612333977555958925217022531084304123080308740757676552221363672832990701671931433532215985919355007250953718324296224692157980207880507406663890351051823671175277851401031328760320086594359609644232683012692651751028655731338666449656940104538903525764771371883909302236060007243445240995678820002783484809344244529927111875007174933952977421421554275811531471571905105668058422684038124240955815577266172037618013022717357569009112811882842930315714646041924726599159039220107577119908177245434194211919685794854383059980834183007576906146717004698014921256767414585665595906107697713941600568812732482756356625577825655018442132838386981292706843621912530299151285916568399441918411820198959335085435641984507280520830550084293188370575375792257079926418117401820844409029194027664131535521096151799334708973276793255621442046736192724836636794131758327914947464369703904955355378801966245215353826861354036283809665578600618830078309852158903076663204111244833423311379510516132199096874256346232095711071640497181210044529137275739954070608822168164631780148128455856835881879399626689281626232798126026682235867572504986972486440214103857060672137727589508331252205433067332052092648524539548964415205646525271453455839727115931891572578568349819725970154506624107825408749127699171788482085071647737192025430544917324202474874069312080229455982726327655630306586950048465796711361110546690483211374891003121892949876052728261419108878858151513774713150251006914047583670894778220243040416790056142955974835270641110768205792116293773552831947355429341649435631100108500963311167763500624420614523152985329498817523457315606340384287229955159368953778224975557311705897001857324237367022751495968457612930088067015624466744813187060503516539814495354668956399649122068303699221939761830115338954430015114132582980539106546967963080913958690558943038665317341312733542596116566793312328472158631765520033624471473847177755134989552072866103036748094259957419336117462940236361202484533889474580523905923751526351492552203222383310311332047058871700953719661417037181172085685392855318784114645100102511532114466837068712248295749892456785500103682695427819991369064095957370143236176952057042622921246862103793533212272110635998572799702046090165780777264364954087737252880852844266279101813471822556325771484000724777761769614912974987307334084110920640403837505059562288902130734552207894639345090429404684673117473863854396337890829788453840777075599793378550195107497611425936850094556931312600312229025086386775722415004358776591055385721849192830672058946576600203976014632392653982302409613147316977776924138363394698104256515633236748967127827848728437453363518211390021452629409313720084064801234792685557265878352919607997948911980527421842833128709493863662945098882113997948840198461014546379294084948730072703367976896782768721901196843034068946859725798935751610531580685645661684712446520108052498972935762915046334538957016955436376776145928128580584526618840551948456410128833661171213679934964386293058619571835958590526291864700511551281300023772505265339639195980999355754341734129077396468097150165570188586602639045045524314996842143564973864382755641684429591406672256610530843589965733939436150298329027368547928441074076830502530746677368251262721795328655617883267243254282753943120326782901112582817831335177638366392891338116734643050463851143511756718903168620456681488678693640903266911118911975969045857120136471259011932253710945252087287454061204370888623260382868606401379779514498617521343684307867894302976010985342214239011463730801033880767495834280690717881064562411226442999207600806824986776102207608565796971389801056123770096907344896921590747776347046144573457398599795339536310401813853658344519706929299173252200249834067774633325305311315843531871109894344663016975287201676832621266542117959512743956400571059135182166913488691562612267231133496358900646902427344888668961346427516685383290571769106075273680687853678142809056190760632162802876111890788892574837573288891883711303906711314787446191976667543694452767949853930855726444501189390816798064414048358370649632012015481996378806525684836273557080669766054074708079842271894528167065232397910374661781374529284827386170739312338953070167201494119505407922173577947463436327753130938286603420204020115029788675152018746713349571045425235535173934439433274247577381463393077536269860910678464913148977347718956521546595242642338815648422288743191001807181526393285016688692709601561329490363007654305172630889989013084202405771025933590715788966292184431435978056725376605776517919059291927362888775956196985284696656961689817280170167089743112791458712605590762385564559384386217157220029102681889338109990393502741180184763823599256428517984619005825067681650886556439568802132288761600877953227619554605917633984631440504879647895340919290791445975262512054813099487929366335620580974206861958238716168688467871595805145174858725048695905725237105774631394580852939690364038761460201282207864342590759681677171937251574692062573928239582335526136660672524614733692370624246423183790184530422594058931829732522376228236180261188967374992532366548638466984060549641608076834404353173628090340248378155271949670897387061008216407137177836067650946893263631549068763944891341514553903401927314631868874503344243264660382393630507925999605741913619838819005581709701346796246410179492823215238046405836801572841632737063778172601584454298798797786432376821726461357385957144845890009566719466656023361713498242267502849304511882224239034901757842332162329555214916113326805126670020163266668166811726583413043981746550827863246592150187017314438294955033794253356734865778108064147399253770909249117366813655131711634362092616221991374537661677502759118958845719043515529496151720871672120512848014291292915155277252940544214412824597471916145801959861783875100271312529641919797880659146840929584805983192540021576830284756063740270730331999597180223225579901771938542762399271456279438739039211127357300622477394439744308233857925839343210709399633736863801085949060429721626318718407099109020108156358647577353756222081422945092499538156508413697983025382005794885137566284126814344289389422513054846177953373659390470712923510600065114136609642359623147630200893941783736583610260236228672166482226827028325453577853242633294643877205205313146365771050869570243625396470807960649545318893866284555545658509931329617822519217027846367044170163063465983502430428247265674267344963945448606940295047051893586201718614812209847398782921909881688080938279981812693472329365837015397521179079763699531019830136283379268439750792663576237960973242570583639984524435392867398584825784573802652209456824932415201363573353199163950508780694950340589661542338403327076262825873282509682430111390753602186699245828347494174467334332901542792774093554677402919220798842271836678258831853709412043449467233901496509377627885865435146188987350383074766716190436659026808159777807154662299141081330534789030122856598488749896043947411086813324690924656378161207600098187469450889678847337754603659177113622586949795405041921269290969331025210994337670288572580544796092671304444566455628147177501779407273201285958672693649784147740950500533965021899656898221004852829944473171986537496874020477901487996539397944582732248084463428567372383441113899057015089121310589232232133522453365004296679834581646777196772172554031569277756713643956417760334255378926246345633089603698442859609877202590852307564640329344674159849625336077664675433920270852237841980752516312676992888540920227590725144291049613754074311344554198708356744992320434364382277230413352269733441030810455011524783675201552504085596308899326046288364524081791921093294066049612921275272791544712371442264197916911229803054328709232154498315456123021229562699569559269601014062856724655669748264679370107968898388411375765032277548346431215145017889127876824197965998312576295757504930626102540000862883528004608515560893795766111375749000414263560152320292636592991991785142542993842998944225884821748691694830801085753897990680531293152916040640229845197919058142608490912827435311100422561847000398319464148488825261751277591074594320844719819286421813253243972837076091168309944034658573549521884730728864468908916002473896707566403402842195471911828175910329682055659115717797658200775708114509806753743847228342134687381678846761902813156675527833047322859433443924671679172079714592362327675016376001475206289744812999990845423012766116132731469303953195354054399428132582415550403159981057143429909122498794802143230985245630959944919962766408814832174272834168706434750551131950258544434865622639432421202229683779924648271961851834369454366714490039489829411311594923336908590332163684882261805034123909916834177015224271603665442607606113045990294198455786983404502058007424467905859005269661454481564874620368151404752741618265544745784651221683765719311682951924315938630859991034463041111813458761329934999076737175838192447017827046684011570455718946009265624371576520276822239331210905058616965386383774410957461905719485208224105504423734533687169580145321814109378381209948488252515809921998443291631667023121702861797008313169995739834903285823060465166567494918393675657009167842226369349329796437049499898171624354541121933072427808703276197305849501496547895246474477469336987305028513169865727067165283822139243140882665994042148766185627170508735911323444534855336349117270349952952249764315641756104043825689716450821410476858177769363858217561269013899509356874396205400686677918051357975170516169335502333287315310092584993070743949094036088119829002373724035598018736380152225337954004448702692304148089743731769036569297659798629198477965437120814721277027293568929956932152086266538474846640845425166235253320600063365814542236431104227628790106965042046025554983824872334105134307609222982525706251592064105362777196761180601918244693280359998936829455549487626785064018594112906240413824269003249424410181388334861316326788797550581838020495548147571708529831244100632926707443758618749621044350186948683704856259329228943820230761490562920812751919800066710892127146067096524285287712074827973957095923776650652613013316749937327488051216212762345590560464350149543762377029219523201012633916522105266182756190720673968192255866026591480491000589830920681306690574501668274972023949072403247491220249262651025881055162235938452669503354046131033614006296962690534623881878330590658113795078225405677840678349051412234478151203780908564775612382056087258040152907073151608644473859927049349927090285250927558831931062970824094749941366633022904992414611417141381348868634742127035166970085888959634282415798710896591934659363709185050091772134185306600547404854360351190769357305428412636926967998808272309529078125145849432386451963307301796585118152984727089444781676516274009006623774886625038778880759211257892324964343080305797546532371915840286338064075452539430830134848240050824924952915308682746648764149477772456892699423950797201843544983179445995013020495021211489776287660765810567368666102020609763155102724082964976451015452309772271309360650664936139440798128016644782630324574162679444389226153553239061740845304694953266771140648954940852736659010336651239609973344216269663403762254699090285632979735520150831502793016460976584254510282431219268252781882938342117236514442942152077720609499738817892762251048815847385571392750400416373948000181143958978132732038527892514301805917742138359311996921448345021429082720543324214411793570094486272017367777875569400987308149136799881010023608374491923256494093415596820041622990582680508717680920390951356240405655181023670145906933275527577675408160632766447895228676927554880927521847853905225699950001831517230244184156565538251158652910315162263320514456317263394161350691765988599576396266999681516923245597798468586869001667524189484663157594448540549502546822237089825330586934485334325193582531458050247175250203279670830680518999160183732066494329959140055337565149621077746053569224413684823619506299238238950326170738750100028843287544877199540328603077085729994443021497222075510721674404430454019285281955546115830838794718464865643314153835052444924905032607643388145323218830319368083369070173753152012466931442733819288307264151361775045692887212471512373298022916075002800991217029848155777354254013655750519885253188948444722000502308571201141692847140310554690240767228577893434828352480524839281214249067080099421693914911771593015218970841213043816665154853484361751565933825936926516661357988501639190528194126041887200382885237249346437325740464327246051906739051560631256276432658094167124085606160403845014571268597358185951621236005035895641047690149669900465174945460990837633045893204797641349445137651111939540805920846044348747479653510809554388928948083438129253756398788103370973686361322711935114884930231095966840787475476134902661479382900137658990680718154627108684123388888984823325480094625107554787908145764145675319798986915512190139136022912979146678647717932850697223630656399813725922007678269429978745181110183688098239903888568148539245786943532265807684943446484931699535782308611818759936045328986353355030323686462847507479951614037828631609295472528912332242197058283023120307613634318675923291143374316057777336903654698503595011001754633658132681821803701854854667934033451259385413422457719850570908784399636219264948748715966575343357268564512642250582936499172143558535869802017266872051025730146197097501741478424417262471578904572989123144519926651829091046882443008002558474676689957856502943927096122147330567866801322682481607168866451997522376269610273695603661761460149451984396363383809446711642761817860084744754963612061859870334407584542524585384199788762331563992158543242260170493739712067175410334066170629175027464297166834654619852081889855383093901510179339603894842508996140312492310713877520605537741657572901750574327169502053619217531492230791100440033925206483309550997066308401398739180437425327041681382096768681069390265458183250612043387713378106691684138567703194737518877510658402135471740412878005917536370066456774659294448386644828339607965640941385527753804397239063434838767893146191172770806740426875665210878447779225494376044132176488227989789909473754506511653897383446834898181548666717293356069916802349800404589852628373458028183405332281651861809543723161183946743525832489913125390835216619690284061886471105921187540311716227478635988657562490962860172768857301730653055961487219617170139526634269664611272091279773086166527993195502855449616385169152917187756869186799610542174827459892932164721842732086131247348375154219982663436066176169234533560145668005391917869398079737614708697839897360982540997823896001948832730196819548144684222955495288510125450538469249313792196687603243325738592709024219808184384112685558077389326864023412538128197647462800681571060896163101318705543818861893367724496473889636678438508343985131958328681904889887563170870869591113938575204265128537210067329544286174101330007446376239823400621880250119610321885372629993669522871470706431070815951622720027819420719711053444814050650104181870675670630838721246455323821155168763035623090103988593737335766076253663799425622921691485594706040430339271976891814721411348017010249235015543035215028848206583966414469120883937076382695348820234447358896371104497150649231984556559606353315760627303002451326379368273998196682830742882669062641342037580912591604033976521858975745820511929218521711698951601206429022219279424222922268518447076671721869024363485813074570826676920696738066097145832715085031737267558712204615570171542488121394794038495312116121286866003533162404822062273107468405405157150715558342227264690182865817206516728797303108267941953871624179140851297126389043665380005606986794911099258945490233911765422946420793358338996726646442688831500028347930342527180847097431965709122185380581930525164561804202549524452049528666767263784469873364845177735522293860338437543340220965801315083726849161585978980271785187386196573749440338581148775638067854861190446647211395282223560193576286820354612050240690476428802950521778988428011970539854093167967905846789822144822632767300949135758727238613082254079913871017250349702021547444730480706023971143213271326388365360552076007463562705071562495161661716845108894009478743976104109388209283250502440239922315870324695521300505707992860904213436614256798032877326171559929906613353543905605143952463256471586331098812148348529281664692405540898058221533711714658312031669543363574787975876880340806605615127217591634534172703410177800270131118833731469981388245021295737183453102544746551445416703457286854149268798324101713229533504121886007516845201952802535774745662549763794630756090766907698464966428131428000233181940249160469876839398846149614646249073345337628900600265460541518903162024561414653558593487654107542909646109342515086256430507879833339349269542924920865062455975213431216094672319406402621067412261266263543768499715004853860551108926183980648209150708833341046093798630598321252017354274533505458416006623155472844857622321838890869155276900102130347072443960799043188181197144255009528116861420527223814546439288125479454026957480409646239173623155742409018117190738175981795894875616150722456304899884749598132709203864025048855880472916755906815596768178245868765639572997946991426317463348741455413813831208823075682874088699517323290815810882098048142852340127248820149363285870391443496252290518325713392201847008628973296344705236531613238080961145292689749128034143048586673475311386935341456764839953128651844191259281761543430057420318120359061931098957919227249631388281595519165653168478650166173791873064556792148862984856768159345151486629240552014691882157140195394267453343010185644126922792260352798503666229968446944854639700715738498028431794107458476399597149397883598471746612043475080784975977933708408743559497716684959733151895801379665767034419679433418874676243170384073151601411862636867966197184054230230875730382571345911673348275237116783135836751479163514876886047738785404019203527133749481120493755707374835028800857522623382813709251086037011376640642405673407250444412758841853724204859345067691483523360884140132611736604840056615392740246715228827626712339378360080401624574593612163918348047889960786919019231275185641171353240288842336592642850356215965440167004068867941300022771081266824168557945637992402214802362846002479736722250350585981593978598451466322576933253913250286398364483720382976695940994531085307018803407003776104544563080934997010339517057082366224160390403393334881013575635927826061537040121364494830432676162320150244991684506733414063835091231683329414209972943953655526154410205303323358235242801611615703435074910640599750373477317680669804577739679238210245961785441063910859969694632050341976942053636636604054509446065160555924860686307581458665371554376384206751208820941802066774456909545717434977388763115748568783090722682629193840901177483190158547405753408017510318052810198334300765144150398685900727547540912774224578847042156432929374394043255973263817112803385994155362090278293347954509419446351135051154851997592853193887151241868121186940592656237393424699650992396580664772285978345404318282526302776737123449546891239046278528246227830892247895173449887698241315138782337144927486001214110702153595228997614726740027584994556857922092592204996409614837986454805031635718722419349846975838520669414296369274026586073504244020714372508195589057515530680753769867329593321740831047281054162989064838763145454426852582892518109299352337475299627926882797670857643817069329310016700865712518188494039390662902621294967854955895062874582304317529735533571100590507106176958641337659077409326783308838133270536896216748994660679655890606262793669561104551535394110205318754809332572539251199946134481603193228208922869483065009801939033485442388849212436376578850868928918617038590066935743930280248544745656514293880563699192849221175239353982722803477877638160524669602000369931232408528524152317503809898682571525140792734669330969769295664003296310455138614759342243051465557524352403692387810105689352441626398638941357048262223991612642653908620772026609621195196711795619437134456349779408079924944700946094441340799609449321514074947401782685906103569986555440209337056915834389477594056440650868372628236089710543282527964800432777247495786180136164122480419012856315452447804004312624923451724512861509599921473834396145500735867375848549418728249453714251714483766630545931451412217777757030610983520257234616022328438366057597151892843140241314749789315547587899894442882683325390438717063111406431482283815162125564777675493408467087826110292247577481244837989774225087203377053599016005987009531965616135453040265897268423143838744684717262584844121136745847786339809632274740798925523644071764111659627200841270406438339408398179326968945336896591233354011490452027474057883035954149697255981835921012068030531484192282115180151024895689707766328380211148392444014254781956827163898348958728597791292423015133556536553157076502738249315342449962127512519166164852151165777219542785599398189741788555498491923986834865595565851890482185367167629469466973736430809594558280470041753427285546282918650846324139415229568008072622057581366995107549349027491097145467692302822376642239536046073405731215904154982637196053959111438647740390907320389121326488547257490957624388444300497820580913748703318661385372539041793866094635907800502703294142313447978440698005580983779291390699341423156188166670170973952200657172978193967271198040497214867962248361854693838709708488086878906058362163376767470960388941214242140089581514746908208960980614997240834589473801932574674083258185877933588834731663635649711298824541842920881724099456383891918429206847247041179248054074089397146348442862827891627790045821319025001953111711631313134058600155429404811178277622394554570714215321652817455933363541781519024108891681964662067816663949361214145793234562047393179491189701866739665706585598858751362406425883327608428086220189188529574870236151720097293899954029189008949262284984600300702688567034491975553188817282242589827329309543056118399484275184722129350183208072478113384351178523542416281410302997081709919508572671228786873094744454757425619117004029937928383790315718614540295759006798249138077434304806127796765904187377883418659137558310810959803282255089798168808255887991673829666656201079337872045598639983901737903430132444744469556378831493549497823104796300305942209157207618963921270783788157320977582215981926680366015114481134896019380228474117644417623107951843924213203789175460894343746774904761768337639705902089060077870843264159354842079355217786782694844674756221719945012039601946647692296830659853718268381631539068977455929188686167806182041513107874988792744330565947686612479568418313938849196402444638830277550882590751359380373787576008883026814911105134358826964429378368926910834048011784609333062636809084664741868211325362679104799942989380584772697741872517309359324632783927148215517027594367174883971357486264137235553027940159227842585533187971927782753845759493905872159414628304003398481709573236752472961520770423288878030588757112039402354328322035012461079483986743138020236223181037320835859279558695561507176344295074919601115101341996246023078928078402774472261086049423954754234917055258221909679700406266646665045060723785403612857476976318113617447015615058959375555317372538232732522757049824227306264996951604867078779352154658181310551998718996172688052022863187240228368818889037004035169716726500800035279127777326778684180692721819645877946261655206365301115344759880713180078466967358968599527610175545375491550772120438148861980892270365692214060298489447645459323075671499381716326823399516043038254691359216100984616707860287520542374325342099225251887375143662452660945576752625817825411208861273530723149006958726389144593331322062339175135678701440222769033692227879019147228171803142480936860265220630549898637106273380947476905371299192868037937560776055144223443491449964432201948101430647252429991338117031483335559968744346906320898634819722483878294302336211869682016775395402551650667352055074727492979877068953528059337655667942304428737418624541710545009429144830586385076017893713280478848686271450613801308535800026493548993367833138371195969788585927902608229936781722082431325362531718061405986674877272522305415169542420950178851431144800259437885788278259768688226929563002682521049195038373708450216443501733044782214421802033709920981575965939445475826910664368539817270561199543394918337535140116152129658718574925329626339216835293708586437468805747547934025744223248824051408798503398224098629621504830654254779600815625364772659925202538806276065176052446534460715910364993119057307455205117234260559325548463530852029103578944555706007589641265568252400938320809541110567397325240915986601188301111928777130431011354170486465060045140599876987637731355308928932741211562051953479045803844672500382847102953235601950295608082898048457012041316410028502528930366998668470755785089199145344602444750533564826290428864551858290509196937471100782865735890580535320293638273621678207331605091661286714541658347487876599387893594810660877823018535179001606413225911646049430498897037848797781434307522075497881408361932064595388000616073316011713065490009365430643360778763952953525118911687269480634908634089758626472212881352719107413013924960086707526810723056625512358592494938443197618320658829694396112013941476192396020279796585667308017116941776520411763303003155253287468190445716186801824117299680066384106052184784284015145796942213038642907429301814926150782045805301265387446357268588514498349755380160665231467318324718877867169234946877939276992469282004506216840684536967034461053765824911920026594370613490264930819427994184458618637718289943308171760792671021041286262649660655274051248010230826557528690993522699800719311608761204015121973704372019836963474925532884233223984549515741699194901946157934783907002312722939160861803159384424309294284000284955460491484533199850561962547029840914675631728290069394657724193565956005943957098543230017694280808457456484343233915427956741470233933358085004718506655192180576091397398161195161754116440849145642271151568657656427495407549806214804626530118564330163107825364261239406636943537727423562751545019305727780056370851365910468224592090298223566887812276243542162710300907405668828892838294083893757201121047616100653264167335657198385586182334155122416154394981443514753423957692942463457843607352379454896680020597566044887250442597733916218603311352023423365448013308422100536581222709656049936722239087220818345798031883220029808938260929259973855802921941349101287838446647122940808812393348734313921230833433640176633419127022753678822709637415128504552990438704161180452244378803564230849196860406759344237773802460113933348758821236361640513237694893107688903230994939071427652830329041401995856529632935621153763047828596645416116790412350478510341699540379389734813999124078632268184161901695242463237460903187856146061767634744723398273026568165373446822347249697565029103590133473986398729087763750357529954433033302164023292907293332089266470729937806078970695918664925755576275099286922413847866989312044807872984834979112995544990031339236164140704758755914327454082545661347862808793927296473996095732493080443647030283673012111722771450592436290020090448074353670483946317307404243545935490050929504945190112806762368443248329222200772418202291048148424799066463757345302136143864059927509525825055524832170586229752624038879938356339149922431516224035672785181549703733043371741997458671546731923699557015858416485373162249401734424706108524627428440296931876256065509672245978730698340288568739155703471927331926156320661752725316349989327098643280086001396471180842770585877856408372583760502948229175012009038648225128467609318828808104545226738546687182004049469016885660465357132062154238359076223792353894342482074956829433767596024353119408368232967186009962860700358029458521369191263400479689528347244638710599933739301155633808040838920502042080955169774637565989810522204078582005717194841630671925501178748950336726435127142754030826885203090330222545769524057036204668103032508965355001011520101374438830510652300842162194139617134276899293381549307864232795612582035999639461492245477534428104350885102227339429915422638595437807468071369851395608454626381200431222589665815699792624900156503944862202032826397606527232788766171168227279277457355112083240798534173315172527764556992086218597022559715486798493878404498844004504683028492670565787654753345667625128701837207688821167523550835122364851249170648878774182364125903346843654607360276031686039142573330480888874215467620253135096980640731847649754565999244940378944017495880730658250518716442782367879255290107831981094844293385083487793915995074081632338595296346576201998342994195791266209935994418193640371223970862417901112946090922144969543112907873334524485704592717036848940647157427312433198728935268269634462925726605265343947306322285660654921567928753573251342254591056463037488547708205350021416625080309372337040835140818374075181118467221689132884946263010851869259801736394462262418433207272308938203935086641837149599670878887673468341562708670417926210788472975983725795793959967550354128150335880548228670517354860080222986676462260938489125822260731510405745357282339958924185786153597530104813461346553040062121609750844612186312174248637853741531213327652761402657771793338087516451168362148091387813866875932468830376309917421338655975921571706376740110096037248695044362983952960489944589423278761491622464237651633339435353055650697466431002631887484097015726180904765278711137959381686409567761943856164247612198260841166596427517640480074782603558295016311413407307788532836653461623339576321428768472223709717887510907751600839419287333094277922929025300879520630334638969341622262626652823743633827015178181545080824847918886892410460115710854522746723579386752646521455005821812765809954988145595971143121588568196297440251008470402545516709879010775908629030135702068242597385956924589779080280550127479453761275713758616345830755289003510967060186160682238879563354111450119995344991356289796810786691646159807146322298986155285604207952865233931467524499862407937170829922581960828471380455456294777831827154663895429841008674123461772299452596667581392972355929594610792766086647068880068604173608256723661214909904770828321247829155432352505751102230153004812160936146426505717238676902120416605410735490469987254942910998564913851381825610241161122335309572062861244904624437367582414840823417738531929251984968657874264631390213095260522160253750227547904169897044055458818097333106174413714404226794712730203638043719728378897133875488828988410122212476672888281137292846042001656611063981658123157003338121575120376390167505563146596593733724144895497845019953840942880291274181562877872217983475998049789337112389616440899905722132404863913026568501900335110862784873565465911996808949915847561713795036452932797340465441036613383979315611845189758564538920975118455732779618951300877785356342104861992314358761911248504436620712287867799051967787297976758436836731251709475715760067710486915970631044743274253461515496885398443350043019590406986487909142495583540782385360406044740785213547334620227626868638909064118018528476412638114326032251681263365780876268957307693984583219182524952739756296162895284312498935421131166134321798794799296834148397861156900379890693930632748668007387498331719141938796221532438050086848796269238167160837924987092143208332730317774649765373252923659865464496767380152413297521314778930544092219139329971367894093219841590012175161000003657823490973321595157087911227246055598930481030021789484625961031098874519541176131611810124435151298846426204352373431692859593257396984399776457444102385659015838227117652579662273863064254678157326957564716615441167823174190326008141252754000112327514844461814049158812278972003904786155395649184084679773811405921758117554444872004805285075060328588912604584728250634659986378080754563389264905253514007767215878373709536741457172937843953607152563228473613762797865458088802277867652411647952752115075155226295232754444956499358875120173007741903102563874075041103408846311830075498538002457460988653925106598963782889381656409548627714378673140415132711997454256332183367531111794441068550998675830698677959400932160335340059814502673010755590610660947109199718965975038167597701663143670235482094608385761581291634267369324827948133977968142940892575313720325351229483586636381366356881634878502047269894940630420041135636284838573551090406871528323452989974850231986752985091421717542447199528923962285642045774026710906898296709061376956904180712618089324378378291649972604359974734587199104161432099267896118152576768427124669544132311691300291231557112797615717821488624044781539450200350890036922745499373482388549574012567882189772191125391387617120535506595761498644302185396279006639765085875602665252637887527142670109374630809346139167616354785732276548331988130586976037205139264051040131466245954358145021175415893919823858945248732755533022016447507101374264957424565407104998186300601545248752063452739737069989985909116181673858010905192794918486101865555856751444019169868436311871536932927919968177986957284497353141828547631268580558097834412547889092225418596613678049223816382033545294253728596413097988877927752330025623730906969120094368556519974468293651741751399485849587104456447069266667772224004802436595361915127497448123098437266045183289362097448070477670635551083966405200894491845564728432446673519255928429881569454606639163785827646746773040570513016965181553493885771685958518520580754335845271606679093046845099277874835264920065202947860302346604520011456026041609627489359115297550145378971530960190691266405476938541160213187741693174913984716130826629831066038034799179411011320868538503259161791521615063670876358653693763746925921875252129899299884096259771518960265596207036385890240072365245872134596883048667601352141974780059502632573826774620324606172607440926587566753180203846726990102931571237129215381201460105455675726248171176210862880448462809812912282570453045206024370267747650183855891209601047460798277479580901202973230122612831717833801561655254257188707293147890751474025355305287876607709915806270479000757647979500391898072637133863245293058478696647550761672226725455338776980233975999509988807921147864902729253525461842671366754969468737150450240996129781908363101569436452273303715356197798346202958894527239772600826714871975193784413898365661059023372783791138488698569687265007691503507733492734073358345158796925778615699212576265922120388161425311952273017105702308459994753159053575946045212393171158722194584648440045504523914201677929034452610313896182242109854343039840394679573648194340472864827230173914178395530026601038501887406100171677814090629937179182894811998384790298946713720798036309788779003197642970331813244017498495526745175279786278658184944163206079425431618623124111782250319932668364048560012404974747639484364408866919562196130871769404832047724421487891975211083847602328054835758718773341551890017144371382623404587963604590742329065651742394498536323207699152593050991852583201335873943187642590208540817372851178651669249558040553342406574329718287703630499837124339512929322394408173699905691484527017745040730087502147157183732456994964292917806742689134546222026792805139067694085605737833195910329286454396706939338831444230827746851399895369067661410694310224074554613339528757758965012795755592296404495132312757909794924559650391934631862447577383329258446907758398747200300263415182475013062064297864892251037508945505154234653752026197387478244175543799990628910366642424965309246761060451565355949331911591297240162423055619939490206883764968561144784077722410189938861663349773708541577443958050181935820237206634487297566911824549212568642535120228910173062188386611331366038497953040115297577834513173594386898578857986706029193025694684119538226218399363127252837798297247695407267138391788782573049872967977714349481966276511924844804102857013921656079841090244385645283623413218538339113982722357832322730669258114284328196769506256533421633290731348647607792968992864197881440619176411858344010281826291884628571983228263156415948081299845004001093371070482605705044087862330095986869818649621589369883859131669031279812494667817095264365886108848326732016733562056555216734063627143234926987040631739321301636649390796096616741176457287172830739817548279764007010821128702191837133313465853939338127737216220553806248531426542874098387313456164671940286412095901780345533094432259900466743930841541281538535351237906427097419209568889166677574979176859649260922505692981425515301302291853218039541301171686367220172123802431351510452827136785588103040665128524231622226638160460211148336692679563114268074536942757023923026600934296422729046491499070015524194152762403644905308936282681378890515254473017152815692920825732760618003717467658327742908037403773715587899970072023573695117387328760655302817429777513434216160315779257333951624105975446694745185383432402112501393652534972101831243712525479437463310773373933112396095371492636150738002860917325494637401904177881663325202999807956100747255978010513306599417833660721650201941632062845636846524321509600235875946343403966048802399139470589911514085476311432215483558772680588898461528596681347826103646636029792532158244081631056218198707400043729389996536089575535849579244725729342956463141127057406069628472988847819534945242075167151868418972841909549396972540498923434529555007541887195467734038317351157858171637601021229331929476218085469824308135894697339830873385580940796519039211326923295998159895129394372818718023501406833124719311809481777691673269299389315736909131822902338166697550999033405700400457794366738464873739851443781961365196390088920498253881810641322720950510373205673710596522771614552295214975256967292192269855451626326498285805165900249249777903239110794116893328734065205960344482560584536099544058618427870055099944397851150038299845160778204592986833430540113984583642213542353168351308258569634365779723120738746534457761854162244507100571238202405756877449316628481633335527366188148881259282569524611265095824095049973934805507626787755029923337598965149526195193917341885656461252206216114572097547054314274833815114472256024814308214869541865313399501133881064164842684204521092154507266416579937746341117088407268639907406899312485173306603544255269647983903984843934198705919718853808185059823010658183730650259683498894972789505301786098385649627687489670104751784183801505172953287448764413307999663560596397506394271165692194238205150563566887364512474193826639547086585692144244618209325632373267587241492426676288796859325324625770963038811883706011216769055636111379676919852477863185970082042217979508446430786773606834184327361274790491544247261670235013132226711557776748697208582258865791210905998023506228998710067704004749176079604046594505088107645596610355848817157963478385975106758051351898260166640751243004275425370091900108925723247807997647973915160476122474957986022293589992230313460989447010143395661170873335566891291517402517250621544045814811812804842302843504336105360026302313639761822485912192406387570361370388397210300997956435318723341385737972991637540602526462949683431778288922294763775237950967539386592768129167886438869062056921126427093747567476300002921611141823215826278752854924258399420214728449085611339012553270081187158666350059524325078773776534845050240292485146285357603383690647653615323571190019615708236930826443939140686261629293488317426063034012782656337669480348425510333935838544983059825702558457293962884487525460694979096642892562599563854245623961450334263544084650224301474802443662138157224340822354187237764613776368493776153368743535792200310624850215708929362195077025137035545906578573000675479346437778242141551833763538894093117511130188712084900297723543896793868196431139956061235653113189435840217050417286340080442027169070718614396668723009985864899822121459680935841255458587110229746283592630237401170970746593305447575798169309170535579924998390621217277923528443133859182715451458865836599557688078447046505324714709001284041935330246268251045457898608104596299373543826396276637979281442462202102091911787844421344384919592685691702228603895223775289263389907148283818250316874998130581913305672836878736943004426160287225930398914315388457132525764926114657819320054131689626288994374556459517437712042796009562984274672138500376875968546920904299718135360342172221763313339447562228444496954607364692637879777319030344989041842297065196071353969896753789536781048496764751293661552157376924491434532553560149389528686341355106396343742755254143517694252766000850811613698500500112336033516837130430012377854407271859476730804514281019062170986094057672376282030329890399747013062176554632048979809083077864647736526104165011973924746036615324408343711611771097909464152211852251307335609132335723327440768011336432973812630418712409212284612716507883564614252564894628604528690987253457831484122790054523998862596675728891316371913423203936666358882289631727435552853706721355192870399683075942325102359061313654494553848536427767896068550417271213746068591096485834968687609277494850484662182250396409766240782105942069115313848539093227290302526972287061963474677224231754166818463858249625919910996651096415299419549396428817973393679172422196137826015622214373219065499486327733860444039855595102451294496831086453210107339579298806884599555961722334223500957899813293154252820432940666771281392798673064408883784205759277355716178513465720657543677898625488923374151002335093592071837652488855767393854473190116483893790531817019339867759059306092596228669071657315715975127581486576539413112350538133486432362679165504156759404726816444626155769244762672915285108668261442941792368868116804133645456030158466338052628376562087086310104246453879057795734051642264815541734582402384118826665257902844245485794925857565732306262609639107353054500716200618732472359305520839883394513099410650558870882983508893761124753550669543905141637118387058720092258641926753826194722046488465626436516572819804809518596546557334895423241472775451526480744598431764430072198487447607134051245524933950385513559842954891009972092244694138050829427842462794623582839538640267420820572442020316014167702335615946954490337526448398433406817697204259483928525960694748013101706629793742454236881440530575674308570254925748679391791281424214099119278161757505433732065214887210019755184337929902373168768197764308191434553371766674784160135008954936795281687760005210838688467417314728767134512765353346778737218939513673417191843898360639183446224249293717214809020310687721705149759380113226454591247034164151577695924242974643707206801654221916859826416210387122574196572486400787825323442246221922864103127646243912906927119993673360326992507860119042563678584782490170681558142238890715855350045128912369149908863787352195736967296233586637145762543624363296153911721909093518105849923299737382685993299126989472648358758837842892801657245913681841918477473306644416338283114699153240166092569034532070860014119822830145301002992660056411250348946418438747376283507710266629274106945359203350046707160952884027993660323081416314943948287270552123828996987069115866642776597656453395816497153807205352150214062997734235073041344742778858048337501205458311140803702215723065702215907534560091949959076028664858964347443679587265137837623491370663714053995625215540568329025623033836083298138581075937703132596795170773337180237041102781723040882865733035325190832347868926676862684974520319662166530471492753031831470564235483367996345974016644548648651325693326014626586300568042682704246048075948878064582079426250614613710393140359747348609091278826039098867767795514129288396974922123767269701779574277436205816438349712529224899487988617320211394295422519716543541329539268306302384744713868096633141419820333649522863999472962968749894867857764549127553602491726279276301475669045798243189097326021877508893893069827840699360990740182140763746023656224338984233045146434451784882365540942414321172643320868924382240329921937133585083100230140559841209187822215892714783913725659079768858300184863756620677655404815305511986485268303918146200088916005597880956144575891758274162353549356285266179961111303277900955517809889796076696846366879569333674129754839890563000843043710730252316380642200312361465152642573270255914842205515256812674225774571889155471559843677157984392499663373381531944348086378805903204629836495711994143548742184398794976535892715071100457875754885694136244822378449729596463098549890545785997324686071965281841474430309987056330207140010181363263789332656129628878579998831387989045343713945512764190149782069696047616333360188425096866779861022781122386026980367998156048536617451095733885984409778683692242818563484490479372940583748281272900369906376798068142769313603347212198410163247193565956691766128090936906083698275488267841218914940582104024600214734723074479912376422119442638671110923203126628215903898293396312432276855577972201923318605969202407425131768608451924680020504918767730756764538366256969029324865725947737359831754308926497639903369290951580457334830135078652499918417208197536939881671715998471223653057800593158958841776662009846440804263690122906879974437966170713518449009808715092203424325881766874244384551402421900433464939350974078666301901854162846224247342743788094654982986134537453870744123447297452823540351979202006486460534707101097803943219547133070395140596355716945881326565401134359465287934734372650379875221631032462436671156287328471863966745203766853325458610066513217012901769889685302767999896549444522463074176784613103035978532847547818182013778463863021182761699359140015214602977625355155558723063086921294875537378782884389890625573645702715932459503066178411681850507577083583661133359547226592862847828737411327217720972006609299830476746189864491733211188831770211356939708782931348711674933562289843555495196992883425439466267099577598958464838407770064861823709336847002195962113562310973388515876330440506226795879992844191963833612751647719598987532372440153504160334288526183521038184097873400481641811788164323460899591941124546030649884645999601428352632328982157619224804807765899944025100671901879109130124284882576979047418826488691022091405585559438838824844900208288530017336355672532868141651935274349758234525871968676602746422316726168344317559845623268156353280544805207748978341902858061607887366274205613071459899802485324310665827279919718127205529916048838637858173953762626800530831327071081141012788908540502329594394776879627576112948410810449572727334518210250522755317328759633540521055259096903098256413036063111714008799682787763524554570824617787300801884117070279542132146589438962728675087323910723619238755699261117656436107187174817968267484783399929732934246340392237262644420408329367623723686546220700282654117091426047653239378012160716846806258286141949827589318783539705449129020875904448561831562598475991465193888194781511617688389534310767094752599743236574805332294065151739079106360514910964917122591567100646994038761691849228760045190706597196670867349195878114435784098652260599020933141813416963589937934503133450445666322999191405553046238314267033697831645254026610895639754624230518124056783966070556102598953144164364658434763742016925522087824012416260357803094909999289488261335784376683001979334074105502863105353780484293891599289231999744726469294457825060367988077020949679649980662637024811154029294434587521902218788962329947849858560176145300429988960169395764874748158658139385428118185743114130076952524629032155059879588309277094334701852217283136176110871338543688665578370226281701768585100145396220797239195738817839056862060177945214361938819039405090250461791397237328212130262668683453295939984151038004379093150467158770333398525452008387788103763323145546298894112138933069565613285351956786502701187212890647325021345201667836880055260873228160930788494369603440696507893172582461189766728058058158794997179419881295248433909927181525222374788891199431229520926853452977529202486917471806276290109187998485269000470999438608122856406230855590657945152212090953182840574047904032922592851320699900730970420122548611620962585537087936401721766675737512986624410014979078643780901950478047468897707199020136102088491983384999572824538450687470307746721150299574568696042413532321470237117088730165493317396097328152922293803129007690753354659003767881690714075889938668354039720943047322124824018778180270740283846406142822728207456614270920123561433888655920203039773360653506793105163914070274312645386697641966374781647572398341401397135217543345991375636846247860565550098204451741933524497107306527793796145529652722189209525003823981653651184260090250409183146355701590190973154007064025626282635984929236246250621950532358919779153725094373413844890157708933854435024248376239449018014898362509982736045538726752198848571155230723486668505142371314597341384421692331525013257689928833665730291031066532660911796442958569153518393263276959984405249656166774022037353156838582684285182557481984982827428292668461331009695635201056187609638050773608906634811382870887001188274601492281957455693607509134104701929064995038689262178833601776333343246381940656123132682602451153197380437295589204139338758006414922703788277924942152076702733282289416898393348309612576778364478540807431321536825257204558109052598545540034922239865289033178146889189991748991175202060105375125037412887448757809175273590796867100719048535456522307906165324306826473042203476101463387070324567648294748118600061487946467933001047575608249720644141106490395958652786863751442189594978613823565940892793630062856741998221624487809693816753346612019376135941965914110531832404386090885687246643752679068629017449040032309335067884314888040564833585753978614933752689691042953881626061134979308115145804031988730138378941841726147547856275695908823334060591317059199922047681978561023434085436377922123040965855589156416109787195448044336585906468870792924561926379481202555851397805171024008149897672547679056693949312570604953144439734454064054735164383214231693863290655371003687513101779008843543002850134650517238614333353648578861535121540359465250476243222337893286579056150984745480691526515721883653681028867637433531550614855084757842490456720261126585961237327818657362632833868709287263186678974171176119070753337678080749342229357356701559383484219053287036805851245816695236674034535503027436306875066041742144516699671047432542638853450352957571451871567909888629605481349987447400859203814946596351027376870232959765009663788304154919500721864991189500114762420547406398860928320731308098386683125959272877318359024771050972515437562100023254033069609531753694839872895667993301505299958430745566616222237065077900807743906740418473196717463937327967764999775255554451523978979883477795584196992589319402892315556535291215551112952274593783570060728825050243258199241789107556857140610311000594938367506807786726914876256373312092334614964311344604033321725930889590787131475161170133266530810360131243354344656919251708564926494516120290040875256451456332947783238398312187319477906760430890941618209909678909817596117605412471273185209780461622082683960334335385814362425081142811571177984259686645706597877619989028783110347397516226868845908827189693753568963664318522415439624571213074818652133478541003015172602096577947202310896383655016014876288897978265715325330340110024986881441994248037931385368583066062225203346278234311734573197848920792331464477691899104063859530499481039742511804226877566635068218938154632744648586269059932130202379646218323819300993494901038140387985559131441761754742298855223598502520084251723496644060344428373085639328250379033381079267783396080506251782123715617416648180522144955481029981291132131823943487376922384566278878464393350693197409152601161029232850877012201169592883815566657437508666456381705419425853216579522370757989782406764236149861097041236658094797229782556152262270093957834180834787139076586174601489540659767591970522978474349649250693327387047698816505555182822242486399084873596407970489103075049724580923730334694632815266020654024167456511422977880258993191614283962422171991142119866573624189972524279744567471130726151985776472278986591704920450785908486925910838406387780993751202626115299182668158567349046810233333364549040802233309221884898090778815492173341354589997054425327609320585672005485552073881299940502367445872426564169775510470135546352690662166680725748908597624600502693572380170171372670319395737333852328929214735900983196376546981089082037884896992862915802649525205309708128831688796925392929485534343801531440270809988003495915603043021523814051978973409988878849496389385232937953436410477005559286683434474813345902333248665558686584417427556468694452687706185998792202570701790208482608028146785758405726354966180102804990080870501508384978994513707739137455781960275510826145868233631715409751361283016108923375683508918193933019051016572403961176165628950066246036020363610975332767514830447002141581500283133752037982718931464385849489918025878979440181512129576321898283264386468394783689652475014864962901831504583031359335154835586179920074661570940977131744036321823004233988265882043588742186325934059212378118432233037435240240086256909728111093109680025745662877424939251591064385871263859089337494406934452328766023866029530614186044926435443085481325777075814999601189160055349156303741147957163293760212872495809356129018580643939276682382943363863812008740671774435143763910598902331049819641597293791443585524873214280079972753913626715538996139200056542133605737194939475643574594288131573452386743566099854230730120896782009501554632251922052479710909577021643600304559433254888785227548107201481929478624087030435480005659942190661782140728268550273641136035815037891260559761249077059608593263755428054479130823634463452528183490465276474964724000658563055785861783205602700282912400565858525336392798342381195351283144055779060465330436228993935349713446499528655285684142791368425677613400944102800140681585407245142880946926160492028283527872207359864340650339531283507571594614973540500058185233766336989664850918077436738106543495199664949767596991205667241060655730903400133659772178139448665664356775125535412462782165103309001938587459703753828492105065261367201247358475190158885232843401796776563393320018995375767840403254173062014953057040493584894539280288804007982006319477701356755532180559673139873061031350009015093615014767622764201692255288000888452646492006421419329773531142116455858707423845022281702812708429345673212321893790431976327980866937308337280104468099031555645678410309224494089104287949884209309271163937947914615482508813345416891336868386652490228198104351666362988281751672186558542476070220361322407191248193220472156907894042356256118526625120013192303342620710852475560966800961029162447016605717265432123885870839303371963205780742501316203028570340114571293066417740820290044842933559918236628439593069616618693907016230182462292692035781036510958937337539230819006782349636625825460210381576532064870168236388477259008789135968922638660571474453031205384434548491213091311331060476706968300689796431647571282953431455885062874525413035247339627541244670258598383642810902676310757223716492433624800023516066931174059059444818769901745148659807073479612732541343512483816738906647830450717054061346714066738307246956353842637377300792854030561666952273694965904226673835745942719345886234447497089528480311035365463946909897255968488113305892554555927157455460237369118423774538127639160477030755373567620195508261031854499234030831456198481549746043407473023548696895984821195583154467621562794153290872976824670900939267260475033755434064814985421044375608865331055969527334137660419887226597073121983910269105274827025362892511774804618364168759379098743142752714018675979040437565072026662941504553292689072154142117577026644613850012666435233287116810148803890081205098886867042383178706509267164321713821588305876306505144986194273863898493818658405342888387075733374725039873444580809435853345148773615424011754493035885982406902300825166575108248116468400865766599583022106927588981565951166787784330291961076287669898114142143605364083240496254405342662091325603070858061329594229761961006231340206901040249729069516921697760317251296976426095133691179394862300664619879973731455510953200635172904971603828312803806689966333486085498271752118501886855865108382703323245742302193586066350279185473888046075192853927252134618680401552900707111746859405875887611222081953685892191394812392861631635522780274224720636275489020242106595135603947058641502124632204201656541205682377278437721795380648235773743294525826370638219730970880231823766028863927469855499836627664884777237870496007503006855113149454861479498168401986905108409394114346512912639490324458840675000102816016887695821225221877440539538577597608011730920221877895174261925081255405141852151165910335911167851727092236628750427728815467547523997292141642091934156832125952889543630351702111987678777453328358873280214137041936725573452288536972934654924692123334859107662208063779458728468546568991710148978960550806208846783515955686363197524542604398904643888236456269343681854474635213855452727004499613098903076746564960570924379074027056164147875680246007214267187215152074637096160058527834163121823097913139565573075606121980885374617732516597593214688216880699144991611229990544975640226914949953191292643398493690054507650276494877149843572569675572742031455059204326395237844014890731812072115371667208647958650368365563756031217079665333958787396542571494191730003839483452695374416657979224853090816906199169040198048956309351939282714169737407628335684306202582212910339311393556333332136172024241985065402569605257622284020340689865222462508073096841633539669423305709817260665330835906993634608040339413264529638535431979133294895133219068753152397085370792514363286662801815049729443081113062790345537967986824127344670307899082846646015950221678924796456603599613315115330108722694187969661585147300698402173064739490440081246791191577598000492079435305384005073936580431104328385890880817331842772318448602604363664318017807813551587379367146412909238682208353847055136671852154587732129939119297521876008889544469574936055770979736872960052714887567653596645650737866658386609797303148539979531250753942654751569616944865677528748258602536387536465447980379005387648780510011836557968856619592432073212456347239262890009246769102517682396900266121562679286819242050439853288387568488317378939617458808994962953360635781999087448052762811442087997178015087649973377958645320849493961984133473791766623885339448015723148914921726471133763528124161764579026992106137786483496868835137003908454742267746422036397215811321157953806078126715032814206883950549202480499381141085262691782847577808458999370639430250303292606043245091535233563967396183179252668452647074067416361047221462983228518057145535541250143127624900264876220151049015166750023928903963327724012211580622370150335870934050066864354050342340081809698069115026669273377775689987765024083525946456142349952739042810698548769704415224095565958805945435671355470129888348794771738701091765895246735908531486050770859432185581266310543880874983404452027137642746601334971261669058658807876016376520951296284891877673322609542503754574481939322150250334527183362111293902820363214399631487329338299328845468373638116530227426431957948023061489125780176250765060389530244221022690148241113284142043550826565482969926624131413494409721339617533026356990663637152196234343977396893404781728226655381417522760961686576649366970275663850204750043307372915581839007701612998954318938137036776821171236893599191617139078120228725408450132475523280698276121111412204863768691039790309222099753640669032125045386198015649831910896291611634056833859685861513787756812268937087657811172506278830091992622169162300960741435912818694600020118799434967715237494183786628745119702535961685899110527312382838307340516154159064072280441483780257284361243430959632773404039621502265347786633439920140531984581066814979648989631618825312466621878063698588268693061283527526420927481097602755392838835585277129691343704672169349276506529867357512067735317466848469324373744854549826521875701871793230040942598439644484847686000131715318911293670970565772784902023708535874915833036124084749114039979134517548113153472099653229326924468868265073798653494173311785688462903782994255039436716646928304286122348981733642027581691124674627772044073450608893111545773316509260978868538490420723183945552266751090653018687914784920523463353619632616796061911621593150602715419576042640557863287703565226558174963671682684687835172626627997360090937600203729022064021153374288608930530505008577325882222477917258694206536026584039521105712774899140033868816226290815698113346407894821434612827746008860600463439875623348593871784974989908669755477832147528158112876722690102158618634701350064630822334023573794616143110499175032888334954592718014529856292808512013912025980792133245546683229354899946387041840810562675259493247901146650753042848298194006685208867085341740742745824851312575745060606646009586335628855901005368523443537732821819063515617318933173900380195118541372511408772400127994929513515976839980355411005611534148391032215322178978390412308114791019930503636801905476542102130763078703370792939223796998154937914729577951890665956663602262933159960704843471027714492502535255675929548291270879057642413157784223903613254341973632971456835329907207128768600709846964782033953966242135207843921495130835574568822501563239552711546251050205830995348619010412955189092064661748782193763102610791351044685606367583846247748564126012253921560968877514422644944603141782078840514806232186311819674226439631856261227756075852149531092098585167092218268003531822168357211465193097139207136152817338091713133597693665577534042365007993892966350029858393308621533016601158268855056879384025390322254209919396215267401848119478506312427617123687529278754641215901124390659959111957226960324952193437704274282761479164047993201900168157310702320058995226432741678275102962719554598679369048161943611645806883654422921867539457488667958144481300933811816773118620419125938708979141824284086708148331046497063015860902761580538910518224565706925938248525913667622687010899315367020960960204705722533001750141393123314514081665298090924501243721291902685410614013978442737099898144525747672022500961381144109452069322635505048626303956447333311284793299897926544715508787303368621094057206138508314873031149565374803106000919850486132735918824439109930821679030223130383850657787689012642766291686694443598616190319921883032597878860057321314020107656004800580369993261200252328560028293997693682226110687582177535852138121316858893703082871763807440712617671871204525931401452562383645855400715698588613449827192276582986681419614900345168595323893495184507186495708092064940375210912963104185609591911913739538696768326352849169557642468366572895254260958801672776522806904375029196731201774694499939143112858189209183404705540547139779373806740747627348277475617727365772750011181836311172626954981023279678353814386979826377356598881094872633131862935218783141332083776873502167424547745801828588041566328633567073893545999487293226642650882294531231299124863307905867245632206164797356015037791536475861572074616636204707553932481463339304853753661539864669412237904139389265829435299423030752496324705316403200001412304740247429880395577126927078047452510464892374981434953929119962614505734796628607555471207422939653263650636993095034057674617762980432001057774777282692469558836376172741661454238150867132744027806781512896491952741704877485616546308326440051375335804564052446912696653886849542389568588362448201115133467503126698736811273548906317090284361726665691171473736922681810389742213050186978189994343321943485024248314243316012378238644718986944058272424333261694734347934257366607404285953368829467026377148449683231110228869122871180475504085138610479117586723276540394414890180869491609293960542812882627223080770891174099649170165411480628946758664546543581404966628918425102578971990264030285398720745456035663715810370514341473587288978518038085089675789496129999733178747708497945018479881250037909641275090638888496895509570818462844004816631958211274023970770304145056632841392022065490148133298934294935999207848828064078586546737708610445422621741982981683003237188087746962544010313335107646040701188354275879206072620806212151366166091140505392103480906658947929918645920476557428076745620443534789386025768843698038953752024038784799608626293686426145356559071469742598480204713760364971097115484482047325186886871171164248084898553860981193575591038596018170457265095465446460111358211487844888094824174021528086431152747982721235532601238836009853942726430041523135067687132881387907676263737640392510367387426282179446065580340766398932860300400201274816740886135960501899046742421014068670849325973971555815498822521885440322503057819871987715372920163881610423497847774081322221882853036335483890424623386218341774541985334014774334200543893298438133481091311634508809751265128703749226058161671727253770757700206255365251644940024524138576715406562832773152775028451222031728036310904873474945711253442597764830133751198381047916338691855618122902824178630613297653947117590598488625985373448266654194834548067871136047669050569037898548940856877326648645518610051296322870892254086079423649621454550871324259712263742101717462199836425979974963030312931538342627343428241488361168799049262029679136202438864052643697363248331277762534296532203384508289956684836892973705792893269383956285966140073936373153162824538335820115809466432678240163075196193576508649074716225864565750911873424847185015926284828267663427603618320805128595406455110349672575175956061274660876944272559989317893367184517845084107713685374247973793369670745037124152142027495483539825476029130056018939280136992671289013979313115696245258102867404269667034742502533727646202914208718442510468527386072184100460087216531504793811507733838252973868214167485391825614645350684080176630500727267622850044969392911202478843622588027708797244563602632500198362631097284196391867086667371798981603562435776114291015530449647726114368643232524309944068679848799263257987541985840954562441290433912898915601540184669710822090708691005502050018351832447914852140275755012080788976667548948644979052048772299033535979477759203501159667382810958010998632887415268166985645119416248688340156333062322342259283099907953257587993320558827594370203937803528885080757155592231552395892222006661831617950572931077891523549344453021181619477889112427667876877797551252884883917792998272833544531608028166685319687266971439718947483478587320066363954365680113258624150140614465967752435823518513017463948281899012940048053133978454482111085432437897131876743691804422923368122424709605882795974968558749980523007323361832251073778369846671973864166975494212585326080986646342583784409589134533852949361960436618232990080075017398729474398405374529060887730068948286236855350513054889091684865733695826905729939611202760279549077974738917593176935827375983278496393411132572402295553548092359366351818062070286457106726914090740892692166782684977668331089447342370629282727497221681700003120981350041554096599352623019655176625551140342203328738736282887033926758559661272918671791288000308538773180035240300875735122754599771074432853266267501587363458571401759802899627251452276315301440673264796900014709598045463634867650800707340365508339460146003035838856743835948592782015688459047489151134581975355784027998038540962754846213485933448054897433472333717175983183601061300328933107264418244320192523595636832222060531478618219304487051902470381562846482351197572069427940308651085691194377342942224853608563559899719457878621211379546273227123599559505605398497997039557800870111819043133939804519759278016353567265044223574134448372264267133885679066980848798562372743891979404695137313963447597817242685622589096142008902722619947151000535069549115328908149943004158227556398565519441179120620266461971666276225134666739179630232382212888115184054767800141986781744935165063363888611305855771666379592813457108177083645061222139677439117962291215867983010339153452524428490411056754849792220296706976681047567924937381050537468172120071477198300240089157191128809524357492763621237424543503764954240744899151315164528792036330308562458644152833769009176678999658773410964986379097268476415173073634844965943339456896924183932699722564115093889425270730739754572917245705061586963982815572279454364432675468442530534048165807257687552858811834996214123939069640033340183936665189554891698302063670543622046366686420714417127957715833920322913436355143653953352563353474846516708357792026100299889295671822881565662336115605145642704303313220585691339663446793509596125712876015073084154792467946031786968374670081247779586910465705854310767355117844729281330456197458766880576869160972031976954484213500218488647952575687960002103960047937603075890464350355919410621747472539573486715672158968958422779285860320108123472760639791929015934701641544686980572974532445896165223408527803689884375087356876693803155639056964451072487154941664146125615685858375800783489695453513974271409247152580477036815459950450681249831780990350709659880954854653342167395605122243845822705900349411807481207443443110894093928858149529451466527821982766288213762667208295236065580965269639665040565195114041769918863185094546250847055493598041991061653578314532703332592796249484165806965121235694722377300242757334812747876844691575544653487399924952971032573354602990684143830927680791047829709035013396982588468321858780624548674003701854043876895458159864028951351874351499405032338258812888972564268173799040683472446755194969386239976845565557156598353356683845939360837398917862275441364119505510225699389469825239544886938414760231831328365870796643751253523240380658417551468185649068404888554351844607205531184582642243606854516447988349817402392198432375202418084855579010503811676830605607999780028066034084852043026703264482885221396900891092103650218812401564470820021656718066997767310365385874073226419194089005927729147040863397001039195258805954331898009805763492119169089912807294271549663932703729855275586639759745822615041316635056687151558580222022171232063105479386685498457994645050959198651943759920187809428706898370526981639613274548797024146935899732754261112851143542662531507873612626455415681177872466782771993117378243812847665400549800362252290394902957241683541391144175904272154050202363321362247804521950661460114960168215652889906226708004127789701613402945781470874432724804174421886622238979358018139005680558056759075937137485014460098261622648478585718575616607570734601175685638103537583575662384501138944053335943179710741159132917522493875211791999279957698180294877689832870874024508803032319541750764397607090919216845106144577321396906725104062456288201065980827809032304484455347419103458944551299544457310636215162103395875261765715762848954471462908423117687118511253736332200833899448532439343807461616015033020479836827471159727284678650928520798561841785426636860959567800271900627103080019844222186098834839130657854495092251476692254930302810034316903128886675113666353054240564715565305135120315236096441279827359751577813259450850039763216339290360349430693011205910016934617669836195908154649284064439540641482367496899058372208889136811052571828959382370801581876534740029834416835775003268644367813452870241535257889316204787582201729785348669380777843432306152363995891677246934402669922380961091850312021028752372137649306422473428393104760006717190823010737363145688532947824533207281473856477304862116876398208958971532403666864208911777447271241257275510808010519252997623542561574429853988107019992196666111353564396095353921364821794808619255666915061491440238694314969623129810626820059218589220312372330974733610981124656562746997612544998435085139692044436050704748023166007971402732904480274761222907729196741488250609823902376610414311580203279496939357769280098329430205350901059524409111518117347778827115278522210897947124005374555184509358889090780846884104809239294222327194480984250097138303117937378994159102555685239830436390488698544383943868444095364936253127802124062776733140140550181886143975551207535469204828885484932343702532278927564602157137367372831048885089678804821658164633428177006352368388537670756009016312895753048573122525203904836890804036294095911579052532167740281958497425363939090949974088079788054780408798644688649051221493467940975705208440731137337748277940398954963104121459887901471537696254596663759980299363988488372576874871118888564136098082423930053940449988266591063909879055058676680180174398521008948992609705787735097706770038848381881860889373305437010687116489476827904833079527889530271529194487730563600558401026560236523233297806484619801499284967778821623289760969769646349294874305447010143451476607165406000234069646372637042275975380626598118261742143457944284827128490317079153890475205496790907143868590734065885910248930702760678878727457488266222241744493206152887409587500437563765332970977825200829827648898971679492598995550619957184268358696082353272868792265112815138166073235750329707032891536141905483349184986051060122651809260484029088224847819287524917072091546741836818309241561347412641424883834187394252651608376799701552558816766389592683768668942313281356485388225693004574315560403200731120895524467259935297981641776913164416363721955017477432234158120878814013197343733744087083710781631597587978734357510802297390411512975624426858212064679189596303578313367756824609515777532355351505655722298904384963145633389944705949452982151622502252785336596052578972470301898700112078780914016115673068265467627027378272590434872025456709873480025625228681312263199031870788044777055925161705034766025168139882585285518675352031466263223529910348382818980945755343918233086678908224983042468932551689654815551280705300672693601939738955598143699694935218845306877025181789662119721884954184809712720634483304983781903178727565656224438752970319453229133543706700870721737606638786401694525376260897225018837208756314170311238967505770334397984993891128399275773624297989780700727469231770460277977832308509422106183348101046375034682359077288197467411074594497270845003952014169138399305428579775544077959743337229016718771806961166879469036888587302705518449955076042556557193757657751653947621251957629172294202144383152004801192896744084763762633937030602807318354091866834743202063971476018277260179655554768315535272700192820926803560424579943264190631799252321603412295827004432553122793582048009712939898692278230997239023995736439988386883326990503997522153684843741836760034587727452751544967872422164764902231338877302996185962607628931169297335465482035409310973170265505463744952768644625922159630761641836937965494108576315324188749979903845696514689689050968150697138419133142550820404059481305977181725602947241308004285845890878317175902433385970456266354128231909408479432982220881033999988821516410464412193013208402622564647014907086973012591395485847430149183746445755133467475810226968539564153956136485372885569275672949752519523129601206579011636541930631153774405541495146126139328822018976542117831316520543906643982821367499939194299728166433046223959049955219562234334495359637330296998062108737685076808880647667162689829854630147599971043615887278639731204721604508260388588062105523235979419488783837128531758128401428753198724913017904043373695870607419801111188342155942376015894697359258389157638786843679786917735930493807523319603233398117339537295026603012811619164806924254874761199129475985352050099030260772042149519122574270830153204694968532782711367295107764837980170416425824612331395851348399317033166026446272424513445542255323032135933100665121912544088537322133594345958554464044689475046087532694077016107003929782798296157703950686871560263801227032355795365775139613312048431984060702848657600062031766793380868185965507093558421632032244176925405567496861132652504849558500636564980786053900436379163426412902150729219335437914830345571981599182128666195862534053607076631015705973761268981796762711480570569812144026563967307127747398870791366302375403318301002864540427127516905842850988521960494370213184162350725813285914377566569130050920159672070676820228059804759782637086513838252052445749052267073496527208085372448650611802035304119003920588985985084327441280494453240611226164415140757750875132749954412327385891347024604197646144127813942842939859632670682555351190385582625883638996419155122619915077348812890344190759615558498255717339402063131796404687554557730207644782342099592211833880656335016761385744503241873742912658144305665297075556043254609574268176326964058399559795010619585062395062334106745650468562060528966990985183550991420619131157964858900578357044797476282028060217893910277510077874433603823382576651314619531997994875453104143176865208063817519318830881419003505208558813838708764692726130820833785725807034968656820330639680300786216053492767178346127031626778151222274046343357154791600879602324232659017657257244246647455325018557816121350967904121384334632532159080078539022157910486069407687793302706131599235665289388673307101807907078595624857904813933882659035071825286326571684239418188743337374915788606658120556061523917165240629697121586799132018393987452270833506925190757233902092458579332415328672495759186040271913093820021486630178528973967203788913331976407311177483548090596308609774240142647765821873428581644718372875969826860257130848783769182692231431570537398399503672369077843735142348851267061750664359663169264538477160004744927052255722924507533267747773562635153110159010737038981635573800888200315805128694298310383192669456812810258722470558370506662033412715087995873517645595704638594420514185747314800271423021801310498002323868326533502804827429960199009892689537860198983732554906905246811055261902326454482624794027335939164951356572979793408540870876439051927144518295721364332892379623142877474707613084862554128146069889806242392165094320674044767683735924501432527709182640288551326618538199874831338894742642983778177943421988430464437474840490008626134014576005024044261008097163830544788320108904048853790296916648914381418600260997014889415067255061124454783672417847235359245751769653445157356843579512142079501679053575182171691515814898399062112532041791668244497966432965166427764545521614358399902942129046620856086534823918250067296793148211649049667494133130576057758996371409627363842283170449425929716133977237615840276960504040849829498651692334043947194762681774574989820808035335617210643952093017106502301411618839418396801501313104036703186457677859392199172580523386325913246477331647869098558184793410166427973924410819412576013492981625232965846880066366365014911613113387466320279118316660765244206104839112435805498408347934344798261983059197195129863576118136516414101063932335250149128660082613490222203152808249986519251994269047977310080732464525136623536434609211445462384489186899053884991506774682019304124838600291522471639865162393300816334854683884194649398682680293545419345144877941766894303986450886408602606817140852448899280539270847720204499095007156305440561893137410826952441976925193133001616555679619121651771216273293159345731446658082399426895980693113982035117314084101526410343440402496546552784722432833379203032541809529442558088689075222800250220835127123907936450034371304779224989478381437793844437718654848494735069652580352349462139915587459073853432338843775888913846627224675314887963579636507804311632010333032274801394367358023363961869481152527222300579783367742355470126462370544809102076180581311536399304759566257311487259658831021608961814368376284452267805110047143665549957993076718529171270260928868051404387444075097654473946650617850643718454436458095948869933311551796134872291008568610444516797450637398181850335048792381450547986655527100635753353932674492583195002147036583491512304632318745765605099153006519721043388364256289973112187913173450283092680440944484233163156474864950620533179623231163054136405917467715775136277902180856429173859921298754593601385600543110578297609820918907110701401916456546313340441516928349915486508658818698598514929391109044720695162621466793626093133313685246603221137308418208991461099039389567049307347038921913085500911603937183012682781969976418449246934603257794072428107400130916365732964009378010130368321711662012307475590389909261440544522794404920876128841798381107365981832866865848006909412599519769714347471024277142836824484442755505066634856751866714956403850074715676813750501936700743661678762622625702736889041009683148604579289701058848689857881631816432870294987975453725326563369450688460541384081352947078926830083106583177694793839581242046539178434417295861010152519949699278820235296193992387681627199865818277690689899224198932686134998444871328538711957105894910508526961866929132408059829246866741875050030333897902713905042998035963163470848058552949614320020099196034143920089936810849477423388123846395537868968217987284960100491333406904948032041541619145347278448087642043054996599959831197589623226185135811369620176708245893332317456546631359341923341094979610663747281577616130551688722552129086667307177202931779166113035194025674416171571589302562609862432117757888404005871377796204013840609717622438390535220586735956270965964657124531566922635569036415547614680941431033183029919897818057608660077602516624755277663333861095794591745285070638256678169781245055579723310309056602376343652795024912427118113032429664577562386185319891358691691894435637763668351302935724445581246656409123471318724018715265362862783470764593223970724468959441483958856284777404074188951105753718196588371538993591852154437489462150637861411547808397865031844715989884173312518853091984196950387394754783621521091971413094120222755442802953627624065228898609774997798165632907049764512599352966766199806887372807367227947369210433558740932593336139509816317258114044042949757273466510700512844651389695045947271054159371053312847709184579363891379799473840720794531487088801460362961375440215542072617777470472961912485623930652739200029406180276893875207155372357266829342622435806203331717484709864161137543421538999778239765390407739064914106764069607948421109534468590783464668875567463866046001261989066172131759685384145280008260632220010143272075327481858777398258920011200416034466824060480269362643276708967873232726329717390287480757391767859068807150437058698729496336391328844656993653745741317365315112282834304301499411353430325622801591525710603539471799422647723739095685838140925714199072403090303245268102752316597316336047435882797003703967326326524919359369201776715132896759578017626155384061656735546119580568151215003549966554350192919911002593627448349654245555004941229046297769687008725047883918425894526207415351310644192617555855072639288813155220452925965230326026671273613555325005129394541917144373195968517326844014116325997003057737755172766804464318803582984198093817384182852352808802394877991411144817049018223410160952747653245488146788878090274457274755979439153988353990451407057011352963623491589045160761165721723537739608224920864097990941165270154247538159342267284936327498674914020177552104933976871043755170648398336950567891295758861709119696524185283134865668846952124882286265278092661824641356387162075707628834781704258371153455533952779631522386758181137896976518141118086203731317649946551084541583095649527068534662164658251902720670473947823146815875948405632450116449045734487358950370266306733370366294870878975004812374022321727123494490276506021325520910817642962892234196203083868322446843696518837047349023814449199428991289039995232107363632315525246252591729160066038754629928567373926591230655733023463819676577650103271409731933638228399709295538380816661687615564244690553199298899537572678177084452522901156668768092569840122894348106187228876070526375992831124168107085870028225424305946867259970585070146803561471714966237167563300427090896673387830367567576406940871120010084927866550469419632427469875415873513537572244479363196628124983111029206577617345217773712295147374049486805333926606020296499825017754651824000702833314878054105998522814383907399882891519386863858646371045910586849991762331539054678170407562354518282761879642439900537757278251608467904230376274519068017333873842081388296862831482369092468764926980557392548091277246843170700601615587125046189016453525880396554049155252995583926524045479506994828782441038341597044466539636125909403175321012539380627254813071299413895200530703132281595323899012281513955365018440540407439644551321532970994020484261945428341427994224597745652680673756358894421106377257141874484666442476377896491471766199475059370868202539528361548076037784583420002634251704014782132079840841008286681474849196844200984828448108645366878995966794424043738059912231354875665149232836990401524574839529127583875078976182084262226816198725128212963512751106700115699435493246743006076368843593782153913738830366118429950597836210276213830001557611646810881961776899629560970383818959705245988275765389872603581639924514188939522426532434004689434785698004919186757749996197349740265094488540582062655437591453135925830349722166938131827928419653036814946442187877602665684933118893378469305683127934656009614930967856766876459976624721182173341163097602596512659293186022136718456803794485365584220939922965056052760758050449747941752384383607987955312628097241780098784490278130102136323242948064907993743674070500410609496006763433491012566056916162696239692878033657342825644196899188064222473761380374098265651355869580303065591164391764933123613951536108682236853268905585299216772391431437126299373034517717593021045794871364969323965596216877246197853398051322505229015641858141078176520559741087559914470648646137481640091392627506068692147068615474076145783929502074883886011949631207904886591117250642233084621539462294796961133597731063206581305277084223980874173636256475984728476143698846990436176621395022443672998301172769018137311678153641298465767325007531101695525027876910691952175075359771204290952113841669969038322211094684806316135060712747838251135230343402390013330332371461558225220597143113455302444404305132543150894543389937118134631934469605738899893885339458520865565445122293769686322523134933701016931824986740084539759744711542412380546563877310871207658610997559751525957135556458515209996559771283180267233599126006613288322288699251441190051574317264832315128322689335445418696793889778006269843647347261182416309386051923461889211116239700983530682358573616239071744450624500779316845465726357668894136848022836016950310659277612036500651837871272617786921815967114895842675660070390206728249425723016940837663103934148247739182364766420967060272368537314253643707919745900364676812852681050189789392679549098702790080039367964201463052596655156364024093376907724394893208371651683226948538228748973295021035765902967451917603571733016271365709433307521063108841396361685121583242556531997692074212213779160824554328359460743018151539372113316763826969729288856886984945026829401639448838415472577796781270774052388298636120841131239157305095209762593208075049413454323999601430583883238792002869756432319727721386233990666978703188420866692750928697885971579031944873352786152430667428738173806889000088803005426197694687705452270092324705303723782551531784646466832893643132388504682903259163780975007029026664164170730357429013773779208044209846892727475780121713296102846171966555737379796114059790695662573979414654396597851601792464824748703305433143528401854886911984301828094493083095454314459882804634781377134816623177707368285836089148572987090693590985433875868631349142174287728861604229418240979024019323077504544150764486222904866477711588684851675220544003994220328608407845050194530891496273247554011557843631613720068388990962365842146612118303367563579645387429288886894524865658076920104762892647485416087710696015949507254756025078018414048674861586770164864651095113786317057486775903396479442074568546634829162634635110090423762788317252303246262891664606471762714996539427784915252127201157540237344101316695907349704762443025093143572945413845164925112282778309709601474715362593865216934856724310540757585071260401949072999521237323009474454439080476021963894182264563926390895229769101590164121016529079005643351633517746444853788046828442692355854607559973536038230404164005355878978240844855065444173744009373098721447440780209132636614170080192727993445368456591258272358974461405785638996020878496101005646871191841096364023450900862885738492752804285732698003170244807473031794959723682575008279246530907682175947858460502806556706251254817652868867212368468019748050195456203264658381812767423417972725773091276087059729084005182692423230968951372594108850838304208556879548932557903926709223296558702689399225873788794844048791975217356354832161149952140322124117968256566548040837384767272171528778930940038924261293084706436107563794340600497165507240779764527621507186717621002481592554471572673494547604440777827170902782938739136099066009845003201966216054206531372123592270840372049093357119910154835755951604495174144911383945929601828662923403539950448899637996650849398708759390000543794018078455191126940832981316720434960988319865026539647443971950197168711425097858294927601516773822153581168057267446897120594316745120966813091341463737644599467825925058012404093675862227214491435069714180431052560983520262686926303489374748467165772258552602396384233734501493106913455979791159433719110096228164607179532111188213505719359205444839102401591281358702984984338193304999918122443221056555560185444927622271887851982001349709799049805328965857633948845813861626836401056105574934542686607372304627988786633112933340032389502302583115626523234685184354238157338661923204952582889849797764745552347948096384808027993854361775136103837030664378130800356802852655383915137533678328221011921851779275251141555095403849154180246489701976925183422731432200424516105527068512652570409645645518698781624735883378295942065877628772557401015284481876846504899189034780146276169374980864371782124185737332124682631491488062860750918081152164857962938913480058300096304463029177750129839266147598587223081390328797650085693773397440270721549474689704355040383568993779776492355603025900744934192585947423223528087617055688962120445353237926330290443611803127627250087568442235637359009689497622430160630102589864454271272284138717768998143116181517111702078581906401440319911365452397267817847661165043503919127740471240719028133877749032952275335215714770030300083987183078936395880235675381760791593286089257145225769716166496810728683410449949416394994590362327606745382406489010708022447366257304564514452690582969367333617251321246376692036390757254929017572890151650356152055718239669253320365790536266449833817957481625080185201368742021508362964358897491820372842947653980188325345162902154353444477565840478823026660633683840447965785867238048699291629127605011614339086474228167364120870876085981030753804378522169416634674395496869457087606122107519521307078046063434457180321108985072374563841860276515433727523942367905418645372111603026313157682052390257181724035367560431540958816300675570967024013877715841505402616614171136822665419345498543946559115348238308273848597126444670597542334623115329272044870916321839911684586829125530552191550769345734177652101424552679894629912770973947615174253234964296691528998861219634681486531413013355705495648625944354593961944946852923400619671166480966724066225067758818792770004430085010630085962292673267090347883203472887992642831353493422966215380861974986072681848617193727114331780827893107689639395541416916191861632113012116782383792523770969454882396234041314774943676316658222994372579172391636153472678211536526446329320028052103446274294278602960391449697090461198193094460070097657110359428295919196812500645551621480304404730612599382489517328065419628177111881892895655284978504631424581285798037685383808422364018851436408894524631270617295532779509543149829840484003093954417590541843106473927551067239458541123687617148694442220296370910113491767824612147365669181602430804321245577739498907884831974280682211039901858801563683397878844424597104503618395628174217695596113747494784835710488161912814387255314854967935773321419612995581630968460806745265104991476405923649813577023724875254448730869057839849203566950440473541758242146969499385381802496198946775560631587212666734768114063555054765684860952270855687475509677833510499705367634236495689383403784600123558785913334260336247698255284745557718083455837112185420354186536832106475884884010973020325852308167978778196762156695816898018703868818079924731315632065401812563014900279431776254353801707441786538782511479107576868205919595686621111426064692075624953357838322487916815479321963962207491086632633097651105585497598033279778060349961634896308398789034632798229695432910844864237829175901993612469238901388847580787720079936221759405785652298178732831064942122981819140071258483160030778669116506670790887919879317405930968057269729268290440164632854170470567893289948907668867708929423429201247617149463437590045842000736204977586001102748925576076333539325422130177989251081588451223926459917787638449405943593845914977827252646388041887403566862856636446097064385253604340233893959322435596954033473391151667207680113993134844904248684066256039729973486447396139708132927608598246127974044778379347544957916941249830833173035607764023553246439234229420684178335746321160868839162431726079253271717847181574711288179724765689433228592203160608767244384723323277833674588941434655713179692308748728494523673604514596612840827050785041879408106822683905588763818184939148836355465601404554109673354367370827291077226056419843711339317143874317643626049387782034463463425156533088734872519568754856768659427302822394930851284495033699206155100050256642878254195263559683185329985718901825220367091822414472018418445785433643327791342109044168512893840709379655800117071255669300002119336977916641809853333955758540968902819004938805005140000927248673583383795724548259979457421190192591333154007356389149132570873037545116224393568105863713672256813141128994647238151216501570624827811536542670892497021704482673551207780052599512869732797510664095749676734858730713497625298372484820012983531838869463790770759402969326339168914405323165976340954475949065500860435646160882766949723147717638091171839811762802202322025759777293322152111113255360395212996365272892811414033626983131705032213432807200357672872533221029761735456444924229424543877996333157117990726063881655289128615786364912037521548731497145976843853449190127675999595373458153082082337166429007366371051523520583485821561898461981820220129125950759890971850354286165086874758383803303197885974574299399517706821046797479518613016224319653648380681037215666088175626882932539991326084411317905684437658168110582596343202402725073330336232248755698789282480981464326898877143428093242646183206713527212694107780283112035048135525758517595235542611092839065251743313739794943716380991490364439231124700703358562323010768308999473267423533324177871735857672591283054590140120313076954229047399952363053189264674903074696247975408275509800238320153658014823166048110345650678811753276920473141222341584736807431090413926383475645026740138687656293934563549523915533276267554280953153422580368112642209615435796753316962740638277718828553679070224189112637779133378895336435477924599347912638872630239342934622960935408119281023257161761790675692792645078657160145772972170697579719225402407284393151650763392239811768281514008952003060280972785416981651607805465547849875660907535004531471510118921824306198726710400121560115710271559580942132977977719214303114150581687277140177668526142017968667923203511636921236910087264190601814339800127718696556469257930842069176602287841488345078482188656681444241777875535095339477993864577871186640480704878328550712698089304950132854103809845697972028696388276243516919478073830766789783810564606954406384515294540286313594393660147597217598195020642896563492584888855079450477176188212921862625033053209031157145615492389936946206964073626562666759095824434669140834672369374343153655895523831489573508200514280160218532035132743580258972028877655023387293896753419928883048226672772341838452317193431555863856663547653092119850753289099770245438094539510311762173592574312094433754541814390029121209846400463729205437356775610844733098672810337221199865553311802149187452978102419623363110485253999926756446197123544044204435217124431125205835198970753808408796913049549803228704855771973883618989607744744771079352019224542531103443292501571966094840297505954226024204893303037164424671002687018855275894179557339413301217367561560929460379601417199803770182317556212486938677421274583672140790511687358198943484696271710133030002566520162572533792256098245014964568490009025021332724965648809243384986402797432187192033951331821337998823846704948377305134623035389820729147356844665954024115392728744276574667021636206233613980397990257241248118230372332020925256422014928832151312031283846970884602243585803255703938946388130637060935626681629584941279543495731158355986681180171687044694477115186969254967909941163450264148368612865953302819422773980174348587878635980051218495784460765473238184017590773363579695537808704460393553097867885960037750484904394098235789615315791069704057800489376961023006772105754114240491911375999717855830632824554491279309479972254725073756014165701925722584948624693181733346250103845704775056442401329684984171110736239955554747853628037104986062900776088354759702534002226459332892330758838499801227257883497203363760077431181319335105060868000600465303314731022448341763668631492540261521647415082702468496946997247941187971213964871779352798783531288744500283196868814300517399544314371617288255536116028291562607397283460676934242842659113315329996227816384983487751369224193678005697381928864339919838180712225793475350745571145825320688359381015867484024097213776761216763708697361061603125630524184836219887535863069477744849713276320018612107314439187562429987560337973171645279886220033230923977720970095555277645593183024579118369005836680839031739424766536342246709440115904586749987436746521352988901481956090206894117525687988897496998627903202404375825718674647829013641335772966761182536944849862887453885787863367190729314489153219692787624013535703876988671773620208886426491750399613243580012725946857738289866151407421173969156381327742875149375831873979377556917298630687554790812093136831227898581241751166776485751376899066729200035380895145264629878567023936314547133342624395365183997210401835461755314805666134974230663488541012179438072452954544134114152908009150739457731353830849227532324924433690193153812529785250951773697111939563371202932260461673391500457570744557643032894173465439063974388266505147743776637879288596627486913862550064322289682397368905916643647660399116411819137694747285108554344500691607822033786283393812439337037083240950811368185000338821463908371825353924312303202444616494890749090437472275115301860377170947120670226049012463776001358943282862164346552966160298227178967423417830862321160376952504552803054901104000934064908204165284575645054692736806433537042295934186159659301514753159006314550636540139366811130865062554994179852301290532546999355948141419276037425519548619781618460613099276398944745632118632786737188279842139769086225510015441397805501207981393977518233028846347585410432312244538312153241333364216934895923792105501685943608746324187091272596057091982777329792221163832940148030613783179015857013266730244163409269549846024933724820343349014347919012745336429573712247992016039191741205909913010828907544573368548565308195850559930706182215769979113969429106264923228958409168800565153673687565018893411261803115386664897942414473564787844493223486335146024376089072925788624891415728883639062039100716955491110276921857957200155140454758016579206406760061921049600607980507680290728215440922291162239974522538448091880201461085005366566837292690185035630304806970286384022535618623117765249340815308235634519616449409688429516874496265030805864251174330689473146672266404248889751105901403625113765864230958928750152707747555916946811782418979219202729576966073845002834958352736968467914121121188147034574131104804219851880589269251162645207250833352314095038706415503583714843184912611973478557264066975778445556288779596850243857093711524422938782667702941003202054387404025943304401002601976226752852016405883972816036587080618784146333981628585736831767445489438093579247912765165296747730091776525765112980552794608637781989334700499372666143527612008964462175314830847702791115349976861893472243992647461357025795827102771691964805824289846730436401114875242537964485128655284918313712231648878534851028714535646186268105418645814508354537830222177502765598372755635963127428084002122382569308350131807622101002265846122648719828029368364625471994293144197377730310640763214061187320083704061403909832799350376254698956419293613136378445459467478024822682800964702304467606464889865759977340886119175313774185986138820359551987465754380147501618102808164662277155625731189874364524055470615692335791315306853990920406744453861551643518354007892169043921369381724938954003931018557656125338252324819977737542527001961874045122832176691415695962457788172457239690964552535891723961050535172633949740184268060784987663889505949298701663127017102933806698550762516108590513791600668022318679044426417673881677663002936566156722519909565251795974133526717255839408311111218555734833534727453456882914323047682154318905453155854757614716890057806055762883461839333734135560785679516754205036773652974216670305658773184451299475562885101768344658361983144065438627388941934455046974417992204377263501323708847092793613790573138684246370285115990302362993017108492095597419896916785236464832162298149045086294430726382400306407345044274203193000603900097767894947570891363465467316224259806253650369015901842525254775629450853095568545947204102041080001719640288773547061737679173727761199719681251406035686279211418396330610614126124998115325111177224537456573712011532118167396321045184315907417177185996009983418279867378871899906342912925863544810536718698889477195043371064170689197797303915537826261994011651675911859093805583617082083329372917881176664464903991858148422047671416533534096407008342432649504460020755378694577120426276989410353305957595856607705502060217782585168032330869260422982562233848793871215568881318773564636301267508236028071961376396425032813045860487462601583080134842408650169859377784300712047043363587552785307246769826235675898664343774740770745453794791841308312685842129322079978982923003051650166509765205424895388918571468077252980954902926235441517667581364115418850397956463960735990669556894541132730456663906568469668093079195243045834183236700235218618000706768763224902552217763806231952760652593403964240913405463459110635856463646775227927145591262417348720477464107539423276374123075372653221342329750029032187424347207528766617035138003397660733485122503431464436290192287573584587781245615851036469107770340007983998149469078600885280292965627644396700794590985568632520179124230532160203926721772729590258883826942264218502870039636333533287288344980165869448316211455585568656307758968599531106263342008270596691404488997294018994484264197141291408601431619705977536692176273013238231415923341946069286677785625662072796656974444443268896918794991385735849365293445880036162465747567183596208632137325272518703529981785214747322987367485440786348374633726427690014012448424785889888400424167044668376714256982468467316831148761867037940017945493085643661914288593533684378097321419483763644298504692915544477144607989597648898835080903939006495580624797143346889234941526723239671179953045014475040282281692298538933466182177130740920108072542231774213361319774487603366296507507626006432494507711438770830566015055443302273058811667031803112808813327877717119824797561373114387730843139433902358207340168456893742908260782687320008679863492567641419010353372477717960455379193315028565088200747453142628019178019638496838748912512689437605711573581441683657312897407531323456115549555226276672255945497732491963067007032892900977938621496631319412953722973322141758254689713594553340132082097683728484900937283716244544580992920697653123321344913809975302487605264155154660035884821658331045954557992919282258741274621496742548737883521546315731012778668754498811403402962227218858854788592009030382362114457309523208785861801940609814138015273923646435976544241574120576409250060571450428687605605291012379478574665322176493777799471664298059530483423559269228126068051085287763834619851570379261890362918546424284675363965437099101441094972467814557536657635333965206508497899068190284901828993987596553482455439191347873604866297292057205432195253772276205425011353788045033063689572749788763084845981946005080030038321791616680150655768447782636431053208991165558217521816666955525740358900522484705862380453835168073127382522731815494750988495401450567517275707607042035323406918941692878885900035894017754437203674909049218911215903071884156765441405751248690964810705965530904189121722924143751618972785291655687352557699136238723760186342511384774948006689243623672793689718999994991210547397510352834124311934330001023567808522232008754413135890053358112693231033594120213003664710986352688559380430912105917753427393073315045120202663492177962663545431864018202689520968617752390564977543296104285783969267680905356688781007110214705899951413547378736801437385877836594521473554641578641983508999007044423168195355441142343106675201402061021990424862200787919518393404126482186376577127348880915188180337424474447200102913684674281123573340783230709910420167992141246910224050908039002985099864628833107296259232207610922745359528996664568152543151227317905280743792077961583449804139827503099251058685186536796185455317564487905231413379332027439237911848844834906634886964979192328395735397222184422504352915573526487329937087630043118523375518495431159565380459693061375321786168578348937640604627721763522612392914755121054157989820171457457842141387236602614643763586157185455400928080456598173393568026113798744639146254291065313285437160026542945872927210814183623623985228048397359821123717049885979422867506175707950779948858325443052843109404006748835873218067090480488666249379511821750426975539870003075858725104097734692961089597280877712112855975881226690180487751272786246980865993376809518085828258336607306610700696510106585925819703884185613335190072611599807283965405060627411063577335590303452051171429859781079430422878903335456243204277835300081113355755077034718960832790180786856574512689772404966185660552747107917934785908371519519698861339279372609258386459988985570932783080351321544492202114061088012491738464288449260366591461408465051138535166784018300598883015685793024285495888356922786364709114737696584513203717586908395260508832884033610367267263984274724072504783451815304591013484936319364630218848345732784633202234690508307876900692098754623784768878658743614493523788264731650702339952275135841982137240410623705993695171758166692598217226247665457451068898053533760711500665604193521032402171332095463970700628809067149263134335343687634982411477656835363145339704399178223190189472191718689713350831476770126417009833380034921652932634210123989500668566072878337582501643139364385269972767238556538257501933046193376445935818729072162388926799056245451189626897788498822605229980163612351562594256872549521318849918169188252240472207395158493756110338192844321478396286036783335674692516964558759276484945369233642634578257208303070705674253893547591434071699758406280490802210868558396984049886805691319360016483033566023440248381379213277141249506105983303923023561313708315603008797894444582272468958485192978416984307423046819746283680063087714985952531026463844197551698009948266909363038968209262466441480312641509576100737755857203851170020088219102122293283278153172742893358596259903593917588802690237494683994666001956550221086030730693769671688873036441539098473544479522971168483639917410894071793527096596053534987723287134497023768346323496337033944912724788371748141419577529147179214016333567399044104805053498586612320591838502200035145474268519789473926228756365888587511434535268481811560583028293823800422832650481494851352629996475251004906339109876289620304874132055060883870908404589005366356259731805311621176260496501200879695985127161028021240256346413780516239935418474935153958156698019934860801798500218848500211610184809502186014536858560310006160747544235377056856086427071036782608252612280500180151906073042806293288280458653706640814984290054504479613124287772980831678370152264969173735244328247623667236952653383535575862482890089959264651882257907082583929737475834214737410292615241862277005487111925604492316614518754481993318833781918969056321564995106591692695250879330299398931587866084218971546981427165702229594427144691093839139973359279759648345363328935305680866930503285640827577293734547665410388685551723884746339144906524384906695034169809155534890231548290076659562123860694021798596339958639549227797281726051852637733227033249751659843440134682951802597053157805308777324653917915994715081666457526184021465528709287475672920802909813147013568215094836734635173827135349977468029390905885264106751115249423596479058276484463942499842997842673985765812477267315975075011863138559872042397058745369581731074631892024460293102548834461143081543380183025570516890672862867343648972698884964356761208025490777157363664796192075810070388623288817040647499324013991932437861868720493839561166820006649451737364885382025675641033025935403781440303882752229771753456802765869119493703469850653142605592723810649869735428799090458786714248571222152158830936072529103132226981154417729415634913543294344161713160522266330378179621996227162109808090273713547576718553693978775369539455796912785977810689616482320173281029020068833784418340095290798641889598209770156991755306648460531313969558726453398462013044168822912128323029861381354955657273763007064937674682931895697483927624561330130131446082576958621601884011008928350563210475609693718580768854443880921555930234740462164411954738517852949991169549410019401031172650279420011965313183233856148604076053069532788898192928119443645998261867077905004119709424016070699367784081186870080065895364437321436187467066842925719212003248057085942234019521246878433907839618830093569301267554794070688921268394265480000117547597597781207382425466783395910826882253930659474304134413254056816341247667689737410166957667369664855806260718536277731925408533284541264156723199289124932829462945606231943085068396773649265465008125379896022114643939074297025754642084704726330945055647646980490647350437199443571006634052855834023853855350256808464422140343833470848834248154552874412741761652404407402106231909588420345948962195242563089089568235785513571247953278004272201069984206548066546823118187108051866162863715025019856835910836569546559168365451734256792664689182468267338010201160698587132421060726275967491189320953258747467917463946517951582686022508107914636797038549760207747621200686946854623503129870738551792701912122826599470275175512591926185721973610105567047320415246430503582217701726166233853832516978100329203730096368977169459758901194587813518246972378172308874675043314860415936566103155270474384070677687345201592780373654724232845878388122317973636594750264326207852257797114882606148085830018756037554456424600639936144706866484147448580434709055356148857130338918370966564708330367777105027503717406458852876594046596459300725402704945032393953353868065746558668652675239018256086894243418565526002445959156435515658544684024466815890030547158599639772202165655376849102875972825221493707937165934766504752750361465333098126559371951469287006113318675857266630292304877417863612583536318886837595858036379749519705904222268731502994930541363331046752851636021217935220950687978870210843438590768186380545082997476483417931960536186811656478049536009038930967598671749061607859937667024187148788914002996444205513874607801745571475123867410552603678137642171337515798166615414684579282519435753048085629199342775337957072185334627767448598538562345880572618732474923756684416407598266463497947982717696594471197455061139744653208903418107872245117689527169923949310124345680962373023023960922580102557941999624387064865654145967701301507426801418397350470445273277797522817681743895469997485014317836661975984326571737425837497907331800486767492505783971174887657204745420799389396093029853001252589510979630361355544044959647807547617263438748557775351523209920156195427558829120976036840672944393313332095744126425864755089382163718377088613156803406652395853367276567134516347959810061913888368334767013711459186215152277313294756401775507279112583418351828908210016104637677403551303646890667657418622402266737404208126531586666697299954563498857577476597958106945142877011786089063359988635793593719464928643235921219997502700014988578953144688419331612473835734573478231340805984847639266256898739084997553965958205014871435867267917499313684236287643815768729184387201129160101663744017888312936464547700676131255012819367382746717856655466685433150990674865769478955390169960661619966983824004275490307672616508351264642906178775643032569566747627800594076625180307650754461252953417746388962451182461911276119166235365941248174640974377552391798486842791625573246891089870547014770876862335869679455133976531167396701563175548516221666839780685984577004374390569752352247571919067877289308971024790959063532952519778756956244710254619549079038886369127961533597544003948243193443884276242271207986892074796062440909744067396794553538607362048916474665849140180006171668480426649485950236157566335275861015398527735855807718431338054822183068016938611481159903397631822151286607500929772357957508529657264824581700467762563988584997564983850288541442084654116449693282111748174739775832959344769639470446664637164830984872007154966657299957124243490207308941846682273014902865871842344284256994819395711849197304884497624880937198119723125458850149922954883755390360589549485325312549654856219483555388680171618130179168658707477737689450378653331145822454069981154962752705033779409941948682798181904694226280484007740224661516883881943883110334256438174491270446262314041911127468963178130644622067410878853010751002795747944705891573857357820784621275068775370818364817100036635126130226529322253073548316203837379482894184477667819332400283345786507057739548927713183302748599001570787718137277636586447282061122457603175523158763828176419981117742811899829503875502029580593008120289518671248379754909674982807677431240262192637598543436397251098724655853228773280781401783749496918929439651453125258058868206384707474981005992821306348917962017357096255728731285646490347452986655724214804779359583910230319448264072082204491385286127380077244873767514061998331421829224868937561205022973871025742216853439908751237434402502404877433827228139126345494195870976408104126584466401686978774300560235642641550518638247553475060111570451259403456763141699664884219182958425994032591607177520697103472055931531363308608983978012701862910289431537814129511186432380499098966419189834837673248718329585585954599519223993416611896506816470910091546813464253638415947329745553889827372625768334531854952203665586401858302775162481693961237782325003728592364140343140242135739955467111756659240847758228585473476130263014922030686512874577627195003351911770385154432711948431151209451001478348156179393301994923790769438499549556681906881482661975198618108620420750477007684999922319928369512677140993231331007841111280872846478256413890466509586304662385527266216604575741095178245911777962146243705758019392261166987877934019119110023718706012281505440503822699414354088722409337579699952373402914583137016315392977945466078513361827583585424055757176792257623137241357424099557580145282321523947642815297448625444307536907400302539282210894926709744915936296619638645934020362749128707713898892861535265799634037675320120459322480788994008214086839393171758501781587673829134830883495328745552565040521465814907592295416847448248661500976861552558938525678440046758543159751308598181164308206978620268135142043848567796168968920023885682339557178536277622486122567809534075226602937524654045963933576126392488608932387735563400765655528464803205643288685602662941518010788326113433533325456228291476340517344933085620134660487869676993261551344252588168741821632738206239870291085649974722729296556929928483728216751204960754933315369540573718891662169191196164661561678122734125007744212664614345549682437179857923036503286811326270128227017441244581826961848522694283687005724307199113417099455898764503519068060345025247730492462621298442839484130285864817356853729984955610976030463107043770049490884068297093443298718185069647994298183762525733835458247149410904039976450552325183210386355524850388694164909172491128303079835088161665181401434279196212789390288760580894627076704288348513896168039069062509203363171995293261253552688774114230059333314343413554199838567926864293298526017847280466843941066764116647919403544260140605171095376334397787549243217665177046107620299465308296008354341772888674155302953972545067877880388120803632337544735666701535901114129528044819339655868494881193841154437024162717765134562397840235909587707946994616259551390695776773118757021094957888162459005259262782406863158034592612413530107153153638331943671640789175658991663045454707840855601469831921935362029685277885283854786436665866157102255792803573562815025230068280923490611021480889869694368555075294185864590944345529038237822280113336470552216228688466196897841494001329368613700780102762501309749505758570561701233392709206443289132128611552208600573817286282824852942172998903938371465355184898032596292042843756911808370314940427161259372430678662651769310288273289341450745864720673166953525278707586929825835959282551277886660186806284030806427273635772691459747102708584219826261595276756111321833370016476644597316357561310992644604427720040968712634314884577651167171517780510422448796609322783657397339488558612159876531122714874299240615180521139710870782690330919392977411664779180946771255260729500795083887773928554776900375302122842738393185835570567562435397877270779096514060003597793822040264384736206607224560556450272539656706856249253967783028214217943236344266934822873026839299809167183796639720480716697124437225257812943069395034878086401520513372580237481085967122834556666450569165705075119174791020872666262319438684498652400940508347344316643591882792383099082620434202427780482920283631976799834593348040710152795033330375588477141958878486221163529908850780008025644563876924333966605349439826312750424332920256536834863302405872918913236282592387892588297185724091795438464266243655625370860810730640979196424490602660828296965921864029642176130266392011542484638623143531609609007751079701281315604849190352702007623430024228612442065332337260841805713488805026086961176799855962669296999280255630207927641076660937122035376585679412680149055293666413239934364176108624366534017984852733160427417096058295795255062161538012056998091960216159302902663218261442094077121109179199431284977849252070561856836667165367014018643502993673695891202331374536704835942678308779361594044640792016978601398029751583465239796518409224150850183027351518744208437750224347093934812896786138719042394922843164365120344256836826958802975635166575826727110220512464555966737806900590006124256221647137212151461167568076990676137200737457656297450671214305713222596971016387236843140834332973573905519585516859370225284773848776305297445629107949356735223174944727636533172184606154728208978294412376081077787940529395324387527299762168040114912710286160092187239949178429647239522268628810055986152234303660453352248759283566688064813587626876092294474022716188958656871344990640230294422524552475273147756835874383033325517089191507154773865506424491972303056410808033897242634275836978565016475880470514382767994296507001895616347580490925393410096723752070777747890865879754193272536862924605226426146498132442971981751942136081158061465870461270210416443160958553439326535454860132962385246297997624866349954370125550652161944224699327774666386514814254945304411543809334738403137370765473969224899057348774665227777002615975785331091245834050026599343325345684894866108514659107958497907823289695222064172071169521686361876554685338666886158232813363902546276008922889231180633566430525573420298699609982066852931240036605879854914692920504261050260779923715865051938066970025634439325245579995461524674483544543511572172369388633731436991527593257949245544375189855597077924434870431940365082917636542264026264959819160396135412146002793746643637278112329919266867400843970225322584699442230265755767525112529476148767757424419512054883272218180166656736807826655304033569692800840086364541667727276724187381727691123588068299705912287267958757725056679398251307667082950002591635314984362619623323605438830033916142686890911769529129097444469294880843731370985499959355445759004874963508549362004998953688713451189937777792910469898282513209772174128979266726390790812373030447629972985934434771217518027370323239505283720961590187847542693524546120736532529914839409355896693788570053951412839707919887169878514347955053235356297813857045215424800049199603394049987575337660526461604221912241121152197155659778954864319488902392223185909673291015190692017408766358230419314889558289818294078182519340821758234612673509818815205542157496183701689545803588984689931625027030421051672633146634982738431082152731886054892275717011874888301176323756237884751037579543292726462839510414649948333794102978317221413177845871557893248905844833246651125515019483591612054075546226430138732396932921092402799485832022240701656642314193963881992109481071982822053231838721113648564447002666196236861637022716639712664343089055324385279498216825217807743763557712782942979687588203976823663919555054472368361256986295517718304922298431500522228518759322514986896530595207954424444125834938559544734938008644898371986978725618447820617133615586027188932820016219828579803750920166046984269507159922860309004655644030069434455563129665046721816654684547313770629034269607902483979428950068280046071707834878366568992453678231970773399632670204083145502012956521799955754906494751088849547804416640395001376617073675469321251209037464529558020507153615707507804481723123260110013205600532112108605183234019405984696530449528361534965432360713815035817834325415348371275844157288597717149282995016034883987454258938156232458175765123671982169930614988091686335498744639812513797493359017582075180869328959832008319945595403410466532924861278117647757815147806862258679468529479096165528300193684291801034213418536226995364794801421535709560528844265417997772726310904039145237839965582289738260380735182810210452795611583917250460120338929471637643152906558435975579971334043339804742150285198144266612831029801530880597462783571096926887181291516000691473969669616259544422117230414568129658349999293646095177558665435051775568919964383808996869431127671611875248120930259169712281711138956316720353255794539212347839563230772104372413019617911101047816743179232730491722359653136005599303855623605096548356343944475970895492949023032704126527449087716312015837155342172461451952141755918757027759320604133697851807723784421800459936222456329115276161406779434271984470869518596759338977745084620797705718067308940653619501275511696371797946281976675056170054934700706736668079894225819771315335380976180461704861153139521660426761251475930507846671022049674131610095821584146761312749930805353008416068306446410105817865233145525342296168724167859335680255042446812147637291684548145529089820721551397517393162307986862745617545783278745371191401339975529602687523556544333820353131938711791424621542317920967597192425183880266088944779623897239354592079603178208775088813433343335354474523965757334551707983657184080651123087762696435075343174799227473008209763227426525107806458290476752229392859443757772677969314740758814716894086401745409663403385801385291182106429989371983252212091830650183356126577751470325513724893822569356830698807078799164500187763581270942892413831733879786300475500547000543976437665252371964143040311840136968930662813373137424490581150825927551496297796903968610497857854143261160978496580670184498412520949386854441333892304096941848658949270071928672261734706795107606829059156419355607718681804245664838596201745962934231615739046287729136784974384489378006039831841087380598384211868787496561621144578121448668184716488190107931422852975501775749275614778056809928472927955299130689598945017690862986279223742705337003471462361196042558002710099060996810865146429569266756476415552398881097662632012390338590046279334767025148483682668490813019906095331487817253192608321720303430975470727352687719321894954391505813347011212372183302794266080960645870762607176918492790523023897273462225847003755561856222135224838210542134493454770204254918630238800991388311831762146298187438038870279328921481512860195355767990629342094239560583704899000181224821948894382946456001839000745514664306798430984018934520001612594019753855336217742027076611084938555660655938369142090229071116798430055126491816471322365162087756537614746366142896712331209305963515065461110440974717734631436022415070088125625809474392499359560984580842208192882752466201018339758029926842372152444987128648493269518672663341087694176273315301259733382436289648048382449744040006855903172590953577685848776737005980497120156137174620624833524608548333568996459747509107106380699961162260352869451090219150718086245184500125655761348296309398372759876733243878592926598239959918329323027754591325661140432775815684202339500864746050142430149178518351676124320888289000266932804640497342382584039451493769087794014801436678157687860427100292738983174133090222487115672933397016586959399267093784309150155487254687126158371459117126206238441829248685246050261780072329337064092019237095123905949211249484703260988857898176819164017342494637872894519351890386952108914462259173985367564161169389245334656406433799585753110255272902008282198294079693900360231026036362144270419298326413299537527676708174449522875555559176838936318786407507882413024903053016529121104177372382437029035480417755148034418578918076452599036992786484961818319560928990066491440871926643014274842384201701589102031763170124445024975976160186722873373756282068996277360548861615508896711055822804949818833937255667049657716353817566913270808107577268995751804584554698275917398471742954332000357180749612064741492558377018727997923058315204650798744698506355659994320954148512755082855497495056830095064552212226275706561976465051305177712905267819536234535083687091568318089847218123270130826175702406484805846054142728369249363336784948151459186377065467460511147324822183519313262336135473642411774160083947809960811552415321873492053927206428966333551217431719653439399039816428990990127250184131032421775227881351805221338972938640385805733316481812643982833639955116334323060235390973392209691280486058540215284470273449399104060892779590917384318133330705523118313033316688532301124447877520287738594177335492632629490334560950324831499995995042012309886526360783982000302668172338720004063068428731599607207083752022597212133571244542117751701916672674245232053256003059703198170198171937563294062013083789116009127631845936388487359930680842308481493223754259647159367109927077224302092952473658353642290562270659159542252402342067453484187690545491343423138444800854459989992792747375183364378432599563212020439853148412833616195545438995046482089374353107735419985384618242504950271986093408884310605263493831522034020383683176749886514951632225618834084854397163514152502757549110197949988854729279288575533422993259184115479965054884569432731089849416622370938567043619190784922152201198979768874713825522372131309280017840988822984929214895103342384250738477826683697860267395332746888659517108819890892138988029172730713765667213089612423158102031799574825443846985141676908130323157783527751663457773972761276772135979199622526143362938411653253609822760268580496800271765281709964484608154721667050561506689107177473931156369370585728539017835820977240213584943832976460375805045231660319092252259827885407890183893382428463356247828945345727880352196799483457537854118190094280365678169219699032152980981006676306102079191554314564846304230616916517107504538190065600678782104932215888371853617195681171559429871780138099481291600353474343787922035386593430676880694825977511294995419669644617971413118885414313469046516814398678862247999552380829358893286924756087458028347258002118014241361780542016404631242912586444311447146421706824782399839777246337060220491314565902114890775292213074005182587264101435134638354370125989230329144829464683296065977013492071271160727296574158537370804447566836206248513844317907140580020253256910573543312393333750553336150573242352298974642140175743256525121713916413920925936969342969000340602922874232844420254089704636535415721253144188181636358888433288673060149728888471409756708181202227208566399601659443882876132451614157173208066432273823943910862665692148884407577558673080887640312715325656790853175161257912657049730320465136793511177141240174671276531143469311122499021849568953530630785714725295445507175702461927950725905942806811051260358799418941997439528279538000178897214143354433241228343043350709631493206410382811985110516223024352110572209190845632698396484996144035459233826667161221019265723090991546827943989167127763388442217159175704365963077134911207593820059853023604540499794650944688343990863317606253706148911590416719413030086094578209328779840070897479612190248782009520499317698043851130655109868742181102018124899673602838271100555366873975072637689715315001374239070982045100199397732306585872329588280738402823371876642953554071888291982538910491133868932786895021362051094678060729043640669215656670446216493909377261291632789764818302824077238680610690756441450693993673700786089131001270664541374456795131516888084775612968425260111513503516120000386999534928923847917577438399028366468106400533125704574159352535901824271139156683028134384137755054018430594502901621462745856694539932233447856045875344171045973376237092299128701693126591575568237994151741410397177479252927980339735676231253698086018678141755404845210955179493439138904992368630647798701316160509434921193187156482185723895445438389216782886189016006194273812407935328895125762714910560133196813656079640165975015990573503988638746813994255862493906504736473499206589438124178927714349414791425958686916930796058803989253919919794007829691029361445227189919406569673432014640774816474378545466924716125760706019426923684786132483102055785187242074511002682445327411646821261347140579972408227619131555907704143396053685933924298076350002975863265227389354628253595544475747898839776545311474644679147600622965539047741141847835336639472675984682495957834569600809362276501183062728320752814721698032998185927142480312024052843455078716387692191435437194958312534430008776295323247581268578032312168990141595075834779488562303107241368406271326978929645093809503201657909397793687006610613356810762718308068230869847985677437028744400844274023723284459857844260280663711105084621550405264049372838098060476438060673548978964816175306611525548565962578568441256395475912870938341048132466524141103223441902850593194279013817649493623997811295732421740954741919195847070339973657633500369110986913816722319909556818151755772073270449098102284456178531830353454582006209470578918360486089218777470055912999732981735175646752233742010168321985072142843364318364689827601263432140919025644621394176661427704222750684576203718553605967668934535525193234295145503976022989662615911477647888277802941435652802891615976986792566288678922009071551971784667703206469604526265827958113396430281663528851161914124066281421509565501295334810812461581980729250604998959902506379521886457894768811188895549164283525447225614711407676156187662379025810100271233397769813157360382440432500956003266878725595777660366398188908585163786540147981634697663104250497979096551952326723685146275170926325635574090633031157334073150623624813949612570810245255255325646674263697889063581466746118621856712861496235178950117547101454736739752097751210909902603094651742578095663823123797882192302971574485833080642587426830411870749872869803776564183932571657886214086629758975198796560018537855256652331825289845147094213619949120899536814732066950972452620021279944080549681576796665536556887451432346691726205211821161006042129471620713734935310478558488397742816539061152498813045201857141831287965790582335264331037674353266044092191281001287530794596611623108240326371010211877412484159336140662702407705843182883994394774769095957468482374033483797208864997177003485599742654931127430168573015372027837722508182224918926337855399447266689608616949319346629391072726189050889696795203357777308665890569861910379091327345691429925686930635529946672746766785009420962004342910700093465778024650471745177898444760498853476388364432925491028822166084362538984705028139973620930253436399244551631831576472829764006177202418169588292322309266926624670541267145265325293797833030538116600253588445422700465501021962246338663798541958859747791540358307420013552097263168377158969627319980543432999890822163124691136833445920240868369117319651165776391401248737920125798416860928258882153917112986581708786395053932224784629267412981528725321197816274126505937972030658012018808942002719128001860841620106385047874664557184535668732007318460474949038447613284668240256383135835572995130336812237322318786453718870288268979427149978836778347185580243524676480520157073622870087083909555201465051939260365076323629138882224311974701193232313719547961009916914810921925546223758258102426617340382456134918247085855314377611990563041147610870248205665710867963054683114900087438203628765603382661195891258714824427170708881699103895398507817343358915532960124352428610818585304551079483119139317984849994100825213508286094036231393773076318069723599990977486856083248352173291003974475581165749648905503302463728076204632485532718542918399272468146779745251283319850355043858788034160333157962266415029983195377772101420501098690087673555349209411177400978950263345562117996744900477667384038686397467441573245650988437257199447746017442873825727829244876094670270620927172566533606233415227165741421946094972675728216814181256268563634225390620202027281172752482167402014490300591082523108616748642102456995070042564365321265225866317851111674990391739834818659169081630052523072731332956906746449928654050219321303762699129539695514698279315737384605674347945592409995507778508677461580052165753252478030036063966132557773480526305056439274020708129123767444685960010960240359330150807387121357420620780594132891545779680619961123407575698246098685373080365729828391049456445350802822343758394502192167837661578046612348043891833473764593969144492407552041391052582439336575532213468129777987078090774796816685036086718649204439290673062842583190267619609477425657806477660704045121237211188269992102585729745503232464455701837020815633692263366256336272318522359861403947628602150613637764907133566644306721244621795914474981117774560152766119590123369188304804587428691008715838860085444300039086217132247181302590126297252562982726026605996527459777353182045537241499300076601988570247159720919068839703635923166587421632345883183260928379277404218607503610213335747409687381809307242755182407659634741393918574811214850487637124004950370389112560164286039476078266994263613053454095354403795061999245748410859025405669383506839499870896095304908877882153210753399417013102044714207079484579319562024863984282231190709959980555074673630350677493885528252704742680204560940942376318833857553093962953563985864075978788870974876503293796542311533821905691490330152723572905172673253692910102041049497794136748255456232959590835048077679387181558449666598145762523899711052798550024065158870945588099626922217691225057707751862248625638043074932668905605127005481561042832769874726172074684733350408859538367399534295188473234026218192422005645957265431074658756642460494468189112268951541352834577204792120500183718144764814334221291973247386991656183573666200156722228059171961694562470350508389054575978942007593528556832874895288113060472343738900867282879014609316438069161762489977407262732839225717447537233579417054444888256827649499600076986637349460979274586092100702449023419369323425640557178384128499501487382930513598610737905608682143968812203932190012766213191133160463888463433427593862712122736838345977427359441074752347046889352089960808628232313046330857411354328161721751899275406266031591831152232113333940141879647031308423349794665684786972795156393748566624413716862432138561657297929281293650218881057494112574118574041419977887383753335892746537148628145411628705635773192253062737554307865767568371727634944638712661204423554638230312130932883963621637329744311923861272826480561869940300825379599422591267510368406659587197170457694820483474664088833669022752897399341490683680804826618709117920453491165417026131797473182089514888273138613747011688856380467787011980311635699031802908794546946184360639424402168501655825119874152341281973577691537005924086978963606421572498278236904284895945240310216044775845049598285263853940766081368612020209526960280387035648591322806748577444657408135140906495260992624717376139829834594047640366908911720312513348495616006601775925607558957018521928292005459384029433688470066033753812229061768922690506475751374346753190645598402789316899423736253968497248657087397272984355071697639238885296424860772546997383968744071799298384271685307302486061180556144580723963507882795141933339022296347080065642706172207215545448768504078893810443470533529345528396414539714023637638527747590551856341413461583925088216863231999225067403999824482415606327652313554014888255398815495113492863682185359662985123613917098783226523380593689273641189491459141833786442243933141201391257742167487125547032420205696489545149118392640067893696688359029910731644290901176778078547045854610336690397107582443965921522897388667517159304813341114326297615751304051160738313455235629703773441679520108315331939022545323135957407750281783115685047018898093127708635696759401126137582699396022721825233539576394173930600458576316975471368244765326587381862630412426707442132159019115337944081342426344069114411973836263400615211051052367402341384374514032384816931076085753204889311569529092525183954856230618388472411984796022074157522983590859458420319532107599581634433487326418923613730087702345009716642258947653728090733609079294200707813637389170229346158020094174566049704424553449315526123609547268145875117995363929185073325189653654660068284316107246162407980500700364707032936445023684239043916908238731586206133634685515377215957161556779814454892739460695618452658651984575857222371850393442581771778655451644105193742345458986805911425031692954118442815562970431715487796967177700441787698133453577528450864150707372863863206106275119372818634941439494669150374065340533159734642961688594141879273013641695202031619500260075697105905631337152830050100979467155578760588902105278114117411813386287388211553110338080087319800919188936642999819824528181084478888123010742606716325375398886827191859279305131141562554017620841105857387387478144027260673090279855140569852646957919131932610316080811083066125377880166004773867379225995088211910974228080385642729231628580169186586720783458462432822313676497278786323329352707005993518694191339334340355550518457889247631974485346573680525354885545846034388130874132836700606080631468138512296722622297835845890976906366253604484493375560549985013841370011722499454341362467917152092483521754062614448882479293712632844442473894868691203773869746069446219373783536248256826502581799544183187929524413830037761122339245529471306273936738748237096780146455752391111826341892835518095759828102783005668821490605626091002577163821016917091800158583653453703788515079312724009516735220092018946089572072090573074002381966007138563919190498113577410556907135265190036238576659876722684888272631234369632530882051285535283762451180433334500134760792767723124991978298052458920456272722053650071166415160104060639751163747828886842735637007077226305098611558330136496082462197223459822090953718602767369672105012027520198122495977720439753775211779710501289885207335372886472233558382587569880612742259248525760856806233547786484098967197967927050643814473714466478459211412448043147982830552466106097966913753687512396811798549067528155974059020632050803041647414562384213265938579545746709954179181883436281393416774741035834250699726374751742002430094043531052773389277089895812609055582157800576266346420539356593981398849668352168201104483066746174297957859582401259682227891833623727097432831753409636254343208205886801095800706215653063522649596392836850893466843568779478880594792708721585449104535072068919894683571203464499952839026153296764902567185362729533806392141300537411193739730044808874925746744698228505773891081929032624433796727673085919048258675779795486585953607591272482570295354575832777504444948579414019026365973393689276573228826454474174443079911188695640892886952793544367582099606557293766848019942457581372473141819884220289526876557854054523007466464130064110605578959627060388290320476272263373935990641274120116469072333036641565928874574370792908524521797445752722687390151551203470393116331201177736925571573160615743515274406440668598686390967634852716891212874966526512271456668435555350460313230514281593739506532348111483504441987820433910385313552097738140703713524728450644121084423354321319868358656086418268093450295891672236179376567979893025740253845905379109646550142448307032732509130858532583993048532947458261000996762955350751437088390814536610027053474305864539075224735753885049070672968390045972525360985388912836223497249185037964056271319285337984635760153871074052987308444435484943063518513553205966704697926860130721810282845635618405139195306606366369621226977557994507597812614856309388663895332075734539235416114133014376190085977990460253354469150127933835978137696424883183169468039741145505187786356643427345496976644546579176082800036670695084425057964835597899011043953307917868258282390646984892463650761467579190101523800737894443011448655554551432617845290190614137955274600488883478688059967766934844403135941672810566976309897048269977908587344432720758782621036309855020030888846229773142750772598491177268616499427787514391134693102858351603192615394919345159550295932253872700481480253485840620207200860919269290560032146671862539948818162261885631294801871557374215631274980917407958394731244628328222627514350019304590723924188421961775772719033746219711054847902499906918788109743026141676439902279858325632781278271539370080985406560364897702004310587947927022235275369755070882239816406771067324175486551335643761183879850451295383147154301582943718485376292952264239709756809339607543833305231697010497150050089819075868004262388127930033048367870131540804948861044574577633398411063056011972753005821006394327912673691318994726201231669453850455513213646320653453837055789879732760187843222355160208889971092524321165017599450890983396081884625522823344770506514013963831193015881690333579251133398573141133666146409583321226211850854944408867594235702630962517249565307602675587098876929896732531781282183835207535939783985630792217844623754759133800003897566061749426211503968290561535939344230531961489289457502458560949593745527542674435091611147895864370298971996204474751956308461483713414664149178401883437287698103567317923955895999808948130460962573264959504093148260537823910988603252585808686983823866794644240490019199801708643533046161256553621465097741401222787948661962968535989894571283449226103822382547240193895670983797864891727324645323033585129310350909209893025919697663808948797801698456417260528305894482828031557466551541256214665722020621746429376279992634883554058111498033314609720047538435123845712777657253040149514859995484694151448319285556663785782337382113623429196297528455487627682287584125758774500125080290992166621438923099662359538029081172538661856718764471314527936346242012493067321770164451212299533696244674569446857825171719224386140439192415421145655753758457516031504766154334034002131052247285580282514795437505134622271689447002369629386464133877788276898632795871976354723426219761686214224051111168418474641670362221387705477694787400706393685360297376360625332823069696271682652748606449957112015714677730044331968796371467648629750592348978269657001695468589882195513034554940157209348244381977955310382557343090426800576940372736320605666142469374453667042695551915754929415025053670160621264277424561608477423561292864488950393670871998454901322541960625738310672124760182928712709133883826120068008298654951694367155828448177100907704411451975211137013491793193939973398925355886195447878166784402565842343886306644547979172367079811390821754360490710538810752424492805515752625399013103559427237581406394288390191204837518976551399867156999184836916689608264199039849789532585924489178403406232329351034198244805627222457778819752979778549536337601796355766442643894430857589092343441712742246516728879560335540106225177583289223763351508256235285641416261585714795852273630997005382545579322683877157279002650501381235704627772347678997874225052615394080765872596699064662483421418268757579850692610385501952922025001170409285033301819034818857374364911255146028188226692433831121467944102901019680480904529235767363706331361153723465247791193868766600295047982521785149284031730619888631421175400838062687844302473311863224404652565739797935245335850446150165853330955951544687820401271276103917133355599862135650568335193447869027489204106172918422967758840998680451745827392788220464258985349040308974957398996266533770920817881466290081001087828002839149355427363305212304736030075859793045093485410152947707043371934906811458065455099588087967379003700683179428384477281991011863349177258328931283878129659114513529358066737755068199865492100773135481781760411464367755649706348721905488696078348221361895665173186127477593448957825504808531482602596590927620461252883516325174771509698610122015619927848603558000011678039390271375806292641621339680042937429118078094185930331069190578503641152055934522373791612854690776774801969642452815403028263426236529723625740773699227910286502424629666507770321159462271034643333386405148799277020353367692350886091813062796653422897496815864616780725690771819809834665722245364011434353907132205100780185144814234990585093233212477615425153656118911512505428180506286839313154118529119324460214820036609206300201260419926690748737629443750476157566772146198177627496522952622428449444035610547024252643130635617987399229139424111998007179500885884231998686566285753494506030995812898015026409624265941841146449341594958443781570131487430193165050509712188645844736188188783150023203853256506715482685653429852750222278389244574226642111510365058702289595283638770976222736327244310150036340337552167623165291791625741152306681577649585372005834396408422308510151032499116367153446025944823589922676908933444187961679164870394213049782290933900861326260615876050934515109177074164334916987175719855734098185006707727792559532940528524599929881096218314114989737035273528076149693525637311361615438647228603957375497094625464951997529300533517328948800379749446417527291066794945563746915670586584506891877137501727979387994526076083251298157534258173437492081486418318847032066676494466349654161323106421633666810407578343868754218844757589873792205478537183786384131356817393807591327496936021880362399778318922350724936155844622037128539636477954908281405263565717523243130500964984588068097185097032467108417021783387638793681440385557209484525356966057400170041437606109921622987686911610131482151110825965179782142671134327256604344035716682673683500332246135286768144891429920894036014590687388758483692745188578105678522530810243021364903134391138551579720288771722279788499170853811553118303373814480765383387543226143749680228856324184234153710791249997817421241697395733551381634904668463070674816261592704928801499499024817978643611133025152294484430706459103367639611579786779473294944808022494670762933973688932896633995656435098657124856884069036127102067544901368648388672140770551400748403075279238132269492108214671690769142844155142714966272869372081620125523442990059845872346962671195567682344106448377701585378016233850179413683337226061044193468602939897680691346834311413221391404605237533160675246872136630178946084021548801631413305310024847997569318828025555487031810001309932521578323975435075221907648266636202321988789941212004287036939499079098101546606603408199278457452577786955083397487142535372139346126460695755221819280127076259243335662355183528261347052418075118194826258993210188563342907716310177829013265273690578970628405458985044144939228651723201179340800207281227030769003906561013788554025185954087841174621877632818045920119921269486936089400137271320532145788939650032674874874641738827802536045004102537208428343209637678088680979988641009571513895271238372549896161071798553986448994635425663868840310357218599938448099647886812369597453412903210371594168912698904224419894773094454177683848504975023320578817041475563268717394839740082419707705888007202417229505594758574633197251585553631851185660115886985616047823295082086127833337977168838524679058151005024119161528310364541882568129080835970284859738973969191732286208753168772293426254451238498254727114150124396614575980320148096687381367647800006513679406701785303428553738361834691584540288608559005817988900950738112554096239004150382302734999940433446340976490119457920223492674231601528557514058173171709025349024282302081452670198647657301193951201605329866399504110035980665502767640732706968464553235824441741622692504358470533370507660691849093308621138697255506696055244854270691767330897306798654938349408542308325222154260352390995747136233056134877504803535741798245045725783247618166486022137995407993068083547267592272702532183268501071751066741572037274423924100416677888660464793967637025081873739476154639166848063918805406574264364632046055463824046169947710670780718040328162069312428190001911794157517981988837816986087172429906707296661300615916888545239428336294399123802541230743645783493049981262074242098124733207063847929703408256262806926566444805216866942357012630574758622800240471025932211168115609459643410219017535464780995958606444162025154075628172370342778864566633288628518122821801297722506190950603259796459526623615763073143856468624172412401963422048752897948427792794092136052623121148342460652619602900743255329436270840358299304104373615808201259608906295288863342641725260168151804520246571204642153366442354055429227251016922355596021807647383688037044617938855459112703222491148372601899589636048641870075602089319229035702560149585863203356035057615841513050268677890741608927885760500666493211550913908641426502060284841098779782146493514623248816250840235021360877937329396114492234953803374960925933380072269259395261732195034921577842463389441093796376853110087571329579253875348659280086174195603456687471394184894138554538766368581515829291051447299576587128589601400514737184912521632269322105806457089613921924571834150139662603143450316327934153304564084195516452290762044057593333955020710878882936509883156844918134900397259566477578873462616358559406194908513780106986302524681485380971882012987549734048491180121605501510932415762364627317160086758804559808413763297028642756419276712173590926315956747498008856711416326495636651631145886783437262176064434442376617607727046777593667775672352073425421806053303729149217229559907680512494696648648295608291378281730342652002081918798517441429180568340075957015463009850885961048922370633406506037853999916834819881496662403091937805106085571947907035051859434315620580190368160596760377354897312460649876824822721099873878396452597785127891203176982436741014801479841729023362264125177652204755652910795185907006033288927331717987050926740713277206700370054549293959033010490452537400604970752362156394427531510252992974530339870081993927773069641585381847461315891897119558003595167228424208376932974453163277470859875213518298867297209674500351422663814364126854194897720704848535484872422822882979643869496200993013871697354659012695327229605551441001856869985757713359352329555230057467346325429477713513846022508842897156681409020122660790052671548419501387796750296426829204961329405601764114724922918156483665224919248633889071766412103688031193966649440036827465337059681185208953085239872590020229990426988480296053019307963880638267947460403374040530597839525924644832254100539754318127186313955622468815282556119852900108926172151529285477614750087274949390654234473534047209108290107399964190236167336119942315177762594031882859574495670132021699070531222395026931435585485744996775928181596006075133180780333874945151493187975940418076802793465226258256986213842412511561592674483823499816541706922715574417323444490051223234375557305327655162968005117532742909149248633781709740454213156850302036774580543644344114311668314888612831779985023642798491465500984919121399387702826291959595064092240276556430187382890817613767017968726010698393348372084418157206896614711552388115295044966298268251797782558191043631805361294241063936314169665852694293351966750530877559961852868012397082807062637625443941382952981610382588303896986445333304479127477866449257104087427206794116935719829779175732522943982366440121417652329833922325834844566356035540226880713132063061513637099127854894589491621856798153337293267649310340165463974795786874630601420774576522276385124994484509303146656495404552771332848895775370590391137727775211632485070870420847183972426466951696395027438698313688714625804947163646402665690533729276948636728725737832746951478662006487718962630889094036749608488972869950044139958986356503012817031165682553860775952852662864957626595187028368034319210712798273323992162847164863294654330589275765465801404509204092017865954510388388213385093149287260583425274548398580274828810236811083441835713852088166485412117571685421627926147259861698949297036685164895793341304122712122565305417519944876637872717240439816724139858843722016164167273254051943135514607128917030544208334523461640719648158908287575623433500067371630305876985479155797468472276216906249641128666157281012942529630702434265927708128945708921952333510791986275043955981819065596161563110405512210512923111334645874076214000008121661458051054561770278869589709530587137835477238788646276693209789560154532811753576530869850874733874943159664080762542249833463731259246647759634923331170712834032899436998855318812054893801092104356812406664786479939136748362191000056168079382507597802468456739167982549355990596723258372469527577672557353946725521233086356669400753649707574686820503296370114533785926752784292665840845151030229720004795566498120236799084435683836945947239602196799740783729647980790663764725634803005225180774082099849789759502662879484623582196245736248166667877432463437036648724655915772141599546275177643749223638096123159210702012562630582653026133311659948716882720043388147509690074055028692211962904560895122364655252282040221338775766524452926843515998474626767731556908207532026822028449131376022909130358012199823577889390031534950030551328917194152789651186047470149336304942353738819841696201069692241260626884555048348290470995024097289322827752998917483976297256702854625189743429350365664145728279393112965206266344809717096815583844210102226297095198997734780238288650059559139192809389689510951401821069590043184545485869801806542374646544151829220059445453464339085362519959300289940016790535295037144484570913855638374087975306313537467294930933679360406491315169282818960776063739243703432975722163903574068902837233186748717305929328712839434553408062926023447879222505490823870944293779213072730374877135887009880351567707386114201005265794201197132652848592627634939929340749699209245183824424517627270826273960580677522638766398575854116208422402046810440109187791733271711045915717915601605865846663784514281156427681578605375003959323190248390728263379959272698181035939003503318767979932081294523732895140518919621687693393549643785493912092869211659738432303742073346226357254172936133324480555711968063909281382321332822722101857078093042712688852959780509342267118765338976120499087762182798552122197625079710403083510034192992970805666280242913833343316032389759734376008347448952256547306896190161779227679919646588886919281915155682203320339568237241244739996212923019231028506293824726370420725184427801158162698077317768925216434053291576480259137283903349166554642684387513479681785725034218647212388234978051737502780488276380802143429844380697960745078424317348674705982997468175039776841642198584865103662440457136577036965110383836054155309836831330752551593327144195354295387622223292335769295680624092566064434048938862270580162304192169632216701371408211117912999696238462364078092658514348254140994771489429726532830108814771519865160256177793824548356996215536559861571368365764832296280411447562957938666507754770790756272551736960869032640008188520595744612121489135043251752406692914908491826007723967223340159461015997238192279187566964677157420706984255369945432576573946385574914946350175245071957785339194049261884396007039684952736048675846659203327459848817066014742783068821702507793112468074491526147330144343862669026514915707662797363857591138424420958563048889899800050262595117306917964299440550557798118670028368371286396712052138530050400784937632900304149167860833539941881214179380924241986808275355382626746445674802677140637734741653145182022782517897715076982242291975507765691286718346023441376105251948341799871267270812498089291912369138183492879535079046950625099813372116728847863338159345141271542487661623584933389619280318984191400491293297056589408373565305092812419341992551247438895517838792942613635886628101847823654356943375366882807818794861368539379450132026153254572573598701252260126294128133892253900950395193079083984633291422055344460101808907215964701612333381325882024868397046296521716681549103230045127909640180758137213128377031171107951406139229233071436841353617846770753758825924329521225006712761220000789245974656940063675668697749844951338003915464586263952702080500218279817174972243081411917602641822892793058784414935357174003506112995021629787203745947731043133905496584243241290832009072909311432158168577116149199986156348803583739793908684927823589027077531529903980454802061006186919045202715661220760934146236084499936587484461238375226921099390914246981735100901925402709836439575545195481610730464343488381942412010372088616738813140203670536440633809362351895899346416942866854456563829388642615952003631242211173088749004737797124775390495212138267340502519052936867233986932142825109954628800934440579347195246888887299328774254593909455355079747407367760919614485728921325849154887737196130272517802508702643352210211435136492660041367223097755513133313382353769236590221908904542790750592877263450240523274140037987639373306800554718208053235299290667265191205577407360731622414768576946457734567280683147342671166762019432826919295394650305454800797684781616560237212311101546986354766817055230887944450790006231305963589327190512666735796036967566455342736603063079616669020490402348190988056712663556435062507536692159522741519811505108384170393010388009779558696391646866645119404878562113456144965842182518251298919486504890240866793983457308909448725267727686347535852244980609680661326818300642391531598629389939710732160062457475216379641632636819185289424116006089626523893334398080806890798335693641134103089776912413132367653112456325517473932975719597342349149418595353956214118012720607325077790149841232659590965816391345906661979865308638576189201750134747655350675391844919011578841534316043795187616534459755970798672966888982985730549360930106937114069915440908041035609901622825708598292997775453637913462384433931630018861366009656552192748061987132800376727640105393675392971848916017473296261982443192776421106324832558081218680566963516373334424888054521211011467524980792168219334245284892185607059338340507136969996079921322548106157627161824038751530667291211737145049872935778533641541819056460070730090097357669663593331247006367819152736036138774922585508571868596240538059910068267279081426851205490891546645716856580072314510115562143167033836874341273243346566425507058345132195975516064628840851604245759849192415615282106058276696885718482939189045108936722092745013815514790946068500902597449099233029161114585560207277031500776091882361049689998011611683304724964113173436582066659420879984683842973708477303946988656320007460420653207693725310863918544785813693197675812452451875057349018880800414765086541985168682663784958217209853767559261272713116963484040095708873224767456652203593498852611748567558377226298053637594054488914981021218294314868864411808776846738465594539397867327260186396725046501310750733993152679883266129364016768791369285711601045193535757945585130187465054596370832606126735032324228703043410643388785802606883419993717329408039395059030686309306311780894635177183341489465868166407448691850070556364293222362317461260459659153568057801250333131073977544164081135647450024195967739255094018968381606750431787185968132571101140820377613610058590144213166583100085321585497857853535235234537643786682041617949901583160648015404919601888462028878614442281033117883513169774675987788194254274922710287890365514617912658621881824673480602251746351990118990012595629457288616091301791451554768303705718557016933290088034405041006518567760524069479032966423807002634533086300071224449442917569756758551317586719013490360282715487870316031813420848249746522091038185346595819551321429663330927874894574337155915203128781042426067670964283229276381674547520693388136145439358502156035482930507168772773733038119821493086976938399913513680333933676563247499126315975100247701744218326574429664312906580387827566442305613847609525423679175798507285101817310839942250673550408476650801834374156774151807088012307043691338645712745976962663778636632421267462553622531336692645431142216016874603754474365469535165197165337650631054382685242653840949277715690465433602685851042812146104956866451407016915467523167012646193415800861119129072935774011658497416128239001646670136249019583690988496749798271636846166258712090549916479382535882570939029799169193396543657881269341486419108774375213912285150639509849165741422026198028840399478211264063274000305557524875006131333722186567240152271624374285240164410813041771838598422812325163109502274735036816832066405755094813625887526885704358376364688198304581831646285293800484826448813559525192691119798831150678965537507718139116960934953803164276844528619495985321261178312312264471612075364347103332390963366666786871964087191653930499374052774495800473934697360201722839688847780785582492518950515372823261557237178424349166266954968857113555680044568453495136131500425449387875099486665209834811678293406081827561928986108350709350425540620019593917934087309016379671835101405577417982240584345235486593000260697062874247969725312582822920790928643012295341423957667694949360954302035668388491457488942775075550449004561482993044416313538099603012141662879853379705043225501415286911482754073407386009495359713965394557321359024262565640102602450360703412058116755523879733418253124611806366600705778364934346486756087455217661871894241961675746086721197494826780034188759482406895258606999543464070593727644704887717433776455043850826725031978989366680754278077680862129325144614229823853683025289047126882385158889724792246308862363498256101506776288074496914246032702469429198537580392038096497570753309917868817607879591149753644976735821775374605644631547543827827575465057157447195969158033703680012080772446237543447341322806822542626977130863830999552770886739019145366640627171505247869955548257739249500951855044068114102914395736200913297578899836566172626591754371503537884374538076485243547783981195334240394671773190279845585817139993777489337893848872245395442788301129341889300428882159870152910309458234452578459579454858509342005319899668652721213618288540091869067961342471563841536261885690446198220932211789719234012361750558965224432121087248142016397324354660296566861758270043221319386022697389164462149604083252421951268005768992163057651825143128564271087242130186599681565802537393636970839319474689420070263702937859954741375006121865593167379087062367093727820408393314754806944909112799723761069494315943698216717212802801836711490824722223720319084072933092628399947066951110668989220771852677633637418434675624093206654819480999678657196293201381595954795478259846680831292844172404470153536590072487911834093118277425804050721725186390387644201476844969495122442589156724284727376685007351095771713894055823529333796888345618365608344122776160428591214270256051441051261071085344627005349773486193885645122995561038072861380071043543199875325271940995479307928969007271799663823517674400540051532165210910479465008998777888350937898052471869328175824116084440245463586883123132115696929870538457495434751293047921730558342840151300428193714505781675215411686919963222648514295468203724754460394636755976935021419830325707694369584980132891651777285920104227899910424300451879879456329564421232941586533681056586621088018244983976390678592605394781553054779190681533509201794765151955960453771626578051376424037483437718285217359273538576470705613705820535866026020650602244879863441739066895863548758415197503835377462550729234569733699396395299687098344051215621265976335184723506615561378454791141607720888763804766020768809036463653371975192159713696143365645500055357553737360642845810411667884031250721350572799911110880966034996189087562624792355118756546217996117719972343274898990533800110410370442098525978340058088690828999918427531265811347847178594399763173397421964197975014816730393409735403420995150421460516571475963747319890463674547151685200852408517785591068207470812478261909073334448703978624597117910313155706825738911179823061334380840583319537002146185891554425731945902074013230149627791890191642090369664088191681407823081561032310816078134579490003655052153256253750971099309295259467720847330479685038574198251178405197804481577103930596134314822965955441911381111594707592145099880171092292332067026613926136148926046927218429293731362215012215339127621906541670462126203448353811520961501382286793497415592494957446400176618965943289499362738634754114388171156699993628562781316961672219802855583734992254093950563170970896646195602773464057841681563296859225339787548281061175788116565217411634234245702186371915044781696513672908019863609184451425835504785252674142104987791230380166582896369099459082305293114598843412915675294848420982301047358921464987383935698014921703314755015638553706694515442978869694542791567166247965800902417325295918693370173652521881164505498637212444550839173541969091174965700537778865510449020903828418756564066287191569213982275141022450225790877290571811175083781577464557612162338004520134813860176318599102711290017960852489720191442227406043054726282793742432753014917983010436813472782918210128846472021880659288207801699775946430305297094361592942258160305058404538718255272039114693906480448539238204941473285832668272969229950669173525506425074852946707827671507450604407465107097908602303012190771218748321406124181017661861697429174746833136463628931048668944461797288015824069260060296523935625232946231952038894211399308203469763118107321353456092996463458975358490401025192877543650112086837318400288828214777581488545148511606191416143179383253530819827937040722619807858688366356341358415641067442903926390394849905932409099514664677538956540969072338189367961212840207725019698755684701217198715046918567106001549792435432263352118593416118560307268999042692149424947922647413833239635604305348173549044758599471578509658937945233977897092800733735208492609747932171647452436619584352784541645445740199251254317745166134382886815908637934149174444647036791624164661668247151681378073105767884892019716067798979450779860724614646735340360339702485753507728390217325689063953890058977097651562162877728158446820113343450025573438740218651084721321276484388292271884875600097024858309819011302701952823188835710826611972240987435215723529319335796626317765988524289774420201094394745140160166596436468135029707114869237911296975038589157768547659022163489302410291348599944546363368417064099660000793199722857401221175665670167404732499203046640334378156053475845362803955329904116537285848278268359784338767723584580383407241889519200110066531980407597346470137359175587733935212828290804993504164274318909003703622881034272261738598022477205092248887042291729559979248937203925827483836119302221958696626310883222075905545530519968446003789533248893382624991436959173001312234496511066013743544142463657076427099214531825027199951472238446617123667557679100890725416811231848227053672990389395562667356471571721735665584935643250385162617874792386439213679169566114690808636998976810069574016006529758521887834738325070786284212040392385993743576512481901929320165674596214849341489591259657722239096452893305330247639080243400691352451022348023054127350791791523431785604582239972190191166074400686720436583020589498741033146017419539371984050312567267067822490857108013875707208338684147421697213709212221917092976508701130806574778872902068223925467980269455208201163822982054835369992346098168918184479589438130424266836271799814897401894782477714141673245591481165171140773182748385658098512452116912754082483318387651756135066063707592875262883878198387656440271367648990899871091853342038754168925927562877428276317860960061750517175750846074767483695042750024906492096362134447105669701847340327578617209222285303383655743672094855238156095760802782144846491552758693706437439842342634535364173923820165775264433035339429835848432922532727952381960796694676597240435302722885921783548072233710096931400226749147789750966490953987443463668504017644689491924273397398400058259480421962939554812845538065855877607969825043921666095003394048687866718722970592801870308505552829065494883570524289909414814056338189286018931867331398655734318931098386467249516195698193229133103836731408304651463550616316798013650604219110456446296619180593639791835231787963693245460800147062370225123007039026086390139289684441926047096217992577048994737808226153472572069169074748040006997143728407548807815859407997025433732584731268271727396041886349169713216582307154058830249333198187127115828039056775240006707931159696905287496702855298084391742291889198425859849186348306908379396415866562931345407245565963145323920878231632869229454998689548009247079905209315486162890116650060980221729775156944509463595293897033484983591619948971857991935044250930222092244512530267978934913676081931866717019115635997298617635495845400945817720181215940865459661287553221478576585034992001691440162520794731273321306062736840759145498055816567544674893679144577095434629723479546923103523875250884210247170186769945412001261118830540929094155444018219973229538233391460579405658060707380959879106073213096463633236824846003814482618778929460561983188852508166690236891928584639235539429463687660031483033988034755448812231797617829772090828559141589452248041383676005456738310368964634771547285328898143671414337388865409259493429302120191418795183319002998411315283240240096160811005621441781094502332905274867791919209228899266930733643896746042448068229844206250081701689032869407929492015570719352211435154959192770313741327272317743958253115714424622356099180466955689557109712490726237640935829736544445306376748424134393934471356821745386049557831345577256317504920941040733087996922924516434199857928652878297373913665793272205665279302982325139840388415044891888808952710469084382880374975377609058587947353862352170083227421784080723623013807429263447194681052544585570123090809739579354512175091504086050882216756436665328354729944467582004534340471443835352952123462332364138242923117535090336509103402698409796418581835557096026520728048163047418510433585394139417528702634014882526943762096241584556459774614089718462312261102172248078920428693007207301874758721617963046609936556448123049703285665524655243258057151291038209284581135856708411672651133105566090672601262647024695158375991182494192454964824684168993725588347503818103421350720370277218539231726261108748353623875301313230203471180410597404166660047870344895567635405171653743561661914504967071915801652591664911157472074396881434407463704115729313649430534350395791358545993714057967240482993681983647076923880616822378534357310114993765255006853772736444771047119444220570009773956937719463221368038751034029932779371173050736178967861582949726978225730475358620119665100249604637439650634573361865972526443855012428820325622602819984305589256983770277895319759099091932398125817406382158191265989014999317782228795854593692091161298318540925838905818574976101785880480306802533695058357012482682377117697189802547801743341777942731793717637493345974844830436232724368583704352586269546506656799004203905393725365072640280528998254238369054415235883880659833007117922180503289470670562318139084402215549767436163835694926326309507719048789859563818245113317704856464712717378223184876236551242190415836751775507380039613129698231006744794718789491486614985828403281263304914221027436632029210624549087699509613330304940769497850249659808146451385817552345007922170528570154485967741102376736799272314682879534827737637702826158477692587336588956164631746743205864855589708390905441187815901888323793757558917602530093134065823447925107469702583385311433247394383863364445306114066404712744566601919125269865335480217160378352495996588108518606842607611662963841825982248617229248770733158638854904389848493598397222613909480502947837289634951964030632413614529994221132390964218773123628191280916389019617885503035185449443339037448456607020544968464118027839942546255304184621764808560190934066654559826209128737224853242249052315664874884391852859795202566465714150990580466812260609721811983984283288542239620647725240502284709676062622341910391959344721440931775357961951869032924373137907934539768294347214367229333988892859988153850184195922143568972173992439108525358182469114910813945979304246737271417916783089162801173832746705517746500600974496369064177839405082413089350842240985933307374042774615031805370583991488219712826014452523887993599232426080382267669158617779274378036193333070384691749610465250949987621902839638195005122121913907152342242875508296692631477038278863835544788640454890124382678516365326196214405070436077473260618468910918117715852066224485502446069191289378114969989435936851502437180321623296118001104422884168223075785093586724628604304039287768514391716231885673031731221888321905740741965370619701638691436458215067180294954135125083706918514289398755981208184126536678418997210413622812455023003061850461580744754543647622928585410459531935090112940048184614735535998619588243187590686083330844445123019151822390125275850007355086676641981657563434228360420778631785797061947593490212386610929761770688542835854091250384669740936740477740086226586453290677387634515200456457353809347756089743718207893134884122704087426987938180233197547758517223626695747216947030727688668341424484733313724725959850144704189176470837484300693731273372538588132495712454220758121031489412592853328595625867495071159828221752033927281916042703362616581938314420600406171458958264475143023924852403963915728079173673577802569083131973782794096494898773860158378855218995042482191670626601162342871959212395178729263470455461353073004484812266376122533460914889333689815395815386526492161196056263988151391146486652060422970399799749688951266288395768023835484298582422959224827154151054792127635465142671490042998427655114428600952552910394249891235935827853666891507428979941565008971886486726067336118807481525605069263409995674117237471904261758895683777677165534423717023630374621853763893366216926660992361800643313396864178714659059137942500748191722350830928231794361968704035484218111482448405683421293686806213545391647806744042768421877293314144772877892069134496586561913768464326696857277392327350983614783892252562794221211043571980825452905429128598562723273405760035282549711674567083802553627511545943550282108801706377629144128567385606514426250133015277183317732311210550924487676213251795557018439277051196376559226249774124898684619931536655197600501312315231681860616842411735506316834612170208246508693399850630291087703729250942489680695853303366708776268264938454041138769128871279578759066204058722319740913235778258236075135302215272437560453490877364637689639822467342284754314560617406314616318570776562136114759153332303594502212910752163186641215080969372813033928262894113585341150768337487268756743763337360126138121830727270277741107822342094869389198926563438330894142394234534892264040417750493318303920137277476900179381768341444429872509381311677759431761473873799612813294257549226230616559118226619313635701324566846264790001011268606276835856813687409987573843706097929736099343843649213812661241858924227809017321683627297475842077520686167410894847013232437159219807676421661011449151419301554137381500801963291516575817783472780350914238117620644648685392576826261208191423868338114041632773395177040548549598601558405838044541018103632783189551020504721648051611574335803606348322714089470651296894352316572515271861265309152460589785943448409369181920661239930966979341257305982652166687530888855705022037823822086681248844481628416179305284773773636065533459312355670944329711813992605070140003626161615104685849793523002914180874525633142862402237282562783962451276393332109136909266931245548628648469673044962671060682550508306363936110284666408517732883360778625313131025443022948327502724539075958435544619309064212482363582893306237627210702604575981626616552194449346431159573482477816534648667524603700398498763926751280944877216714042673975235510561952810266259324247274593449645317442434739113498624875910662004108795310963009539325614165943572747164196667607679750640891461268738082437507215780014290874613081148954551140830060988534601598056773307334306042227545522259041862839618177879154614792434779467319474176745611552976618467845648001530983730522509267962072889315140407007897011893825420949350820921474892949796706514203707452555578323735072772478605330559107271576913380808119297053032881044910424320239233421371592463921434213222242241728044844491533087843205295112476098761617152307339758630188065078726683736293390793749135251851447561288361794448817116522830281958204462206750799328884792243818946732136406721552603086814856589823476782639550766283742284930696409308373318467982512255403941887331987573509823061692991343362221158423435555360689193178112395811757299817909924198078606542916493404580429394242974300202932391305822774510634099994308630714898398786880662599846573565823186786684073899607953868597864801475068696228510617594076324560440557904545300921967107259076881308665155649067300639594350554817569896281857256550929647217969271948346313777600128858509290227005137997778666421812360090660389106422150178433952698093840208237461004004431776764789932974877802595212388562044130889444722935634236524684840748204836552359755422995030431345245707603514542135123300761312826028272903727974410248082309090115034818617237463427786010749844019792343478445117800214748753318391480231300977252102793139067877443497432605878604896172540310101054343051494977165141667489671680395227895431306895247130296145063158533826385379471139194552536551520635890397667878048900541348128718481922710679265555380145000953739502232871153271506681858122939073217826374199202367623985384693562150698811635690699280126637927597185966485500335193497002028267919691731325201384445476027908036051441214427411994207937634502561198969337276963970078851758179204789431856095988517807093670647000879986774009464465881561286054489948872850249725512371930479888189002262537052455738426698231243501821286376858744982796808679730859485233679240704898741108637012699345779162943211206408169546073227803575715437348111788831287726081112244609387343458841818308116807471787195925602472541348591455294007158420174772571828470800854178098949218930137008079677521774189741184367421426472973712110738374616560175807276226686397068305005214314995948279263799415257679158028718915648896260500484691092748702160935726630610882551861781756632094013487806523600221033028364648296320477309720825530257068824983255348092918591104437095172257767107392687220096254570006210836821055083531197013890037258101285508721089905279451056836680188534823093657724465148427137535547268100916967873677335846373091370685190741865855476523162342240048967776739927741656601652814278180404748038672903186975795012888496580856869953706630789826322445469503276617250008230175765127686892929085286156634337329924276921532631969752155376504880089853051639622204845612767366709179844882381122500819884236253826576067902029690454782950399197804099859570196502403577792371680069491604607296809744240717198243914603580526442387979903587411706193887051758269581862754048064831557308005715776357021372783125389420052664895024394215809285461717281845657891776814323098848485871866070697657545032476895867630121145964803072478248267209487813874266020712695221845777873490759926238580345490168063810091394626875936808406668274955705076981556182206458113145804076748111117249220993411723994817904271500059380044760591113745587313071149155623741561686377115364469965595818042548882398046526492604311692606880918180803852562069601566443855781645739062364510986406123102829140707472771815841461731108932431955382947813781529089760098976147350590119643101102836337510911547772238633381531310846731137335643701769850344981897733532649856244774325964376553222610225617055709366494146907976764114377249581398502578633107035999056133408884085325591562871286152016738721674339817735232746852329299997229596399886878474022233709310599096383601227176692494758824280292515976836911429217914966444846871286532726238195254343567075580841152736389054307520892544487666045534804597136652126788690583788781361665010259826276373200016029323388441958672384670355203611742479965100558498139317947650705798127248564336569136712197313057027171672947331853930369568364050312627823521293888985155955839592181558291359009678416771383876370300252603014212837929247657150705122611082498783981539933534045442399716414091541914064849678873367197605662418797648845038856421148046735920169642035697995233389934101792811151344819958229079885007647009995514138274637414058175571868054301822115569514394445711868170998531058248487941938024741669482893869880251938839279223314183503583193995393660813628761488920684507330611415586177448960934089410279198272940187829565079855591792595637685741461535889620347460949157919640263440423892806774508471925829020737686700539182900981964040321787780681454977714683886754945200321314914393909370849209961099038452268700765732173001496716563235607644294246478897859921523720524871741434752097156430126950333075077195171534079580930440411743198026809843250248142952344570462721224357144939009142250396733492675153931378671611356279064226939266567056839800438890776133043242872853192042168265531560213626039837417448228712377117899584912647820556986768312659300710687781716651699601720283773554738129788250029357373268156916126382749788890878973284726106842656187857314403046116664979221685498691234551579891192999264010303048727695168474283280711078981186926135745842544125082382027793287573393524379972239041107756475541389803831982622684629795984214870421281861837328134691288820386736610153544334583007827979206934520763125923480319381978551505001144453885210998984337374520894856050594469268853728792565841486784358109068445899292300924041341180097813219122872762193952854514921749774664815443841128598383067451837549654709776790107470957668739170091306605536147913630512112062544070665620526282627181511736858195379292473505358235240843963788499943291366097069447989746112254938731265847745713163065091372459763000576887670379624795390815986216767023707490272713429431414246926478345138426676432459142628709906710617944887138506531425712177656515184902161202345480727021010974410356938158897641569231319554289474477974497777902541776850147380566488952165808186295482653041762943097749258809902233156948998577088176006402529001399971235419950761179803076287493764021774426254932603518658439604044869870574974214979350262489893915624120855297720179431878266310835942480126836157976405001346905502186794400079038499604944938437931243347186499449984575447089553478314672744751412224965690516189088158488277237962713238335295285881172027253831537325584249449455206626216768783487311418511151827225584446244775072301390141752533512137542204922090772191358343669660364967333229745700251169798413335767534244665381547569172626696015168010920870453095631430273691302601792691595708988170120313557246088092247551687803508443038853117924819978667892798645457797814593283530398579448734792080514107167617249309931562328548207900248862458550395201832794110266538610029960864234432883390677072189074771553216910961750479434422191437750661550931833515411674572628227233480762678821077709663361530729914708332247348876938639704044323915331260032392667810812348278660698660265590595033337935368712063822247242627803503181870126347193681199908132947280274226248231550584438026120205242634342966074624384458978725510738055178417089148625374444932887710528408017565143171577911676767403495026356411660227753283794917705320977767830513966985339964757139307367269600520960351726142833167177683764692064691843375110842028852361965300835046988303584863881666159071087221956869538759604674268952352226688028511083864469070303872112703110268064249137522654417263415651066968501211766825816620002706356814812577774064445619822754633028735455265616630620459500707504477540930842659122672969851746857962987702916088582435882041447603109241955122739058119797003690038292845154951334776454825602845486199249576891926308246358562493155024196222659860160250918593534015547333875164565864813627183574442936987703708718385938250841043644359601396357308533774290927700241409995780814974359777585344833036984497457898692388717607955224742210856191060747009617804662960382416562833381507910693695404857740910883125817545452801709835959804691994164920700388465987411244910046778958701070371011448330383926330193151314490699205779383167342113756612127159474852127804132691179160793323031482847180844202687907811552906527092388652172201664728665996951400046692937557733303892539709388641373825814548001928026161051490434504989458441766654802852111218129431009400550364613397768857165594796098577057483672353775546414196627210062365181634115700694038920882376047653551307984825368648188653802462025996082892125204483471750308500051771811195409087507483657052629475128150889295860972175539982101903659669827877953974444580792961730262323563924104225788038727639947710153914336588584865113970914639694303054876990725641333494420723212839813036561423451229876094721763602096193030547025271949459255896213531164780562435168457320383728695561614307668424162163549360154764121607643065326688349644704595245391028689113315646750240296244325579308379710017090985291352821134563221876997573886228072436986640075631876540483328308701121433142447420692186212030369687972885339827294643929849877458426828626824009295722250025525468907409227092816773709903262526019475567832714790122906465511231861103072408003346586969624398466836620292026751410597441110284778432122632166632313211314012305957489862642444849773700178186997954175526517760379391428307288429380971207131406784656147644827092841182477767937099538084888938871349849941796393418252773350679539369371786126591726060482794210543428478945166837923483455416063206556820665637634246084941735235337594456123598412026254763461701507054417070617677072570000007257856880027380741390169681626361341943161303080093108854004271019526337157400330457920506595950784533550958891416736622151574228131545776330117673188814906992370936169599538534299190554931487533099122077132188567699723282561358296083540777043844962538501790733241139893155114247028131376035679304460674446444173321401508203328235657836936191573878217594979047586466100901798124107686504775499935613870970190522729288326377752736630172504989503046720688872390240293598186321382929122269225533106573444763850640144469844029348538739394471117734753191123402933928127087164321945601586661637087422129569801361493962117534148769462889759245949638352297014846559050031637922134140873936836582897816420611864759096166112739597589592955691523944563637520123118500287627857657897866185290985473748097907227032612136821969341429870494579506377461017845984813337499830420703188933247890515908675544087701324791740635308001451264154448807693106812243841287220806484170580118089176199379034086718120157378882910969046753558220333533197768626132986568845038972610768194277568010784651323411082503267118288521264172817911798026726732569063633092572952664171907134469188136358915572538198569747871385194254107540637160596612117857928852721840655323013743300304882878435992377886566851819477604099922540150919031739136253261827344433716382767738107405872264087497712281388901837998830719965118848640340418004145166669006804630427764393276758481436452489099856754227473019369932504158149437639793752113643053101704303900233799727782816887000890696909567987978319252148257171388586126027671300340597799787482446872795019019153257824353720128334902180414341379580143093748907264733286369209294883763374593264858758409872492188132678364929932723867220936437875772243662162388453522953204440340007707057568052817284013568690930234284203026189712912889142972286261395758651841297557537955947250148263462535487102901002100232056039626995002755979414390711520995876014880105952818662430706296524366566341558507329923108003034505362528028331496849813911220657551865821008058093417492383727242696585917107681606027548565939568241639604056693702238911801686577166585915929761776223374760381818669216357311646272129901963354476995345644695473453869156013006107545596555359019276136673026974023654993275981146931268961880468240996036278786434630958924800058723066243905873630289524881737799747444309719719472570253529606456936858760707235529522940500882292818042652095013364951107881165169522578792088854824474089609397203327677612779458085077412718925168927553625034141400866419608162719624043544265328839897128894037981823360149672426189009285144269620036624857987619417014533240096725638013601092779915858923930671498566875640927824583425616130146625584522139130787258651998845159720653571738526889708387843869487089129947020558815974320514053412315784442586224210637976023308743434410067078074204301930338783561521683764997425029239524360497907453451995689323663325090454201402483660894065960263461209357494136017696236165291159854081767722779632417626320982827418738344078473490802388812654612285433677730686458560060859541330708991259158689725732459546558941394768976899227434594458432859996537989974626411881412793584562505589549302848128047663573861435411653611369396814725921066562070205973126951642013840037211303316401059280536168574807091891237452440773480920966194657714934832508052329194964353741372131013378679641881866880356176756319016574436645402544935522271792196030090850428568155173292491445756294825481611548579383570111764404339682534955297086474311530573280410029161782864136864582875019012940363775187355356245485054232587696571084553994584390538444848254099146286624950911076953852703466961998456341558791118109278135175278545440631858110158755883159517242603607722688292546299000556032954319422162879882825069339594617721320776974860976275196089814163163279929410091994023427080874780243410219867289939965044247361029951968325709609111520670396631805819537420880500556562800499738839785964662022010318845173413540826024038497316457561963603260621943492053310274153410746091452691479506675343146505571945627260744393124289757556208301581233167636263783854962378274781230050892599697101746742603364946690561916631957142496115706789753079097208602564431333499090902552442789846082106380263446733656891210457514323474321356855572630571855392907713463811833168788617419678037571927310938884302068190490550390838341661820004639672789201392883713150774919566785097122120587259064486258696204325756049716041309535855065368651844438730287405905865456335935072386740787302039288270042817247953853096310135295062746006212745483989044921691180641129050950375659105533980934719279970681644521159548674191363183938521165579953953420199741508543847676806412574458289336105249188241776109252873482299122097846997627041727447131826542773891430905171632404263113518208058373726560519838678727426483250139554770304482754220483678874608740895544546477828181708939451195735224790940507139827030409478901819681950265386249214652021089746406932300155274852749820283416475476567335035506376077053341426977562064054833068119609841602098295753149374251141955158943557323085103760000028507563523623885844978828964116879627455258380552666363035783011635742776334443189090173879274677103563141440733680803198102767531674263287559089206219970852109719365976386011286421590061230165155729497672333267639482855248027908598520228611370442084729026482114573852615551804628983818167787831276179674527445248056523293933008732198227295974478054847889741094945247772751428551637453611837735736462214356321375393281879527885933884165905601349767988640962672817299794454658237104519387723233390017096875547862505010201737920539318365009065881429539004391143304699031991962843236964158612324305285434200178569531197455967821842035487490264828786145010066647922144716295203010041787619931569928581478652778192092160136937856952203703395651446909286239576216183343691727453898422552646680627659772509127784486816715753965862998640921450375415476700549555930918064688226084608486665922220294315758548265241097694864205298040257339636435598660688680481681880911781653477754231317239802786267969947864325630209303305007204311668780960145695558254224979987611538577297896863420381456982124313663313518836378049324364760506790722092782191768146747679064400725054571880788912023068048184763752008633162251465513139303785522417964523866906752883142252191679439628222343567267454823503162519835169288344540235479314296204036941979932359761596888554418687457799659401182836347406945702902624801027679776430331793023560036882788916987649133257946047755429112831066498380709827139961228285273792344368592927267446912564372864527434669699512713536819573765704891994958450170813405472648991773876200612181054443575737573822930714369582186794651975584374416444843369225840689819468080767864964248446817911925052493268534270441155675466125538334951829853041242924700528108179698463808712265883120954463143684648131202782122844023001192085161143387423657249995974809688693466954237915001992589842624623285473470508406533017415089210474421336964199442046946311882299056540542200578295886277162770602170054185799949644171983616559046395863993910653056634949874138167669751523047325151515583847570311889945681200076022476922591863298388469102282452225996376732960498423423836999633290282431146598128155713796637103964263439425286576740999844597362527839316692883219587872642749319109681411397810655171159332017852567185883001100746973876160911174540107014035610079898719220191890773516458074842865157830154129630927553559916566405607581040610679623379884414982955936726514572315340794281914018934718510316361276102010099688368307255107904710298657548004842975039002964483148286510882708330634495379820589341148780235691600281807807887846781442988106336470061667467131096541498959223067552361408555635667936430105576386125594736374303508327156580533966173280457950547925418645911235547741935801678516595686347525516815358180845215560717877279157104242589442657778255426988824992971749309223682096342917778537529669734953470613725754452019133141351742216972174203689177789603463160593626385513594177908068969398575477154871597739657990805281336368845811454989363480979283150050673781604224047025067152319881375606785688191713874022314143519573716956747780856265891980134031244972563633750207920727409983683385178839799292690252306370309617170160630770029645802924434023649514547217014656912844221057912567126648522460584027831611383880983364069112906877090128218679113728897100371206781416407853162646886311660870477268349280283127773739872821503128825556233527460050984855507379181876137993370671110921006197777656627781750486476808848548335879606063976306067920363528524045617829988614097484240316588362858807426113073548989122032708902746267671319573894903813486131949994231837945097551671529286055813416763196683903187255174329177481603020591222660955798448783865906423795595308715899547038768709568193295318402471322922912646066810092492084158947495875081922975285168831784690506582227198568858630305613932387409322927461574011818870047553382788245172768305746144079154748956310920263344376184968424029921944559704612214023524676772575339387241195314294572428390549086951347120931768914112417494966487720448986182506636083593733093059951475314763479534805448671126206060127595051613218333539150973358629156599647878604149913039540735175538549447134571505256739056723191389081070942340325718442642996279534810902098878107201530999633487319243501571028126152848099428114021425250335637440915589248007265810424534725760469753825156944018683019718259726843952244836338045334607323076223272269201699059686809796964432183813887429301137916112777757634302639263758902379712553551238273102923614592588637964413899823773563025825030184504785884657026012210302438489587504777548627421789642889707166270721402141028865545710837925526230980746474174198134998421018016789348384326608975292438116183832320705340032047624005773498670648042833953542117129552735753997399948432593213651706525860952734758033376892495703546854013858214148857817986012353223814014432483602299353877351976081330218280926092300687342610097996745366381266249591004625166969560811609613596230945540935540316487912003319750020147205593064430784517585084136288504217314640377302901672341043770418317011634432260589299922534006333127172122988591091961810565121709264517748461306335639262458799972263490027848185770909048365792142783777526918135365213298163291657154600715334816687248124141900057516232033361047649030747340577558143758694054698935216314067344107980961588918528233023346750021294830838375318915338847190981319372864509831296350787191565916154346959328286676632658496645786444653463522459009384266008196684251366603405244192214508691158370476236280608738247261779728706877026745280267835155067560828570512344516172202658740610047662152095377449746463842530040839042757572591454130583815475415049811449082115787787027192461243142767034108326236712865009607947063220324108680527079440752077641159628633714268952738023400957773698625046764490620054802329893860492501614946002261472823291612479806182448360495382518137591755481717544245335408802930374337619891075542402179962467087931104908905131598333421998386235166368708327063000701223616534360862272641372800295780781183247083452742650764904063061513071358819742873598335770145567431189777058066106288175972277169668825526447689567329912002791691015635406349546973324226366446444830254234107323885690205132059429681012282223841638392136184361498511087210081495887315994542413304869003793128099928942191227462578408372561577132574816646512729863697730408952222151131939344808433179970894038479089221845198816078008271043734441935628695067355325389916926503635705867077726212413821567470453254685731069204986735528335366638886921215176661236763053165601331984567440194950003510641188650798827321423718590988935151063869895621137777764812863473536582657598387063562308039283009452383557166149558397468107374346237266973595358338944255182684120460529118834147449004072665276633913263501041070008223438357218274035745858809309970631568898625705463015980163161036702071475920898058266064456825083871655490878908196049923701460136141812070829873800595060409000985571635652095177385322993060437148469779194001775200593247097291079102904882837689405512067019746431454403776693461010057322651093615993877863089249398642638000481361809983201838672028173136768664068890642130410959052767240430900438406633603661970447829191763728747305025179983854455294956150158589354928919633138060770212410195579878244506139497714884983341923453857248869064596885717872928312080927893053313791661190258474438505197567326807103350491010269436358735520675009851656600303543043045609611727396157671697904156140209111375991759351773815897187944264407432099982275270672065669663892343770778851005060942815736440586019015005642903802307683666032549040604018369567744063295622975956431359085109101142451510435025230457404649540222483873610880640216213615268753926180747344332360510136209215679816276457459250621848299516693357778096939531926890682539616678169150656035383922538414510267554938737913060388980613977556971139908682549867784148605884663716428525331290250349220797429786566464213459970729004825071866965924525284107433443867250811796802918427221882070936670605402438471535830205861949426634846517747886674971221667492161268107652363218031740286198738976944760822264015260326024878400914692352958762755868357225365406578750075274637478387437524133169728400462168838366736039021611920165767668161427408405832259409810900405481236710629745034299202318847450882001792786910406643075212716851777824681392231138736839898497703637779766572328012835009831665467012297305999226958250028768166526034011375982139711904847781819952591355267606569304725011556473394666066898873917611188050439151974317154951859124928864232858167672752085381578629052773896913718445209666791424245050797448626097928899091731155384274391889589358220830581575578569572546160761961666466741260468514703057865295329352083478274057395017445750474404909773204904281649943907184379769463767601012030901589763005318420639379658941096304693830978355316017056682119047201812402608507114509623453320654537336765654483770728448281909175958303296835369121866854785805926237437328525728308244940142715638714547810914952104811577469098386176174907970205076526151190543083416031771806909794863613486747878775592707585156096395010774061410056077273288984429319735531910725721111719483735883626770777719972377667265816144591876059416705239353346148056218625490652068687058547357126292743473056891572788150454446544645678212489449422796870911131264728421595344552106769064722645132729567998879835704276102623337128949337363569238190992652656956232247399947304906205869128146147134970185041478028400861191056762707648072050719513480622077474877978640792866616499560466151745479221770337964406493675322696424959443383074197850972382998450458220969269651963225311495286447702322528872040044544818175785501124048481542828437027281337513574652480995142052761076326492902622044741832614198099717672274565924930248930759479563320981643247459402269870757350762842964581094391299306271945592195376743907481137694995945832148815086086945056721679033252888172332865121611933326441099484235863125082580973575464707581383969218523294347418967972360142399840881525243141388611235833307227811616318741458322961695371316360866578764332569976622898721062665365292087392287771240972531187539559654606871804365495346126427906270442748194332639956148974372685136271314428078628881717714579620333859470936475545891162843993471379241973769243352641980472035167886638988333065510457840675047163631989150021698874586015758735218695507323313349478777439689668452121902388765738853091517989380040794390621843792695935239116570827288691578809477217233447292168987912011754183806466049826868902624729433437752883707409757868416846922067819063807413761820865244209127571606580310363308260745868843102303044332334119476409263456136910477259595196101536306019930673458009640660904242544413662469119844306668544699784064359683067291945266286333057128936369212013382533978971142385948289381999614385693299156799669168103961576318491391033201187648461395591476799112191920260210219728143192864976501553051965531182299795957292144483735564384469118806450668614102676101243778306432953943548321477433807660469746072336752179001214518175256983037411206751015927913962103555362068905891906766111472331438060882866344620292404600068481549249715761219429542479229564544091992713872833209420783452196955248170082040945044769685921255287486732005628156131415350377641301866290697029116332901790295757714978446461778722327609387147432568218681966841828595703510039425821824578550942201639061964053670012095295838681871276619488444280087676378895844976062391402872398548868910375495709912641061197989295519659768452820422608795725549179224832706264711311175522422105919163142794581895560449147675997230288394313410041890428098402258398362073753420835973276858002569772858546646743554615772652668177978983952443088818503943405120494443483781398582404766058582377286652041034748827793688431251601697861283815907687808059804670542963709270583036829905855887482260310271922716124188132016781148478044811688036234382282599268473640011680648617529747759829249391204897981890763300783203235223780629308938249799059328612386964311288729750123561769405179918029657605757124944532950718070375129995375013631301751147882288984014057930973232833501444781974805916623246298801199990025638452556548381513067108829798364191509672746547871785913808598468373805616029974547442864390109049854201015345163395506934491316287672585877283259614500825842066054110192770900650027461926728253691500333955201417539918353205788409565846574887195253544147156760405936402355943345990846669891367400776254120207418907411692958386348616165784526648292311445745833328834249277882640976918636000079067421143100845149350787599973243439316241704848175905656169404985607811688493225518681962889377045716957362906996365420358151270612448901853646732182591939253054785183126302519393458009471209967637596248027568224614560863242457900425102844392773899415278496644764975504735474146530646942689657078456942757319563269133022602464440499740006864531448369494675863486331390361688498935924857254582217674740564221194137738239968996461784644203772297419244146479541773476142787207024841101630621304442169708390554050592674715984468643070914917378829467016642604292796997272955731741096779721983808198456754656763670906437753075930653833790165051084970100962457576372137213847249569534265475604719606849351220051375749839099539715261054432546024699585778573841964681044553637489578282187276054812621308086186883296009740434239891990211437478819617510865042172820547247150914688555079045412268446506501031958800461940808112362324067295214205399267144870973897126028941363883697699685064083997709082490241207373433088278049766665241880137612349991789962376531644949936678125284717028658356858360453123772694333389399872371584401487762430545204651667603745020077704313893327813517906064313582727971708205463531197860050064596760886139061489050344690874372503660301989050003338972391183159965380368209998381980311060843091444811240100909395244630353616271973609155188829931625559598775346046153165123112487143849787217205168581722439865047892752629220443495936895654400662684989794252422607368293764179538567043951567674791294073906785377531767745327242790922791752800185831857986049489634400338816288149540820359409509333720653633020680120560654132875515272700152006863629189460445689736760746247162022548452218595896355790871116375100512756291627532682924411320139739355099886117026341839011083539368915513803434457069104045661678527585429228873107256278821596883462905800937097353703637090831299673044348509410805348008111286396106592161280146390907253514978957788084702164858004340616277860267322681742346519001044352836734032085114521375273734325515721351100900356279797797699782873761542326240527531831551850990744628554590470312183091751488122512106128059263790857205606831380433439017859024544898446335603953257030432696051067930794846359000923751314095401304058269725497972131204837434265580738803296537266626571111710818054368010899089038226408571310189590179302001860047147485955378657285687812056986062203763320306139807136735012086363565827128976363390910663691132311146221977119665633888272931159448259682084648170773952635654390613106505093740486044504479968502804086329412496262564293238484022067273040346749014293599255512890748757771254513724066794684300382073350534664936727322538321848868084539812998643486912291793215082944650389780349523705137171867695756424453589650176829569679415838583762914048488904919763832216544925245891498174067648981497637520431473464290668351133875266306054091965448176098703478831852824972542911218651172167651312100329402619791309242423863880415665031663061788761063205987270816832484426863428013225791192310724411068297043128255285778744268316158535785229579033881009399507508470035084286430430050008913389390735043714828612216061661234703873338371234107395200290978601109818961396559340062749457932731397548278246809464226969493186601129605969428619380671781418365854677875821023290578382023615714486673169163700758903258047923035629438746556040030741130564435793410258133887316694854324867284730275661554845838238560999653208663549807334896423255236548085741454304411120027620747607946840707319864315014391569427578466302903522803907480526305667639476749573959668590146686571956199268324322379449274388401550309726694233012660833704041977414999165384760179255156617439308952214695300822343474921905342751677354639043779824412017832004007084073575706604895364533517153693770707924258922322360440793280151514989401237306315237395769715804028441956825376353483577018993192993750555442329066611155474061169263072454670750610467262012159657684913724338735833649185736090067917672158081286477461886989377473049186044310324623281828130058613892827452979388525929975058336295921714580255365470020178582543049955851282458293683764347366533659622079933173079819348053527896161994271923660824092417808743356620821779225747585931778303172715180658736798251711913023357459586722650040549090412644236528541260564170087833458664598204089472198783911213269605994863099019481335708412646629101083195700032660037842297096853324394424638528613061967715141723297849942738776503262540047357970196981093750341201637455265107534747360285464303924315830419804170994701946650571901087073279674768189301941585287323171165043894755015389971135888506089193235607663603636628620170542647012347054728141932242358077065438988616357372291197293693119163397346781710648126378441718447272749615038414482397807374460442153174490340193266495412405523895977691510247920147124736645526892052744385584461866276893470491689670905087860749564826801332760663535676194933261939882479849662373297874338679907647403643935835628943205648113530810627767521500850536121301402748520528924734391662505821222892846938166452602798318946786461716171440369301702704053912559895335442748811159837008112636368021666769920428823582014429546508036646754392287758055673936266623337727213519757193393974939311466096062183625061527860373661966160503182988642112607854381554083808987823725114920257988621091613901629412193183375857130209004465849036722126842935404562406806381192369576024519273174878873455459168637607519865287014351854402361623778694012508568011742002194218885509601573502449106853618424969812152632257410349988835394673463553439424718869889947923703905913730024368868184502184282460539497651919967014713661514670594633025249477045189542190401054232240344253434209803440985144818949690332032252174491787824854850998624664300139891369755818609279507730416480086738832252255510136274904216099805146878590227220557155762063588489865135796043984087955462832953951480291472703644877443280528115023613549139808355276108778347807002953419299762530387242666097164864209886451529137641361342824111337622343535044585210382012985792182483227215706024899688955083908882803995319384110756490616021419748083847460886665416149632502137620922518344967092243309885353207279361246372273120613657540142491984141343632710023228995124036089896735062722405959222094506493330316616287522616419180346814223599699112591417528415327035619961879470999312684252181677023224899300064180195995635884467087402187714993242995456592372275270717878294678048724463497397431132282040464544765249178875008592193446794768471554823535788451910708618201079435672022098908329171835477384363711928421924526705850875268385467293967278078246575611671251655587436173998719374199131925583716719443181883527354243062755068747816784530732659030346506711732098996594843670852476812112830901900718216734058981631478553609421349279944514823250281364247833506017958818050786861184917321582353361161630582459823558745616705962303609422010710534708063587796577838729685584195049814312706895495598679957231672208616149532835843570135110834566414322945836668232885541951560424303286285221031493178804645541152408715072892508232376954847431379065020755941181032075769599473698742818502627351907109406555763299853575763120232200003535800072113541144792495431123368041665156340831628913613324875869715166500182042831588131650839764611055655214205563331789365798292815067382940817941330015238860062450585964653272129087236941678490186573993027210331816034894951517968658061130568213040908598689556345682588829948503813198035052780821179280083812191136237412733827648903509175435614367395195848299518146412099699099959915334254413118234554603739254848098287803677932924222991968678380409906376076398954913796583734891242430679274579113253055942656826267785927577953791359019340647144002734898847706877661735532694055288669216033580430065067110832161766412048027040414611289800567146654611698587431923771626416706968204012173669749936894735851762767278888781918788914145933844985322031259810041690186446200910019646907887487504188566796520689730308123393970418338361150633681310866225104907533737832792191434089439817568713715663057546791487952747597613966271147715246534878379142063581667160967453607825418713154130924971731785891620686449998927953425874221354218665355187154222026626780539468209419010777438629470844576768858750539310596539294588403015145646061108025696047777891349423019742922474659416458619147145700660106927186600151374886593781608992872204426736832355785513219348738223988989960277717186921793970489286027817978265334260419099180400584577890429923979778690209837673093673308949558245454743872918077270881608010085478994217562127388762420218829112440945556560672055472762242300652399970736413626234293154778258129245432724557889827584400457508217925587103560885531357572612334063443767921730589322602466269191866940287515453116068514919410035859469183443642352124288657843604883708005686130930225981615961038692061422017115562942257666532473490060155519282636109852980051215219737508501311380325916514816324589091219281174224462804771280497883402757895620880932053706658056710874616756445461322155665029116596152458008659519522587023116740113761405214375043389796385288221370197092755053155226666549643896857044695021762435608396481080603432374089336019886655571109964023439912723315250112038475777164745441420729638088030876166520185820221691180721402779762355656928196843838869328223069586505575180858879986823844708731361723551326534603877808613979851237722841414758908103306785822618796405681437513480801037149067187151765609172209775572012984440097304488082368920246331292268273748022300738229881724973435747636465258487681284361028833540556274926434259229379416125011526345414708402444319939734814729666455985873552248661124935917614240953759163211714176254810587183046680356177466298056773499084934041993814326807010096883650536975767893099677206103860001742844848075989502088969207565652322059217533717700464319409044435602132267765080112491731838242788897721199038886813362852138654909211508683281987506528078809151765107257977993074531555702156726822072489201605330105952740894705257502313892185585328919887466072228701317027769982008394350032973494014759979062538899724238827285769225960841146881681245259022641667227453851270896367405493874128551683840664434996966772834938854644351579724530115762101056708237541126217681597617732179985415502584605762562728270374885535036811179627906894982051637012045408461862938579305767063070115051519377032063569292981135756290121485384013717389420675088161106097818843307437921253058274377705911352410926376468268138580689539513944222810304272168205959985659655323700291850495049654695635116800151434336675631846330916251983568358135163821677140716707569339314767298167973514592254670205475587832556137144807441703613575235336744280975721208248631649871282031999750066474545244856320851316593995902523268854941082227793938106056932222674847792491434250208053283544684999967932530238638124632536937302772550769849931217447556182255634537561973773999781710717773588152980523591120931869646861759643313205379164167466505927303092503697978446592420961088613155891214620948106307778058266673166838480540739911418207679611870179220947813779232269725191011480803036488185327113623487229905816383263096101703310425808344780635419015700486265057734061055113652131232343359030649235595368487744190929957239069136987057759782669435174322680747991564073344925715811902936735589960883887142020212391170350096871197011506393753948112173312250710426160237925669174107897831653433169130878935976023372848524237400014904707583268307600408457766576301852336190056795657436019876303952003857057503509866958113106982052513599135190856467042190435677341064898049705586545835514945934015088780338988169883932852859943368536155973279440768481532788373144509586320000121461114904649956449612887500037083307501735878628296506646886705980345211042050822199914149754208617446488760058084443693760311931775933154747495950507450292593512450718002201210258421043094842715957864699520789611410439166031103904643832331137555817603099303363474361094107837343328760314667566692336779180637471505084016119993196153286373943366267786192099869621384074343195159532376555399389003170457380686564170341878367253000026496193236212936292370384058089604895824078939664135403642436274412481323150393168287243841535887221486415549667876093393166929987647880025320276633833483767663306118930956880166561285664829918675915890867031848218033890658427208316098468985325547975193925150833462447292280105614076276568451500308685124652717001138999013376229116604473094264986561382447394633894800633170144567186817451761663115955022304871910276834430173400387260062299776440535701302534345898596131645021782465901835465597063181255083793735371218437869681279026167960357987313004130636965998970945025057485244660716554071069558207597673462687267909606802966245489452264209568772501084530683639839137729759401167671472878806131727081682554504189115124510341016060451189355459718978652611196665070988759852647433873997800582405029447334520923986005566227638945046415000257921520876677484568676862907587645015647230639475938292670459170981267200872527710924190415967502011007395832731457036517798177547598657196820039150990915591665341804696363134552975639303082648559726679877505011452605906166862187408780788143101672873107058192390207978171673430642139611370645443151708563292631913846877448300784516818453388112790747162045514282174545133213989387334682016253417363567677996279137259463425964308526906134387357705114075882294665484286063248682766905062943063525699062171749293959573467085698798749762931970916101567349735403560668352621605144689073190052543668328908421525273222293288184729033037429927193461653984846197144503927292510610226232399628690074501916326440903521286626175696081278497748531717491558382188609696420644537507959447199103070449667221439754830673873429224032956682473316116966372314454163651420958356025665517325949139862030257461624020058326600178079027062613884094975951934173969917235598349375789046735127847406377965669489963521573146927769607117637779563542602875267743108652112017076340963267474389659510543356544521595826464146998538020243607993440985683067885797873491800593428888679254099170329091699247702195892124464138358543010421994728446550362628413457583845509488124472233284814779024817287251551734109184272864677175577482923844510660730993922104702195374343012372431614675914140054434938163555248389556169148355516770180587871303721840262979618904253548010402885579027144312952566292257003855427738390853634628823728734249417651276990981503646443565834299730171160106493973541075888178896887820868903526933094827457150696284728553538813651249635084500831166799209940455313940585376744081202505928347540804770066536966289537917221796661726607726880482194103000500005641381356324883392931169117970324437528811158556749352178978448915312534764929076691365043771856460049588924380784606331372069197165222670889381841439363581318441152777789159009777283046350699898273226253561238382453705785869795449462204256063304635570657628103797162446908064681109336366876243245226775050696259085231735880534961148406576503920282577402272942265098380913151717680488293028660237076066916933160673843210465751869528293189267755389820907720315396823022703359818845252055294874253619561817912302450161526238266031356450513333236522711983932463318258319953786093567314327643257767013545138665237956816053776334758427367864178479230295441013563750012956255095349907001390912071274485153781880153914105016862392363105695775115867539026394865423579406305994083486698018084437370517246653300516472233914764077343517385767951671409996202778104355830427155361353554995494953240736402111583303667391181245891040752712077941746636925952797357625883740605301532518889917830676235275247277020908427664413669197937298356811607365331745266299204409437526559439077604414019141276904077933492579693108740105936675327227635955878447373501355345659181670334209014102118427307759182277123115675337332938364413553770792388224708637548393803577086557323242253956053142344746980484892958587043031981492418360871899289819247149263648155743852833242252366327710673364540965024644354248711595921669601612921983733263903016658829587731966198366757974907692731787103761485752225202678458463589920450954797102209771822765622454065111974906887571361156982230389734759540835805711983452980489041728447214244613211795399392078900608702400679364705414048712836579413629850534773985053111070983301197426232256932470232900268004463255456356379664105016041831046215334270679068330931830115645552351130357709293575380864573079118099492822330730085068423589748931184800675617320722886597811691057922584124367731614137934886541165360479640325318424650434381478635531582995680321521875693867633355882346945326765863932509058993604367818224992240795859888848720832751273549906063112506461116416971200519978992645671720036204072499255742648721573384766929642134193868539428183962547271041151589226122810889525876585503861053107771109336207440282656630426208302179256089111960309245863130128049095138862445997112008314450495170607740122782704521713921033177072472626111792734083557279774340157916196868030891225884240952294252960040595828458164438381671455168091851154789876669600781392517925953662387029807377443713389843535684835282104621037433610310799192060225744645791828425763826119530800865234889666698640902810511626139101135349962936514997640954042815338140631535537229200131131214436790886942907054342401657311986913870245358515790480399094025333676319013496114152399336732198032564538316339104156236074070853324683565749566403614191723589798693015862358800488709572992372352943456553434862028224190717328424781405234229050677576418673404356691918249592373112145204923087840265796840483399354673051858575383816209396608700277858480918248893714838678928428134494787705711664668316529523893719734406489464651559351393798827312097233319996379231261270513519065610631844170976265668062976315163978436417276665890573546349104157682747361227298417083752962819190149390955412158934997381569091856629981165041260475332061276828415509935623538577184355791474478771288566648940097472769244278106286151070462161144578779163612833872669970800085517659626160547274070707111619399810814758165590997863466125470916464409955668956660415351472293922773116312317266559339604423671723178699341274071727454808970218985379101601599947332915524294114235713416184399733102197979033394614747058340455517888105685153834779963815184748813310941450623016816929945062671751877989396526456908647521131322453914992439763272151496419337557476942692146318008595465204304964233664310075509106999616180863693986819541674472723023954456923463335807735837334650847547904263471722084698172151398903860507165878028766113047899626320131303911630361298154223628831277287778125839303421919190367727389424833258170134771895659400514306918008166236153076604907213241838524889462913583174674149632087805447235143153690624612130520239322109685401992725149931408094671388265954646191913546323157779614501818274088604961079334565686648705650065847633482033588428300167847689927084428020138404719058511139083991878800997464507948686607988348862635367545356479246355958745493447274815463124570566064325658619052207074199487211738765487872259059996099455548462271139952999114229065177794836341876486876451121942728657497131815185583623301053178492400404952920834765747119525985200482458542959321467012564509260320746192750543395399997697570309884778645003917277874522086931518772222593414551907045711180593329415279160919005129391264932715075346348681283818778073714745247537255422817578054522969303183150020820019482934683994385286760499563283818586816750196366941596804944191870942187011376315100306115522403934614953757187295387398488590803693074295491731052526172681640779079830249673850244951925794613417165310023395273283596480162411917537139699926548853728098738470783567444191845307451068585136179159308158045570640395004323417834183167053610571443736862470741763297179230120678491359119758262070538277818613376421297081324732269386864066307463470047011274622839690989649539934338235931128201931418530018757114446058709122538381808581916116767212862650679633066104073987016225130996573764924918661340238721622599423471052269006933280656213822009419679965353505437082549038930651167754017449778626250183582785081888198363814224926846471159804644286296961623231072080938272516063960282226904251476791978223394132974625600514655098003998987866138625131626772519684672250870272788378377911140629667626642649990881631951996281662223304499722867600261105145306658720759033049704420825045087097884374632899870390573994698032801802413800395874834762527571418352866448300768743139741048680293528054357873514917654038653183357397762679078995328818187787906753253247086299358371831493606873552978737591410689755382843285521401628758906764335765047882298786017229778829998158969425410960754943546351370127836059300661147351965166168733122059694748841615829385197263236960541394174149303947732608476334941045582229001986277047398177136688378551275984159460131722731882661671406826432827295489799920434680883505137408051418881993404068496963448615864485425687336778873412739295278518875031801828378026664929475959756484652385850473156561386985848312367920234966658808678244754673867397167362909522627213178095717981470286067052728078894432152199945032503972927794482453463343273820374488795006581736911822840444732814146381244948175470464575194850426663815925144138427620296169952681130813237280082105534037782056383942167143780818207137720841519929376245296948760677255499153738706468418191597671226242795908972846882492158799620825349648291129726925479360982942220571340246097828809858322110384759307207857071094131437265581060773200251365662456652277552282389991970090813659578679328462158312458940444062919600636037340295511914750574524287464516004288975838605053277573913317379080423273200751599453088204410080136201790772935130139341163250090979626957032668747177103110129138437223406411332533857416419406569509604962080648684804418765549967918495169650119860184807260825147576648198312349977664422096985062108650406660640719764345746377240327204354058535315148534928321441474012928015446404593219256598000353377298538522476241170282740244657277119549379926817873875378949267403249029785631180310794978213938886531820620602316385759622846204609930680213785186626389019307684561103511234753105919769258836583986867627489080419467955511391395267598059165471866317960330356442841353587648329183615545177937715028237441038154826054771023289758003384035176052355331044521207229613058341369377470620846395329003333754290086144928456416293984006905322134159261371519659664908125740816992214505162280380547900537775612011368093531888792698057985537803980616371789756327586046612205049961873602853036847771755789111657348346250348000486170015610384932955265815908870907236491920650652109471914151040917076200041231566554806507755673827718454134536283510343730177354274919549341622302306796945298177233220781706896097881446761618130986931576629334036702081249295106107949172510461302471743367799329536575158624663082173561798281070378505952208592260060122597017927458709341348177739528529919982204432148530725660270706034009446440866712056620862978633208528366432049400935228038457461976359072532279124016715902220599065497578670326320641151851415586897049308344151636689760899361868893651293098077936504358219515450701373878237674499625032707182428600262516767840174593967268606952651553242013279558378443640829964949298682025662436954429192472166107988289013052446241902704741626444254267161376218530649520912871977997319735225431113807159322168088688016941236570342871173394734241193767605033347481589598809976408572138769401371795920839455542668316876043332349534182041426127373341613338825196693394596024377050288503351527932552984373998355268356945427902731808301238087590434952813538375282715854572086876952066738736515431007565349449436169425332314347834518195011018677277297600274733684320616128083885392232839435869300019160530840488093068361475408079701945078238540041251845913113950689482117504906697390595485798916044729343233997952700454040739476243443301097431232517302864816117570442833254844506253934122592071830120477353710503762810384196760771854490961663910942989303538271282469996900455464316790132094753908691768736562370274009024288923802950529845874079377687068651178461591143124582939883984418938959734933107470240631340767550974942952693526806789901093749320568469521779543744154276300890856547759205164523409011177490574021541566555649113770212936144537239881766443865052967165275905000301248700913053848787908357517189330348963584778527020443876892599754524502753992209221518563244000700986619691973891400778685707203214465174258529525716928022489701096402022302255939830858190915820754079423908761377651743082104823195692154033692175548416663398611509920832843930834879784574741551171913358054392646783449994094999439953736076535975960957532022079071853311184581671079280222404024113591448193751175138433911365346144034578908744787180536802198802239427308440536734319913228435241302300096593587789090574679217225100004347718416165368117632391390333024563044569579787346224494828447645366113670685282747030166337409382857228538968396523711114035824108591643461230629196468616413172708414064360876142520224072328586720196795654399727682972134474033806616125150274906838074631920800543103059998300195278477401703616836050445263932311121916660946020243069797519151622827010820624570707846320674789312924253181535468067726765711048331411148102039551298610795199921482029506010159393766033712505067977300689810764794252437706890937820252958388724687691723916229342713722288212639090832167256542758174276172755469405980478556428089869691670337928192814611472086934420414358213080313813364792385909638660168641063491481601822840712613585056863796438226075373274501213665773674695084447325662775080750942526836874580632563540138596365023056892310172052361437189042295505346311381784536588364648469771189090236940781793516638955424294263806988613780402120053444220989978385341669970999348976087334894129227650178977521491712065266620033798648190718579171700096571441250074323288556301412541987214212093292923984219214690709014551421963813533429739471331540328436569105956650750650235368143728733960581471942303363641187012843102586968018342127414463654096635864242853875172114805539610134261480033294310064167240436986964170678400593974892457168750474363113137567489535195163555742726495020929800145237416224991322090290933515376995857957813169656274856244483826271484664967502137979328621770979721752259119963507379879213929505104376281975044735604498830560026996480716628599014204958174013897975629684940958614445670163128745167109544673437350817355572552275304272595512056958581449904192028855066153264026885471245953460414845534115783312571477869121653506825380748573113056926652739586178940651888175214931274072546198757239082481308817991782756856500507887693863026874387667049096013214143973977524649528615917834615193866386859185775137813582399485870836693964645289770848195258593673613035473985634719006144184420530803814122535025295116958979021008405118366266002423480171823947517754105205469949471143180687901397514290878264860379446019493209103607071414779290433015411712136816335038780942830276662817821941282647850242586705752251580854324515047178086291436804400415572626016271990536991582650480881218320503681993484474892566637255515464637437082918920365576744668036483719715665213215795492142421146892938758454047927511651540674104071243801406164300556740512264832196463879402249539811416736651880442598773460757723420227472398993004599948575357839802726427990319599304991044576250251418342250766805000236907492481708543085538804931999723324248955266524794189313088864216743163221043835089634865965009601654645403145040896984398785420389420934179734956059339961275051382520703480016256573241171102545944371597550182023260867565875396232840058711963920289632273193414558092563263428645245389219687999305142744838451531493279530974553179199697711789910708815329804642268222587503377250690302250609663594408641726701657788621366285338191806071402588310264484395255826270292585848068011214308053049683262887007269504033325841702474385258141796969075886813153397101250180152268681665483562895611699657086657284124931144374523099883573911376511227257822503900715589289302586927529255513876577414469052868352748352652574068387453015364529926056979888184232121250384921572846900429681654138810439186795151303564984862336179676344386590353099943937892200440332326765295243328047355139256820906529877415847642624108989057479479790440518176735035878893567751122613915237500206028802786889655914110953370142413426836876227337780093006792789773083342248005039687103660831795764472418342551084001524878558659347074584285734001350171933431719945824696700264849872422045933069796339052298875877962257446645849599953820897059080853860631813768723521016754085662103762871190707885062566374119713220838045641568932656977927280797007569400803040624660447965429732348102456914510615007075319854317282244582368032700036628882956529085940886192463375600591079361576805326295979115073693410085514892918983274708372535839890869383538133953969582922140572148422599086229784939532053436271018098117446165481332947934294510708141906261620914139044223218119955002241479576612907265935510699508596068155508098519092640418347345667424683184962992782250696214491068928222379529760431859714796928416312307895687258240071753754968411710999468969444428037533370781754196524684265830642912084154162559789332398635245451905084158721885314688121106025808044422219159174559353301799517531565314380976537333759848450422273278740525472150336615447587526914544990446217674750477492146703724824332770430221533838197115818898672759323602621721812818539604195243303089147823811490183422321888954089254632495612121869399143562294394961574081679637694542092645237406851549816119543708807061404848438839547583834331757520948318679327369561048343185250949625299266980577109649014243028837521758084948006662108564675515633759832090874272063237524936578758077704631530586722027306090996033039702590196164383205541577518690000204593248416226790245927647630279564918122926360385275955309735417775102698303119530541394285919521691322556362986575004039654936268373854484713083475655467718653631840007445450341665484730184820722775123527628022510107313392356595151933343105079464204241716677481554668853738822787143855646633818453824997941243823577161268685611585699052118101435446631283849226363144263461587799615202516082134975256713435434628038272142876524556052404407170237029408645306939004711722950454416032762068544527788422299913345249356279272434915122218174275285698416208477060250477409336098970458065445441232319620917874005351598743692287234217514446512532020282370905754588374628874928020510980085224802320870678091649541394127872770110300254128549315253078435770107143414463694934288025790034088499586240846511195233126257902845475703613329713506938869341309075721677612415835008092047947183573454872008835151598892545806183556214710563312356729723431324375920010253868099957469788559761146379997204830987490286441399048320926017818619830678951713303942006363367803265460356615560947098142099810840592146383223687792307927164086213100808404475056850124938136925052725815131366078078720129537523462782138161880102553560608821898613212536777900517156396259462593147710469500519844945301980668087968905112119284056065485867257398397340452330474818024380117987993293149242176263739320079211830027839887735051735915452042093086144125988505590074784386593006656544981648341161482774897542485223924564623510583788192761012625688309964207641993193512589899379431311770349643865593711508468053934344147851845308046159747832458195055006206796393103291209256708010785142210248670454848815662161013683501090090890890377347599733525517876544133764437092920923740187018653804339057808251981381794720926278591916006399843339447562937526916270480510275503235058215266044701834076400046484571764340410475455299792465080342668308180855784478249836626538529226010349788272355961920286349537394809689260813907936139566630942474856125455867556624559556063651497027466349399365083622334672997655831215524734333438331453210042534395831048585430573870512936936185640184213649029022888006438546802400596857056102006022105047159572089774180798087276923849701666541966440932911342659544841513872251036866686162786754319367888641486468083822945194774894783639363955331683984474305135890687427931655815263097198852585743014495744528201178090938363956223886895452843049111082376318398937764424500316332117344766683592638628200516019214547706960030361726864291547376987761387692319326268414827306121689629383412195400146149873584706642575623539462755235794043447315124849472765639423248612682823467531133779795685453921413732608537238779355315283310971463167894815830377506398074222688134301570858210578560421882976913160614112938292576568864037543498265344472933519968891910466685159133787515309765393165947280855974813972226981613230110750036682646969752742679834930674229515665940801940918488732316931265378557603234437180063720637089535725965012505786065881305463135172562793092948118417356388091029881792661924632846524295272678503663513855500488898563996092127584228351477795598010655881716792320645045880082146908213781437888674254103396770440555155901832852380652930924887102633620188452835250524024598604375068140193400677336538267628991984810361260189694798154166005059899991942722654965267900043498296906956760861713260618627183113050031711494721877678304712207958203307848854436454436802409908858201241969302946473928965834204997216827334971416770547889407487009386961903019328047449222564005342840548275900947946461039958745218285058743979685495278769956310268380843723687654959702110427888571774781751892104566899771774188609839054248260992281894701434297814661462071228050591306485967970235063371252139042286430832417424741165861569167349264473943863120902316644081253530230320779573209592327044055524668531276985828755442323280278725770403991445502612395041811939422966447214232550508251615455963175618951563078881015486329034664731683259990853080336109021872506978167723661941161693104479253239113127723970408840512092038976917744513749360241276216400292872809010546714004882649584596455125679073571732050244690733981974873687867221608781440689808942783933597208506416212243552962284431234321237831093744332895840778482196480092555096070979282540217013096319924199305511453092440437883272119935080940223947936409514942441520226993534145436870559410002594216492576803554547973823392379493026265032422483720642809710537007269334184478653449436023883811370000754560498008269068979270665708176361116978994377023913661854340584933329624516384125361381702888527637855125109472495945461084453791471122432351315169013850406795199658279734319449314688557885006814848114424322455643797122066833939078507391013840023002316720488805413778391609742823780034134263587470930555438270941378099642661149927389741876862394291765011689939583488452711068655343755110770966836637105898271321770747214589292625909109101046284880165482373292067513876596584361243092296253353144447229952350642021138147167191304938282940918357870857533147032603100535122603114908880993132377805041163020176203687460178694762533680732230732651626113097819824433513573013892567993933965378442611839437191072418678195463450407705128920823646567134690720642989847922678309870089513743127444357829091446534240953206308459861768324378760344261242738812976361432931680907488263419925009323860226057880827958287892994189237315628888369372287034350162326199823168837805889950971849296512053573056469245569346201528992277725801353253976638662934932200192225269001718116711532619312088720013330317311755605941955554922409545783050499531256298366405470510443672905723807602343568140955449827223562595541440606035138084583582739845522707330552857117958238466344495701321469343503986451250991068839761400033108461356118167917758491278554177204739202556100576064098600740375166443174531895892115947896884290526216328986466149819345535230723733124968245602630648505722603697542213654292421561554533057216981952525252009980909375653553617472564878023471757494609006759237250682421392056671200023135545188104611337998212371543684058614117608472064708842179685860808141815945050171921728791072162268904609514081376977667664754974654132666019361269904610335728380135794085255511326886349973052485356297469010747891962171633661282838113949348307796810228853882436754372132069132726095344665137790769765246512062900289847201059681199152240833514671764077253356247718019590443446261686127014199051653594661283744599467479510411057484465546518737357539303955857416963159262992632461713800322518774891216897958592432863638978163115897643278586065740997275474947513427919574009634085961990005043974736255585743497620377917525666102142384609400905347558215919920960002843185815993064219652930814145667110459284038162909201910958063689373234164452158124964852077957999897119659519116474686521230759407688747792903773296323661255226099456549302108138692037162173163668804743167135871106588961179924768526954141915169848267931022954639821428300279051067925746666480998250874764327768016218150157896590803366297132269450453092210328489540665808448038098925146820922338301948008399628918173377098045322250498327222686913904286465161286794420506214351913613922579170413612728883235568141154873739821488225651991890035096950760773498734485017931871467872793422288773464183867377078299671792742933511516660312631490139536137915711437773516356128693868362199657952449760825660812176771655517947959738246291703811804558420570051460346908662418079349229305364542835670330407195380782120315052273405380822118090366812629947385387943108976920407918415872485457357816077675153424248474445897031048030733995051575001196893012599452993467249350500486933155173996634077918153661124061184476237449516038573793749428365617439903408109932419440151472487857241871071551462307144978853332571112523777983229175805483337865429209175761117898397955219317952649940514216273071013331122766890955950766126982699320409640953135282731120496242809678188979234937930870683879782050050317064727938103348361818349067319991960258684180963561750886524547515406570485635789025680701560978531144174247527422498083737810963855401882558371725928272201234955038397989877080319163853232967007475506288914870177252281066843052617170044738371738387161422169508749788301274306635673780182515314337548761927650630028385533986093504546631429800686368919830015446489402115700104744462504816144961330015830911707969581289695008530190187206115938461813711743750797435983119862471621873262068514617976648392612919154124789493929384254491719248047001418793649504796969677290823773950902327006053019388316242024097510618907063727042392256416394815929746702662181332549791700063449980965188588659003971834374319976033809513835879904435703127543657513222753951531574336503559884083642068708128611852465362478555087093686924803990884462873078828878896693836502303623619689394203795955937547615246753365593874133861106312046905807709355064415007082068059637193316441249617178173313163393561969218136075663796674098580908234088920453817742255128517189031601568539704756186378089954871800161192200820664384477857828050747167183416094179603926116914917411187860873954595573021690886320110138149323710364281441976097905402849596070274639201317555175894566353880055122854117901723667913791962386511795925437946706785437117148694513696150285145759294246032560843232033546581965400463257912206116108705908473787700319965558169655512742046422493256795259207208392423079530835968300933622750774245079942371874399090273796115323210945308721254706892043427538879124370415208538783048221790568428740526602651834973978694010509854989908784400602078173364592463199578068233229305084674822618539687539258457113335629372827707489613712043050633744104894239094728841031003201054682570007229344890062528617186876857499437811898048992206501886667059734976682616656556488238485680625598718166630668351239918386310958504653310078073279302517325881589052402290096026776185302798282546036831964610149418720492044021201558818640948386623305524259894419798849335100580957592772295868346463000549830891113898087150353698463930392996061205912700897759968080892410138216698325797473032044209499969321855966602461984981099125438081094541710109191606112319954245794740390366633521533821535827143079604605396861468229049613634611653446457976647355426773282819047795393381119531957101548153179121220050686958771131935649592942229535584347038174351032542781459462841817480518956572533970377119427229782982163092375929632621539373892504911747795068123829829941139048392072099588251010757481786010975486210539927655962119703552558149367996469602031927574847680677865750288824408814826808317818391807305588756057443252217962586084911393706610570549591273551671885735075580477966420019068103383756128315254520548404404958044788382122025820300567854979816969015675580010527398477577215141356236262886199845461913202341107128706160826132557962432290498184156057348750950344095008252961931440318911458104256481883301522571509765650524955986769656360862052308768522488848609415267471985602005551721754510495837440445163868363755560399655836892264247478532380181935481196222718441475935753953863292435910144734228224962014486635587072282920535477267149492399216861377653775520548700036021425963943913488211485455931540107838517049919570461983867831681402490515863034721000327801464280100391654052131143099557135380802692619744435533237499259422485383158191580860390831175578235609087202227954173701698886354515442184686488460486745321909728712535381491178270266740375221882658880283417003317611366368344569065448085904527442792181359174119610863488557325306679927668559514125983774019688011376641792811775832896065997260053422101647594396253862808742062133786041118353997169012261669569146024675947711527926230620910623191482297316829518292229594438802018048500986972469810492420743762222231007930428535068107108776924623739790202829400500636956382312473550858971755962534236424176442904207805528375253036830812355295968116359277006697955169681373061568584424911757493623757888715308610906517830288115311385936480426297788172198397899179248818567931583752416403215599669898947533429998083067536077036439954842850348570722522453982761488115855023798027715836708540121219548678410529826926682768843064385476424671854941448441853493298459872002142242040534852589718380378675841291562429330252666105832270891321890956018425784410427788896103320046966596844404798953284222527831521827973809646469469791528729476071597418381797749790764144321726202293903491361053653080030017472875068771961555667625285797309909818589761820077419708909435105871880164553048347205658424778654313343730362455308533333858942237694888546551875932121319752146362722674694747407660375061488435359230761689644061572752551951432214566197215180493300257340065576084217183130246526800400205697224152714975276619906360942912998666190664162362152496815506910768773724218013732415873290939255343726370274127212746177145423221078351262191729060707620131455768309238131659949364999594868956278964717102918227805802190246065305209939476243300588584871982343904058963154837129794724021321974335786832945366320788795529702007946634656798231680200288466069253973866396448463097791050869756576510736920260044512039891910665155702453499575422009439385596560820225448284695742631976803138407036918545168253129792635189002117662110548462720448745063195107496237896717948364859392746322241861212627967557418046320629427590786702758428842840519373630563378802177645822507474535144808602854248719365362145553899429275983941161118001447239981515037678798460671558047837320988546863287887025971252182011281357577884884730421924683487137142885891372661033266977597978902343399221066818749922899210635888225217100869141929742661287758327964354295013735862950911162294892514032393999944712944937087660255120513713183269088323637657000701394126907354322778828003408125520251911297597678066905801940589789177664868699452212323067697876670250002624814397336260837086766805985264615918761285106627114650253860645620119492245488313087231386197294918977413780401840692063077527163582696131509669812520953891743697308534644795936474290051913548178840272780097431395025489091661656651149981151689145276402473065171974613195972032130117209772696066027803195339897504768525509893648971445712307161286033500857166059868264564879412520188530721857741681018418411117892993674582625046194168467478054658370353148153592431679433035715719290807164331916478933571686883534028050610695408754456781894099040074511757165517896913154711355379916174679476092276920318125041388802687130300624010587987621920125979642044202341961248116434899734026800895368723138832427324640684471242367206311390682906983538685787178850484149491416380907678156414498439004290733142788728720057754723226707562796815093879365678232482942330168917407019509662189221818335889805596085717366292266965024188340932071096883012153908356861408567529662812982684974088301029023851289237484686839845738652038594752137614344157357054704273442352808898381894231858907445992132898005742495289386245200601604578530458831482270197170513750942512668157899978053875462212516027655032216545028900444092592103139191427739111227206932948421155107654796831000482207477159831732167711140551015004683589022081788874399844728653329494111955506657646247338173671796438783199729774906979655854662286545779514724702615042598126550465470981642218447549026443900052579967561895867686577602287462435852432453288912512717949025721447899940501805002859990357872070287679185226429935295450029847771760871836070522827509487444504757856892120345020762116233094308283764326377641232768719011905522376714178374862235341184213693050707062194733777477379513495989055973327900082408468951222456619111903805267255818029191358847348940793042392920223734455145063241241561154913334430334396189941694040576299017106243648145213465166549013906254834835177045562606165408056118855231925640743728354557038520557329343478336136389657944015549321202832553400143344987401779386687761579471581814685784517652703753669194153420775082037056713086176505432093522421961983491795960298901345414347923844313824222142015603487884566078020373666235332088363685110614906176350847695328600720582229040260881579743916522734708818819832109242479800120776222932561964754666912074572141896139265398481682859979409224720585328845750580735269725893830570850197264908832940817004524376564915601716773345662070772833033841395334228929422965369785413855177970846263536296354804993053916079195620164922127239885727146404382351349499562472321947405436010034441169859880129551809165288055324418703592152633352063369041597487162263263502341983849580405345655174456535386092688803670109436820673911254258602554245707113898676118017232558032868816861805543168563055314709560415367219684095055474393905564500808899890216266816782137028249241838254690406608729314690892055080469273073427185927922475628062297886285490169661872419107565846127955022941544221935692157595713079047379201223693969088070144866495631888407753655273181980458682110294641142461069209275725841364818700348914324387026215607494706904577733654092630003857727880430395410262059809491918460264467830370433616478478647983635980781262982178701030033499068042712007279372771548256822531068182119708563293612596388066157987061753665503368919017059275260694326037704748963065194166135797640345691461998990268096170618288173676320212732419229874334110872165257658446209246002193072734680361081097794776947545889907414570294441616869076309536314935199055115719675690754797568223320057500014903517835762895721496517312829034099811433438217245068208486980724176060512270343461917824076286135039750903944505039570404304146168767863998985778562992700723340330621352898521888384796846057496366327443868041812009712973337235176200926718500460435052292771891245268004650258257443156193475443235077349043784429896322266330692201285759585437191819900641920186029703299549599550028600242965479675270221140656351151009354714439654197305154505549630176823198506151943396091348387378293190547360554534933698804836466895545224482006465351809360046120579149137349562077423652796589462729474611073918111136431388110834446887434857382376741947217710312071833214956849889816592336902741126352472180872426631877381555187016590450526770262132577029501873798681921918021297304910269215064133677919347437985971145422292060472573078257831146356336024437456391033292090455531728092195174840612499615537371057031790409614581628970853707374996577846055643453677120111245191771842142877370208169013168201463039177143782739672797583467288680882593221847053646847484603520155662035565569914208379303641073156602035816196950846196512567687024381294593161301292326343052177255945908293635256326296874817598474300931269896940834101296427926674413051236079708176207056906517870015939121868382109331192021893602862018698009492466670570162797033909916101145891906541962536260361084530281712620792089448910810041218234739850782413046067082073603047640104765925440967595150600077499366648378671042111439570685687347748077824785581079769883838914894305943461245286182556478769696967459582995247502843193223643133912249274429391920969380732129915988813086909873302595228826170287489369863760644358804861970813868703487768909395208988702156980593580420104391644012545285871573005610476689939158104452480472760861911555644631928553365217508639154459729533944130730895619377050815321699044271206872695952344490255885995644999475284431132533537903105092775594975016732415684629861976730714958366302033947681677782873875452260765514114669188973436245909550312339487067155411226899645417183331670460603440506514905942126463673628556687662717303107845657242408650364834166355576901833010444070489508540578348277146730955293762288072880180919039161515901405349299051990213825405392171963732347111646614528972431911580875351090323788856663472904657927222210964417402322927130668495830714785101749325584750533718632989782540975683695801187234047231877993434615670951945757933255000424164295539846509358993289940520113511964094756267064663839890023251988392995180462119052290163635926230189369276718992944016706950113638000729020892327342045183766424501101903531103096630695484573105827652333429308163880923535029251426867334764507947121776338075258143831382585923712689775920153140684402508048354748001511738667497942248983829372174984947596400845315034614943641196287034394903025435687189901621351317275702408575793708454715600026272097512082730299395139434187932944809129684152968362082498570095493084903250347793549053502722972180981299276036351341192192360572846251446954163916477720377810857709636821291501567767754895627744521665524535617022968897829862802697084338464433811540773003130072325134783869398243981702753743285981024688110238268638465997009947280161629789149985665057100535769304508415853962257098415001861171873182974902833235559853238897882494572770097171220906809205625911362154686044335381840021989048342828055351364759401631544476979424361785369171846912479627242092248489312868744275672688609977827986813252928003677971601764274534325075605334386252773590351419387787987136109050163790080467111257798462196412518167466007879182458623239456469225889290700750671213087958758473595474514484920402821113077395549040966736619048976085438456009505456144510244016364238263148368692279303406106165579630009247149669487537996192018237695224847563347139595455989001029111413858706475638822966362258465627668622692771179257994770065572794882450816710749193214318082381560461920810063368105460609762415292570980292766866319633512730460573906880274404071861794776911280418276884294384399262043436944781890460425533156954585509071698450225294264036925262938383530800214032615632865960855290627655158383655013995710186776430958192062478645691964263413539794500496723013270890961664848544678476118653127123898617382028841406456242300323794976236305717449011154929232634575186463911793249176108746920553367336402911103402170255906358574037061686911657053363726799345975547965237718039436175292045772305946060375500459202853344842135670833157718259620858352343231759951566217617212827629355770542803721563493826715448968852653447319785833165839891267898677549139373377464057441016796825450867818034416400923452659596343221791530553174674706525013579469795260102157149553869273735976993479198841096340740156215446879913602600961447536318562930536007634473497215328327509947772823556941667120578191412519386346122517653753942968481848890307434227897396971200345584535406575313501580288113411870821841024836783763912158635375447274664097907893869230150348632010000689588179931224259976708868055090159769222032184002488482117339758498739072412723974972371991803970353944268700031789516063203776095580414239327579440808688967478880851546275899825588093068922825895704642785462502589195149023707572830554984960011440741939826141086413003160840624842896501596547071240477659056367582903866446751845518126959249102092702584633501492357295305110389342804840144799220011971170560803504305362189753369187882865953707150192772421926281935585910669228471800254361959965177548828664842682083994980387086469551081386115616285642399304595561417875523913278862387058868149283515581692066912610155328070422136376944882494055191676435422621908306422245404857569517957447774196242451792706944296318456582583049866108642394053273849366080581334794751003047059681621434402806752073917338251373105320447248103969263331449902814530310901898116999406191304382972586645360778973497841684851129260309298223011758490979991623491023214722307917830051784413051250814088806368145954609074698788024694590661871680696945251764177059584635979100856082774033672509796465407105517828014739665810565669226140356452778257398273508133585450332416563317702479672384433509534012282970361769142855980648788873013163688177224390287572418784632568194374785458740290963750180766323575801793034263696508478751520249394056416945586962213930094387462259760236726679262871437776287944543228377071127490220924099351005038565843623519202738384463366353535236154687516579015054902572579294384433288361040153662611005506683964254611529169295185395466395251121177934594519873700592766886367438415478623684801282708674287461869248926648176160433322353766404106750165545337442927977379274574491945746686011829360081415992803062715360474407839236978050424217136857404912675446512555912010434437311062921408498438904653849433050871766260052151866880560747731080939898659811091528212394450766222739982699763388312323010097995974561598741516564578684632210077267509935563855944537065815061323303739678003437959229506174596783812720067508223593743492226404023166867242564785736149817433630622124530970801515527010720023004860223173236162833842896400463761139506207786458122182468638395507362855740777892515715992976940954128364347607817508103083687780373008247536490978662912113383474862443842149344821801134661225585419750223340371769352228145077948846975980422590630615896122331510032611587900377043469051496915305813367517938217131591667575542447342096936717295788728570750120604402360606657091447207668367284944800878267250389254020760641718965790887385151989179557219186884536306583695521660006187459265673391707532118517246464718215239286944016667325338413418641030996627476860870854348928898593432005106899279542238004270405769563897983359432452094370000233989809589807250164531734080540249579746843498039107218330379517605609154678051385267002892369713878064158987799285290845509938153417799524476784984271948402141645374817785025112069603355732614453453964631306370590237472533880735707107397983667854527193635130756031742240373451254153746360618184559829498098316325008864019926323390304316352508484903084158108158177075881209129260056641154133977301887413180541898755625202989952378134491972376812251581918754518933147083201154650966111428847639712247671519259654890065851355962606857763212298869644687669111424249885483133475291490275952119267200929685995899441521028663999514536651030347410196980783733720146826939393707366038597825858378233980425777632431972301812264350215533903670491172033121537408725278481587564704792530805247402268664496507425321265810833890091020247317176309994785356100445124496572867240329564069063847931174062273969164356789481652333383516437631043403542140148421872555594297234479102438380099107880446741127370178518171317825130865207893340106731557289814381648139733338113987613475173275389169364961270199169585649496258695177113248919401236013372505182523078268229569884722485158337495739784372044307374788137754397099910897447625468735476745629126881402566392187448266373102042005521869396533682019841387020840771250416900789919599585657602308093279587133579320739125252834162615446371991965219431695221202475491280324988139625102067951278556742909509441843445494832799165264645426371631976507264444434003353797281627381332506017416437087707801449318660966302745679612239936035673873756120003589412362580701143491712397263008544834794356364308359571088544481421229705346326323713485467537430882944876514100138192531738936720621913245838583702412069593761023970033280641987044167302792541238475271412008720345168782349050123737880030574441097434328688327981754502208484177331372817690709900295037919189149056149742731058897314110906873397861240044218221154719867922876862592592643235624813091535814208485676093750740634496356318148329927697856878877044736798986028888502017140656785629648535148944331000267029136015841249673902347933419123001612899642941908203206338251105639736818549815357214191955442899097984109651620093781839822380577456989208109530357821143512512848825290885910067319021520613344522967832055692200187372386763421717928907545852868503317466100860087402328750923946958811716424926957610778334245390259029730639671980368991225024828630638912986618206218385634738904210177167765549623329639040798084478044395720936421500630350813368722777679977869953074261064232822595824707049908356625533375054058479484570942660764863147619000457763398335658667169858381527026563064499330922007826387148415324367824614971807556820123839638689575501175542576653124418942800031280848658783404685179202239500034581709140034760693234727866753004776120576353431087937030680512898674946357218392242414813582561892117025648407279004738613602728329379535489577370632854182660581639618606754431168139122493978966770970001810386558206200278788754495918570902783482026313689379794941534652662812155529774676667821365337872031538412859482637411312057823698421685586331250402611914653336402932658327201159474535476666918846807666117330611560403398562149911958933867265774370773290114331706621583770189129385843034699729776623736961766879266178624102130250047165863914416002177435713905540406404453313838001424508055500447741707693526152870056110818705199749174350962842213502412102037223538492242969288957903278463083109462707833860066472763786979607803741859512799669860517305323166072578212092350694830578845236233065434916998979556095123557668803298208639119903193365007731901943568540046033902696976228953842401570229200953853466245171909708155853165949054493609483951899038151345963003766916573677381109396233895346093803326955022095618398603787445077691191181999279138042372243998250079302600014791437580086626884604959881162438544542166987197268654089590130637742425656460755375536868423840887455949895188265095683745998233174542295091032197788568848339980824447169313294210022730646448884365470744078083987987946605367163765733075904920290202161591939047252245890254398640909686892051532913872176423062574194030751562577120194498507558936226584999299065399976763355377823932047697409845162625663967516124825302041636420755357425741250759241354052654237839057762180081039108025762215023199469538121823322805001069661519349264193526609059824282446964515465313178344861655807792727580178068869404375484510916506685692517221339799345257664336195011568347419375697711920585070100564167942069633595334548328671413138039264366453041698051377954657024701792941360612211013349933115254191778230575718035524447577474634688292385521261185664022792730515213720986129986194846819842801920211151102427810149468908595255678363065937229592664169166619505633261616252800221223669681930719203901195916545719042084384635402860605231567806883788142602901158359270840501195727883877262093842313541642573811422557868960564810243022055312267932857744564348759474818442664271755428268052185818801522894016202452427204350366424499403147587674653818087805442537036040847088635892043111888295026444076239874219236326669135686875281935681596649363215868022719294320096101380203201861263966540557728073950400010257563613918693346935987184139068582185263125590144691256566589819479953366537301738012510016786962390442997871421945724501800571612874207219399315920506590019968882905768618524933511718131571417219481549923959386715024220205377344871439940183715123820878908331834682565849677746491597698840689835177181332057235255279530854846811011310760917672128208954052767786928933179379138744618728544623363581570256154672360920169012816211902394498620951853166508260694694684906928931920545459950762630980042958418022025725570711881873682811404679967318710654478401343773886343263804234924644371363944383606598210171542202875159498036060669320251545127003651996172340924325034310036043403194910535494266718565589467776487484321593408539904491463244007867058138780395498007094389426155397040358372059687064147610029520589790501313775910100020310106293049215705428586393730508848766394406434657135591673026039914374956375249468775885738683589985988832416336017955798854359488734947164041308522061583403812128663962938562779320238263015431274702783728975301345257990455769236528567595103791575276836505202178809375056344799690453859808398742607332903675657975782655901863942550189396860539317428098228118124805983135297768162593556864210080823580528726775165591792292522873268847937890697602566042290700721640732657642276649406530429941929126019050162336394207968823319641556074997251772345903398695996068913903865856424286333659019404089283975976153491407965283870335642630866617569011792717626196916971776112785032551640181794677662062530434995880752035516129456761695740436212123643294989820233142272346779707447317519448909647447813753888979535179551277751546549047146503590697492400962446725226137510764832107379041863635264425155445993527060868351699946252368994411755425201786901028154385012462145820878648841444801723986106698064060623209005323569130918826727202269389360910809894066601386789866380887907146627734700372454358098426940103500066594265458057343201491936333995186962884690755395036099796517072573141773059171620899228677819375183702805479994837215547695317326216749464478557109326450923257540963066365420546677628974988133541569830268205575589795220607066153755096334614258247823559593292970632476304747168185468608548149553960564597630603194915779197448355732731201945827485135695096594528502439863382043733053626625100503777448464528393927520507745455040899910294881349552559019696294560218010610359227543454949693827231875915460266949832164216722921361865889682851939484545271513220873444534674242849718660648204246368639696259977369325820383496283150347799295544917940881330096660927729209511690551788834959908123769462976087448044167589843229891768023507046293413193224683072671076211760071105723743027957751999003258303462889107177229622120217028508313664551948345579465098670980703871034015606933609970866553467356256588926192844448217708026132267892280594498257124960523788438025296566414136039020835393677934292173196909070212604927694237008308209287246947890915748364109301696626026074464084691243302280265530797646918536778904881370037340818842853599057255000443363151829628262776986986492341771082101951794816721160559493020182821759185685218405928286887475511463839804794309138819383895539569492618429564183023594657122009953689146330523212836752686394228035669232278020251490344856622914211050413781738513530320592783350048537751594332456650591823145620467497086756963272015570871640406144208504676073469695244414797077776926808862630577418445555077904587878738678444935353067093195279569369488962889532277651131158075831705966264282650342237764547053105119558544212288435737381095020927766461928500791739382670825344940572622083138816209389082180032494327911032626118039520909529976154052545815687779300650342753024701208807145399577379094120148364761064747266317350029644666425611801492680483302423490053975174787243842329183174926035173776208184289682227367573131547605536732134911564089374535854577893892568615673329066003635086526855165541011858253959651613103676862093923230988482051051050426514146478740682330408213311866346349383745639713882797580253271443506974349251581672343466360584106375178436237738770961325074388600353143305704831163767304582977525345678881549684837207752588538519102798417119712725501997803626499711738925278990940990869579570499462676855787176649028864924420566433252899270277774065741073188159148932837252495358364690127331758530158989514077649247021770475466608400402657106832587882522422607932733426978968467595754500649394729453885517135770279204825453956102686786992890698140768760480277825032006675593725906210614420908374698333557936163800775806220028111533104928695565987398240910880940231074712681246160849246686276731825923708331617547026885700838880316435364091732841643528142216617123017265164849416992684292076237512353030562877222249454318505372427833152350922311966979114550820176579298981190102435393666505978503572831774013789112226468204053857630695579065709308898259027008336632902566196789128888768090126621296154103854237495064946485895196809488627606579146020591254058594904620203851787528002446323217964751747979765946083624683106219138795498493877156378666823592507543522053959652761430179727783772488452135283853017566917492834656790515388969404635346887446273440770688641322926206815706413987078664574608600667602355503104726105441070025992493329177129943474057581128210205324240598169827916212110419762833244051270895875453314325931151864652333316128037421339821126189838959436509051311323776258101358276792695203658078996125870890990504178075524167875329737669805189066071024951687385710938975305432620129461604313092872050864871290789760956203606988718593555929935610753491529347662826485878703151114376403904544378241915806511990701867579492931170582443652462888921570236181832283710405583968559011165696586434137541704051358225960225052402021865750682107916182425179875902757172902942833054686094343103061294106329178636701057942365195110040336669226360412338777009384819523322666580018493115753875452810101046464325594544191637053493176469273382978775638802590413947939337245612480561978369386724584155243180386207112655890471267739310494416816434668657271505426689298326275305668535756643925542739630358728660414046700224258833799194794140713256368650882241724682876778877228819182118808122882188810055794119994785696107548892710580053589247554282610132108664276323660346108908232332203192925135355778390383446464738587474532677577730844314093214282319062174077075139061729959405736298461450414539162959623813183664319654810893986489549073074285890089547298069425467591050459598223669496024235849567845538445561851704139321874845574155767432428165399769471183345264956055159001900974367681291580964334854683089438262701451723536810146205522579375855759492564741654355854182297381388317762083117576232304608787695162840339952402227323871531868864954408160161527176041568942704262492949288924756521797072162382967191215517660184342159008473546219397007841510448743661398476032915074753861766447533385101828033531238439956319772759731587887315176328656112605605295446824665404900277443530061954131748674132294285788550292921648418383116756115776418892215585591481573366063493359485221277224462963647620431006143992013309949869554853800480060242448007277651499142709957953921595687297411225233342550426627462017216614590883532774658282903076760695453338841080209648651315494686970802179698039472252006782535692491719838529679640066755562469174795376232603218480016394088374631614589224962470980521626639900740023363687284217637431191201377400646264571376744705901448765923658130188823309594855104051501062840304252669285685383738146766323983842720208937808360473100015861909769701315373171704118458773348006589711184191547316490826531107701636856921482592012387817879516710494329479308035722152001217152489442386906315732520612515569410760178409499753604393535652551238108891736274928499186489628374186715253989152418887452519498935172814129892537317506434037455679637821653217333311331126778434622944467855752253932143156278628277393531495737804813522083167820885824964546716902937317738732936950600719538235975234522455642654912824645207064349160450508092445873193393080210754850598871484640597417791401145896064674420850661144048427566715596347140369899241129759320950490464337920702768441693761211952823629856110003802923865440951165438586297128239033505563386165594962318117803991037594157804753540743883477617078792298339663604507270192681549567826559890298341137204210449304994064151001423209443757362327459432087664975037070059623458327856420643978305922974927939035798974207187052246404957600992007963283471474479201767442555265385146414179200321213610852617269457632268103564957238910285955249525014907301221528504194618263994385503940052045113439956715858971836762046773922504353322073321109402314167591714010722997338095762391881466904908525463470986016896786805728282888586597641674550864032617405373848810211154535091094493661688606229189933501849820867405000171729392498455030796766257929077989419399368219661664266166051879477592423056902591532001812179683770618217361596507827012688275114071045295379411072869776412547173241906128273747147222887240805729772887449320728521999807806733372332630695663867592402388199569638779071319117088688140864144764809776409491681687054596914983515623710259928403680413657988423619364244595215384341678188669791990874996178012351097863762568586649868635073183523121101282706145416978286047345090304832994538160419131739452904334088789792836519572192052047846462384779814204675334329179738417289065118154489621223229252697337969432962980447622778652758788918110122422810425808901061303778223150152078655439792560492541141011320208402366273699154208010464680962181837541120724460798630344971564970752530728800136264269231326591149053918729877055654082914605472339214972622004405008831465404414421956008271575836202097282855770818589944476386232374421007455592395037334122815095173359747499431740633335041027220100212194234188779774258827226367741609613035328069298434704498003232289857754487418376275727612228850569389472095953178429473474118886569347251719330371732585491767053895673364698122798210075108523637118141607657475955799517052399249430165824736086095573764369732538598837964394683486887020024780276188206097920933696482412479799839518967452522025366536221851292914964822058074990617639905444879889393647736726209564871256155079467090102139526893705650786661296481983550658455104656504364433464887700571770678372672727741592928842589886133496269530404767699712559564239032700991611845418603069984031022725666213551064503184276894447193197805917714377056510655282571982589392534892838372987427230925789381303110498962880684458056806692453812849984797742321609116940400297738206575823302082428787733628230855357191701389376547275466444278262003784512481557969041493639051931803849433093479850322576724826506413389191280218864776464537052004629058222563982234584866381266797938910506436865240109523937163487048958308450737854900410792876671254232124438727359189214362308928124342157303657302233727536154368677121493610212961827094771674268973170384968366154589020387093808032298867948372125737103874532792156655615696931790034367932376516604076142934926708670821805493650123980173381626566058886699556689867860919680447411008390845619381224237567016388184997779627435431887234072142580669377911299588481005505771587400287247781502870843469315396557456664023956634176202376737632942615741336214007381985529706780684631091511583302316510855963766697933063328666193062079045117549012090735647999872049753292936898210632910537952906725053139767963288307347449942400277482806726439243996063332925026214749114759454234700340799941088322337525358928245431443613452828911040004016153858835018621651273118253134717261801456628930255418777825702860477552419185718487419998963104239730390276637672539558120305329804630092269451745792630120361217317136551992962519859186993017975041088490249221975745027268407986942510765485696346157433944673206956948959225681068836412865712650988322440970716762226756288819967284258439991820417413879796818588640245409128229427121880676383051648412328038957140283685439280646568670103197415531667452253669724698128588200152686026564296026532305841067728754868022796674832052123126868409689815454104645587977119186042394609075865969910501644315424476845794554226653527510842530430661219518948871564662020897639763422765315446880523112628235750726287005188046513081352179988608320165799614572780713443540717332213431060947407519612490384792921409205024381160613949904417969915140211585731165248458742739639185698176658632321095400167965588537846899944590913628275813731373646773067831178392808758804785351090033443729027696368061327365958274640962800230612725586144427967602956654313773028166219135427471914168773681096886080796946415123123187799466899480794495181641994277998556685214823685082176669127432782139582210315543571863594726916169853476971145771304660842187175591375407493645763984708527336081779075282853417006999500470983452629683871502560208044637195528424824107956303890867667111661992496537479972361100590118239060596332877287583952628485476867065606974409488790870744219215550500078754817295095602508999028862192832848863085886892221272760220148780326517634505784967562031225438922307108104602710541324107267163780760661794902176301218882893017565079981182782543240575008133540366437396228537865695378603093522396537468716270539121541333826270011147887855882066704370739568841125595829137901033698201150263337371741563848372325112933968016715230832229492959674439766057764579688770662470105368508674118625759956390472774851485608402712786916907743549027204089579932940318346020863588390565493268627470871360342930741223385953586477949657107358552768035741594795424508735769754713126147874690466009708024875293090655841826296274634680216342578776049568887030323787166618364891776013991140006907856504520325982203106486492239555907492175105002648912261789522135882676224885148972916117279772006021886015275332422866166602864394904172527996043827889453053006373894793068083486688430071997688932454204491663711500505441151791710971067250672267611253006175035835784486638181275565512607749123062531481540329942571213235825620322141041027232885866241504117575305180439005378930871197858132930597899528321339786330524866131646435235164831007197838833300472317520428835404354784533895310701301527435059694816523172823891741705540815999522874164993682369748537741816153380778251236750791280724209067653217404701386106452321925696324042310276349854471380763754537233197675468093140693777450578982666524636210595691972084435195676795098404589144426104461342091251709800875234836162883771425862720501442816813278925227676293685965702155818878548798049537700090621375476218078508713581406828854024031570029892307895966649630320070228441007165004955564569281093854331231332155490260010559535103173961999691245312660766936138687418250606174044876891791880564507927685455946413092370554923464176552363570540813487801189011077349916060042593569320613111239494365427610451347312443304539068881280636101830554358952078700020536651116605262049873089561180616837539103925101032290682232588642239552996456660229993612476462924939595277980342311640900874565419006291916838676396905868559791122668714484627035679476086479338505331968952022761881863390410283271645817254714429522714969731674531380660738330086049244551988236028701714619522850987362034802271795106114447236812741759080355700836314800197538227636122105140611204439823168496866895447249766854059726868349772643550160256432501665870382562323042272680905695783158577592514210991373471201420774351585092167788757536539811533801317338214434971424992011328875355238074275831146035168359490571271560542464080308675107296115942211796431201907463401392935494732112716465788408754863527856431741182831632576351205197006772076665626545468269796052547846181206276249970725845275642456460206182571759962500346475454222475819434724178727834913987839565250917878375558633692591295874927655315355164051437105395302764239872246679092346654571515559660435050829341922817426315901526702377532988699230840606827980171775835516976343605852404987111869536425052921985459666009728606072295388682190758081932790084210928850097196527856128180270019938482144903841397655702267519951423348174567606496826886345042279757058702067725889149608820389578698441789742974758485725246507921901453172976718268468803579818376159391572476174326873772493625549563516035254343947587902748701698668810911614096723999600358344422417709561753733124663576807738604604550309382573993323263363178290630805060391086791980549263852730699560233059237042315976991343411298986679374319965199432179167489683029683704222818964172507161277150543710912650750635526953153474439661506206406574069296532299708122251883002413693347833305064521471852585348906177063081912118010871822697042772502331139111741156596857143398007665406522120083407557858842310625465965207297367324464250326728202215224041472597968473379009306461502655941709686480076444840693154220928628024256249214689890801761693603257142126057253885449132678594216869154255942183079316042088351325188213201535575535083334342194659620828311421628207244090287404004616375188817992007893316825289874255760712168161873901798977303652876831363206516243183414069297513665353627108472306370077638011521293841604196837838118116224881844904696616512022396312401103604930979713281999728941005404116717781028708306008410226050508182868748834795564306823785176063310873775748943109293957911734915707746641451508750140498062615979025647834063885242702000358394326121655101433934104660880636036945423194157339810377065826842651513627601989696669753524797281491348259846619391778430305260502802655224367859723128615142573169330165856848704239054644866201050895516851489085662758583039182533007844110143993803891357276858366634609831898974451974089664662816687728388355542137274209703835927322516013442248138554954465334231858852964546781669191156685668550119070498323780498637724351411121022306702236891944874642261959360496439392076251913351940613345757354638680597163397792768841149021979953783528183040307893444205322932552912554151254092579843698149542972142591172971888239319862729437787616795842334408264513151234557776693082232436178221696239468780455874602966594764545697552015932545085200375620514596208019545058746641993581178907353484679844000708995181836069777432425924766014718298752738176086975421675823150307006947744084486658498145546097700291665265516849887791248447522434187969424225614202541692317416447626859378136775150061485948665696280806545930129469010556532426442187218440747652210457407580370877975585328404677616588580987176403082347102902407561818644725504198677573693552559669597314261829748992871154970590494840451801544327246461667740081631469918815615083477050618988827468632496547632121170666880663418847871359635013016869233897446159614513305502908954264255758476402863737965406059407847922313859337729411789954049221992204609488117998971488588322682709679434447195171304954902123257647738374072022797457650700236222168594826522411201611746256284397368240268895892114685808501951964304395454068904586361064569876762670624082664582250987810836142576611470842535513538160770258234425147516821745574927076553260867487530224824592171224237628528387499544159923489506409754537966315266927624741972071221849694626239167450938038886892169656338644854017534261635989460813277416111013578547160539347696481595615326778339246430387588740413530951840982980501250410267961803441573244272153797737552636974637401973172282380284231138254966600100536174245671019983777931809529640914369604948291885779078696963678719727914254117103295915150234385437036532400042370879114661986717876490182476952607172019833303198770473648951986458067283150546453649773235645423857843844932030911836406448780810181699788846607367739288171444952679293552618310965554520345769840635892808172031128872068625288510945899882779054466357103596040861355995152389803732979419331073306084848898999117583339864081326980510318043462588412999008152777863672112791434092471081779969040102726880714139300609718836856903064931213335288953667384689108312522785200241259625167706054349443401608360195839606529185044150782850668380775802011329107159500983070478865387030525845987988232658101674136705063632273884613636275628962943357598923005884883321482539025542301957536874766511174636092461696783236657960902868706907638857290308725028336335629570899147469263483829816413939157584504882456475857260598770862965410852557621874105074916920680454959340876854744657094078107091138866724829516163867507438507336802059006491516098149569150107233920719859230044760943019708821616553279756342278320206025485201315211917196901366551626253617024743514803406399842211268535393825280460289725776963009241660931240401843065308037980012108547884290159961081478107023227596361265364345802901685660245261619890255772509532946113813221982011482306966088914824326305450992286017563133791537810699086985577430659729310011876425619597692980281484700477845613883143455731326964755877447766552677869650543163928268297733283655239549538968083649566486460004577372563658948048860304513266714599277684784534248763268889358513734810201731847545681916223120388173279663034217981221337364377388029168059310187458204963484171353931900006227977259477535411240695429765161756589870133860101403860315760390296395052007640803070334355828299370265290093187270335863825960224064918635518444368741706877003399472616759552593491382826640791513090595901526241433114639622388583892682984877277510557548384713931818954185540666704299841394910903591901032497247670109189254886780852336828138444672024593964336139359814739598718282619006053473590002265002950151564187057269888885354326971245633467663051257317126620346818579496727460124659746892198628791636087336680007619007780634022852197625172695260372184089445320504043448947059765904318864513424257270348886790290697780667622883382530052339752959224265550575431804619504193872645257988226180897403542556085915894650060422501569168110272487515911525857064217555679885092417119967041173109677126315723474572559653301535861058061255681108076129903725826667523115316261754654989630459319149967217001181546930384501418581574267306932045378906654799681483352105934288296751771173958965211058113893753848560158089628669365977574732958951590741854630819191239087546975070870183271143903651379080366556008800717288602813370856011132457855031133867529232758391187765898998718385408625375064973005073912260925494763620738688272051359493073790277304104765744824709132248485876539532575800499030443678928453760534526350890069872204650333540610412365273214694721258631826625211693961227457560177630982571030498276051287424904764842464796392512045971166413140457434333184197540253960889362702774879791399784050642024516426584445254380349297229776817665121414999772614594875929668963967160332051082944302090369598076149538940200202368731962043984289895712376133674809522478747970459452919984212972519718803512288517201278756669050648823688887408983388074338905529529865414353410041453470227338709367264101588948437596372737217803875856000636473310473780027347476816639515222858448856126688106679096963218009286105272687550231054940358422598950024724074186227199588505845317299562620203533463256369554615792688855815811396413513845113658526888501926855367673605783514723477893795420775992025096229217985592735140386904625950510435209956919626531205402611588865382320012188836318789467932056178319259595813186334941780827352575477407297564282720046487004431165602243388314302428580665333435134151690630375611331778164609310294934540858168686644380080166811742596644369556768744366907840837014221799183891113104977999306255681561714824277495483836135610092677176610449945999982509096040179638832391463123485372647161979610567253719400724049502379896833466433562865856998689494353578142067308325072337913986613025993207812677291821107411270036643272484254941504406574851312820354947110728795949697695578239610868481737192532624399952148541028134835869130941889064868144171626236457943838515251291268587146534362320065977474217584287889875750279776293711664844206646622945438801086632322531713763035288965085823197689594398484891368593345706295126429150242626617212033707076160059082338421708340001175443581263273551733182531674113913580843929404420615359963771916161863914308565681270946349149911552904310163700531870450748968359147279341933814440264576028223118808038779384742591117103358329130721577034690306214138246724704173554131729108546221802748695279202736382559848275807149837048638523312366992883607118979889967945812970091745228183720132412794585553413584735628761847943368479292858321356341092941462923226993193142492503704561667144280306991105021501140733533828749425395852356564417232398578824695903314740612783733499110297134235355914181994748420305000201947505059042984554541753407750038719981379026866320881633790348270065727606908500704998726866875825330630047974334365991872909646975399705539213293575370276592091466169561208331521718847383414232775840562782598318466547223020820045062923030456013874064951635270195575169626174106011875267039240992228814588361421624174988795375297352255689089922043132641185062745650887791337216836818832550286370344760595988267482726081794273888554264339338736556508091481115232691907774981717521901938888365928085987607237929311727005530158081437873249931892679769013908508206978854364246456474006812842008472657342116168151964735315321850601115427160036509437565151750837677546579892010188769745744626969620948245631786804118294867795792214568155222825241185523312932399842502595519336742152967275552150684930530604117050050137899755837044717316943197159711614984581901426121529540654233902434260247870882147440582637784538999565585113105907657377517548945627212986879324943658010374052990725046395958547401592819232545378494351819948801247735521665633260413808870201300075657028441188226760893149524823984663757304305184515945373082739946585988655621094794746584628253989748188855969359711279124528571541315519201914612805772892453986044531272943165935082177612788524155343853125656595888648071413869995879248672353206094096848515523518368089849040137516658002426504827962712258531618828344703378811678434359360796126936210597307188360122143328527856617678441651935582662524533624763048594558189650818228209280275938348814511472755582065555816496782561297944423104322556714830935858252511002442273300670534691531825492449112250911500618717933037001554021960677273877211268521817999812670637757634131590482401078983711923060532367559212856222073970744100075165564233383730705914124202790763098140769992851781985069172250493947038762912752812637588572859174060994506876445583353188178844181445929598526643869621724508238873558690342798476684525392150613702961675138313466669931197845736001902641460223723000251233833464616988943209839269186080504844058640299477733452875691153205195651969021498211709207010503388874011471457788522949595485160539742422605539235641680566828304978224425787752569520107281964935375656031494478245040847530080518317152177094821146868645396843043530932965140063405496867914092088361654894227426667444119719443552747599347599378189888618805062255025572270258124741569737634785006358607057687855288151572170232272607763021986230923396651366085691483516605639840756917082313446906226516687399642559682336842553560245027667863004015518987899897712116753292840162415810206021772010326685714464203107736036914528171583911465692533317312299355601743445845010264620687622983019435328742729519206317819204545737505608865694038528755935128945273657793057733214225927470996518219529331582586753669846106700672532121052611892591270829643900948621753267271861629592714179573980699121599836749467614187982922283396528541041812459267637985957414100765266605014770836475554470154790649297004628153102170832443986622864370343171996465922574648459181936549502072322218351984856069184501443345099040873575949825857864682060201446865072059944746996917523900638444699386817582722871699474560932358698175893834578566211496094211124961210577605884817813402949566571687517298849476316898309946311935276452353506987055257188649285838595659588264099715756140964379720190430476836950160701735586607585794224592596339365441813124965627218181524260188053984656653921255712706024087778715266418927601120313926156041051783039872219556104792375753307430344991521739704325408825930109066417265833414369561648663720666924307723718899878341064410568676238465153315977866274436971818150683571455170950701050787470594329934242535868314225355375605499735776882538995982511563915863266443923018295319288011979035164398975868840316131922318395326360594451248734856517865147800567261298601991682838672463827695447963752409497737280036597263142048183237983278432482051262009175129743160607540721477931833267387871673472622557894434333122815000867589677787881501320213965323360766859191099631416606633902187727857372880902386235585793927335222246587060867991082046445672210263312156962318352903042232624382374169337180835584883330523570491186918469294525332051568526012324789270885044857181274813597244539333915161967994996274735392041992747962844854477099084553237179597312723584554451554207177537540178775694449347779035164682471131873166908567929217537807264348253792152364249566041743105302283951297190690141219358581935282595552867558802293241617799072627934389850157840172487451229903852790945474492292266349566059268080473157321772551690632380328133834451041516611138094588177010821989891419170225271174575367416686398905232925537509735903366430107218108339625025334490723554205919420741111614612209256355655271670392775698640508947933414385896710561573993929883095578781020846124966371268806477243510973198854321013832710704303627785841671036605255110147009257098472421228710111615843328275566582208458448086448032956676719869844150501071015119966072579838022203941961190507584637384489976894349053921270377042563894865560487634193626077367505298948783002359549154018926574375453123663447860480604547838410348700585795858329119524836937908163080728916941830412522405959580469793097800254046092508165356249112519784132478752300705400511389134028821514323745623153559357112975266836539012481432597950918271569721816675152355208068253582101275057333695238876686813163230273870357782542923088356512663210917227178299961637661739496291477705915075257319737914294344322207249811677931052775397721539036811088130690039624605338671260032285043415031055613753312526192774327284713359125106778996207289183326558616151887179944220179244033026293549694719254914163348225962172832381955390352550114558241637282524200289755164898111363813955247697975169719252400014772743337839164068341966144212515353778307321113755971426168174410857371463027026460351059970806336680905075159238427814783467147527958655307387081801965761008326425948914075908766302377075220779879979301315084293861276848786075431962612410526006540374742283814714729595770263651310203624384267031149505190344894132562250535190610322358324443022365835106263603651136574948903052681028888193390611168102600516797939172177758708683491970382860207977765808958075535751874256384115786920235651312408183599614440869995698622166355198355419181394825821379158352441084234584173412138343131224054176350108612788104714860501219675795517469469445295828168450659261608654226178661502221545524109404508466453995449727575941678837454598379709066928303550278006614761543248303923519589662850486763372094628721236474523821156907466128728130339066647713904126192382840209430570013306744091942596633374370465580814949193462867170836126954842835474827546887190838186806296271020128043601319352754770155843244953343056886030832042171996027895507518518808344025038424222109745623351528201628507564253771659540768348256559602259105625249880654577504196691166241427795987346488991285153075525916877143969364247293647437152744968776211626204890906980833670592885256022476952138587430302000530740802101594068508424867892985879525637475777220222022957385776655511462615479083622686833603212362021593770166512923206894957343082625753118497763849944114699566094078634988102055147244502044387954244105559277958971748015301126441410270175128435010444838133637709844185510828324934233685742393072858460994533648565979625055128490300041189084641270115448148477035920774369461444921250838027333026533295567100427942312995360221377743564946877206307658809439823489840686133059715163130576257562128359976825061242093535370948787386601268690000682172150072645772652659724709430188850383977316055033923968734425370846636801645451567936002673222979024870214912330289527064272587682929671453301433393200762185986460940454554884538551570114305580133487142651562269522567717256369986974926376491873383245181731195471795832845603500356785206681060134235971674518431902090883892338696198695499312496461671103522698222371281268162664309636724441769136150759189473421750025810851348858252850150952865030384620722665167840922980242453172513840696958443248906272865912982703715316250135667550752025100096858058987345619676771954315695274364437740168296777901466981031556372889020849509738839050237885031038922539699077881557954231995267051319285773325240925773935018329023643693628591098298072840556738961250706288242920167572470387515221252717266061199320888585254176253145398679488010602999803207672729493207062092725449998470633617767218471182521184272068911226788945307557956342488289422338071306623282212246088438406848112428955712902324304471107663804691635296601783620409095756021097692217993206940330699070740189762729135540468586236657237279767701896679165590647731307161763283329480017230790279631291774614759940554797402296579029261423179280282342808163265086779057623867773937104051293639832396992941494765752276180617609993697601869485330025533018691771270919008299979992227818814614659659055062693500954407603266688930117225379527765634609576298630067245232628993039064638533681089761989780947694107838698305224627176204348458632381576904036906476054658341990600733298577359613205330344010171337061884397649066156152675904321482020691657314937020827563176114903836286577913382896789864357357977308350403966274200311670976047339821343406242692370122891642449670390522007309322879752244801177253752200630196854142458913083262527820938199307678333568509630046134726570531320078943050268852524291418692751893708666304505184742764202732844904928156829841659436489020039819872160052595314876202995741029871304043367894685501194915699041293697413205165269605888014616018916288014640815146665321049631922066635559614728603021631835799212091171277717382105496280524179660019255354738906860718156632255722488403575207243162084449833324227836624998818444232731655931779036294300176383994324177200296216857482672033087439848583947785098822815033106833957554814137819072842992129994112792631638906764711958177212740866098059130000411703404466184454765287510214504693490276426551097237252665628258207683658819145794919982141037554977176575788050307060256450068761318637635485631930539059471318110501834872078373315683146611678959206653284892911178363519850056084511984125470149594840136814026353735613879613873523245147982513830403074067414904859268163772753795202228260091264614794152769646213281537119137780376670132409987640338417036601656072581597561407624044859567677270628759130122043084871296047967628789533464219128105163646834239224640608579515924695818369994913166339603909427950595523826160375479044610985070692437582963241080422738719235514503747300859190701223132049669237803372430773459393481653210584974178603276529710692943710158323403198652172209382901348125618290417812726146774180349368697145181527205414007786290887970049602665381888179524506070095941884773166837480006035592808768042214332425220581392493473631894469450482309209585772700645599416410692781250233740036567426188981762048044430479073121431846923432320627363882636387661338221627358007521606971543967855117765246582374844686672982051971286467170948093095497839368934111289132476456309383973088254081900412053610742364670338884054800705271828895161423521725508897457609409443354977195619947885139001067425289871511831363734235124846648777310534644191954356021719455149770906372415497035709214515157787470884590358643254604466040504133760227015082235169449796982140701409291207904372646443882368534828163662532967090615409661500737667904819048531186494455932508707661925248601360542822944995784442301167790001084462711765796445383772141566082912546751447368842429343834383457538747839878685690285814958201097838849355631553661643426884320240232888737746586210345093651401582893210916682603231698613293444401953052548564412413863448287033438475461076298612351688365684525706536493003970993732769351672095298931742686062565041293974530325537359087233497571636952505497535958470439562611749656075480578451978285084281510929133254259787688423464865797308060132870253174922675909029417770832313599898622708643313844815038651089634522315672174877092705450658868454096486204784194655582316646817928052096063791015583746135423746448916248558451813719829929350074854070936476435226162432674902771056306093798919387252051223499600477927513260754609994861592350051608082219518404995466247686304829479902083449293302327645149118151717698065543961833503394437715618616161453455101448812277867453303001585397025748438262454377510157854069302717130954893336403344793270278570368986775369504149899151746393446553180769236568624999615711397694791336350223743360984675614116664106778501549426396116527284974011638788198206528514168086238056019682704319962542914957956563022087874264069088645434965218262432373700151129817308560593789471303888350818682443222984691132955440394423394763674447698492633468444721939727777374354350433085534853017850657747403647599773061816754463662972785030292242504483727835309808186059601551324989789970593349250771775257657390476322678867287232921485676464073670351881677715718568289129240262124228045792683844156424378821397345326608716076628144347881455444031064925892215089084874188150369000905948870729787865119589455682279752950067875154045235364860717686763190202617074892087694277755823498129048283883235411084416842245572027022821723887438443313427535129723676011682785469387005684328358023418603532049200656499243584793340581505633437549262780555756137176006371419941557281397990158886360984368559694674258247495637387709637826131284717945784713186852589449116583759987695279959327815366076411499311016814925026940484055742406807805007475833535960246352950422222492059932489208496988213019238784494353860865920663351675808514095745318350091769287466740740375321230796547336057056494409438920979464531343388694389808599242458938600522232932596392882591809778449573269875281760300248874458307242813790572743107337111047957682511757055522135033544903836294871692988500838534166482449414008889032711619712064592508560096957651659278191636787711193106227814902284483636716349485663540406185685181878568854176302050792488664432675443222033756973893396726242174412593925716486040191701520887478285412788680947443532847113279351520013379435553761186154758203535139456908910729655093274544802388959662164652542980613845765410930992133652290141146518757565983506264527006582646269951932917780524342705296480643638796876611190456727474270302503428986815702779134512931344131747641188831878494510156828633916218793347489195766699693802969980642712926134959260934915551850644519023849656446615953185237582664684283130842147821864102180717520612996221932806848807761195233780822417028574881056496668778441453699765572738271600208898727807535526575041359945211965322461772079841809378199199771455489075569004193777169863191931698541968365282382940178948104067631655541973096070698359751738134005651356397334629675815394039558608065663427171286846713983309599473252078701712785072846805887163619388793389941781783748092596064047651162730109844798356071156662399731544905400923532387473249965217469647086669483693775970941782840538223809630825167001069052565822076937992937020910395667062449877822062448245772207053134103645473361763733010433009412014563901661802615015423069396508528025131320016777709845422259824319588155062666161751553776157007023637321880941609293918914555171874186229276200974506211892869598157770542104858943053706954636569548426141864149816757736507472178966579094296717215164050323313845116750498931945360070732910324387227427907572044883153512829656838249145300112942574275562515350300624563524280102399570961205820562941612342153052811220524113431978451400730628637277366845853286363348257714149076839127467646612005167775517809485374783674036567642991118326391403952658188459784995819378606212202027481282990066422887985408025091294108231730579684997093110978870315010814723278789543585815098867725322588310689443612509728189549690731339025586200539163424303151291549163734847050916708641111863632494874795913724935272537257906698662040244657764367767144281448174553379187436676432401189148966719452252871437220365730670543733235692096139644386986761253244068761242576789835752192112526182314543350307871382229343410676490518027807988384751492359693166089214888252883658072991678343754219303056602986791049558095855626493099305866688413478963112346374458368884166365663854080239121587144816767649645666006123031869615234209470305561968557793191342638832494745588472151170199069408834420999346409457987611159745532315081569672942512814302756823034231841750326923649241496725155819948812073149286954210947589521481718023084077905886118439380045967061675504312055492239628972528763286335386601915279040258192404666980900598061813183143580550776534468119326278859807385020310525308847709415348601358370516949682367284213867798462910405319086027995703628304890103993866609229000943424258163410586268263693399054510192829042198116205087088623976063631182935360036822625740445234632229541336042928886472661539732816215106230663837722257938185327263783808786926866826493876885400586525762093957985713719532898432094894019974529920142242962903312565539326995017202110654260592288781741823531979454148417643127455288756662228296948905862352627853210980445733897013385392625234653328051281813242311148356879166381799239359020455315868605546942958373290248214050554106244354275180699397585385714959450873128870201757722961997096695329068510068753851685960006645364456453440659985527514745285679454506503288633043781971811178507511650621975025463374019887429056338251658282154684338736936019632727316295237341214875540699041532082442606128720004861606382574038810054261717792746584691281657117997013666350928733636811344516183319665101867166963534388783929641369136113225811772544232459663813903917284260232824600306473166711560976005706701466490079817631418964711338790154988058397723246648349721137375292449173072514485039022341552374114952354506970200075776831969803968667374146232269519418375998900931691402432681017053752167151147321136438150049501170750275706439158896256394640752315423192854098172723769045520003763299168594664275276073343725463575035878400046514539596858059467804868794309387516047088873039545020252197357926935237034341773660389145148622958291268869996338524025805116480379422143547774789772162611322491557885746850294842214669814989754820094917514418269827673548245408689166712186447349144340176635012775571933804412635364409856520915956626281315615227511400387622256440191866150941858448694908317620966155691826719515757696559997357857473415495544261955302945848169315714577264008828939790709312196785974015239005751586699601496035889229895895618451563649552971088959267912332455529650525130291079411290708990606645663522688210806972614726456503200197200720744517038391470880979709829137321226297832431226272081188984290732767913354470028948012768573620782063571006164423157970555123731009272398689342464516498085663096497526252182840258501654983046981387028533922610538086080417492487092462635784941770997585130453857833955992290262564806971132734078000201512130135344051032267162795298789130673963383813428745924344642881752430848934199037816083770143866657542986348162986858353942533945262426044341035457632332761096804697584733770818881064017567121372130287571436109087656930950201205295316530194384968189644381992009556438330973985119277889776558741638762439536040448925852541733214117115848072028304511028864528220558037070254219995437849264384225945742568203173857077633963158965101340591793644991890438897475947784144250024631631275957943238881260536514362162884157902634592124406806613913396954233483167723405646014756194624948826178982782019349761301162561026554151617803920846427146195813469230928024147712125912410088724884513406546317597993993226663059049347257107154918696780648059913333598405756412289776439558813036161902855604467290450965580873055491445111149463673029740476609125413225110780016563392696842976746968995823791886950785555520342307424680091954381415253203100357873473588544097190170148381479947190093312519641272905476386933410567310438518891979388815944890067579809390883543589557986488040062646121454123949718716742281262967369894240332465413606123297711987563180766595515474221629865189672617132713091898730068156247460485423373982898799195187762308489979887760250491028197234019055702071058398718659102302030891513224997225154292959525882356908635324416675162142574346066042295859579065192091492012656739562843172859581950944703892696306300195826608428406002802376337289847716811906353988049096119547596093076917233803044165382987562975631513656971419416861616303052497069985282219412637976879031394412304309134836402028933197055209178134325332072080985969340092799484785933207553865927914165508163404869518269129799481076526902896829742831506679724432713003123569540054956194227824923698506666030190306492813694431292413657859849571241472555369849329352174056702534710325675577392295661770029445973141912409577525009417008149144775264185043992744866260227310729690505696531929176373444558676881601624290001459489420251973482931519427596247514847853689974138627505354460832616449421900535863293863991309598415610922182307572308123913107376323822373443576101718982363814581925950517722425062211950447571503607521640885079720411273199693357233155787967543584075590311958309432288106983363894349683541374174337245201345586409581518988268299821612881707819021353091398520024913627026579803067098317494467857474900847476068649258129819951329462133475111834416169963675530767315783237831495384810697392909539271202545739387683194994012265711552280454178828832361101000104558592628215127031357690233713992847944951600567608397163069384490040887697191929885719929899250727301647705653992723319491928759818208815717403641234171137414597793638441528362081297149650983792164769843588542131657492111562182834400016035464016955184475108370161253316787694012040444442341676813498477137681897222325959036696079516348246762155921954240735665109015752256815849231835109163661002300786054242151195587189834874828072465750157802952396614495395944657224383717385991212342738703058827993431797018342604949072253915705553441228368636510608351674755912941712576336587025261665403135098272793415093531140651387638167691102344050200270200538077338584020552476893350004292447456992777016366581699306845881359691454114890465161395420616507597881648423777796108077099279907884556805499421141441832984484074785357507494012819690490089143627006983632141312463481294707333859457601362666904386597176986691662105284836756891234856876886150107003508039002472870714125378248689177955896163299836162339292657287781297996135354730313644907321707361942555787857274194164812218923162362302571813057257785130308389048224635802352955260732930377787495328759939507753480005940496078848475194920871019472135822135292763725635578852068261115064919770149595729111809482994976217405290967844938032382968698789612032715928285396207161687982897790089109642882102817802758544672142973126051702651494775121649746645503430529687405513354453380170927271616867151715883884560202930166942039973374015379651613467565608508914948361818565092006465958503541602870534885836385488722906769491532115715230134570496511684407470800053752568151969280258419142657996138173302129338030159242000888252789256250152821860477672553070563674112899281488973750829627711945345697560719274733501872588750393567107987277745805761217735913445869395767843000193706616198936067011047256620806983203034248997030422270263989611410168020637258321444900797862313296722422843604478157403679995839781719776631387077634852936008501684807593089814642629563485250084805558096121844736313408209419121899211710351582108906540337260703386765784364037405876710968638591342034684857971669114921580394430645373506506545707969971756535556310716863023383835610141025903467040412060641626427786418826905482515176583038159301234839787863717765826463946994577103710332324729345466589589476278984440305838827765121231895339026272564937654444823882006661916349879177331746457331499036935691532456782802449058739100173469887337361452115286620859640505380798636511197736723082276131725900751256899503148166457680569504146253415969556535030360506226584609506140921568416267457863239214921948094486577933599356848483705180773154051501973611944617285322907425539047884897657724649679345429263399120536925233485807544490478575731226093092717621180085086345440523100788415951770469861056751415347712861952428144317851940846521040224410964275411471134509549366392308508504308273435713011226514949959807304402322351577917360867768079939140821675098544565605397818695067713585204886317629639797736475280894743792060658175225702045279625874066927807570319961213614292235392391269657135583646372399629455784778079130367129952948707410380545178797989937847792431946382063828997335184708399246539617861378546291292765078104263008310742382575577802409372691854681559906382517634648257700281078579500813761922247315622182670737520425062961183438581516424132722447997128229062743193154444254684308463386088542526164885854343266884899188452531668035434092203371699530267319150039409596889294417036318688959468627151024036467864744402050946901008310888881582245268978601351367210268814198893208218895861758528731935652381005867983159716554542972816792136396241576836412200407095809874573145370584128208476898477561100974051754207724601828455618924157477545846147006196155542021414659699882198706034622797589513282905965747179369640006172707826252220078951849352565161435675319934652256225864518394440186783263590376850058907099055741158031482897326147433237115882290919542880571940246110990543647000598593927951869673330932190903039765678337579747177359130073228417306909624751139677792619452990872971583717186649811703836726149628336006202171918060400279454276988948179974868993539734569921010791247269551364910230687653051381889376800450589670479036791513681327397130411293872644943595673375890424241292231846457709223978207551779037570169837660440034834341385781608959279878243251858981172005496367364008310942052885118918291688750962502828576309496040401059662631339463188890080793796910918751585831156656850407581674630128220985831068234676675056613484338830131462274670152857264012874058976151796889475416295072595879484920221703667275581697108876079390227409334076355877220702622286820684119363444824641024790423706735927805955835664016504304211283722363319210733740147282761416800528831440772586605931569174138084597342436360777139250953542069769699526848207683721227236326009590391975871998859412116087241373589580807487355998207654845570629575825059474956087202632022724352874360708603825514797628154803542043503501346311616633611965989205541919438685661639203584583508282405059497485592227072394198606267426502125799169461825342471104642675676947489823213630556855765506509961597051891999003059902065926547170796715876063158927197782753087110015829479336450125957210569404619361865992056963642266938464480904844904741940864903953355243289235307890149619327304999671537878611615013730298438946681419605225054700387899370253391562268654677486084236620204900309885694318792492462420892527777036282785992501466308927315869870937543538201990729008886369300743666015823547682630685921668533803351968914318320880398560576619013778166182458273859694152321664132289694104308321984933289933228583118783033887979317249755360857682949982730461108103343726100319343905071321377157159574386156166881128937181739950077150881527867883624164364207253242303299989618086939098947336910397145595138897184573371471258186070053772132734818107436424569860291738858724352130345648821034396523699082623764179262237418487057628770590629320303174596168283159862342835050228257327639223863979066277662329592775457113070748703380793565914274424569021870106977292372852193382859094888554566095545300456526427935547234272152731721923027474342982116481368597280507527475753020274071831504593706696736105912824000751911240110930619095385516190380548676607958293461719502779097966180054075980490702433390022849597491610927364976068563162038081165511304656811236184289283767302153241319721846873081841042768771947863127254610112892634368019168748097885084375459764912879404922344090348198202365349793637218348715139778979470821754096012013761430817824516850345097780714336355812359478390489814086534571839519919042191145444378244350385643345021062749674772483321415226221486690286144586702059769516968471767302130971990864822445293132673441283566556810475273231859412200196452300819700834929759267067754199322173377507184329179573250281361559887559477943412360225599551571099089441588461737098265642870760105703659537448458833402948671067127474872976262900604529063128404721615584839928007822255112269477551640890036271704828556668824451075091099498297574496375216095742811721877982164885551066301092577039545513163590035828338317584252833014157247006685437149487731080788982971453473760581085825062077411480306014630749842723045339583255332476926271861878089895993334437870204832167124950121404234677219390855962820053404943713089109860168402890330151757999235293369927161589954078334407688547905513016634696192829643573074798115492685764218063324853889721274511737226539140081607014409526381300070891357189599247465340247636406674593577090914849289496276878010870318769502640446169217923589276263680495808826866390513224790230670651368412140308921215885422110166430049711433254698236464181201880635699163004882324803930877366998071357666045748928243344110343722305939124611473883748351041570330435133483668753191336596318515318347994320528929240082508054153852725695184684584803822900642359988825856101440837590726131475719553992048126791668042344745600021070172886690239555592631463930530545293872449939741461381710433548464273532359557560154128266157040864949167564082803131800820568432052063152749469726856813522628745533299584077179292737569852106508834189354201981685347752898173123843941685084103012521949307572067727189542565849021335936497399113047763827058903850199814662326117122548011201043987534998955713749315768539252905712093584198844601133317429343874051406890141036799678269248079955000357624790782400787713224895229891698563856713417064212890124133063711937626642062105081067100756748881354831353175237466970161784867044225239273094130246349224115934747058694757398979449035487059754393468425724020235334570370965090749544981888517176898793617928089429591051071295238427664990585176641610758816941941071825865023536312835530712078922452875534808899134538055012192935980710156401959368760438197856260398152446130899605985495855673603312175113548178072490393239705821797591919236050109951225256259140225752762407096854424057276684749877906911630520767804807960835068939004059638923227248596733410416966655219047215113147009464011172802329123511078421101465513130547428127626368272626590536713017365516658357957641553924883999672884290682036411221415316907773061613286146802707224672818641011691705470852754379640754814034827887544971519371730180719741811388871015937008901361368381490774489820980102155197856047053974045670405950973650260266320563521659756566415301464063341841380687575425311251619805267948471665731156197808599528411639764559365310563664221185355381995054693161098711835078328757750838616292641219857975265176919498556669988915051952084341516691027830393279744708390603330861718661908893377220564564377518627763928093475814393760689242174287506858551351204309095226170956138442587054872108740244730965727513368509291617334987211951463966807386878067037384977218696913957372969552923734709423902100302960359054267763059219814736705663344398404552101482750285415188655225531839961994681757183159847846609860407284990032165128235656798639964766769375595561724651146794385819287328158092156258740987958327501547982894820350000790630356887799431385747638019035077823224566038686261102661530259790184863542388670916818842780912160064403902403773325629809983629299767176750347717740467348877475192822111560820124348800347018684165742783092149125888864969414353074838613548021800934052537477521997676849252709413050621185051936043235573805592969814199171465658186631217717760578407215625671640422072541396360491545097778853818440365710544771998282978891151139284758690434191132202087547857196139637675807559876821252109510177514018574803061237753781655886880444745642876369089180181330081049859144464623489298375063341360499221778822051815330788046528765792569495752293995006827239128103179274294571678066390755699225802043987757664447065870476887644546038017539483787996340443747761314451736707210135882343010004314615242443760673956447877171558934087884452281662864118725192052461534482628957158112968874440672466966409981005773946740564905566435742405217525341932623549349388092215091792235557881526697289452783096622677060610559111937846701530865937460654868644490586709555082179648483337524289375367603472988770762323480311245366738350679728074737974190032450111436932535671229039588266872587758566248893201615099759597631737930370072292455817059251089576883570841679448338821800825071608598111853039451897432251244410193552550386366681937604678149232866256384241824954794787711070056422351884691138697352045053430009477750546549191453147518831934984209662211928430137857132858098839899281284078769298143977111636565705585635539221764695072488536527591123185046974348693676523691709373066432148522289147915675391192121816047329543863927802622812202398638077936463704340261845980629609172257760087063957355899548118723548336379578653680659796612804174721326283062132947410869022476258119038827057415014589290207088314541884565349729335846277388035474620126990660264971906284970282561926708440499898347977398953629948964484366618160395779106875751823588469976310328422593068724679544250231401893781827802363395269026261409559252713020529628225968343323465033470857404836947984769833149540968545977162878233955334678650094307919027174654915582456884238861486786135334958623241951063038962436085130500998535887971515235686459555866701074566680063472529335459421030060607193346481795468995576088925544826848050944099669986108425213495795578605912362958582664729416573385463989139121210977022370572863451906539731700968523288212209999944547475521546081343300144612465282431957804857219071071421118459203853078064547626264371419445256380892467062552722705640596322385506702176553088833471054237628009322130383085161725160896464704481511093189398951906179690917338001433770175969327960858126801668883261914084050465310829252566140932377934686189132967562399230005211017161687091805214677919596783944375309607176520117875713027516498896221720939062261859395558436019738512027604066416808666909077788982256610192019940635602276478039947362834802948260118320821223655974494008426763013162701195711294448947729316502489918880919352724216402177065627025647293210260639017705948242282378169991359575839116237881653973460846811152217245232145738423053246768762919683351088108080041536868363604460069447917623790049948761583729916879258867070870692510161573112967201936974778034722664115014452059480975578692400426382617501085075838655811741876905180864926631825845459733379317880608031605383141085746729314264888576247545261048229578340849161719756610954166246510602078613834712625041332868383344119279700452142013305160536900248887033639183134201589378843530800659571309008115534754883290810001706941552371633010452755346393010671221988360957022027068217656846197520669922613413736059709467381029426939159298709686840791400405417649670866468259443871774678598389522864750352051427424153530219737262545309380558725278840848380157316508604440076663653974743357451111046539493469255360785876676532885615962089455522804906551237773473791282034083335309600009034276856975576091111329559124223132339924641056762962275478566317533066415524556655471944426790114074948061629121863887022278399971455853453005272559359190865348494144103812116447130777991648182973541485332307905308310192138996071514461700503746724004475849429605324270143297724213110613865032156321040280235518138815619831666897955244196416794364167484127261407160044655526434926085013864865413652871500229966624006313618550689210601385090696935773808170746448325805872388087629591639884083785894594993156716256136744744689390911125216448411590573705064226657721261980599706153879320708507031634592074813968307141876457669604972727526681297211219499884062970935568314623175573902504752538135621598864405290357174452949023434725177611122039456944990382401497285621731310762061906724553760199834564243519318482736652863287205955106547770890922126514703427628100723940341308181034188111180620839493464558066903046332932127310278324511334551922355810017733898489452942842556465597743924360882347851513238974518636433602996978217208413689362792038606723825523121802908457562862142697539381279968301035253343484593413098061574861962977859908280545789404192251172168315222654180676380493746601961283687932082566549256463417013136483144352060281927496600449632031183422637443584830453709378494194333551096193294821179283572482553988679080368138846864077909295506245591840440669505016854475209195972060148651234557360673488228299422200424367628932310804591802931555968595529142622393156785519505291083372339189810035311860731831265563647297602963703227593833182512366515783132908187788914308098688436986552663442146548122635831966647921274671262190269011682059435526437807791137553581519267712030192054709476035826069746454281454129664837325742617958339311765150461962996586479814388574277184516482610504517876948208741316119999762920124329352988817334743039857527701412897151645779689257415077070811427405936592596153521789749460955829176401041426570841444324146485627297620831897562675941071853043881722407850067031863085419899314385111813518293680777067347054588915643367573170441968430217795874503065791434244941437986240226956942220766615785893873204773391817551336629791071408303644640127363944434604182685188233010750855849334363618449852778338528377923102987057812089629346456331589178151528945036619170506058497761457872728721495780485836842449380401439648438806368130159965057599289900369835492922658611602992540458122451321348672416163182159699898358392540616651360585749420751013992073578185351748664005764732069025502605281855866374282033049459245612513055429459083684488328360883897224863298025986208152627517095288388827860272844160559563629508915340551754677953406563716521959358748274201605566072540774748571396074379188267284466619988716719950694120094509529501379388000333872797219058658682491861189501666034796548094381566849203838896841704150602914216733326627031400350994620111443951355721071237519865946488747242439997205174203645225972613493262090922483739488065787966714515612306389996222113756154332715936233614998139086601935596342136428813970128450928808063675234730381485830590752273613916960318337540500544331044064459555733020153771392202999590136818593120876738429590708399622662188826630706087694545286809562996582047489424623410154947041816615450133026676206719053042918669302619579780236224905834409999262163826905344553256070087553804650208946576455119743767164531106560597390444346079129269939910395736598901089648693432056875094358930813258578153535815138179606036487607693368046852788866138939988629816550312048119684880874765210652964882409723312873989919867110101385956926278301212531638179380996633657211005151330192109628115146062006057519710930988306490535355512239038192796165373389267577708584955050465617996351248974732147454376988300735885461627187015272944900411089802678878789408298458218473048432023680286878006411785625664338665181816344635349360887598393236266769891544828177962926533519069943114086184702979032378680737755958235593730001823871323672955453598621124100214461900806436519702028525504983012534700873048815511677975101826073535765501735819690610535801968127836909422916898962301591877246473199733730206628365071618533998486668822259986589433672292012861058288830292833118993517372891802766756867258567190752728184251680954184737101873339819972167394184020243850075050321509873390901438915113835936944048782926757805831306783435545481324379847901468919485533659373727158027561033592725323159417709224139451909039706722859938324573114351729629698303286821042902371439463508319351488011009518397057884830545993463692016508482566489414381134292729739976905066061367353801529185747750782224926328956680492214123540256846188810645125459684413666679551955709051034997305077703527990468772564858201922032990791125823502571270006659602268753545486868709517955873174146903016115380375749921460886329307783240644087470085413128184108406952934673172594464911692679817569154486678793151312454282073910355564414916064592194816182721835450059472550534487260186065812212862725208946306965758819246835885409370899893093359250285455710892454175512419805896500788355482178960813570181694369297194669845314355539848798114831189914246537590595343776888051442514558915539766053477903337761222807715464841390708284766483573497596908804581253093101856746314492605974104311441389243416889066371767161504812235543495816138401179297765211518367704354135551098180787183646603874550476259117552092775653063590641214192928429531710065187433266223915520813635908239827464081967448259622130664297325596418335455292925602340992884220935366336284726985716323713145826302928566826465767041763743499603742570520337644527916708123328550055915087455516328890073400079659842887788859396080187955961318995952103519591435544396440966348153427278970575676570266813165525118726746353088545137164972258599337791949014751765183690231338340719073616079796231547955455971961542970851084330724050219991630999963288943725041344301708897195135268500439907772340375843005304953227763213861451852743071849712650241721585237534039105377074403390177276959451710963782843942512075600277595559851396950438228423876285881325655387207967586084151210406561298085458487224300403033753365869747790732513004524488055490042960254413546530439012838058222510931481438904669429523619261140467183051712188606192273822459837308274635955948054353596709164194432410451357667656315473398323990708246513589259133631868963827929234153023505833971416295142370399641432497995036880313120543245815562334424429741724763053261149425266305165144115221149497368130726407024311461866088619595789829377373483521858579144368666003333585082477769435518293001286759395292111373354001832695323400643576344468771910558704836947524210998133185951594219717752898276669740558308996447671607587467872893659703482532378986840013853952127045799666569566949340709257807987674732578824658726965086907724424714938163542257224192675123356215187227727164989778688707376338498727488260523268047875081012227203125605769057869812057658322933938325034700314108740314510336202826680750330886065541690565912138684406377741225088609115703182520342129586807808326891038944506527984750977195338449771195483667858681928038945756828294771813000039217833597165470384507041228159611914732007150827132898063411043291037833940625010884278283038073987419311087933012443376533023122368841058748110490130205256502256321596814413588545307586079699835031776704728484574723927990152045509245574857230075335180971241524008098094906488224584926893132944518744974832900625996823259108114998819981343448121076477958580476290902716635935742175663099207747756233671131340960605314624898817825755227237484689529608213806295675147388674410508860499602487346858160604755555514735698934611190775871530279519319660989274254443319259036925952630518838536518774108793552575565478011248183876444594701319071229126711273844758314757219027455018906231333191074685502290283510577422206300913627455328175110792062976885099475308184150495721073689955622479555816163536288809206818696816428088573719873949635777860860436555265905902121675176274138201872621877720895480868162054794547125082768895463218484004260349865252810556156208946981264586868199712509586355070061891134583039201861108906278379442034016848247108394707963731983325524586946562905943499218690955413163440660077421950292294717767505396189444528480668607358218046156777184672055607558640370738162830755067486297654507880176976759629971019591842752589885903415919161743738766691222388423753822399165046915470763190051572205729318119358183774289395678946446269483231348026713926775133933897193434160317421628860186532414105372598013041629709238344125794924846257163124950978846615858525457772211929735302828459482833486741609966993924898753295290831731760477952980700062152769891830121213717845702482462705513083766481962201683241321069282955246548499980948797226148578855815720222367798115164323301388498599378163559054382840222735578731713633712960667231376186099231646271616370963979161964342512068951219632703217436400649913250501724531549855833785594095756526925920997415622048919270338059131209032635377245313287100521505145120661772715589562448746407348557948329117911843057871921953035017438863046301514077331020220270994442598833563873034932419142467526003056178705932714001324103752688589943419500494481447108363548083290989618402952075328200460082255614088904716737462289803508646862676759901941037471485350080371382823404017233311328654800161910783846315357703269740519742564153860353059445031412680605062367606520646282323186784570716875560321950146689755503746617374568361060055555491830152724465287122742457331943300951853898240526319196190317553135590122655691813025353884580545117985533407641880535431609099417784502251589906024711871560183193627669937592847091458019652409237510629139677823366903566936755051617081013834609519845137961421787157284889873502942455182652519402401798506090443057285430804667096579238387046390209870513284457715245079430718156835599405062452889996203115974888616132723250684517800126936948737991969703786238812566682208118344608787954904127733763579409112750845128648649159264296427993697990191537581827181375467382929194787008326008011812326475150162732477946510494699012349489266992912614967603261834838940081244813410594849887354648456833561199355884285167050389506621571006708285170653896080004053788090583304014675924957205047809044988893265455469210703518610677044789902796780380263536091954793157455840083980649457266275338278008501592559819033460427330694645865562154699254415029176977149323525145695669167168882212517133735298320238992037584706260458345299655301383168990124616343854770547268265815915255421119976805574845599179440303926502147061636801915199478981065253982668311195744849252936153680346448616042984213543366977691629441285777150968982347868117340783083108873555939183979321045679620355885466114552735738274848744470496823287615565656754091923672120009580527531829695586894218103567601471488210584968870857097440610321644661717999634414053541662396354405707425604749515287389956872889830088576054131411932281872916380715034272979951474554958748984881638767918265359076906768205865288398239022043495478317754820111957214759045513657219698634147532533066129818581992376515011257683556813734472324707634880595749987167312453826530254599778147216144197019029313936559217608256207616758663620122032725718400345495767112812401665675404262009668774485685529262786528382685016886477378773789332452125588492568142043869104262014529328569525550637159705235639385529153245272869414561668004554938564295094609565306825854310475723478341062056816255202383134383061097572172559142554101283721375337232878884007613788459343246751422951035572993164467482226153798154802573994870606034462101290055617711727022209180691903049500393874315345381071559345190859221246490556539073027830961577507839922255851906594172631075566390918802568540470759049752801463514902829812266201697010100255623487674098379726169083898810572197303774707527899195412433232097365620277890697594689351963165428747824959890937643174404993877890216462274224962124245866748065150977315763466814515344241979784101392566087953039475448464582297060388218198054442238061996294520899028347256818352236131612470150389244201558121738216591288459012352472627685666543818869424800537940938885693779257030646457079926702147141855392020448607735323930739592405974118946373805870955314859824645356080142125680781628702079150477317719636686484757885374535773159035460466474451056263731691142375994901122234584165975353969285367315876931346878349033377475081092614231711800657784912024748649859969793575227167440178497302983863923708214235838396393976868935829778361918927744538580841996235235747112718903084237103473367529017676878912273661247199194717765636186985046908956413960939164487360090461352071958856153435067626582088182447069285828385649944542079118574247364754047162041546159034151982146559400390370779959321618036642353580643325127708129803357281394491772574211448872871989659855219872989365880581978290946838544605476548092768715035927914304687574540310675857579323308852739051577319652838949332984800766129399109012747789855428777530001699239748420125471525814413744576813004400942777661861245121510977040193048722098319033319317794201633527630741259360862366243661455276915879398472211933407849261539998905905802526519967538713395319895586922488918319198905634834527583455094863209355860512135013011939639380961141969536237596245218638811000022582861075361263670880840711587782561596263348715156643420939465979462114785489460911842275140594858635309417334657642758874021590116988484171835240428347049128867137397903859430449984892247196953472670109121681484324196364743001382916222469607655887995170037413797583501496392127805909508742993091135308575314606069365187361515375647006734374808353564878333157196755788316699248585085212807148421472486328826068823638984388720963081321835360263117540149028206374299088799242453372785745301167606251465142928970506854001907528135431042647050421707590128379477018194578124479866520659528211673467096409153055099601101376336451738181374516728393448104295776299878643909841570132959366755984131207921395115310172254937321982812177236665294414362893308223112733083592065931603856271036775908578893311881885619504659854060973175789200827697290069008078386859166815081440630407304787225977515132215047189723825162836355093228941844481607732603933100243269262224465023197294230306489150300650906546215351707439706103820777607286116984825714666264351494882921913031119754078755818573407893583808881099963448088056488553603837924034998902187951894360199352872586497880559775844259358485559854274965903870090584340515046240823998052763301958123595435376826197815153335535785772390832690792267695864885703460093827352486388971713176895693783282382228678679996423258853941351490044242914908161570116182135829667713539574351847310387491856149034363941009061492845407367100937358800963800800287692277739386030155680064799425735014836757015916111834925046200506862770576484007964926275200466838572034996772466521838265687295235649195282477179195595525283222081221931567971614253251025840881939638195885023802072131763122845133122179200079837387289147549401414381534907815747900565460276487820124917587066873476615276092149661659762313777874154513126365524885268425075936100023904479538333742543390468454722599223003334971714530652436868246067461756667281594742038160035460307216464045881394605659517667997802724322609137314744394454296041821637396496243040196406520361363797446821896018679580823445622752661406828820745853364644948366100077761242350140633341786826612532177939674562070510349559943481748479949376155460372791309982721223829048537331617304033750990968993325347223004751498933575492493915121266445409686808975680590258469756100843256938187659256696301840986749715568457842577225099983464500505739809011160445977334086778308116115790482844033130199506646474643470130191619625268823344724974265642621937363818801967189366221201943761678680727926054721714716821379386682637651522142552824046785893577531014441549864493694431649900093623560190237144541181986147935395625129095888367911976671137316127677109589986702183648791546973354448369548538676160283852703716366172925866227474858896810120088089365242026294828737960216298837404656487474525864118763318051996757975137231568040985173979858440480093774116418882018305590749421393766792739516655659095273965482025119767509565155970880368147810178145790041124384580446133342652410478578592755759373671372018697022032684665969086655955844489349718325339114102497745926771959581605932698910299141056213949585434802266188710217077165605770422734043564389975116427856253839187813877862219081831307129899514267035085965097394364477145277483365122763144051513405122321141826122754417006593719008680888027470391150998744372460916292306080334980768183573816319374602118377570683336759244897659943484171571267321914742107988733805942570569581854199738436258727564226768648729400712022948973382126958859866485085458088639067683345806486607127163092657836549781616960002121898530345352140022210075947786994788972572937663802920814242897761918616883128650547734384208069973874649938692411966432831815426602129425568132879812519976969617812973264473025256163474983189416578513384582668933589559866768508686871023218631470424548103520330149746427065393115013269770080411564580174410938822839385643413797299486558392010026080204686384315483729427331436633182890850760127429019932339543825065159793007154963714033688871255952303540727796467723414769931624321645014207268719114694249029463082266945664676510836691545153059158443402819338000089019777633192220039671511181752058236393258482933881884124541964197141671501335882189994705933485926588507215665410996593872342850284247075086754334537554978469415261905527693096093469345028343030207003263789554565271415667815948780558678193307084386856761779319572956153026193483245838254761883479561967466618382399880920071225315392845024914571927863673878020433348590577738040104423876670377329536051428389413761750296014675152597916248174797100370725297283972250107687297471799464916002312456195945226695635827079083729290822458885585369420575929754300763657911649902247693714710664852720405951763273427865164147092988398861912712376786016507393463878417659699589772705085646711641935473085266921896851121183274997472456310603771119828553088546691659591459826051426853022110261407420073401662472880531671332759408742183213444217581503449141962812634496569724464724989075578476296441015408298872052469998399277101961156805605288041893119993352747464675571770287047877370360623635933635127580445526787124172255146115867891376216628344079548151795083866857631487032047263737427728679398780520634288955271011471606448390133143975754392767980047878381065864937072898515428966704611690110048617800400195478125007285568130560727531567319685162553924534119220315491497862238026448241197645082949742587963564677991371536915817697649202825478952061866135522288217243415840158948208185699828396623360313891468584932538463701361769526391947940910641137906000950113907856362149627581513912436257968871703720125697757071852260597137807842684460670810543912206293219075034633536170850407620956134676902292458769874095972030296021763868300519984278475278868807545120747491527980126444208941690814701578805886448180168065600798781468420806818870332292445838516360888963858590217367119760581428443330011373178508267873215569434284976452077053443081444029878722739508868034252491159308561270693238777292630200019386639797673726732177922313536841985740106260894061754361737615245429118032178429724643395494433358420687348968069618445747287463205339736225502788043982752010742854677227109559254769269827801593372894397049960261483752472891456000886245390555643606676006235955597019651268487920399514817681719900922881248802821565404473491062176177101581126608353665747843473150074195732495811288920725250705996829439211454917830325212571647184911893526893340885252616790876750868798208749826064837256528180695210801182613710662994020532845898714860020839167113500053294524211892175521201035913776548787203229499270226384074328993335878633236815647882791562585027959039132553506183748177872909609848706766790575050321935666773283755120852547432565796753640695012842131024314348550233806977007144121761938782628498751138090688551195113559475033047752290134393711486355364319720604251484779050772043973793143548108395786518034961248799552716048874374611217488536227878748710978854261626023935344896687571217441952244970629957898862852558988066066062304432886847076475177620521500641949303327403559635423405064379033321750095069947226137795248559797401017151100433094901608929582150912060971306218893450047153914396395005370297820684810888989419406923293959455618184531435275997210172589714742227495459393773999743955026486687239621271923761989224172694640658758709606490378735968771793560337959211855886670423262612196154354445136251139055623991113583607655822242023894127269892534558096044208812490726035035280468246559245254055915743469105757710208833387589768781763286422914017336982345844902596749869375097457569188301253178677967050867808349053070477793778033767063005720708615956773685715240390500745839705606752894789873249034010113867263050536494853698814535912481013416993806190237159088528695334206853677092197721055266082370679233984034346279900857123458751437366598877916553517041833531927744794210007812962649593235135228802006743641333414939091933307815164585875952638735903076031348985698786134513608224267054840733824068014695571168573186473673374977692291929748136410769862495924229591292738660957602319157436435306468750759785944220530199610398526775257032434540960554112305631355462394933876662362866336242174825936599418211230075343180262807249634406706825589245754119849605724907040021337333768391183190839885303990105835922396661277105491042515136223257784181849816437069373165337511095079302847392045388542712649129660776251403121719788546002131110908125410469445512039226185831779149693620810608490727256748453033426897376476323517049292009113184908576429176100561430444756163777240468394956639967607321462277565360182465238755925172525219162847373213486985583669197503557678494623455526806227384228524297609631522973367870541070664906201183131563349963907156513064547506701843232310374794877746561950298092751479659958095104390201141383190117134828907513724648606932829282175069070057809239937396105605214311964004638580614809440106786814716878348825987570277567259390450195753862309851760164689255972036589734705436617474608464068556632731666748429504687548369477059341257287752907316434609738109264426586457265366406743348036458212876789976230806300130047981838390369337555419086037913916003753665034406132983166923743727648618236236935450371911373923382150545733115570219496041049036463878518320477242804069843623151877055732643855112807388316355230167762299097913288550042810455282267776604882110569241042639955524797716087290162294329010968184175339432691305575604456618358928500263602387812179842199168930833238347358078481188086526768872849511832940865158908845170322131861021375432091401274986049902036120874598607442386095351039549310823741156484497104297963267258338881563874741244633353706540157702690434940011256159212220674787680997492128775812257809837201857520517463448730176766789937629443789546681106185755308866569052863833088274858341168817005272842092288228216408307128615630007425143318923607880477653942478811858190072904609434047715951964984925019308630208566363708855413321882068943585818338968998062051041813460793377556294210782260230876288913433402065574600477861931844417431145864560290236763587341300807116171070303477153484511990016376197095491084689397346271201107397056800114134651420611609642946525604691128594895832360744622377529683527935593780870725124925025979891166118405538608134111489316233075739513970176320863616910707292682903338323777586792094307397958557501700399682773922575460551044434403965945773709189042820261683508369617696566375479907815576833141634874508476066392483115095983990211123926199476969632482262316163702077564086354806972329452864577288294470510538339767021497159602071163499031478121515770647954340341539262423168685499509453676587734566928222364763750626836604605809115704550687859685211176840014877557135052041366323657794377201299200343532268850866364720162614516324042645059445058270863208474773756707747913507549880829103384840828833836566389088869115059739624027537821671688050030074900373636142399034222545800397156779038273477995798945434639333435987447462292728647570046783803585604257018848876539976739707464254175052414024582695907185839242037681901219849249684806302529078769135749003967377429024110581937348207414555103801205917577545550479646627879860529695007489915817446651013671874869040973621801159706005103683529420792029589405031479220481931030272286507280166648464136059176076144143760450231732097033747773012087368774441116881133387384367930915530841600813063653918310341798145627927619130656956858162246070801758303367949998504552705562358972088054960924675222171687601190786223053729132290643877257776987638684465157789876305513577785720008143732645165636191275333355418374520620357334284607149335668488752943591198621928064743347906441765653020939848565520344245285639998139179088971146126800750014060247616463989340041670706138182710637005374495832550148769694957554956595104145444313789098780594850345956378069030984792566521399100692220483343089626376153248315760542124118002006857352697515873529285230085286205973685026634888928489489624453816472600463408141686991484545162499343916469446515318276048403476755993358277215655013719880579473514744243667139809176659635409540092159754656862442021477682184003918987014412525449583621379413084598201390461093791295258406674616287209728922000290595749785213209467449629568384384652247050700972803405843374577835763880852356571268143350313866036607040815725414176504752814177274563508828583789857235756305264789368837897475247712687380430660121100685802008238061294795580241622895763691560419581187124984900359870751831471713770481360758775685102574347628697213432288940320716005329530803507031223977390688654334409162197237063784452274221264970464082570996045782929534704491899559158054248162422429249465192669356555659058458124052369346840976460017156052101201973052975132639901201926140573525156360705871705545835128811523031912703500350424700503126334621823433007185529029756644321342630553121241533400959505109902583878115514524912816375166282708791092003672621710792683107646790586022841760965100356255515227768310926565579563701826598304851239123457004832990799143128840274463776882892630189718710650150354877668516798980446539531015878274760230776813878006708802699413555579093851833479172712864153798153699814624858691129814147749077692534688074394618051225905841125316581589853039679908379600833291494116929004910738021710440911575941432492968520801042243592192338935659646089355114924485215509337565400341411751886695766616488982629216250432077700036045235794766989380167877752566542569571962489931283792669604743960410906038007568270569770417594664263546217285561157629347710022870673984646385335143675279950001427102212620829331317978744846625255394031937976395201235177533196423587192993998094694996214722784851471828263347600769592449155304301738172482738246501436338611618290567164667615126552912621361473099145077586890705368629413371559914700250241238595375915906750009754183893067989968321537746254030583319209101671346818414026267812589611065418829177011501665580366001297443842238518060617862836415521291068982293885981432248206500340135979013259289122917686699334150794037326125739470114659649122740445988889405684455798514913394077583250543780439591642044722905156415789118189198969084613712629040256047085339387000384388562354923916292607594520203900075981936285633949747446338655149880626541848633049340622574016225819120411795333695876470243355055162100496322389043294293689457521696900206018088541950377997167225457412443050188069360326865750538036202498470107583771742637808419167594544699836668184810620884296872840213577079445386984585390685635431814707961677140432476256088209518702155070250131455396343369920999443590166564591092332783184281728304599235295720925840230201805364933336315844092620492360289673401072017148224313948856325934949202856889396579190061092029141496176449810396492444801245191488983906773334797660088002548262493199010280161703707395759176807807055291080022686426275697636104843834824933926277363982600487856389776506350152218888444839779671934436972520043387183261115779495293986114503150180476679649779676062318829911837491465204951013054162222809671305142394488301609230874191295803686701211542564556884691663530284737950565703001952421782202720425995757768603230446587131403072304464754969265909969040917199068938632911371469993976897394487994634384464059450590919313475111763513399864727089782335927465047720131098912544051613322841697682809280631070331916277034735929797781541683119899680265224042071174009426398113141043354534387479045783689211279037476729793313339553791167626896062717412621964952955570381220864122312567509098109577666745522630512810211899827900488861631660692209386728313491596537357935434308949430585114583007502253817825349497522973696654218529876940251277159797754789341421694729580667055173417367249766838862151993701079197802615004283757128004013727265624207466470897318056669454556638729487943766666115993435819864742023854641762396641532402659029827742189495771204258856648163957864961086520820502188276073759991305333210974035902505891141968745061336347642626042216587084154966193673293259803690762957676269563744209144305037135753201317738983967809857228028271215068414215159449858580881485261692734935795660819781617386305506373425760515989866930657394570567647526460357925078969706176096363207469504999034234339536719602148041936752778655054902991668168056882218354882461608555961966270363795843801320331436799307873054695262665724646696702953598705525975269960481562970640015511016913944060875612637119245156690426116225524144819651756528837605544600921901259832108623293547108491843469862870372789221582565683014627359514132386215658475075665691780850221349235136380161184131301026100759711624267415479332086132706869528089871501085628536021018084140825269844547915653415676446397395087925045443357686934923618423150450073935083895019721791835719732148979479765954645316331506965376500863420498499512302789819799108846466974854169399491034404287897589811290348628613818565674394156164776874119758476474929556324558492756345441802505211099334797924582171631867093179475448763520551917953654404106001575038113825378952450363264437355189692773259583145669923176596433887825895526177979500644022024186881022328372027839794516092716162577171587685546001343071924620295863763527666557377081813803726198469658603968758421449018778545202773637877985362922032283258962487138111594595451063628105807450949757105269495754685890767845040238754941181999075954165785614920114755135576569069542785668635712339602038914163323973805269518027316394850534384919570798945915411941356775974410993338719654372304872116317563752285221189345399604718985303651719991002180662578423439542336109711322890762499996279325322744978925173522141299238781919909593785280217825007114556894213212650299799403298298768563151045135023941990614777046451072834357925678371408379863504183625147059174245455905175997617373804683901692471249428348894792917076133473038742678106187582138132587578405729872609332027474779929731654028486163588096332780541508686289244489314680290364458525646772711410857448827419683556452407089387137743810207272954767122590970414479080564467746632110289274593022229079202989424138582875505312040949575655336836602069402004060069171496786201121657976767938829353563066514546046707479800932251038268641766559984846156114601605500131442193313157909900487443257616318032632675645438396116589094421825905086494492442586346208335280019095469705541192805907196541178777955427834818472949172305914997166315111237373262419873910407915775637221497691301388226425349534352662895879960966197272698673013885902597936691102734029676137688219023521320346490457512630060115994239214550303241265342553331370932585565901039647936337446690175377216063302602360974659482182542686402011549974092315344146406349435144302167089420054954129538273661909735975633068574059641768430921112681387163844586140368949650123831911354297451116759333934277147002772412259475202455559534808032178479283599766548401716559560842660621172977464905849935666807338427070998429644236227961432506095486446102771226483212926144475609815533457104018073162886948908693170093486906226315985185542852095864532174654481192843170861418659538714754862589636589445908034134721203356616460735238120714378180157633762637609509381725495220007680240219305604320438054654720756162927382453922739230567278178914438013219906482039557261488106295625769238856461811470468694116068499983201298667784519870606787389516226068198328427175456322341566059169254089460152870754562552179226498610991259566885953369700092193956772965121228210731338519631031704457882561001798064985845593630299387667347676175132504157041197741224814353202036476043999039118366986305655124688618656799165290093406044999433180517455086825443219454158618494628053215423883965761149908080012350970086983604408761360136095961097948057082527422639882593524555878926145905135685867948671698250713810276144239473837437540719271796120665386312955392444811145060832269415254654881751196666530309766781803622923726394888466547627899418866833700470610598059407119833684971038841891411313498761959534495629389456517399083869539716976297885279421972980709449117676670633389328392474611223995536838976845114336993378872736272106268294375479314683097234551731243332753950405367056402614447305409439599655518451286626122532219398325474740656362189355369897099558013147433728481068688220485199377336757268099151780226054952520139747892319558853435610456530068497002854377374214769203053063664164908772542329362098759415544605716899722198762534569469445655694168041423078702501226582960272672280556960138844499177277218600952919181903185354849015764684665005765457235020712094867952493359628812776909363094523221092645270878271550327994297362443516478555207618505177793767446791438235819503463087714540480103171287574458857456932990632777293700746164379077749304856866703414762624497408112837868547344475147531801388222563447302567408618488575187379949240252527752506260848738329893635155778880360746396323232007065137990787236662036139061116196297677699412253069595640541031706645497547697964832211864502573639639005536869932273522651783252835670038493309090596288628575719083405129713592573285268094099312702747465332783105428049467240697696131288798164719414529561705014402813352698268289817846067341393936617129355823696923740267229132697864254717201061568714704351472087382046076786313767506923539732281119994794988031968771264186982229073150835729400562272846580802104691429667601169979140348288794297091686372695964884524265951043929542326178530898185245493252931323942863289642323269016075233868164415599518943868694257704764651130686120215305837278959029680250395536267826410131117609443681493046231275634544356681529327980142694767882873552923126813166382359884943954975112442647071952656640305531406675868448044946588472560245066356814456860115685629021768351253538924765038579814578805170021886533478530109485403545452082845995882147528613359910843097051411107027398676403861257558869945672122539670469998348615423678784022277509952501158937190278518162475669725479770429628912422976398875207132121206434204365910116020606499815282859796965633548040603186481860513634385105734742508161702972544786531372371668175771770774081805449951781163201884502903406754668393148039442683599308964027664529488375679421438026766547300513463513816568062443095144178946766071554860164602835460875759424289652438879442342789210008691720501896711221921645801520779367423220014435478582874673588669702505174915793560794090433385447674971182542377575823533857696609519118176165307930544935339066719753609555574160281210822979215074323848894950437360544874021382158821233601230083512698825447764689098655755971052193883039180732319367332901532987373262997411527478060586518628304130921373623984700345673336825880903444927759099822647330586178784177587612352206093133956573185932942549592756089091795480744211888176971775262906367201797492381177784137724121797966249271596375540338287119412625353838778715373926496449674191335939065986587238293706671778384151057464398022850745642542632612848429778029909408736400924361751374636742563607577004228650326591137428337629233537126198578329170990179890375843072861037640626271403854425958580391000988216700777662895062569654355333698602015355933977592864884073209117344235676750990208496607297420535130578581818248939876039846607536663810969570209744402922588162702192346831348336296934246746494413107457975043478483930954547936859698934557905888506391632166201821170925555122209649375884138355576317936452496134494200881121918569162715517085736476031308985902214701382386301876050896795446232060637334824194016254735109748410287704709934923955988026272361209752127847828625656688409849846181675594283021840447008996267056936794296972565331161813288886500624596781557094446177839315233816624506515559702234563872983205942844111679205152703828423932589192216820852490650041977526279912955052072735443635207440656694137094897830822872145669146003783111127041200152896760882232729330935391973405249499967109676711091767286029402752844349422545491479145692407140633320547172975803639084002730860886109506444252096402960929060809354534255325408920320628132212243074897431339151792102818904829928789877475344125405874148903128932245885989063823854385793971773853537712401923786787659498235298037467270198435231979866526564351655215254910335449774832256942717423601157245696260110052366489261292453733944347696440759625646607176545945424492064466567263821803028103924832162767501478993989048179031235726287046671147723967134327171226156918845114289689678527598438694692276277389617973318692775160526845922379136952340816838576355050237033037432216852044256354838547852390741592270397954874073912955093426287118853651124557509842367589922303303720075117728660731452327742892616262803548056462420862990100714670678061905675489159365866410449538215037409441168609498075512055781207331518223830158743977166856045014626702490206885379919182930265766462607923816249225769982841200229203232866960320321007886895368158009367902382617164581218144178794822596220531084736154093038226320700881235052563342434253590305563326432908687911753183301254743996773430435994415439029429638542530793841542993979253647947282199191309455703000940093233972961750000926359017261771204178789043904712424946764850026994404767619253317883478704548977066674443747626934067265260922873763944484048494972752816064192984792063186217994873294632690360176477151009592116445387880156730516191326645763879484940951721287376242329578998011533675695374486752661806594952795890554700496155666000697984806002186331537366763595469841304769875201341454101081525601986694146928600576285917881996235191627959321361084928582680729323410711954173433954721484385678592681530750214886938008149475051605509991894797371872005171051379534885609683706582260098205807584739095401159951453733045453757181095551735931669298368879052437708646468100906860609639045986561955138261808719064467155533200215312436121978151343648425750548246608384963740197668856380684751716930074314837622004414961534549284288716487330162152748412428867577350242343434031902602291999470094956958977668498458381366385209318950451711023542948312479905174652685016940941185137293057841362188929070163702552535080501950213482666365715325700515302480670552933175334907216931541168254299635710030729448559973451741355878383912887562615193177409928543688643340972173112828741499979237832357281939339109786695393995145740726571930883433885707490277911922242090449482115644593091016283211409174731766787856229722036447293356442883399122412279174940064476940946530324114776356407197484036384537726138678764187901528588719568986638136934583537345541458138705734946189998387773551716885151478188453094461123300355946561269284503028232733987836267769167369117423672801304000669338701217329865852847436133118235258139936968010357871678155160872374023612325544181449347643019033512215085269563196873608786969132746171003554492831109469158777600662957530800687168444187806468237454804534683962155413150000087888196078023699664323316525044764326041009829177107410093340518554687991558811751580402260791340840612667526117529514229449395660291786224618081875782814272033287674614894475583725464758183589584424941353587035498823878946362577934538240635290093431962995879002889943889148223612755427672007824919868701781208654470685992609750908037191798724937280752251767207233126910421479115379395782441685059798060175053567643846004190045893080845308932009677663206243965217444692553268990313700786617109155915802615019749367722407168077457533955494585027202988357524585060886730932080907312515841576970618049952384912751775592114411462843443808297913226210543978585826434683121173029760733798442378243152572918418093056562834090580058682817370780390028466654441298587086347966044824993633168522241020706584023119741036867599419420975158653786508456926328193701733333449550630429435091377544393233911646725780247834735295720227766777582304441436007949985961154277013285279321379346702806729683436642947401579569514061967318552448482898767287359876932148578782974809244262925635264167960275839717279406685152253017559995820909764300682255455213166117827701494738071655256388513657053971288439130234431034937689822051164875985280185192029125061815957999687483002677529024324565053999963670082986094980918872770910306629132352131453876227153785884963519585276271583198766681736656045358391250859260911740055368599048651834224266403703753192780234021035245422320052536929818734633695738742080375605915107535275088067664544560415685021824092110906496800461660108094963732050752531810096618275440177710918697010762499860733429145341843965490037093761915306607075988906950564303020694559688557696665308102444838915373825469970868762737016643675011209503639447059422323794027194388333974973333601615258897305266515294644447454244324302433113800023833147282904319135427153950447813753949276761045347741714968765575053972081634456489425898885824744693716880386668499060880207769842701989924740072605846987643635617500357482051003170925373425303505771513922649104688304313157364111416734554518324881081020014789988465521410399573648776292839119948694248273109326640178415705288805961038380883743883022261127490186806522727174812171847216526506117279918923228837927396920703489311078952632606116336050659696957064443474252388821178017502065218355498967671666991521637595317723404790009584123790968852853794232060130644730324092098938313806925062517557197206524968614084365060258027080835834865615377207898351399392619554230487454248533756079308198713891999961904495644329046813128612621310245524396120145455839313711786763192662149773375740558493890018612077303664217377844428351749978133489585470274900291775667795020730528386915372007283049206632860438662534747778023050221783693721101819713828921327135319253571680275506341524837279695367353676106853902270864796901190652312331484810870910933321082862827569320120315455710881842399605785425582424961925788863025011628790336430355245941546056692456647131066683881597777262912344726198517075864417621486786584339023579323424958665200303211995052889348611346920828147938492051370797976420297410616812443323299334091612357388391817677222935832717239332870824563603250252083586606505749263208824486439058952485002165152565076289808284637186286684924359510225292705476854267541603833342313420902293488770015456165224840198804477888012342403572453931778701152777958859273608922155779159013014722707609250318314707860373720241670093880146536262933388646531768625947731854338459610306191681781957389411781665077588761364263042765742989842617915288126302204141913095067961436009153999863791425194561198387215174008306489040672629581253468127796441472970584570909141419723546597985121625455036424541514177549789075615886384688805184057942395590615096945684424533629290422567851372767869407791889721965078869419001497267828738989560396762011415221298843096469534260342906157877441508423314165726591808143001175133897214574394945553932809974486962219920406121671429808676797469184766222792376380242898247918848877839236381095732260756641736017770204793444986053522364374816015681438223150572861104528116962595940156099052945668429318221165987542821963468361126983949845042904225102228093605130690854451383010660265767469771995844906009374731102680835345216894076496586334095719125215897151038629094674054529991700985336984618103901358406000314832213473216443285525427062617827250431194123365179378056593148697697046534909638753262172778312206103007501598205987145778300849900711776475110149879372929265212018001353539645397095629357880346914709911814329506765506603328481762158819449093615265020967929537747928716537501464240744325731566019954681054689937613795214523428388662315650459770086583200968844510395584632900035098448866106955560125745800544465841826464150835656193405328180029781440710829547490551561589733550429820133694681659594673292060970719385911623110666110086788605077623492824659365143391840859296288240508170110284893725309696961979201871074390436024443718059763648942197173251278888063665656926605688633570924031346405719107029152392386566613544699668741356514001202188033479213567408644817636383544941459958066557318369037676288415636841692866033659595931554794709466859352314225001952421840737458837212112120837483964755216445763580351084723894035955879451133359001834962583043361874375582880857546852023347524112185283871234448243431422579147859928728128074597352286106728357369104522334027354126904736809899539383882778909500761959784600654647326924747814028302117535354858490121785967114350058075859454193625431009993081763446926272191127128068596928903666986716110572793517241318672617991531065885066070499013347986599012364611882969825984833136113396585267578360597183615711290575204827563756148844334530169820555900488853880083218143817000518319018668913760714878464463382240763090060996734021867518158919600070458311641188164507465728145475091441414782196241756834345883285827795359719192229097830153051100954997580229827857338690403941534366884068105768796195072931884695752086075611148881602477292948377815574438921945367397331872474941109755093707630603902427358350126105160631774480917768061322680030491120385940873117217220489365844293410870848688847844374618028407731298344598815948003099025411453327881793332996468790645898264520154716795958323039642736984495146000319272057951492026766029278626909792762998840610951549700976032652032109156334093431125681095997930617504570308546007481808149062474759311395404217445369062147741228641074812991354498577114328050904869848791631949479221801893446591050097444769898361301532220455651242707681625054541913924703937007501434863858302942990924116775107092693184116090768635961202197759090542152931071882918712050523798512338781026973392892861174968781396615938030366314684476390190052789460299939883688768054618827654159112745220557641610665109213621587828667497610230312766478705058621340441885105460280906834744972063344790927124469570737144850597958795069936378245743271678897823833313088681893938004996364275781706175040695048776530945186132330841285638223310080688225791519482118452513177199570346385670990455489927469494001870332025080972915444992664894538573471737912624083246203429476946478502006867813143160309855709773545698025846026023423362744588694110149494662669083818431393308280159069170872255467943848995511030233459321485978839879263986248294741008482531644849683327827561188871584893688180886611339091340527907840482280132423945128285072237502174880927065436875152813644916442334596161494543822446938727739690235059204931444359610501731041861102018423937658084567829407027728778918095604184203992859210293089139610540778354832537716663079243384093742111188630174113390050036700815379894465916128962421432953395926441915105910399745747244838630579639431167960869670320854834781335024724162025287825467846467135762817261146451356331973184330187539147429028891087232212087784664775784955726463706905428826313601575899425378007320111398563685157238538247807756047191504713425647321744804787548955829769723711615784696396494950904092588952307349099340206715936100129289843671809399961662976143135468215522383868524300298510645707493691553950112083613407401078674311568894133182655523318722652153814201012846103161527472636390990929121156652200011576331661504726332310028073866422741411616572893175131621038281550887083643905695651911617627269886601981733293579246021196798306833699961332219040283768396992732525498823921478308020097314118277970933549682056339418276373098774402512972822596264913612792748131133933344447805659911660143896497726146592043510000320869340686601379235986538006579684141937458864007454854482975722171974142577157326428116887382141693668924043978726184636874994818269775870334446099190402444581970588159972004308936251109383149315172228288714756209197154460601652142552765900351291772983971597486347215327239233750570346388367336482608013683447416549753227735053184330411768051255053375664720873411867995894192582654764585269045494906353590950914428067409005924502543221640914947143433620353634600771411042122064599294017343788277841408328892962165078584016538801954286125464747119942342095008653126700865034381480854389835092355300757797949766445317336245183263467279455509847680437156530179259773507969292885147508991081076057216241440295905859198812577469538058143029338128872619188530842524113051232983493008871361551523673675226665680649946888424005668460575571895311463440821576127188104272573960293680035112070598713321203431948058832093033744640375075767932950020088612459335565175797557335892061014943412506146378521343383914798856193694682566923550228007133463057163245457083816287837399757821176660709105724664188391783018796213716649699227054785025280347166482360412710281105662171874973155901008697791459583020569899380882198403691465882823619315856749603892214863231725226236341048909776036049924240739296978619982567429382978787969009618594791953178355157955783204529349945494872242998127191540681675873737916304548495068645770391108468955878254424706831458206099671442899419695349739491559317554130523076323370825383430127873011007040803869038727123652373858674499149742741559823512474532226893299263266649123260610230035063806188909605110059871208071605879176069528098627128494769548636025911375494136374237368750205162953960800798015126222859919108197302506928142145488732319966611620497040999265377926344857600434317714543458689354140413136058659716894052843092781706845458738204575030281458315216523984035547787803239237653885438493727428753669657520206455619911555498799712671549073495435944916077033660090744905747817121447698835656358714905998818793015860840063460128052032919920833880612762228897896928322818900911172588728158142607940073425576479774831686045826125282094129575881605110981489346854204964622313849911071849531666339003804530025516787597724486079659559095990893199698823432812935786710717475290782683679086571571765146186056490241903522117152693529201631260905671944977302835126475071224575954045423055618276197351572046932895173127261475523479900577762031422195831471629702203615217268688119791435823491736107898726124123300533051283862214839866748699852517478391434558742687807278621326623112815880925352847071641169726593685144194455351796574946092500947398871955802992123481835610457481346624070425886810091076123667681195721973503385685119324782849844412424099834091476781998741836123220792491130896712339301863306964593325537195152688110594709299659922192898025014803823362453559766038379911767255982755366161236719167723442087442328511037020306767247834196501379483815697002546661863066573031131335102333070163369034836828446118928915672029063180591083646731595692769979150703141313012110010701661517640758378531501182374339452884831515167670520464313922719454484291246531745773643298047319881637409764072329619186413441402516964905488920090357047991281758016796023092750735668770159978402428574460746039919939957324572809084292672707396864487700405322378900259374135384232483192361041348639249597701981541971948128600798369700734594330738235811575140030445160030047632478548417081330675590698529304725346863657177289868286846003069488420796913907610452597788169475163782705538641899537850884400611914717619305311974772314990258838092275689414448362293737559881834175660218098523610842832433468459908351367849117023899978078762993668759500111135962139475379243628420588597089554582912611979262142957702706669835240334895888939990724688653483565275874183611830233222144132894040317023260392771435739755358675816838499905374167659719056701837189684508158193656368583075409940435535198045434588986505527081550348067194566196915651111575608543737219990491445061225250821227252201321891586382889895960202626058873518877623846156582296985243130802353381996324743182474804813069167006111606654568488334474104715769848590813614247849493676435581061979844492266976474106663885615121852526163244621973109347983043765421781926538958472072293567377760993721899530467661890980247442559769789007323943908956011928230996336761212205037708927348542631266760871021192768403417822632721005773420163380985406474593612473743809586407569584563191277237323221877866226977912471289263357407114443899393757945341468980857006752766239877052005004179697897102884096595511365007542020173047425600637736632479223070347409606358075617455269314315430242048457607013929186894737099461780492723997074971438859334403854234024058901833509251488045380439195260246507387392639459009429778468140786109235906708559843622556971440838902461810782898151009449106956157081689326918929418844311534459591879816628995523958720296505472692760669962223971335271562327987555843029323344545385030298616468404455050690252161764430266989676194877279700497044027851856121199039177700974528423292289211325068213889581349555952363808266461371915910736136682831629143433298701511121408415805872205374398908688218138106763840408322597575010816383370378908290776997581816009793448719230884872779723222980554639835932314932472469742902873122788034881098162956485234271412218662628483717839853837242137677342733281676036780289235020987375173148750775953089534820258426994961893469127970232384993294679720822483179448975725189275632711328789687452057992574186019830286616524545704224873255313376426392550430008393462825299209849827920518063542599279430896883540587620361754059376752185620750309955146389382489679254176889418423359528062584319882945560974299871715861697831684112293091185056179988317438929682039323889412916417008043566933236498822126024007479898361963741635602917318238802397832729724185728736313147642652012476995673933976911091495687044642548466170109784136497602955528188701138658710442877847573585181525265689906295992558292499241086174811637105120065145341068519320680276948710958231045091107695255055281729539306760408688251580512756583669457174439438085001462978704824783213659589496495165208326044141003547929613527003260577446260882164301739699717084145337469410787450172114011440069825327076455393926050362933214404208188781164357743692126822687120453933181017136532570287313154936140470852118014311933697914207659489809656434197072523583691880112707664752516811319305713590082099409872289943328274022961401832273090593125392305858042094533587627656424633171976090122435607616997784249549699101533074334578358773714077659719274977542250824421823282019253665183525299769579541859513951714739776925279612324236608732625516552179300161516043852604354254734146587752336984474148853618015950664150129091644108058208074850311535906842412931469367756124682343026837835758410821931638075127127146603099286805462174246237575065647964385039194694516905438956267433205579618111017874314861319863481153281769310435950131058555913318161465515930195490377038504618640822328269306724119452980697619324605933314364999919737411563091572853952711147381484131757585913657160563125055980294737229758136818221515953059762023988509307671071238286884161465055873181927584850174525868356401284492433076857409399495961255118446560398377035614231604981436211817774238242175282878252306784316793568432627025753517029867073097299171230695083388550744063115454590661087570466335206993633129852727423397444981704571084651565106533044611468067519259689294863575494330066767494461351923840566959113984549584452115153950554223982959592053546321155481663914647681130226918722635601940911165851736185632454411177444941276130106026554186929249913519720565809667366454828108299397208276823508495895927977707737158021378806326726001723964689095218401998274835313794859070425662475808108911051815843605266662098851424696690958478458127841639284195553772879081332309319200320019610446616801960698172112080185303735779037835344597457509123071042065429361378899508456265522149331213771363109904695739943001412857075246000339240443681706418605909682046253204363436027954661698157757999439364113888162295120723867443166944867953314707062018274452817795385312202143880274418981427039545269042317465089513361052540464062277612918599937447607363381034112632443682153643993278907487412807762337364573738007711394926082386976258455298710504005951584815210039917729324180898486333538217868665666770225099169861629165106762779204083675334848126766095139445111347147176931355990285618669594736923691697678119215819094430239494907283289365051298243610102636095888043156441612451886961544581449695812330534371799104193595781825827288458450371582192185246154281716645884188231071586067432901227420347417983684259148200118586227862974145202148054028868018227778824250785885544601570200153408251973554415418645649238850477386982948203823834342048564066724796044570268049120468336100724005891278190400980778584034056158412832612361975610679240229067373963689557031691722556243807791022882280041286478176221236340483773068871725741660496253286141019796150764414757455875211120508056051652807386734007714252457263351423183090243040986970579065996342744884671356438750249348934985499605410091345810725872215297341262908169629122116544042246608390551864871348131733682822884393112077581938798482350158282080218446542690295978691115860785028603026286654358743884759201252249421202198608254043696214186815734682921840578933708422190797856738425251007907312304346014517253419000402296913667667671910872087121663955939479277037766156672313001355900536789353481715794953737255894722749751550573212218562676138829226048408818786777408184725622534573964086031000069424870418708345977969277672559471190564781195282048539625376668642182424669279720095024207539112355020077389479118220431130908348884981624183019689992033340380820972397131052385156068598680175137852279882202962168507473268642284032344448348178041175472627649715146362521413752869856156792267021877503247000864111632009602190490114823530475197860706919174838021773902804930442200201271519892832278503695842744109551501502758741106608763092792393263273947217581154378162307653968526489276104228344925116200968875805280628625521772639786404764977074908958732443227316051748348495383465428318106397751064984055354351961595197329440704011067400418358606032241757740882065486622767420994481382133592625984379561437116320030542429154485802491723362588783817888646335065040899814153135584283652710392642512810117001338037532528759365324861642274877011272307221816470350088925350029513755691327176490754950763031608332130062662091388242809260205760594258537258009864083375367568371500052061183710182981691236413986023292257309724487107411121280978960968368870048672236006367186205127300577697917043883024466835430977446869767033124111063340406174551586387851632752582841465400168413641860657449500798206133019056502502463073849500710669529988492926848211471738448809380566812269905726272647115523896266778361443793407859608679791909815574435915514619494742400894912561337054089467040475568942529224256274105765631402624652996894760004794016595701314546292227666253773799891994053840698772981186725472776014842945941747443166505784732830000308603103682809861563996879883853244619108079569544864211417494552278124818896594610764409716700911735514760416579282121347025137158565679176495181905375123928355680184480088468368534095709671164742772948343986984605771885015276734110038304862560106830914372125585462657396690159421006561473115156851241579510597251630017116835738826787026260337691190502210540163041582438796456853778849628565711467553001931384663664265734912105513112885105916252663060593079538593764508390487682836493828746795566780442838952904520912665964774277451301063070488076650390534894440120494638459082470475113025733608770869002639518053700492025770398206888002369377128997373590312759694540100532210705448883898532317708996412923063679401401073956937499257375752482233431396447791521792347399701552212413576132969959421839196544741009525258389585509449988241548407327577832525353210677661506694879505812629173378756327430783099581953160472784558383207044221391578808228021298461194282698673619033883059105610178240971213450394180927010054971137579270613873596936326858676103664772487621251087770294004260859407614245039854407991743499215470373359510005313636264953375921361283791187854775847976173736237553915690173888167074317139997613571728483274412597538560103372206553964685330738226203939272265926311794154411091578236502327133117877314089017788374902852023584945007065551924812341794613220306284614907607718413672695818058050273936404699097538498351326686580855481299739749800239012811455326560656734966500660792364633690621515201863877870192620516383765699443600092710101858195020686353263020851442298014662395872334260364748835019878829528122018672960243629716274729697362545031606076345370894986365936085128264928290008578015765031164858383725742624639831136174889314397344666281702703230319151013165315055118935734449484146153615819395655553874564701620518663353598950276890455450629025524361087241843763523234386564353819147786537082568729793361895588604091164128739447486033798274109430332693363396933834619788279504228104130880852512669026871475650603684081928584030754488609474325403707646470286516144017113760914683467529808682155107338209691203341069861596334750696179914002740327360427546372615023107469093585715195500527331029483203178173584980255590497367483193999238480472298711237325320167542432048355045564326033973930652848430724459171502908332361396618638253166554964399550123859960045065731095732752850500692325178791304897974054548175642181856806851797178823641880094785029269138673338346331999632942086857652032549648026985536433059854944651172194174426921646975947642987444157427396847339432168493122544861504955575265614385937721023407508541702780858119326724107590146020655086012081534793995485036726602137928793331255037348683971706122321706594359875618005961468481715159265399833604187578199791524523109217724566732547149711665785092674935689130409560637706165765283009470905152394822295642150610715300759789646065744973869920200719398696074536892142076586299690596369358809963818172252051946007331810710796318374742071193315614021998816461209570812181786310347811110658500066662302848869953136471793718096020835735696263939261636106134383357899166888151319215924963779421525069666861721020630087087178084194429076841494917936579685640021660506454216248364353092785920540918885260638421466662658398847556033689455974721030256628278750644586254044356438674414632737586425192720674353126700674036784047825417098029239817204136499112786539168956099174099853661243804056376039916613390942726360412690762382699351498085013004337543231904778236667187301230595440149795249822971763179690926376135932793783507161352771924277321585865824610243522790285250582999662896334134481119215855778584231708928098296544609042688616899252475312108662306278214292627520754404056018556822074349384809216741305787588655674327265688792468109831590855985355258798982000926034076497522356724453594873690189646223501899809421438195933207692760131590345237641884534809754454827904098426344094677286551717235173838877506807865428896510188677160555123698187615567179705756698124479151785351655456819859300280131147249876011422506883020450630745833870199369110175453929396811270909674908549028895058036396548656555490015608801968354378630782486957710052273668382007845841718938241513937031119723606465174970885516270859635948464097033673224752671537261945322640205069757853064844752571781617859123215911024153423733042359402050775106453099330257371056554009694427120749673078891299728406473543521058810264441703059242495451114125772832738489578495794787697080589301888769556376044279554477727763290908690725469235643823789649664462799305932260225635656359692916636516447015152931504983216503082677778453075321500372912197873104511138940903875251669152158766589982048278248453410675494749573339848161608808191812094421461116163071213978303171613809565057198106136146570102770629449435281078596477880312169655256018178397783971151012321886949437673732602663295198606459758891577616573876780626221407987086142784019341994010495196968389449701222543677643016897932400010218089239137867311702137900492797845030923405145801194717325194209783207490021283149814068341163957404754998898364927289030964293902800623168817764054665197727376572013742614531021323824670941279204460669760760682115931435391598380478965847687027300202276281171665740429169804690388347968481397288822681430822607534184673269621724382232818728010557442003720491621681979853852503717877507805380533204093262322901610160784503149072153508920563723532555725555964873515341517080945947523193898181044932318062254310844445417379103581463119453291026697206340082236393167531309071759789442722687270234991200925516839875734455996281804392281459950322320046146026995897472370253822520967120378258364996624073386490549925226830900774993696198523404372751623338088857582656754959739931327123157818216418224390409952041365029131313029225052588578019222498645822957159771678194856488808700649137397595318284920613577636310058341733895925445846785048530967374370908923750520586812923691106140176760969842797798268077644819033009984532100262715804779331637769906636110275869849058127501527277657925358429116248028480344449046721553413721458366407406096539431140699273161153627440348075897312433934231365005961253975267547947105816236676936280811301632649231260707971435067182723678544149690034604532271911789137235509429099235667606100179041869887699022138619441615732673859196308759422118974625122953450415972116390608500178277141632800732633149542339365560698029273368500237301256482267985385224302779161938865449851928245076432870333802914076644857604546711951191125508139771817184384438725226959161962849657076545004046358448327548736766272953871509931460915819933027306334159792966771487897903283457543446436158123283811492229235312659886649811189098540141416249452045263259404411236984784846988981847624853398704655137368614022682299098088032539600150473912083334377394908897743158235302315925539257218915290048130551965524593129350654705861205660882504787231108646069871870876819357625999043928944201395420883301449604710147266276029434728472172440987593088708090270861715630011862549003245373420936169361730716529754645176383513651757856437547988576900540242369697083643845137806560309845346755010155877389096909320578347050754756852532959998519684016022756785195977337790490736015172796133240598123542897894112048866266950342902335187922695755745027668111750419561646030846687523514605305862990566363347824908063095147654422564144089611366410013600383534039134776152187686156958222834238303426691640159893609417567354669251979463633753373247736953590221478383501671904102128289999005807774113433409407469813061058494826713680135389793015844206112422420688991440217814531763373964429642483196334711658250106493264858254702016411921738630797289423412067664371447802801117890706397900246665878954800422179501616227366719309056128875823566155296407719377846101226944352817880161895468165487379316130291997044581641557285528989660816198612634481432572169179620211079926805986285894803078780876355407286817149737771099751184345800232698007690775473590646274347714057596798493852835511376359535453896067401697631005262996161433382971491916520243699305890195407239266650378285990271960980610413201375135726710713362775406072525231894640064268666241031040290436950245400178768836110545145634454401086246223848919979519093993696521136087418555425508546433780015198942333031756865175071314122635998230772718359673797537890951166839611291598800497704137378462827941284024913054185770667270174911850150645645262933787372905736014999625849024317023684832977376354782299103341832163131586233028756548195312882171572203156169726940283577692319305855557023427785201119114299310663606666429677005200023922579839086358446852390872302868172464050889411348761501929100698447610479740954537627885670706145773009462604702353245313548611855608967302113689699005613084948531000932605501935755903270192634264169937427623129295216729548157704485376648313290913557040431116058819552539967852386062793727164728193213761897702166130806379326490536575777758732305225851044861519248780095930606710305717493532345844400011084141118847444615134139491904454990021076551719254276279519026746290522797848818089786011152175815374317217287118539845487927370897765864403801238722627666391013462315648950448175257473211681647758135741551329261015284114756381547632380145373018716275294816595677738973999386090547698690636044285395585201363579440439826475241509423697552493955217990052792762284722257339580101436113449417431886875318013490904108660721863747655696095212419390548260983470745319992630947731603751186227278335124012102971843814342111485259343066803991430454077371070313114519656968555251318723655029045306529569870336237794419515424937310571326548380078173598686227251120222241988501796430360179361021238658448337979023762753577778559678786011184121939861470594230518739653334895131786071640945398468871833916126169749636077657551591307275540955922263410790417891822047648001649594760967334066227953824682202808267342930634899546546766856433732345194803995936953903432992687759264153292710196062466233481716599040470662908233411866398200402029854581983163625547413536484292924235147911309045122353565102369521580676748665829426010342896541665429627264677857238695084558903020951636636969443233344914829553373869814832212255193831895238769259684861606807260133649358319813209188942660194473440211414651742980814260421807252692335631082748259036650560727081078866717929309745341188878272201389351950561781826867551367724779693546761996749660392022399915951433522406294708203015914739814515054141245595781870697920589189389258423919565939882826126781650012607828427588357255551542896096565464363806812554368248517306959368317367208983810735289193836907319816337542285991003838070284508023380020899264056487766536773139115692268041256220844465039799445519029482375009631553905214465290447047947215316920708898620123611654016851932612848940929593987008646864120370097670539270845506014039884744951351799018909415026620528813600579348556503485048159144233290650636254277861628324499752181754192548632321560397327223682620500176517198473259323206818021842871608607420569151576036964379195896170083256470709071444350456664470906239465037473772461327403165914127876724972893897232046447656237295812062894885072160967437861465437236766635868387387847388082701016938280413137174997362445144845432990199638792637370037417831078934811272768738044273381089090281311731573034223889392608705628993813669151353486524890175527917558563942605991870200775632431082156387436780969185139118404011929771782067909243454154116726464861127362272156446544519834141237085723917835711350836155218387015443149161539483653914319970024949421680754289156042534496463909291557709334705419972738142987278824843309508205365183203339084854775593866478970725673062246330878825441814455257734657140899108035846263690612962167149808451702670066254885321991380798660472765983675478545674284124244587620173960794029482235008976388445543604301832631388001377570990311287071710712382564833257511391894434777481920878952486399110385303259879877001210147488888680469849817479866860540425841121473375208200084846060731390643652710799466669163844342815027348968232881450342511747482597653616573382619932828860807835779170668443086612366784469187573535901953926596926524997283554223108974232190571784791233287231836442954866471186722221917810356193826551136279412153755219480359809324770348564084270306450225227779460179631809301449790634088137802842239296727756980604737644654309507318981089605196134438827630398629149018756430844001489412927444853846368287754367701947775696032901235556059937757718175783399663925751572250851260052553970509673184678273610805924011231216502876666169193842088264308091617107978319757985309902881500599041092450986221022393960619467823741120428911152151012703862903531830617804204468482559148743290568548912225897094768264819251813388315160365359643453581488411907386454454121487943971305086088791723051047049690115427808042346247852644250676879932180869407234440502908751115677628859726929345876070476555131595477020039333369026362977723384804018161355480385168810481722413476471412305392806183071738610527877180320478895074901370384560535892385428333307907939286896498776054468883794584792299239433304851211149005555340388739126021832485756416960375922795924149842377841850008160571563434720991763953380924053655899400858071818596930341823462796160608196834295219123751836138378793041544328918133708689969220706955584581964697902719024304485639016893445455869310137582278769148373973076482097428549952418712432323826138631223489199861948994839267413862986834728201886506878129461092323008705200970090931927305556072540945516368830994778116063393093296308394740679670114029705771878845830141515155626662482778033628286193520023007049788209730420871852057070510046332525801324832784316767261304866241179846869558565551995851530997430605944640385628891263305797788387942838885242753414750018684076335404893572157703067988078649592001779494822619963348158314473316562477746784505626424889575536703739924185691952719196384172692650986899590397434316826935830791032038464548428067264571894871724021290794764760299595479250880180225601586561688673057236755478718698281319337603909776410995959168018342936849295981419011014217621003718792764939041370258816182925164837465931237780978107183834990519145581326705418397265664208573277375393116917373847143537771827887412468162802125267982610917187409874966940266252739456940789802738933491309414371903805382234495137732034641098112157423114265691133183447892536946475088059772888411579774641416352597588381668510693686247781505462037277455146057005376902747524570060474438726169975454309885646092467415660678682879246820699831287325919781197982641820337825653507688922260384435309475500575855471894511397109689035391321801545198694440402846111785548373406848469802239883250828329373774006829013669839572421391694566648106276520211549813740468796073711764933471016568820912925810002471680987149063605200342288378639576925765291818347319439188826850598392251872961752407483413141451829304043571500176099937065361682566019889280708825706118942396710340620541623650244660407800811706162898856253955030190269058607677726160227341791241352891017931696465410317324865710538208521422187332285853176323599862518427319997606368094713992315906248875647207020717244221217041507872153775029737801646581948029142470455727423953966993815193206639580924500746297240997774638696934437528207014773588192793321605525870269008651859988527612231662202180761424346093643727251639034919581371977586115388363229500264052346660872989125378148389312982877256986387395234684086038874709615846494930530821581770042129210555781930208659240415508272869957624423066152095336173182186923383778782859650050945335596359000250769264315193624573261085985897055961535421018145640313408629239339735892524044097663324461985676340444378507333827565155048732541944632767983867972564627124961773439973803949940464551100566917347644014034467244470945220570653067273547563820211994916337512162481207759816208427879282765412041304389076237038843745381572798952078341878743425350284179686144688557272383332792527244296867458401442831636333161091130670953887663052327807887481401007306966413543726183092952448102881508889635086522802190624323949956785581183491205578495734735536277897543355557410277495511482300506329380954628267781177437999839497688167509851954701009907039119771121932160579056008495491547792357624824775292742649220379521200194836654439856122782994718928784308159706246461387791161376563019022420045577908872221277635840488502149941936920050482904677152113948727248715130566356391481774402255114863413280844460012099346651713023361198132625997528568506214118805693757207506511151466273929141529039408443696506959181869052664891109072000993308960025224636872969808451870355811041069112268516689189863726123794407971998774813871601980508172617614125013594534867841757024566131171055890688627230114678166417686294242105484962055721038580075436889224014367850994288292452748738708861533741466104887516699100197848580456846445979962617402686708755439567320282224957848476776418049254707341824131864402081415228617334691846547607935413779272521411512840726086165707087417712499216733357858195905020528792335224299279631837271531902714060772173783797686909943724026723379332886320435374734487410117255380961585034718342980572668213814803081132078346510048463834791808117235087018607366352830309504731297623719551303273830543065273565616964297773292500382328111215816060169707940347356203003664229603065902438098744239854033188415051285728842730718217629109162976343377599043045326466956222392703318262488782837123906889631533500534183708019728249105486774634688626526442285951278507943657612002082431106457137549061770622240967073777252984842182392169218885292020448735822940599337330588115136462860469750438266121463387737008006532706247432566248720882804073977633165336274279680734007802661715662740115242179567093076686263363578554939920222753498915807599557259125183257167328442703979410043745256496895186371988508752795691105565677005912384509703801720888673058019388923467302734769145424536991287670114061696548755790696703723695760044221046044706111681068177074550992609466255008933785786038887966969444440813860537522904766268638113958502068735475500737414599542757543704667884513013661567906106591146069139401427737821812437006970819188003111456103008225495343798856750287034954525929351519820101614576289829345295970247652728067436858250750713024661016451025307644927845859822308118403962510173856618829643622332677563400891769588752134608734482243860975541743699326067589846152765990816568631781032107749654808366395807431912570083493675234137376865856412503083497770170325175531469328501262129224293628643457135668874379153755801703033456714620410829275283035574213545388165439451376671735545996550401770564800017194858109711675836435194731659548852218797495269396980201439580782631852912690510219420166283175698964929314851595197039192214488759261592288646600431545407631169702679555834110165265404218529616252906867974264778450655357166505311889496125195836100338930060345278338468266944879813354173279003453939300102414498023232840051139454699421201874118976789645434663043071338399541962085921009141526942063764553262744345266437373977560627688714043916181106479926638678074582444618273094901507524639354553136207242224524495937602145837818528021178310564795345764386105025855924685584657071133152969412224202097048529638627941084747458757392465538563858539576089756655454126810171308976328169001566004973006198876554262021259978235327119433726751641750160808789890253802105079309777178452678535772627970835579989307238431778797766904779609575796250528245234681593026817572016199115083903601528036728635331518150613217208722852551687118754104645827542573443071950648889702834267264442306369576434798405017486208768826752012399313401431659077647511959464129036576184938162493661042288454801427431710416828852508281199173954416460483592608674297197343919233857400244410507622438672512469217009089201198548028684811250065312493277816953131509399575759849635975647305398130509818026776566683557039234167706070833412015924398140314844920919428877699474122295197034007379622911049245674770890233105442649182819819250727337147962213371072868645553693744630499542374899271929007579537278650678524789331717610020500199275210815093504356794961432704229199637282751335698184104558122577038667212500110110157343886873196954791991936501604411846688311069904328776654559979032576414212219555383816024392168021514106023869535258135901411817705281378629684802025996277305191855813391715501961046748507375493137063739690958032531058326273067227421622339831567814108830217853071731166403018683021194090523018175845688087089629391784454730454761935862215979744810617599506937535627159308697844630322935137636332918684107922184484708748529226245310472307989213492316418741711099094941466526387372733839618326560652813703538466775491523224898301771181811411927587963533164770156814416865606957577556540407182729620893455052016084044057757635334756840609737303993576105380322844810510785157906742337668147224997839229480946151168035807740165887244022163928754892968856134553339157389474404444892215636362887674289241777774872626511391223871031713687382558582013918430966883189011037156334907678522574809127288034916338496409406000672713397730957904632448165162929295979590737151842225400546177852103678685776802603171348833963124619711047790649465761161957531102862473592991723195983823421340617361145986410253695133472053203590265274584482936614431904425312192837507113596880409963838807073530637334739625208559025188422140265941585294682294414521356132321001104452749656792345713508998121924484172635323296078548056464605448539733311516479994978590608322081527743994935672776300635437040118548014352743559801175542463890792958373809923944547578574697200141431058626936529305496206599498096037232056890476475100770575674161719325497431589090818693580885718383856698972485566111248060527529566656264046463953765161400729472502630779349485095450684597423151026045388237953626926876624802770793218255822112941293449642520389736029113019652193192539527637073898450037667843037100412465892918607303519056737619479442297024259483868407664586174123257591180538364632339789522904355353379110087748863770611427352362049541199299221223432106311229343550038618966878465807238022414644614927061139507038877402048734916126322792135726906435507522405571128216959751625298784378992136780519561516276275466662075016305702611163733507467447730214243472948523073951789937254929596496425144444961987038820483619522527921436253871832701485961472362195255323934101593107549356401426787031055205766553791463106818335382472151310249100616497668732911611737188522517997213010727858444675883199765345458810738035674831822767008051822083073667393681180410022616164732659039594145352119278998978826587784707141455319677241134703922475991728471505356652186402818731085763707372872435132894688426170794167342225360981615324818813148736125663229675167945697372566169566768210576795256177070587128853570405510320970732500140624215253797229707053675549857809337632570233396346729643983474427799741636201900521280897813090030989674535257437838783176918087119231896421229158137708018926105794112246474658597758780878361640410854947864989666615567484637831509583930161507341045035759270792530558318178796460443239081132827814697650641994617889820342074281649114534739221194154489205458884657556467514903379159557689344757895277034037479081557319654992532085239505809403167834379160119861142949498651245383033057834217807701289436766261508214181470449217679721672029352706407893763118448346198414507053422412027060950196294613424824453041494836779862199641828218887207034490534573948855289244582846156895556554490715571418320533522014173088685101352329561677558594554919254411479280190534572007431878449392132986412559947755835908165505576617050426823054643102943939768402476578632341927416488709204152500021645874827030573894467709056761007459748283664168318650901289793278892377449853978703879865680683340355769971663616014156904525170720721833257029085492456119293853837470282457976008328323451604853457697895980493045358601909922829768084266283831783825651334781909469689726924177219153185279155147031560606956104023891624461319965335721910725332543022628017826020503943841628047739780141879887481486201763594323023981293687775261173529577859133732829543964009721877879710871837093746127447037744345752078963819650340629895646025331278830556426060763851671993687261930946547029902320479062978213857648951562658699673967335665995248211147141204428279372961691017035895686975820383789874219410935276860714032848995938384277077792653176411328994155032259463198851500917339352879432926338071441466668080677806927597243826128767138653840001163551341981075577059392645646042598100112156872723781313829994339478270491376498883643038457940283102682649316517715918649659704770296852283773678780780460459886460681720028200326936133760210185702934764156216355887252721070014396741861702598833954754034981259685614370361111185175887946096899889176322256409048981986831593142843069277123749679107515861675331101836923369023103862006127500197585288697629147113705451402278644822858681243517450598445240661185341200793910457790003544771535097788130938052530317632731882992366893693843148232833450461521198982329011228139255952333779031239304781440871298720438804877733445466102008577470778578238997678892311936535893273813306772169186581707133977972719246228030499441096403892161009414418888220207531215165917104274416266433691223507021927407989753744023252968612748670240478966879105811536613317051648299012626766064726886875245484646674905725143545595117686394931332962306092036613834691079638674147367435855634328038257606128816275492190104033157849948449833985141934339668062749591317587037537029139383597804791830160822980825755196101276597243139013902015761213189125595401252829400484387733663338345961970180282037948687400182912608408618844842171839762916054355067750023354110893614422021173102725099059512305029951466605416365247732276423101317953390280510371596152596625876950290085360301438840850026119714922359642399946854565232590128798663847527208542057450585258487445761634239922825864860585958694940770517459526071834605190161456973057763776594087740312740663386438696647823704134039366257934025259011345506255196501671634869939816702992951962970787574034355876637448511558441114941631666314528637680506406802056592713362205131010870242358676556129921735205110638417714506107427777930272801456591855957739859558883798253659116304905587621897544595592116221059826011643144554746592806258795674370397928262130279881901457588658586510582560662926908041982362084824815632706345704435378508694078064573440143250681977761184536030356952657742376413548053281438393254077158175973895740890917282680551128455483885444739414410500662516509336506903466828169169144168399030320413463076173099415564763033432321729044520316618677093807051769637483379387969542339046233414823068221497530100534186684816652045025828957839901443021956972970004149657985206427187075767820641551079212568265030060548536987703388733222778030264358463138722371309335667667729412429820767457117398859242415792395485321731109196423042362765076069828138884584503728908438527611468301707502500156584093687467904510602465388748339657040922107380742953235546825341700224166323736812129703313574647608140180343677249349864479187662946045259301005821412047547992186452327378871329966196089771770271214646901979097842248685838493160473196264422019191151246349369786984483453732667692300333505463981715089976002221774104229324079587007673315673352567793224666235937343550650841267352426226681404473331802297153368859466170302329531942168180467128912080193899541912610724664319162135410263455616084086614848091720621963642098826501723362919048676789250388201054784797497460594811798141092329423589502376838543474576303530118657051392322616861574957096805943098645587087411270264865115996156019798520319085953813784812739415001735047402005876117596683718888047651240119169451864451119860224044809875553829734745877234744296766420898701004851762849335394386289742568544959688978510965219221848857278423084258982163803965165814179944586998832403993140051958987639194587236078097439889803933962160000309915202199256383018139948965683219385390531750900321627615483867897553125632317769076610537159082166268836318241337945593124312896904432202765142375222311907000401082308548881065276329364710618426984277973174286971529193508814465541514761764368872550851640140854881154927877533709218245848463624860963744369582902278054949224401768714781000008986260604871450613783477704760439041939070849224221306769426208695324973517503368725615536563082673410718129450431140986139220072974814216190961565909822674093466962411469387646393350735087370351559086488491655629345971661084242747256858254817195072110852346950556585948061889842757065584247013156857095092533641097410652530507585309952764788010052794245789251384941656734171912790737280374123736355777740453249642916241934708582668783184463478720617422460804119756234085098678487443964274539794812873417596065586613771886323529357423046212587245530136037226244125830934480174029557433868300908057384277151488175224212546348885671241773289397573474585870125110161331159538863208170594308377173081180117932736900792485217840940812315087332176982205401735855116517527288142825042783959663194416717231171789094275320003801791795729673663140133815348161432212321319763541688673830970615101954420425940338438642144178313382487036510345169362717738316649137969891155135328896800115651751403536224072332352427833399628652545394369875796981850440785633356503755738296622482031483901279631106597972168869829375244507500365528963796059718969998327689494082895529652245075022476243464870173096957861913121541902054040959896584383429501357186361351573382826216924384088873920456568746929874991076762442399451954338347013046593414132199017945360285022080893519667697284568085573847542104545018347483835575628383267480454961541203918533279675978124558597159602869410281037025833941305151171246878957081707650946360876349463880153648713944129246376496975085465603219631585940617668479117405198576082897394572722952003477434863053715465009821561384840839941469255155152688451123429058940953842218919993739764207392246428644109684747146108319278125892976575616312856503347744908958330904133837387074791422529268593910807540428780211380203543120780438078726547810914585283469616021853398579709383609140135377458275259344174092620236846394493261684258593429959196557926667222600644760502450075795406518129229173837180105228439373701698985921150693122155208734658526642503158754347418855163993610991179279278220015594949471849620844536347206510581062762595502241133042311289158773196423601232371496726621256209907697102074393030417108410649313514159477018053440578245420220076600953334523275579420174820721839338379160095562968178358366125516707769480597088710043954534022004378198620165743959085071769965050379397471613051101103427452344623790376441810784284299294135666151023428923501131315385940095918734149056745753378025867087947461463887451434881060872482889414184830655545643276361077222952949014077515203724279658668054648600808072657647847418659149328510886313610618823908085243032307934602415176219452765990825562080776258113768826134165410746749391123164818339662003618573090569313758212807465133750899262178352011810626828715769425670819837460092826454870926372458975963207504587090069618914986768677300918743739615060309672799030333741070012718054374993793353870164748538302707406521210249523618727251259423683333930885920103815474851880351033347640159406217044385266570760617975420766391239130608693338738807214548567352976755258634094487739582449231214858825234814554831372819406385232166073882779012655752748886848066155561895050111907383825632465314379234137810549757973524535732486082502172782572485270996159743642040605792978444753445769045276411440094234321417223269928224916658708924589520409610494552190532775255468037983498712182184186027151914864674701547649532759357045185766081598772586240244981138256994740320545101448383381239949774085657249510477778126909029304471627218929800802691279607008402369243619800033781194426769630813453405073288461415814460936716635805602237925078515711599110955821489758943000696522568789206308736208655740616563176666249409127107919592443333835217182216987900725453238404841161114831536264572461514348718064522751414610103446881226437448014965686910895283709135549808236108432420902964522242806598032309846565530040463474073400763438554112271492944470833645293108964200616014876622842025442346121598460966102950355428132340019017120177809599612669658507433097636179459805245838326587014058451970331697182978829328797661475189215875771899882713280570804479279683345482562003094690307598257373001756702502708078193982269395923657946532586245896300522507904452690397683276938621324129246176235737139373984318864162459823640861865305120192667898723726338916520211777517115375549749786061235751244792734686219500311243036574485085623036826647626812806715682322122663582485172777526241490647641314773151819060902303407680192574973150078259225350928401686122902252532600839242471673924610026176137229873777346902522685635043725509001354324745833524419054589194094087936398102679559544949465734148549258178396972212977369223846262970274163588795294214302604605679263445732504508639061117014399773196613106769035138793195958975619099609492318257879396679385466177499931626011303768330830337898608258077648718488969525231973442410839118259979270666336866822183016607316806760705691638044660817486282742972346577801260826457990518675563742635401816496822905611345761238401573733946903384299894008637678556643431304204828140191422672272673606941717063438286072344932240138829400284556476183450970045456400425738663075268909750400583658821416007599303321398800319108959379665808263284853868352704994390958771024879255781978323060607258403813287856169317153388353190754410453463979377486878090053230942064456188466084999937249487935694410283541960166590631082058288938128845854644699870956598097813556831555803342686758311409235412556898362003286411736498220079229840265159040263447415184259689650180081851774411186040392933779946441554892917227222028201765632611320624266324880487318387322154601544665875771090642012534590699108789046241231879090300228428911560117290190557988509863739276180358074570121496478366729661889425177084294799091011009611931252005102461169141558493852015903772370027215794205058016757338882980363671566528649087947376168102461878371214816145781674092190548237086275710017298411641985464436653441935138887539732540671055243621764604177551613699332709368134080170346142888450760638909544750113636750636890348147875584669071295650545773927630489498593657339828377223634575843900479066147677618777464204081581238891716719043796378822956101493239283710106243369233264172605211196479035111672508956619391789481118881024133139824316058277522468830507236388569864182414667468805600145581621204363234623677821323317442144322790745134507166694565592661637317518473591919862489903819109871834395360037942415655910374009848777566721343108026281526256516488640664811887978158123393940037905092267674220292858588802688627380306936835445427917849774671516316847660906783468288241341739234269430260214217984501361881288586748540040514318037806134907070609704568376462202533815224808282869562731192701659387916924898534772057434862405234563308296424549717405905458471211433498936962028104331619078841623791901224373743339266253395834953561340513807008309100471411745026058374076142441451041068183659046538413253283463756097774510076926211705304613917229906233142134581728902956654399401241481620859607578280205039509449365647073705232137920377474417016282472702187081255161541980865615237068745868570716655228142061072077225423368877546947940838371173799142596349661404726547282898752253198381931157338569236034413726617075843988362494336942462209663257138243959205339408728386273297137396107447619383210001895758262661604541401753442406403885983668433347433643129596341177708449892718624059435240055718171298792759029800719757632288712122968820877940737815311004368267350330247765736235480009003302670578850664805282308941309911285100421060507920933392952578618404662049673778740691333660095546623621718106999652825522561143263891609865059048276472341406399625271958642304047406332662124267912162042742446595260831067252541050456980126451798000909363865899564220815736492975411547665506264328605731177018868664524865404479345185111545627081237264017321272222261428184649969993986342007989905322213377792153258696706926347469143383718515406310173111607995773344432099839735467156883194997576571047649963602035291383792321148027036633750545437043485298262784874242309854571786564872652847960210581904291508705181575248089125702670802446025373285032246102678268149779066927472797566281760746656340251871311729561431825429237611836603685962052943201842927698201775594338372618760410912224537513304692104586707416411905828456665075544788813451460103776375565501161508981237928174279679042186776318971362991264095633510779722961496248574952440973159857459702058068315025627656974340493580068607675846065643484809860277173739930582266975910709584150431110327537524964961264791483946178926798821771221216693905676053959105882840720042867650920903107901865163888745330527352163218936805631272254834792941595198664192408867258499883910769582804911299664003725932414141172172805916364337490060843001962647412733137791629754193507181843537693031931736882483851820643729078386376523925442258359825652945175502903170894406230560312253667069093358258562723906503454378068202558727581281019833590788797871709021338048778442481449528402889543961320407901910454448668461720263356565812523740059848198584609529884641378840532201122796461208100081154317795372222028133237915656972817009407536795922251975282163449553267247530921166704124855309782217451520169331289619720103385692954897842794709104845035645576781105465736524630221836572901763761920458370480110527204624912583056067181075503603221864503462664860373258657573446230136000894231375601712870459055692923209206427306493172151788768716053143973241120757173044947758337422258090840771666878146638365460331260423729792869013774333127652474012924242155665479635333411360781463494321336869640599029513176117313347326167680030753780825370114307576305296092332500608274528326404273851672581073199856630111789740703788786551658673168972377831120690098308766645095568688001168528278778889074601905746989806461711245732709797472939655727154875785852920985979942829677502695228920252105268511431103965335613088519801608858232308574186646545287909694758896229911898801075786621296185042787684592771705575300448054229767055410368519050294604198518917514419101663427133373209231216624746999469304457238254754996210237817265026851185781070896905884624743582813566890975339306427018063417788970150252205972390040713484710715080322361557708154542738858021881816318885271290833381976305451824887619800021065744036828566351824293481742562578868941588665403505827681781780404088356948145478438197737800531773793680207897946929417851703813381089454155853048935761512336990353141393307895637502227628258764326670701550062223276401118619296825126350564490977796703948797425746244144515089080794045661687971274365049330329249826112079900202434910897155295348127172561926050408210192545185022742776213111316232930621423151434094306872128973228405474875562298056076905487629563390147473312416225354449463758807735311611782709139657968368738005827286519862313185031937662645860915423828026416288439396537423321625199732286628813212203418599950682236667873219587602564089194056230444141826620906650410271567387834624311498323917124062458678049562675308771676800089972638956416802131908531272316755268828001674761986634976779659990319506548464233190099291405258475472487546102681969618172353950157713615055317877083667293554136821762684276444606916458121436898608231958934694326954402763977624075543879681276735830698255869155498274036038208545303209750888520141270381798495551798476526454138031542804612015697674992312911820932274539944611895137473560557492555582939487450387182046438026557269759146366676871696144768679116091803456519283607110117683458223380421457642618899038971903869185672491066001724898587740951814788043666948890338873550396982318282252143803694910482905985627315866232605794452324450007944314483422223169102727207086352840773128769996541915511228128320323116812541523950616659996433458492837702431119515371379482274268444206706573727691944207828615393502996544509384344149321017134277603851111715268944951516428174218432135056498786197380727586030413651858558259812218823616462642746865397191368237865853989217950303646146525214036605266324854689994773918205713966507742685350778238189649826223442646574269045914259271917415209511212785108074121382277732178097258638896279301277375745950162020014673670172378419306072142230316027306666663544443761729154171699767628500845113133141287727971157882797884931795404200468988820588192480640225610285216563849086695821028852594789167306612362646233795795598505793507938173460456091434093130567728037543885205659119576449050664967727570869390123713395546037028032255777091857100369046535586446428573432938664442801054457769813110916292360276029018089202636397882662512989277542608567026851226484363124835114934773973279462791712528016561646619280997655160811338025211493451099538829937235467316563859190536389625732256704599206275316290741615636514816350735974548438326246495306159082195916141008168515572691358804534682197370469824565599405573605149816130326886436543533704896548348525069808756708988271813943176373444065308373546553557180404549361523915669733636960114071486118829527731680373001019058937809160003831931946449298972877801036663202317743417126998454483100729763216099811618990903670180002639998418887129933501948428034326117033242460735664252184286857693345014677345748229863136737277151269000010998267056399272888717491447179966734077940193811623926982629735382957522099452637193487337998650447350875836870112708768736502802762242651187262132020323152194068068001719051354657437332097680821842180512688349172495687485122175035101423616066587642749911393789486921456661848159727523015544072593318281542495137238482237861789131009470834302720814980291413842168017261673245649070762645250927347833441012909990145170855941243624609696023421516854008040545479324490747540074438920186640335816756635327276723698476369725690837763914654680815952774054928762169480590460982819881569607765229618017604342378476806630343196377063224700581758647088612756462690247889869224370881663525634517525954880909022903276791527283229855478132495321449769168993205823877615217385637985354147916438467650079843052011120051944481011042178206848354674099879112027263325199982467647032254377640306208209056518269184213581207876520607844949844764739044609674501445800069843722131743672592831579828352662136951418662514889532380312315142112079495245867064388304796923717534656272445014729734044888215458882660710702572925026192926850539942544886773644805887454205867228494232900946172139707013409300947701613236316506152477140258324342526443909697892917679274462480714720782147073732148402199658897614096801303838998491999643202493068769312605796401634859044244103285713038949780744767444059367041462160149956890466703594255810510616657319709631396622752437499176212503757240574368825682342431695471678578022897469371188232401896667219340243288965329556195257081716412301090516153566493763402163071508030367867578313584650386064174353204188727758663590604637061964917110112792899598115626580898790946001187747468943597357760501019994788454518850119676061605020910677469909355009308297917491839559058247458524060418218789281930254056385945520691007201480413635777280155835208132366046122759096447618019513928685646762750043699366086545320235437159522561261857913976688149938876256364146613958618745177273548249256755955738899222078594541223085748683426844716006465617276225803861049377495437542099908104548682260780747478128150776704653836252599383109006541589863139189173276819038842074873601594986072675028267920891437114830607485595759612681539321072898221048493521795642110077574845954087150375714389991852367553764604294724600316253152123173321719287427482326622445437661535754159895141371209205274875103921259482679384109952144414879603895761348777418029028251120741281340658901823491955019907053219765893673221004951611689405833594260113274577203381428367653563282191773752462920964858781788660880952931034188042912328720303642404909338753152254038972368038248867382289527158844521175883134191699874491842464487344498963072709222874259979015978160646539958888831960521774068634134273517602505177097527147523165869329597927748528506954916112583603685813670478639903465047972207840915365019391509543395022023416221667309104094582224911218511008290033819804032519452694808051430558904915698504252498883662413654089961644289787212273492152700611327556070436486436486005618938827231224593391078668086283845383318183678020036644828525056794569776318129771974032067195645498961495497710969553636768677155756053315936836023007870436136063738921640976172000655785302395063619251992533305081404933860628111970367778335150620126900841997554665744169552994846477712950234360479672464393775761578287787868430544163607611759667634404772386762234900169882790578504771562156449624618293923142166417830525281130049309677889252632331226737745948213017021219292558984025378347608838079538938922978724190811355165554815608755740922032931814872497883939083320275300100763552190082232618887484809298794258226799247958755569282359739985531537557301725557733997776789153993592599308433827563893864848188567697018489799309276259696023493921195972961049047021112516338482985860011258303253623182422261719691982059996055273672824299145858969341901734279073115748538649309539376486841886647546849602694867241995033733138501540664470935674737265672656167122652170934691373384998496281589107424457462200508742814736053391552249045192874947000355307546661632342901916298968103567135154990984026607956346325645853034697432707415816286659871627520615695391194324471240727849187051085876679462096173629318853173775195503028440659108923482858305479044879997774506231459169201826891649708304452292220740591202509793195336794867842400402186776692392554458150568968952983798009826628926499179435949886678357099041115806940544690307794928724059995366837551098813030663682109157374969407500501063191603921101749901066485785230852208102215672017142740300375996420177626932088189992789153266119818572445943236400555038546891479980751887318833594197098691451360198113670723463453690354130359862817809260342538188468625673351651008175664038908002293770228917332867194776643647683469926659914662796649032102905786041392856919624016453353767434819741280427673534077825737589839128795152325674795390153223820981060807631506741620745588328315303270595291560662595120754626896660078586286333278267811506179768603795592544317558269468554131762694479446073457373900050368118389700680446781850623499040283853793579119251701590382241326216083509439027990467667066857250482379577672713153935246121602106303855445088353182135510963262419453077010736877431117585469711870361866385111655894142268679408920490718609977647908335777807831201785928931874497511160229216499273790351193860612182204548334352626771962880287910785616162658425259445882413831310606821386426428358316349162529562368569355138784164800034784157937028926956745824185106147017757620241419958511338546646729840368944580054701703169802474801665712881553157354802277367314827529536580321310654792502382519551911115548183966786462307918498661802727553873760623201830979348186874761978312483447536362979495576905159502339936014824603200400614190941033578007565651291188962195767230279664956440569682731269066898067404231389524796057151594719235164228094935133491162879449593183162466043263290138138019813271943289977920070860847899523480539506101353399189884486072095707932355035975387822642717178783331940273886222686039993082463123627364125008352231754646768654992549656917021213962756935842930713981570268193142293914554247793349391897011724705494386558720944562016779089327601119852505358454665439760924205782438104297501703518300550611217517084824844470742568875945122103537101846537074263068490044828914706049629743451007682536598505438863628576688979061680938138758719441822510981117205331552633258999185239210627011925963984193426576490599967374202875166460787071733727675730046777984988303865955705321483037150783707239208463835313387718212864605525456410010877693619711569029602979648707859194066613497633248990100636737422972501962822384780144925938400956980534245809670212209240549002134847312369210075693973665408342740096122037842156735603994633520516533763407946316079939027795430807947022356279813982312082891926404972384915259563765227071203133884098245796799996940616658665675538690555028670039906224799016380460058554718946179372547587547269056789949769638417109674936442200140431032490958496420089041410483501889718118305960280630587371561436732452062074231003877349719676968549512646994794230503450894579757160938785232745831401755681349063750709344395070676379059557530094390874421841698042415061609478389389822504160915975951947309875336939768223898725283907093628329687795447001049782338041918521580528841331842345037974794151044998664577252768745408503057115593731213413041369646064594989490837376748972079393593541105627686330009054678861236569735775074246410921388606818281900736647849239297505016696270750256076917769730412923184787256603918553353040070964666553560982134889641447435509787002203887187326976812710325009678293138627313853032035114643974407481596424320176949424348213482380458378341534084445839220686204719394028856036445549565023912482442250836307115433882204635114414050761947878114869950867331064771091344207798183075458974992139503018895805771288411329387811407498546596117882158167227362023648690318000204064935047054882995635795931749149346812399943082280825679813450710511775471028891060735702518835492501819783293044968892053442809322983335295221978304888319662442416996686949632105345371253068294824828526265814903040990391010055702060069488726727534491753945504742096595386613249202143602447489329194262408073009884696696804121118959679935071236582790014607698138441285652454985206486225372638297320526158731326318859857705868994651393961463939384237286535471285231010906087412448717225519816160306292178634859824965443779876485639789507585219010630383079139787272648223148140764277797131699007588601434016788058229466914965673569561217285165768043260560365324069561879059478871066951810514433628453251643625462683498425577786251632479059687835567219659247610408803045057702113026601726716456651724178613714412907874735510604865589128502448947330887329997229410536638054352519272716705273237711004525228164892696026799587956893816563870129854798333152749964639436456534088957646913013259640454058141595324687762876792487672128990851709858409725641377581922111374089550831377897927813148803699434805046512028113753142614018824837104396948786617888621104561140093761396386114713526022749129862504309924786596740097685391487683377144166630274550008494026763207553436948267332547226161976897891555052021513501277038889918939734480648114001312083784746052144940672382532305111075116807859819159993790851575314790414469512590270195156197245822933301785614440504629606035840475957073265617202389172552748739880034691308007427188555107868924348527395491473463440865992560521097091593871657167942112961795594836053892888568530975198883680238606445929672848872776684288909843423576723253824325007878921742878616502864247743096194477645208544788837240510418925138309798976448921779218069807463565148839395693361243839301962819030582994091849504959205559857223900822125838734161565374110111139030923633955673814253347796079150458364465056532449769354036004094250946033386166950326818256570815908419492237287196530339295898627784151196253297617571576327768259664120047990821456552009791818779306577864195496190195278858490524501817481518243722860388144801781770115720364820970578075431069454795391157438109607690436445631055371083904914150734687677792759852049774709078786226463944450739590889721344135056368749123200227502296384226242446894935966533898964010037759405744792423359052404373385794324216328191310992952156656641529344812989625268992623743101556112461616727095350025387719543023885896636760316067592215817610243564243054045321195066143845933931837677359687750129767273512240465247047599882403437140062951798835885629594211639596571252233856263890131468268441111261200700848669585958588229738667580567470149258646837409789469770343525308118976821981269746005984545752831706584354562039687567820413655313686481671051940129579175715672550227236570690266916683749937888310810311388788131466870005827432392192627939511187968926460199010020973175708575499370786501325730174315172836289342640998993621324346230345474432667446287220366033442524660521025261122255673949675794609627403031597395963053579386509080755069833891562010859940553300870673653001773147369430386520602531119652641312735029809794046067018759373041858930641617042879045539817969704949535098841392040465739983194889710469537144673133588642900601706246818659945780546731750210595802703081167945514457668356001196949784500026540961375197476674139629805374282782462680839413311054353754414568864714710785831539834892026414519498915749795978408315455968490113627657213577619354526797946204662132178184241941414517891110538149446961727184254420783342493976417607254070750816455731821279049862036842356188476111609588094621307678113934390732807127910445125642994025320426158586871577127968324842706784073041509610333587967561459571108912147368108335657486365722894171774144743814171442355473900275180601126350255595452219857106433489442298575598108549326337021143169543286684385637013982243225277963727339218365826619668433332393680765930125785601055551812534198882578710541236302332572155818719502178840131904974321803672791386725788076505141844988482671290704915111607850838115021236245029882436242771665927682961421758403870899110454855164251099404220143479895864374399414720662597829048898929465675463370693965665987120615487627454450343756776365003778149667554441246105836735234330588284954796488150329496324555129688712999101149705479360063742894320888180193283132671271522667748710920017235717715813628261299181533145059570543872314634128309304330438998771787893646773844090571655229674985513589613202050090255413037833820021872128206292125612787322470854050275424495608160400730155063278648706483801366869292086390099135940401598953324387676262196002571040030032871355041119454851187270350698155597950239545553666697746472356521881958027313078234506606080706432057429844082051718905512729911135435171200147166884390628460102661257748630915498551376212446105447852484561486891516455225977773821081646196932125171383125965401676780234384295675845048055456318763092461321936150546133750888419114357064228955014357029217921019132861249138600739623391406815686760968814733519617175423821598361010099424630168848134132684553674137043650418101402953663756368556053555771696894521089321631504108402338236778179675228892217073784977055682911893744677331123479058573395446912200493210673747600290628276861333724829032934201043053913605782307689045771230050672874718357649385279337228931634557377541790408210913659518680492359403160399673352630242876477761308408210210288578806545984099782527946951645939485313690796719884649029822402356332205475810490559613138049411875555456721372950098687774688825936829524544913215618184653465483983211683337179441034551592621190039436358417253306324758839437316645842793123094475970275967465855100790253934875618254037757730620215466514106018504594549814778811100224167682342062316841803342361909268375587948077160670190518283159214600633400934854035968410531306964956805548661781251515590960901030729773131782853072930556547175729019832668226011644673275810108093746307069554003898116450969863003019742484726591148616631018255635234589931732870495998558638350295860038495493628316894759671050548006862178748595432784970705235433252050464177003369453991688629410376374397552646997281641522719959597646278003911968869607124108066382745784719055001957324391643394940368906380259800932850855962601984198292005090098075246438881012380775366075252233946300822715382067947223675128061890023095143816280725323363578916764835166913817536981325063873364747759336495824134070310514117109648397918318540916625482451854616494227523885233642614672428122993232244742535804395973427044147356193689922923793213487441603109909168789293843793095934476423471708093356640684049356721725114818581435535159749523023480724748148066538519342642861835576923664169263189906570181886099640249337271901966775998583769590181778866946839120129858875177309214303533268834608297586078040433473586367289764797924757340114163944425297164612224388413934714984644988242643301958267332413543702968204431435717488856063222863973124900472413497746679317329998797222526045796209865519332269214262976733520406519191636011342418830477803336368013263088514227566984538670765086564688093380649277038145730637363247563765835110264661242433110463215313538553698008947009998524537532288710879733986733629249230523040062924807521180712546102502614440149678737841276662075847858205260924329038170724972211127810846956332766228979744502000740702609034484398084744290428486846294117314990842108441383024583116504690095700520811944778319987226346176261052181011323100053808935063302150062479478689488022662764678320131024621492356883808985004049026478027529371559016424369815435622773499623887028317619522816341198798082442783398541782712413362771459298301974948068954146317573619445846074049201950856315769344446189508091326734321747338073580333382764996379667051202673088718726427482696464201371798422134574998104591313417705893750320310194552481345302820220843701512816542119767744184887119026590649748118024265689895966437726053673792532196312004730289389514153521644276159652463630028580395997030128358630223898086414761523348008137010423945602201810459048392458310618567126971513402359319697425462525986015750390534113449941912155032793310898042289105779497795081405698537418583778893255750961563219183752459933604786996843581598302912711775290534132598620191227135279651946557627041357930720698128203035868691245212164854610251841753002968889268539537537498171697658071292031285115613241148686196220210793910041106684950937175964956466273860352148678518716561181830830623167367036564160436607847357775715689929957713262141718760771982821070009399342789852158253778125411921677003518810544065190335360905494583462646245960455177621095508047273666630510703098772869129309289387992575499210065366261586955171819833122308127307289216976004212299168532396334964667030205150638535066414848810667995845988788664121169573241071495578629238131661662855341500337408303763817999913334414168350471670433537373809733122428939508993216601965311919132845647075788867123835938763744283145585540990411737950940407154655640860444650224528844184550263064205845194375483032914177827390337190049207392955541740989736187018062349753185296274296526689661463667413263526299455199866705144430784945787954620599174159293562156545565322429794059850740018394460777560919145259944041159755030342308572883534635234367431319026812685256167721085149495464764505777260397518310319262286592536936642621225687070005895292363758495313445204930342657072659543660417827087630462526691787961598289062284784939055773142055561939396874965067019979641651882053323714379853200253296776871984312239054802606489781376585773335850566907883364325583849018794766357957517730826943811998444969204092017543693695835708825044724272636183924477647926397895245126787315821075576513731010744863450780238079431591790378372371728186249355883728955281614561370723054983917750752369340253988496940079722198717354382884589096811003175607191210288186146714944599178681123344190964453514641808542354117827209822945050837353131111914696150015227402992405764425395121623879850448389440306924448806747438392058819829310387696511112697466444770609736418698642532358063195282169469975048812171521325442798758032585893727690619293474715004194273471851847915081246484829140802803393155197373236568378399597024739711867285290373664539429331969690762484818586166561956395521451714811268001860457150499805251852087376933774620655640666565489463052098174099614313337593607789245526396402333312295858589081452758064792707904178189551128280415260198448434843678984843764346288618666439346375409804469798071815347772013773393679848177116770736777424417244945371880771994797531061280224041300941382454187144090839291799863551981136638351875014727871480147943184922677417875335827366392786006846465290347790532630992970711762212070285424854953582555431482173980408138526892450320273327684747922334927993506878297203481063551793799217614377887979842063636450131123484155289964906957980600114342308494141989248420903629948609537764660878091210948618113412579522458169340646003541519925770196223560611558651912364003153299110329950194405346027916279510367279543386452795210395381993808955776784181398680721593950736100598972547479390579271079065307000491513104677014773011838616914902806136326429275272423735025197620906101275154425456959801544019289136820527319497305869729427184177658024635643758295848425160006846198163820319784152640975955553587508603877909645437725826460644150530010031350735857531908492154801102492353418348109908317341146015065676952254311930684049867667356527906590406490854843571757396905184803954405791382811053565383727595109937277435678067084838762404997262995498721020462754549493633550007577995696554806738252461572083622927723399742352637439966870690554885555238624448965233999180250523659775608833512769956551429591316381585864435910122228853706155879963649675810308147578197084081556573900439246455094537665761986936276876280354404049356529402808774359119002279402921332596412634405680055145128274618158805216361135135190807363228568057319836024234425499437637862701117817181467935509617651255142824979803513973744485861128727322698106543353582648566759059129393609083818410150291900298311521471594873915712524922238021806294005041859831252333374572845053374022883723101575983150634935509026196520263235591036809396510984037299996621852866731818025964966936565309607311098487483480484158373283208352603033246908905758761655497485405470285227462841233616830759679546026920276398367227944033839949324149642475712642663110204737875424534095249271094076418898523720109557663148995951402694706900609379596090445437764598557404720420976799491685251148310436199908259213927973794151918384188763815353074919114809555189164630815708595851419170245592070651728664958856384911073745712042079909365345797615421943928888136439028595283007899044762074399225794609111184101136642772937711716707580985525090677783865099830080273791326647901751480904076782495395753037401220193639559287599663320753409066724196214224645622848982170852828484328472874664929458331514765551004464276770373922790321471541226994283805169099123545966636051065046415064455198010271855042798822394704122925506791422638594806036899658210737099137851106940833419319372255157251253997460354593506336645330386695180668371448090568551086884015708245142007344372235745187855407417872964551845408383171435437539912353334386268216789646842320339925001032169334568324706929854962247440161715393175227928768931222024718201107575979255884602188289772607117058141980231186016842620461849281475385963057642370989682185078580159829112436809946188710875622387621373282111858477710546092507898358734871487583634796274500601834897980179076843873652530675227420740067254847293144222984045346415271524543070315275619055482265842710878241713211247645120249989976276530933372486974862165304810635032906457039405077036345975369126512585491825951694617696624247426527835435013026842469264465592398227975214845142828076031988483083482738689460411031841331257792195703361491687639249682945044334350805949993834005385253174899264222316867369742511329281366175957345945637112827922841629144010312158183473687900696463773278181414938659962529724630636863053248064755166568299301985524963038534636848622401498415197865207501217469558963704768575893938836686434728852966765968431418362283004874999299304187184280178567538976942965256270275018970183714778863852011519608717076824317287738419384067393757287522143169617433524533055979583194847822765524359518875210968608245650536104442946404312618024658758693661644725522295979805530142213247202315598289873299496264790349120402231082256505130297832054973497712463285264652353134626771229217787723389937910243424947108697829702657793084192008213327952927623916872676395645563504966237263590423379777736082958390460037578569714908738195927218781414237166563923512109327324155219218874174230032113957605945076796766719323440124702034159402771279268884103563435294415806153779305444614590587326434298040046493383883275702064718211304980443844862797344872053588465487640530360813288875163805336737440018032096618923215498529644129475931492549044524344005017824301894749087391258151144044389965388458729831629132359289651265470688208601560740718905799302242231468332619477992675439199588238829375071263224330316081545394987786279925609707749043026258295289292518337058239844219933038382297882391072849165111688489020709036277674024510889507254843947057674920001512719298674482847467702609329880944763721644272320456645535246176363165734086807145653511096468361124822972416040362563862930449179768133864238045468033337439856584772611534035154935860229033464134646026822482931517152938160556621256969686136259769362716605624423824212808339291563990608552685509168497988040140145285948780397886859390489059581327857119053701019189782189026464871722825553738721947069008966931404811306354570157130828209244888213998773025567226244777321916002160823126809065593448609898106874527343564087422520780943592719840027982097058227333857213891797373428803625353705072164576396856170243841803152289290768741532819409025220686764182364779398941972556626244390571430747544767521614862744018761253742982067403244694714295374963131838143144564236004815598521835363716577409498101559621510621990960487208317075966407022479040393640470708030741311431018050086826329778746513385020649755964944756397982929737048100456344627385869910322329768365073245617701253717411123567202378477437133621987042636722052702480719585951368047212582179956899889553949299897977921999604800971354322661983367181267482878954593061276255785072901012579124517792900505085392868434667739162163375504137775259743501824038389874500639577527198669944091919026224867988500023950501204119682348429335484897987236848138746863833671878693058593517250206937124485057348816242001191203162142587873551494107522264706929133817193150497546179401580983807387254126114767506016549572046403058512295414338835099915486177073317981843209592743185869527621821405800558035398851522063297571818220854360888656326082241427954046471983497825497634341044160595279706652970436111267302289134910320226363875019492727160161638382491497546831207545391916592860430792421670463061688352678299747971579282894490834586931978288070922307503122943384485352112182937714634110086468670970030464677226903051332230173656280116029453128210758457374721524987076442811274639222494951191644554321968933596411884822530583555909736395569119719816625233162067926518437173705270026711103213041447184576506772596857902549852082031579839369084608796719486615482371294342642753557874214749798118813859370884569925423301877468188342003574840999008921346414920044909063295420752675850253639287812093901285926995471575968131302336280471049220737679505590724476700232552571368168071241570975534490972437211819145281086810963686415872270080632619400833231559094616587737027089092823493030818156885190329916469223414919620088131605691991373264672256737704276038662748794336276851868971173304798731022605716407670781777384549640816116874140004926782386164176632106419106355265742293738506480893775840615012701757935854104391801623291881037200143887444719502262022092102720085733043607946732027796616649977015043957651525927233077211862464064570928867391948954918022893957528296655937315124873106701287206086979384188848396404680880119326117839231618050152829486683986626811763786381011354104428390872782978863310409687323763151012745662011000228524492667770262757736336839658171048322509477269229091037895179787534892210024763840302321504541953876165195013939659077353211573228515990640804868495314430056318572173453805414037434524522256542147338262126355060430380783015630726184304218218123533128201935475927781533268335604972890954062028223527103637158159424572899704346222568307462567402372318684610911704774038839156229986891894016536946804712748025467452811460596243932052101959085816193421382411931924480609145115684408002244154014828854706774621288362440717139283920400982284410063946178539356282138876910274304336061035194396456368766853592834156559955867901522651795077514246146575117172042099509746426690289974054242922282053136263458835245673472890026332884018742318087551365961599293673558685403321533959961662721928426247283088465362198848586258627537837925615589168935605417262941449740803494122120079292683524089165647636793025076283224242458763419878755885884076640946831404311957427732051336941325562104276525715355348083654138008159646570530804893217607985515866506977822720048846054477718582936572061878720726257014821806242427664336910299329954937619411141774578513459920553226830099733160289345778075083161455546487980316618326221771549620201324275383882845239887410907395531753418834581514172179698509982888771471620100551406189719026128656576030361877360650440418203116168270606528686941815423660949928399692466489047445157962451969489342622114799282790204013612832587526073796354321983318135266920974634978270535351478290797633966201168276278955327430579361332658781843393256062867293767969749054002390008263399947985903657004254930165451720999180241669150467127665944017501358696532552200407808414493783905456182632882670433598060147258941633257073145931348122162885897831101352300610413273463838073098915227880233492551212417284336753070289527103868295835144774507084820917300529731003845910689116589403502384907188661205179524634652627060599891061103250996384044326195312080526877928239729921712145069175524368386959520538796994306693701145212179612776082079009303549031325503416000445625625582007646921987824603763613344071364735179285286219533335075570588174628337397505888255307287188812711724430241313909406693653302810705214021717556858845520816478156761086545473459153059023907106638210907255293028911368885465479571221090569226968320374943773119400027197366673676823850592320490017564141119936874220313954827828860483494110936663820073349424718740235049314105573368075540430109958196198596425232216488285826515225081171027048474949308830787013391809954837984530596515474964608266279607583960213023180806276609719967066180246870533718176098527753041732648999419465229455152086201651992050729309160909843955498133757843086379047150230927165556107209149210201531379906183241300369448489043570156461226603935635825668924153907199860320634957276883855543252384993528367027837510804641750713186968462065069130356398541093061591902341134978336300863930889045062891483299537082027928250940576119245113179874055536407136118273617411824033655538301157032059085226361403918346791914953834632118596965138827329731252057216560574363624873281586736788681816084252519674373620738614266095055891739452825557035365013065427603404505506623469228890200529448658877510838265871391387756012906425873034021017843009279976126179875927040064216899488656382029069919423011956715510210024905653993478374557829921501490677323724136275774282384289039770313281652566045787435719089914478538463492500712760011931525044886076943982164629724701525749214503211636276925481391066090437211942617054852767058217482468076517911085742329706827108592930622729457826418486788605143047170737865225552292738911064861134819302639969641589139869918651210367744342450704867760258044796813449362805904250991776070984408881990499470548365134584846668864406561925634747683850656111382211344553620151242679522394830725315117539385522892604819323894447121854822205364922270898272606795107937367213077205663279081380763603453933556116471572670263478694251624118310971456929674872566021165314162820551019561092117687422672212586377304307983668761277370379473989466626710458411438888908835470069308889655702100123884795069996705329335077055321214419713928027562853748269469347777997481474521684265480507805654791394176183224138525149831943741092644320503179415566265420417777646098684467625321376947731340478246962656376541728775376093729036794626330128294384617718999645650581008321687736461137222405738328177852421484861342297088068362654406708243415131723930114729142837844790542710135518839240526093610759509604395902267390795169723733815871495829421152087223217298733504496598707782200574436395561062212903032766258798604490459972378078640698809273435509421060957755511656830294487031695454997127218834213431957845360191442310769343106728066814733386360188601679942185289591554623345691220601988124206531141660407197265118039553328017054294932453295712577491009363175547166030282967288279047654027760695790290881567460703946181574533615094555510833138830253311974878762123661987582515312758619362720082363112410961917514511603646114751363864872225264583993587679964018715867083635443844522366143272574163205285946906391343969711439265221307483560965316493652766069931962071214984913868033809506831799602824422338434086248524878740532262853747798482966929948006323653141440970642001991158850604911491592723072624516776896850107051987661212553765699697116819509916876206286926482973278354269369047951382052043412861359236499759128790117621395343630925813445118488046298986173534718607672900399079643556874248773331448368887593562718545305333703991583211101958266470089778159537957786152510215633687289782085544378295160290467177121327998880842148352326491109538639723505473540520703844602710065141625691745720539093793611107136496925541282451960311440366517620930887378076851768490657098901237724932440409674617587270801439516905758597501522185018848139935929239179028292427757859773393849584893739805908924736895900946093020558689439860877807225090526446527530881574546675532065320895306219468100640629500266654163053174526018603088720894039311491270032394121524844671902020949945436029478410647333252781666454070589171814322570241430088134520875633320656434452980560852226554389652822174878056150190427716334834199496858652389458560302237660854781259221451119373009935947545040116296047594238359199194738785142971152279255537033850264216636315620882326686486686655958335333378924370714857756865013100505495483722215524952905876805984519208467145766285040774137217398165150476831438904992351929847891534634386129034151907982693267100297998279909402942259567406193758624270216314900474803372494188483130265893650548418175419038201585954689850627920821202110473333169202908553563732067489463833272061217608395078276660839460878149150448777268361757234075594801122673626022900176777568453319473840990892038911986893373590918584950595734203483019111794867256167050322623500379846679528668119054694681389919751357267428141739872903446706104221532757640026632050116396353568714439639202504237848265824170179648153026001596996459547479234820271018183980866253652736445367010708177979567565019254295360755937170778610639904008157335257238804536846789273024018248034476103678875095394998530132089337226994279944298047893577800559159338467920719902950633680809026931382426282413310706031785834452717564329094164451314511205328577678267839288519699538214837593221735627281323297904952363346271666181315089563847866430668336881894022171576790466942550359724886225909990390554797832126755376353891061759158497872630139580028976853862923393400305333157325931202916475265631982595275001145333984338851842361121642047894020638325908245428077558946246811321112121230241151847311488598658714318238302082558934668804636342679835170150998508233303620634060274031260311250701300952644101050400299403256868140730601261209598554425520133370364148873859046726382780385877345772796381685272575259826437345851229559142765911124936621800503123769887582636598457229657964803399230732358143501063283989403455990824711055616101807571007676467610781995340348234041604084973985483052313250587863426080211240339126688316645200692799648898363852072085907194915697675406436832103486968456394926160413986477125670526949837164010684479235720246283785319517331037061904903628286555414499286940514420221200264367690271810483144954476372932073410635282520193601731493043292855213824201435401884238041754787743875539688982658582640502053902278737678506920155038950947909735527888049093678924932382363219117619304993704930657487671000336654415897461756576788758078180438988548612176997786601617271442095629298929055829043666588186378435633557240033137960359307723790013402183200570239185462552542191018829668758534978839098360500189532935394835549530657246001779140652198459421998041514309901821182669531773257184666169239969230601089844556501416572245035299013034831475623273544005792208232763701089127624235574877100300850076795412691257004002484302534632735531680771120998182201448299557187779448122136075267447151471121459040948369436119338550143579471187720894002091426663929012086349090931684865519476730711382030891649662430700378262078467931548617554576087044149969078141188574231146777684321172173878893104692246174826284153810594195351832703544128464490717949496007345662920989572113820340725927715399977786917834565154216014011938754162939921896198028680714956318219440299088478436707747076364740979805937076850091459922586568058038161758859884826817261622366199723505998915686954951883001546581681883386977377858487492505017043350926891945182220337558165972088329142159194650754601999284051351973692968831820761623261226508741190526961427052146611557099603797198226575015291791584597824844397848450134015711098882573192929550770868202776798986091076465171455837307916652692378988403416579915175047048380641052628798994645351459543371399782243897656388381815316073153194604329424658640462681096029621421929081349404487320416061751374618674878299596960144749005247873179354012726323975822951709557499944214898368095799188399275893349483353434194020609748951820311986401249432888481740715599609385737469626587777685725079430446372673770790295071470928996750364744693635666221473507164834244430808793532091531778650000414661588423284916636916045084369901865831791874859120791215178305725867596032922686082562544313998243888489062166840770799871092361384647869329144270294869552963983115469482422587242155295694419940970875157476214491395650822518213024879865054063758746063151297468352905264016164797961138341479794806919952036545990913711068587254529342898667752476226320762969580842250496946045593701453330439854773990127436382281365619085709593418619485488497234785125485143126843724470869586912714235062571381637009376541287731496521367694221840821702683264694698217105919236043662291009529304137418398635796916462622704059193621197156548381006780701359687616027349095398167320515426290912061260442086932703347196245586858788355713260416455479120194785799262654707229540591793121643995898690876623809267788863109760820025465031141793800601954169335863478366069774904243388994557122279271274137528906665614380246476757628366739670795575754656871106954805302615900785047739841920800505722711589413512977424362262054330374468139117600685671579135461287208560136657385023919105511438325431439463684589294072528798785963128955311919929546828559103966783683058263600301180288291776290933402719131076726280614497500182825964672197815427899198821475307535258092510880747057153311149699077912439856162273643301113036936918688526564193092977201645759362236983052497227864720263397283497509342408660761492971418366965549237136529543160453662738554345521784280248727267028694148515617720673280018801569762163565705281274443844985146709033471796854456485611037092737584619524085832833489448996457539202963481061742048117269555680522402081168472879917644319106359965214617304302816823949126147268456758920859216428106275253729278334837454874505344810097031782692025914158341752180620599023559009334948477116236098476820829700201015126019411941174122127184419588846536770917161524661511523815273477260969334699287928589636887033960810522230867917532125592442974789560237545850567842034869004382882924981301306207115780309773674779743470938725891883839703463538099704814686225114282009180797861680813037181476337156262143353640655349506513621992826052612514094913097558397257904084754217585839900925765662378823293488211195404844539430134835031182515003706876231626535641447659525707173141557771880760221125737285671944167033904478323709139454262467779273746387944786978788449147799612673135822862046582843558519382658725627854980687305121268020170713286943129876249793934119105462966851962273341310078289134505239377400213032851560097789494187823472697275765047524941311996024722255345855139397509936683022376225349744219251700877366704585807854939487707502366788737567727163310399953034044970910378586467292246097626749839618612077171101706972978038709921943853282097440880164915505382530142361174327326744554644832687710306393669806488284497026792571593973442933661871652596487162700078191039073184765008869895615175316276375577459174395256226048215486658790836304264068612459246387600457982771678476891208615712193542352556742992179759223602951844872873322084209203965108774903524975312044718424408323276622255303558541552076404855544460026576742071199918409109169512917591660215280676988890402545464127306023787364128628163373806695171440727342521756848339246260819806020968300570676033278487537187364425648989673194928165540282477744615639933487386698658301570065630353896166557281062689859920725175723812790610866112097849615179491171905031138288407513638741603920574569745715801205950763310972708537700270972979995282026460113768214763365607219294656080975386841221146830673587980022772751942908818728198870552517920745818022674142395585670443798696450631941452306579506695297814482182263357244196537084030621920513257326881547363110916136438889969865365583612865712436065534252883199913965739475036609566554842420593747100069662746148220457582556532930362725308772492674718033816487031494218043235122636914963768941371460597805299684420991725702287403151481336051132250836534848666389349224854448179032141655767395769561460046974398867813475480034926746032975726527428486803517867222701440185996002586978229592885410692182588742230402893785888986414630264231654367605155631935600691313154511057751885137205087873826045618608406870426780433994390145395026488300551247685849092459546595712189739755837062408211871079543657359167690410678592337306553215159193508266363007272461273672991837348367949022141465845831381863587465370223118212872680263308877409229444461603455727521045249195802042447590848393457117426718494080069963671891812406379539615311650763102560952968280032637721956962940729161330551191113306529809754038160426606368956296704162811856996769987274947231698622485120516475823318369420444140541304403362790181724569644922298939311864860549345247587643810834033110475496764558171072186633881718847763118219811447838835430295848457550853136770931087766695521179813288220604664284926447656438781496796315666555195345239488372808597550722268787818603428668082595486099243781103076055088308782225260150887233362089990435901699729441154871828086168657434400876691650184592522590158615249416094880684249965659128242632376667643922854311319375348049016422672865734768619215467330417782521408042887541634618384250299923407749125406329942484103734064734864196074127357340081098479893852715791758058013554565230497598970872147852407017609367482289102060456585800994160390019101052469119020244594847317103624318857700400232000305600878354328483212895519347800447268177650021138143540773245297958160219523594547496436239774979047663027060842596654210285718311226018094954442709386594423864642918772775189093081499528094357567779704898488637808869286677079595446799444432317935648586827938504036831512937934766384466433664893273410962255860806654715877507659671076256996560085048312463197172111516246753993511989566918458017138441413499459882614730993994308936593215829287323165604473135441225618285449198594803336551096593250041724082932187832714199806466971955908346837634353200570534987468970897678881650283759913595325515180912993248663589832951551239495980327061796874930452565632874366723258274377975681947223108878548997248030278020939584888251179100871190194524229482714112343524377203896423407253768256822952583624338954872873586048741588424897858104863478773614076106215366229437913338863997769192141569342735392998861305818638947698993812927851812637719471413364530488439663440031548835273626399759551248360740828796330378726884036562041793330406156938321318462760605044800909085653615900735698445314538886951875452760279841784313898832848183875941351131602650919726953915235786822210313756191642361524087361774311157645429942998894099659293750754757127168492430101937647089236833170592645527941797045743825946446534904988915311907239412842914482614448123600729824469077248639910977126427808903545851355200631432119777228066377596865668437683243501010068184362513474458260596513117342075395492040690457487422622334477201391580650915807206124466396196684639235859058668232269184423346721301339317885323031920583432615079796008672620877768523736030738791145997176517398363855914502970025327365960522839934943700010405583171681438007307337348337620581206242757474415600344501802130556777861375496065623413940378535713204020677335551988743928917959976812541909386757925082377252028967043734364664586426586433163165368687958202234188536464677041331206257878128102712946691232950736694178870789367550156205351352259949599850212723696025969216334622957204762097304634093572483733659318604653979016319742530992444978171797385916046981791660379926395588048992015808839967021616686132295432632775325610496632225409313570019936758031560056882390636079578933365210535062575865038536602659013723227479993836646648072742925971989721348122981781489256220735063603236917335861356125792791042899005829494479719207772380669129513116947547221003789468922343803011242886540323420583143532248498755678221696423261870326388208459304686906803591183514213484391471694654905141752047422789622933246132177256597657106506551863190349547527283380036131253479179368188388265126805308328324421343364384296416760346325330955320807856180074061899863056591867399684978061551018262993020996317954594919593694849371699285950345503250778281978958851376747190542045840826060870245296323516648921411548048414786031535876820483990610639232387382339624821215382632025376580150603705893925864192713702369439491279657933177931520612610431422718159330416835021438180970536074521476583698654487975560919930278673285991789851350007299719598981069127293131418926099210480737650876847333923545108330332940920568703380001228954774125480110866038999493641682738399002559500346171265809932469866703590029027008875537836181690559630543732346964965593601567747334851032066947923652741585613587030327922397873815403434509219331144433565095406547333431264419746017587645101048016044697505394851690839824391866522701442932576081211636766831681307922278737030871336053404725060278074582233783375682744204714483012035435791528813828573787654856516275495038131140814063035218942232977580661868282086278136888390146743190749954787741340372741409937120843419943940584537647998295887800331416583845325016974664096666408270592525571560927325453876691469477564776033969092581284202208119313044369115724088724570371453150648727024382558273242782379641818063443455680805192974912674150614611212151440568948129325147935087020604766251318143625624329348848063902084645358465180351549847637136055807282912413476680329254859701450191793580041207222593229866848481033939734467876123936707670970717307655858046617334597627127115582408407422057387989840600199056368628058972892500607965904291663638860485636095174237736454572475462696621862731990202392444683997297354958309099389829446067464065916084492809464999390863493140988800147281354604321943087727098423562849538162165619598461089034828567336867354781292114431424370231095151938174236526652193658380423133629395032790476604741027348363180569615876277869771921629848974226797531258490815411091700277764857129136927830175255184264623405861781515334480825264307703843921512231979318966193420893398232295554344934550099808512550810044684548897074743942816409170037761077978583254990178702642640887342825591069748736348228598640488692732323270157966785335864148659801236611005230290419929907881931976316118041950106035801904839021722048391894286210760469845648286988424386749773150579457956237302830854130763993260140401448315714763502991395960479756624628163313385739839380499496401306640893616899550558008265330859161714069255800714861228007366440058511090514077932311140042366879369257328983845690893266360525539427066427117036515437776714466049939224635144914833391662418817418681318030527661048892559669591660834514579923855552803204838293663068211369202061313840871457681112909127913198041695658381941125253253445105722355232680250708319472386328721755275166745789501961073672378066301589373122015804660203617311161180734899741800703777332222641361286580374098687469686571391519693277143272536575150253633198923591643827839904526616654112734077237172817510034751239655434302703116109917147087761340963968854640856855426563992633543968840853984857368172815286969836318266947639068078709430201043513120284574380559788922577469266390326383636873119110310701221021262282044167417639999148391506220174743025874996934902431298359671401295282542711827146856442579670195625375552154738643758609446135893586287963619166873291429397691439742211761547311317124138118090480060194017316730857113647050702038017485401857435156557630957321083117077265067288296356510051698105276770797279022409232488421023325317718590043848185156678700447285740537616816764429646467199832977527523810346593805601091061714233713229286720918673560677029322153812043194769463900129641863750263828585038086526202923856739649407033106001752656896542521446326336860633188276610496116277056291231407320819593949437235788893160053786038660294818420942284212120573376857805328005808927811756002185275777014378569559799322754649967068359607968447010995362638220590202224334921351570285482062819946085459651082133360402636717826280579463537528589330146798533842309896397879437109043537791058509875413009597172276767290926386771113083408084987244743205919781259042425059416611343708240458911878111066904471159901966729315266453210785790914275647347165331674647662306356851034954011986326840064244088321102244204117062490199940305849207811202867571373190761220062299905075682946930482267868618498466763625102314788575014817284165167830804748149444113970874609357361820193181210801166657588440600256767644024385725481607431093062926595401864855015628300458196032994414616701686423156848059070504205811762913622708523429378237605703999226315862051091268663410045816073877822920687524817173214346201751858009113823890970302497802451837025939531885778438162337956156986847535817024224332159647419813656519289489350804548113079588153699445699892029366654077108027702301367646947939175506710518780909166575456923587012053410780454072066900466876162964018769718735853186174859215018919560363572601230060494569375803496634080587131568200416931100447075219661108558848650825106329041002735066475480313286079872200091606139732408039239196676646437038275984020488446920701503804539470021571667756387452367650917671015256936051710563013392583880126031272919844470802894638520127742319230036405710881364907191928518094096992551579357551067073919477705494554911381963770762623726891676587056833252279796928000242405637497586651142374242901518697473757315255039127622831955554124763157474166434806990560555814489089380035477491632637829330486084251306515892939849897405313218689870035196086256638945664529287960913514915137753408096288975438714721660003406486424349272170946826479165485776134882766627486436647817372308542468481406825434976542710581770119551836391112468485064836391962484938989698989887186652857541807331921651522530254330941749842223906118244359853527948781956926546150449197682864361162673048505365871470978145634395364698036947906385119178110955136563123709362815268011238942274183422320923778158493258507318220556960229636320151242429289589411850902323224038793458474927018246922714346408639605199433250502774030024256336635476573014831552421777657031216971283847094447620650742585215935020127988314939529564994904902642711693554135523485342272498040622607605468529797561120119573890340162320736391246501981742497957938367376099679205425969499700597143692471482961006012914375523178831977006097259623036281445684796804933181029696496588756997041304626196064006090834056779996821822079266697390072877770427981325126626596100933298339199216569487185379719704542079265353464773018436607554597939612992722455126334033907171954780328665050761005888944885477998701470195254930062727852156225133303507403405779704031009664877111811116006315015821860556901650921852593578979973543520307701672701185518984069439979606258985623703147193426931435424770212142045125362986060252026060997565157834512660129188448892383194264954947491367499898393217904231901035308915254943993145069737136784648454369514230661007944326860908606371127937334278819535078694099379545681297831205932101113843329584788707459540306046757976081607853232029209473180768209907092573270023662150075721201352365987195895939388492730829505900423091923765883919805816222159891694024889289657962935739822285178800716022094707042509968920642181236844994803826969480771525676439430703169777396775244497544023378710420309052220000974724736983259400434559416095153978475064616389019387135058379036594257910707047071566175448845010587049431102973202108170122836534387504269541317613507158756774648815594030129672928296197996226505389753297249866791003666925304142921460505677786033637246423691306440398576119656753328061081487103389755841783560584098910714849850287700371540613621081163408224020171693036800853072259174317892440826260783083737970189184065642085816361066563192437117542401790838675232308493315847064561320815104064536952907570825034327242161454586739255306813975125609137238558023601764954346335808717749917701339750723820264639425259177120506066345607304004541762724256995208275843760944393445094251797203366170969158911920433382286471189719831371024377610745427822410755606767823294383086490483308207280463761112004933968843575837898597659273341541762912031595128493264698996081841521168856004716457170851621994397529376257178598114498879263921760074965674195745096749300310521357869797738992697465892648895068671294858060317427491127398398843481516145898796815531668601977544105784915522893205252075739322724535248167334375772373872923707791104664316848725526599083055891414061274205753565350515851626891040862578624555802295714556812943693348935098377612876886446312539113473637650338841601012455568057231189598132583219819132963806818399567734700702259215963953800157425542698619803979293596484759545283994168114504325362799651791860673043231278086040546807956249237391896431848065786216997266753106232354287714261447114817197090644009938752978980605077607949250881142826369137981722211724463692330800470321264266154924488096643920572667097793816594722486469949406559214634177257840582669217822814874980502340166057611598156705211412958937288519937305724517932095453093238660265931085080009282817111955431243929709065279374363920125951756312787663481383198830069056797390590039185926859953785622617996017791263304500413760077745823187256989149769385498036441999430047592159719016288635266312903718365125150306731861691427774569234043969331318073278499638634772770184913408617459542484549570957468758735915454156920236278474300873516654001602958907367691526979098187349640147260108428322915019376582215394329400637855898925907891511014601050622977123320444322333428970696790751730655991851694640242450750119336339888521292791796295550615398214479005659192682766837343718447958348280445813837640453075793569612252029422605337714046986210544493385039074309270399586792103596288823355803220767017196418919653552633297684945908771484203840797625379555603945507037171850868882592740566397017949647054836699124303239518936793528346906188768826204036468697790081262360458795423465030924832546690304387380113075126467096344996939515218612202263922763359459065374958567769630288762396243056541269400349384191069224167173140765019143467000336185786257169358836390577858490618654711098739939083440561278465210166467234682937086041262569088448699452548388061520497814054830023033354451637872907318462650073956991088337848857043402529651382170050499977420389399052639762678931542109588532803949261519698096486998446646575663270003211377639296148839222941644157117143112623814253750351549738507861159450785106055909920403675586557307946692294285054110983743115290301751754997044618564099624378809529634244032977767149178141493228890471521195135234256480250419197522631606583554645452431219190498363762421087290552652651831362881656089667470840716836930755390895042061699650557150443094197556063316557149569037781549421090080312782766862009646457100901597785123497268451437502538852208028231600827856001915476396550791506277004162290167875251643261318643331325870033234784529273945509958807714989252194157970785399556567811907960891571484277696158380678902901591576970969035643428754228385079716367584177471354455909910547513484267457459280667789246283165275220059928795965781673684055495625249214731366793304369126271191924488498451906879367880277306798985005329018912587529554049265143386373288184115698330233607241571830982414908038784195124520291047904025797193613899975492223920685026244191008356119193489749129182298861456463191847251411610994746845638597644441678994881078658063532986993153959326313624192117367925762985303120115687499146416340250642277003180294854668006627425837053704433966972055921626048933184258576802391942494003150256388595454628789940022631025884775971608253326257056095383606064044029699633417232436224556859591900714540026870980283261439107242535792719199287260138751615384661776666885738103857915162272436091718288036055403600971528175846193695309336207137779410769911361752269313073328043918729322146956079372586491989506808667891235454722838903412047015121178634863220444785044700122229158158414209192217951486383360412685390430819615294631382087265953501638130325106544663761958843894630730323458461376352588126372952610945073783686002069189290415859146051886736244419331107056850457184290645992729355417056621498059052061304187924222126343460712564376073384423421577525881527232528141343607175337740445900787470625303517829691653400859590503267731585948000619537056315533315285044753299778724736533995316797844042271815566730585207054616588526177414965419149171416733959277876432263957858964909974172880078102013769493800203907291917392326009801293432177899368046591763815919407859636424893546457744508200970506884921640500321101313068577120802890635974580552349121632787439215728508660458480214199495666169178577206021796377158690444495249876789678649961098516369270953483731680089109271143073573804291188394686779827163590014379304240445486378667219354367337172465324600575152249012317940313548574956576934619541719823553919500204765356160729044611849370936789809391111096010528230623242882672417363254067587764577414917135634838324468490742087280869354004939642444496463110098159344665143027957762406107122344532004074837055999072245799102041260124557951562786815066643340941000935195944354693246506420611733664620793621232886589938721030149819189283331953391815453853515568218854818972650978664556779852657770090981497202815038217246070179455426369067306702573523554096603767842065431164572696512153597552273374027515176765851925944452812133173568851364331519409981177871737599377672489988944430857557837073075892253770734288836010194466155554231382300526400884491568447183940027641601707987277376505933432647013424649063035511298300915012162349769247699671484914165590067537760274946568383599062935056583921844150678030782894574765198815146593099575375348131769853395244825568135221832357083115206433962102550694642739208135162020336430900717675174097896285519928242319699712490304435341206323348196994789829747482801576052319037517658143754300306549889626827249463104668521810068153279981072588929872110710336855411943123680684256756410999185767274632058474917831150096436505072020803458670289613460015826901422532516789264856643603658918953507179484929779243759164303924797472590529781788497492332563836529846277978567242782080845083370097778489290121972316329280934498831250402036050993013545591912874842922414632903524004799397168381618488185904575828289632192565857210015287850605140516467085271245208454601673108428941556550200753236131629769151995984582154618055258544386898060530829431485676447238606558854852956428274054396231758782095478351908953587614516448388928289186549646758702558750228330596162301553725705731921177619379341332556061891903441646235198103955047557672324590938409022395056557264057176617831638283565728339264191468334893562075041822391935437967682845050733675880957374124608943067129356289829370427751022025695833021854031832034847707034538058055582292953531009384577047157160502156068306768286211944957825621116395632142965540136028877160896754636602518722534090493045253828513369771447099985694171901646247397989376779825668960908748005208922963775092169848435300030322489153771199971561684017414577700716197921786463054006418994670856692065259534561916524450396792551069113804033091647295337836557321654720083927611764089207290616387315419410290256739022529833378452951669131000466325422749383652616085493086975384151060420375899203378214714628206020325000875982039210336182991450935889452918274715003884924538834682928793362374307839429735067407880617926230330023234768097616747331502228455535540965573208188475917177495690828383644190580335113535355647857670821050439834021385075975750201358289575582763552074513250738353416245344141354612924084061041226074824994217556230945850568835348386328661567895446818309388657323217462969242998042537442189432513484082875356966287696448705865569142179868394558300061874468158028278893168451174600664203218674238403543420524279494725986165305347228537145199438017559190669072662404000529029106986270136905511745641319572235103237299454047395556358513795004581875475110257893023193719165888693257918400444691757685529162617341168490483252734908189476530410198451657900410768440207660107110375595176678088321368747105535882424879030509638048770089310207669999726650390525641700773864905227559143137989073145104081694709566557905646645711376704094522061318882660976863204608680033680754065437097841388402297230730605875547761904994098457572378406649658570968146865154667525324812070676721685167880145232782043016430407210037701249882193976737026561617604408364437819904611299339910853128834665288849471552173620856551636066191343169637262468596538890655637770535470575019832413072241466681491111298250668744429795565127195089210296201069690517692428608350304857350867737420744747932148470039745453086709515081772357882494511956719194185101797959846138808713648601372413448001466089303924012430770899710079556189359110294547261063632190062299771267924481779617792104563243176544585762709214163015354107946224553135054683385304887124488441432562519547351167554794095853477546197836370563735852646405226358678071361992449428821406796664988928569456394005568187616737105574447044586657212292338180406530981358980018981293016052244871940004807165039022765879482046857839860671784207970796042881233224119103521921049004363374092112249403566280389329824332147619061266064012547306804600178041653298756953558248073664347408897605300764783964262651439747800313246267989632835081596613647013268556071062152853106896564367393793719546729357758513667394144416386188098757313126926683564095973561573999580294550088831799072579982709275111838483943303915262866537409792792389163955817293088953030905212007103047121442582464324207902195654242979536830448638003528405627262064639587892617798827982905446954536481700650641535585905523146686083411725376619323686771177856554641669354812174495981941269067012794456717414058255088159571678121859670058358314364990392637417167747183241549618816528087219666314228844909158721053073138416873762071389223888121130008199185572736013603757021903522568293466992057917371176831068732370646926165534991125318729982485111934957596348139933148155581057229835504644799631822064890448698469251073788404122788073861749054039513044515234614182428248842468097455781294633374016580746489966703346918685175763451911543732821085817055715613687289303087801160413508041457794480381853741409144268444285411286212705908273143714788480084414418943862344704925995953164888697728364811701837896446861820758646659586777886819631585472014492837077107103479208689548296405168440111314098620842608341987126689960100740652251312541076044981326446766921791081346403938744557236875289148514400514179091433990996398240246348345800848109740407815408364034627118858206491671841031944263601289676594785315859574417435302172324625265954327650750215561369809757139365563935601558249235925597687549494654043305186858559714198406205986626757507798384690694008419629336350679909693161320055016399095007734781999961522120827648401891458676936076128075586870353394701816302305649783895784954157427944622124760141161237958093369147071118487711823949485747794598876654973295144954109659232852062873987973126626680498006888159361271083428655784615073631789192562356971953881519544206504552607889024426871377619335731443901712387940388964688122951544196423790412024943574997160575539476456634542371830896296378618511214567061727647053497410184176992253070729424640578859483592669776798376115172807413073348886755070270147489391765686708932415369892165249742546711675400287732789562434283524169942889263948910507659026829927551058471828109141498125826816960787849756079017210883857517750003319528072971187678846500157172275514673071651018509110204052074838849171304158058391018345754485229033878509932812957322616898044072493978613955551285329568626181854801797561649219218139992706051093114021691054486473227513932260105409956001966595438397450201026520649590134526836000657858627153758784219968381820635850106778980853947859780902060445864471140904478400507468414924873549366173471834473167388356160024601176597611109514809211406875640620231219542015376601675342001735666826421601343933224877198146684216595342075068930525495093978559217873440178893974403198554465339472741641560071186950495977810900387442233127873350448298833866535383085667455618524372819346689496989483086555058748469714280725499317505901633705945207232044478705502139577765858355568806014443900035268973217039036055363346083359178771733468455031025713322039428594264168152806933111504015190481676488102764286293201359598650906646070080333013784377618336347141011786249175745043411394579785961220451161625285216359379535786367696284423374171396302292230069612256892006023887844215692819206874083952499185810041714436183920905080119081059560280048193190291308302080303727367424245967820471114189442799996826774147233660198791627906248940255783675687065962343998211229347860796092364412931855580036417531960628324178066295479341707299370320598103882993548745908693996696567658502294821502990682460454169385487769482836364835546570190703022840397748905136219906306452514495443968655680077986447340737928814144153621198074692925340035975702829542256139549353786998450116754730032646656075803915814000576120317844903484391260555461514090495316645343174654237117879366902494119748011212470897637900601142839486491908832969460768113860970276807110854631717723878851476705273092437709892982927811851403151802247605554478265975018380943557078685003626249233813988447487553903477784921947087121189041858673413555891493909593601320045097499459512393259332855718988778341059441607268949505460802176846694289367472882461657358165654060487814804365940894546473634129986353008129815404623630565210743028258331960062152095386678176611982656655748149834755394979069420988030390292114143455522098824968059085074884609253860424623345281225733139292863697727932719111341571986774090525704901106322351082855173714455979978108577881566217517682628049195754047323751298101933069000998949167343615822769448740222417559622978688596036358198932203994153758458604535485124428434646628823290418310304150189561930630109949768438375196808409160145821502413603585062444695272495720348961792626671304717023262525953302088302171322049048721897458822330974132866743753866632172542930740656655409061099353490490956215949731559117417577309423125190089730032711531304433077472696109207032416761662057933294464972942152552654846708959200748865414190035226817065285492200291806384752979904927928182892999546099098288580995910500835104760051870853416246502488036342874761107788630886961654665492671033511753252355090890467883143773946817434102898742536098370018721849037476567454691423472964394749876865387974967946326173214577418861286079970009802734003656136894265438657809999817404150738256673742601074691688585757651988457381700421309546564104655909212739893612297032518972298465374286334770045080194388907766842309905749368874914330147079235708715889630553314457462222857374591749316555618477828409536123507938292944266121044684130345411934969443755713393120199975047807380991346592381642260991733134275187415511420045978595577272210093434921448797717258501251365695426536714647499342266937498893618221913929636056951714692390535960371556655772982451416201688244082898378887129000543845181382259235539813960560440757091484293984326696153244163371849950155585029969647314136572133699047713083446046785765324861533663094840462611696949132644690691828919402105959521133849261143644870128257669156268024693958518220095155314235422952171180513547764886207710154284718042004587342214149709858504432776626006346505938816103293990287322900124975234320344108931694907258659025668041716869633471509089049837045260140668931011215840703867751766616865274821726503750707910546204525617429520245829518650250032495071564851047990199322931565480364404675132024199676518202448521704435988715464476754120036424045268693027840035706925063007135395321775529193379851499739104253317229753350199984834696936999503746727778950749721225403180349939853651204310564780926456764654794571609736501351506025019866605097209981521325677014539519668643573512644279636684776645703686148845951855116773381733024268381193962041465196131422223596560082137881076045817320511470934179007085985226449806661777537260965374436743453510635100891976203384879632247379164051923181252087237357974216344359469636837541727961961605402952360232880107067829316603328346692559565975991938760543367161288633207422413440300977237342224560244759308870881536043086419856362415454465482955362632813442661053138899417891701340176239642236438305909194225282268171244066646758542270746127954305264856512225886893711401013506936165824652526917795872520739818749804717196886289336797451624496451637320990537631543308602784331657079694966223214105146118374898703354824374525886295932050283357642003242428773595629150826832049904719558779519352537343592558399852522886963890768599529452831952807124921966817772464646281677658270376236722611419535320202759827352500424965720101223439471333557648172864984189930236879295928209478764116022290289727138474683975880023622684272047879351814478489173879667812724121800646419285585051716554485122586189040429403751670422827668786444409472055421755875950983752964296370542703824180051487586840617515824916436070467246165094312917132477307505214728343008058422577965324181173631049492686428057829066479984627468005714829630860118759944433103861615795438755870248142035425368339733255523302348994853119620947745040990335697370815697378116081426283695193946295729625163318304045999777999697876208403686230242830580597230455703691540116999739346294692909427977688014583582726155762832041120077175187094519570513302177453184022481926139674711117898285520386080121341473188505392467592817732779786688683200225760937408350869623552685180536329664061213463519708092346120060214861960384039723146727560590570394956167518710999588252005079990454000674611360909950207478916273708487997465801077684356146242553481614660494012944903988262448052037224351323726990385160158530564884786095856848557183940978699266801615523990069832884901491298742071797710841259563472294906900117096728798644392293413027907278834664777471789629118765825401637430549990298755343171847825451071239119221564583764765237218305520907418627682725354983609343925513548280905623922369556043471051686347184786928021970487064289847470624946083714632102487570080587462358265776624665373727345376599259206237308075603725307689603339443462351892192221467999911562429176043300426114735791831190823617176026732414018877097874257669301153950652462898536303664265486499861528832502813231003783227054142011859321705480079093220978733399700739367453004245064173770362566505374792810310664202713001314301026993198792133938246717550532116409877919986812931028074196980844762510178472938402995607889374176127294767186102464201570435632305869873842232616540414255377578815827565314415405254339071152195715338195459409988637803232862530886572400641911381790347831794436580282194133887098313430923510192512133818854978500035913834313239916081750470114974945608330324793916082526224227104731528813657913603329619417719144343561177108880350492502163822119109107207763929345769042678996908221665997565847239342496272016503629441825618128807471087131310904940965898148161340583961243221001354816414793141628939489487558628472194570662317169326321851441005680014680104785584539279318356900252379344569707392363433933283945569119385074480636577074569973065185918276295987230010386827476148894357145501731120681184205784254560276920980314878096826821412178735655816748671734796602551013733611598638615122439275010022241289099121772079151483911521593425238093167698946682492727598903400339752652524334814550234766647913597572188136115581828318130774247696552379469135366588177001350629365431328868853909490819899535920503623199230457632474386161634520127710972458875828566939800214865293113965666552323350512582803862093816726853106380062408266457427452485150764945771017200292644390602263554273656683083930592866272218624360204115389277625865242216822542734619713047961612086891485523722250163836178746317372529590734265742526805866274207760525987952497824383687709657222627311902823964312698798482171195986239926434957299316783656962422932784604718692302151538314844818929797582876706979491846098978438273463177565357670717053572491286996318223760878668280179365793738319748166388541110271317454620759508251666259384944090038843016827614904149610001368773681850454407064913987477613408624159073545137654168887217041147422103471889090925654637539513515988028513806805335806295319729883556338847544742762499595484545231044483631407931924910189974914149404866227699130308567990349095382279820824901095652566846651177133944808707380066524778826786126600428478126722074589434494971586829456997026390924949967853311126454643229498125501000413034592235832202221355886074304545112808905282523453645794819502713987294920178699100362498639460383358069669758912086141844546179162942542503325949160644958051262180830217413340507755889153174337448599224581057999087625886455010300209811833362041307644490111366794497874241762871432751456911645457363795600562295231549406132287751135113272683945535262145892049586734719641680666034169499395432078271753776347241901279311805119957924580384822295646453412640728627113356901246702521049303109220033747541574253108692778200551471563349491386492025161147613119548199936383797342272993674587808978071029327149572433544709872538782569425929893187473874070258018038909035604836353331713469337995405006737289201679895147060740321712478975700984538701973568412179993865733466129253293129719862492859166200342958962069580082713484070263164775249034895418089846634016675680187230966197830958558059893249227926365567749298074886486192740035800160513794849342551436904184268723780838921491226563478000054666853905605442863172668791401213237443631736824766827311872484663374149283704329343829718436272016434291631535509496461123704193944416665124837776928515643032327266932513651642289810557789045520585837126050853105123622121257117440653456246264976282175268679937255751770488533781705870296954943511074130842998261738631970397016876350195574050362265600095088309535714471295593407534138332521094899025600027583790550944706993388245613305473395375571673686433872639099244492344654546137808301377525330681340075067000221564262739337963562556225807468398813919090675709994724242372039809279722081756864567700742970130073162811729520216008112407149079261950104372050689855968258184550733731087276633088195692925145178212983668108542806513425311923693053463841222294613265495184129043657899841298373825885954312311654322463274848969995869545750546618226983794755949353415837550854976605550014461517357724645651296375625203539810990072447091013014927270624142048072546582542653578565479268693426362832114412925767614595964701989777822195801267913967933393102591938750059617365322939100211723192211031225362696806954992130034276903755083145168644357745038200236354118934163316337886350741402218958199740794222933250836978256331503949706437765698479339984610436985057690598221529416544553191826753328120576622227886601724350986275152205651886857018533113783358290268456333975105386320843657373774847356586188898855326373938119175952844142221360232204162107712557406692432147996788049780252025602186033857921259230078377282856469498047975161425056573112813442014854032258347252572092848038246442502600685762891669491460661692954604700809822608228281191656837188377425415016628391197448397888149667144556554232948814011661957627889090146965667301248798241026420234328522254972442086314019031959667139053768378295721198124382686842987111687704426363658439800187991365947269872730009292861996639644701189846911735581400323016349939220566050714059965478029755160727453311956659947525445198085236300036341336343018891019526298766024601287202671177602696872927360175099579090262020381932782329099439432558366388294610595661671838692873551425183285881887688678343345861425590294290039755727981388688858640770814860655537987738451118721212097027632218362299682664196028126139331397851459913291778672505549975612485216921760862263408067534621795285993999102005473294760092823620452604100211104824594490638379994326178692761025968838924808410904722891608701568565810061902447715279442000303121839974807873787742262048714936101622944540374230137247825525749550440806421499638253850255781174326017743715031303052809098007186892625644046894927916587992382418640552610744702109155392889730226772800533978185835657645698323167431608354839283998849610850072809915805704311069461820521409671585075086385958440385923709335402795214198914705400819034875075253499985971331086638970149492280196049385500040286281257073793811777945438191818066431009697531631207584439948709843747555918864030297621778185476899033225188751921177987424926992518987967154421286589092348414881804752486613885250805350250439882771218382297999104960698869465013872900008416856729057627754693546770656264112492982966357428416950876346988360565289309796510511315758228472747593219652744867059457268335022684716329419177097996220014048190907292956862821893445502037138261804923207286634498749169645249138209973164367946068245100047959228744061997404059005998034355942335907732215206299755972897667340958468585164006188863921080394750748324147277994766679477417166458568369264293472606639538206979030525878991755142511447402768969921416480633008080437935236685556666982994353498809161642064085361612548446385550195001609651358091069024614486099411194047483664471307086294272245692584204439583072181680394974943340465051124336144759874276676991344226370124077259330447427441548243707319143743118878083135707502721660002969527483198684682383423536059630968442782472424004420040692271907070341456230295394588972184829511903079392175817304480473044280020070322149443139710541670581950230724404931396787827760026926056560986719874935667212400642532241513199229889206336443075809160317486878613365198415993084717035069908142816403356891192655099248620947813329276763851203369194009227843304640728522436496583333686977541661254672118466902015747362737434152520645805267971207800510026287608561143040429654186674319337048015339785256996156575402418290870805890471256910428038317035638669964589179177391773247100998391504500428153731947611851547166126137822083164297100888255481091977517273687350167066793857240294172368521526283938474742512255556123574550456195188552095127869598377288482495762843561250500101929817063579459437963761980499492232799425268111215137341814016820025849741975432676667266050127325351606149471065634988490316578094901655898910631228727637044590121743528675761894060595285338332325997447659932414574354731715519773628947955117167157675294750422405854769135004023210740249361261458192614271520079165054898080000947152467374606181925940934004301033740372170269339535832471775341757385070236943450266223598098264620377914165326125231786636450133925662086482048792750440001370222956044015092304941213569097712376842775126947638916699108534125443685160949218271984722986801406256827441249404568835528504330875821259488582059422183624058989965215341264598300799592073771098241400031065914349295035410970191290385741717621471125755403064861484661984085594900294731041128140430793199788311385376975293796281348333836716680332775485516827692055576850164948629272705834429254875412443116204469793748599432909034387876681217955572502393333348732104486504901048544115880767706230702533567885765627626041202608232375978666761286720136096007001737266624342050501175667839770256884430328789551911633386124638206548884550036270185047665127658172498377637775193818839133968950541651148258164691979289953271807018293710253474742516438645078483206655926372411188757774615686709144477490253707744432495573309590968566247248026886306588905221694513964572146472963111422101581944430872056551924790402077029353708116808087930267568582107747228846155126844857197789198452642722048079402994356043846660889577725774032955706005134057816378147259738584599034722245943327441697502953065218332097935261250046283039564953678675558083195724834193164171987103644687496235988830977319813981151927613645754465364042410775729016811496017671087731857262675470083555668703287194124137389062001016404874512068915908942247997008089884306771278038225515310413514550389073860157832621938521213018387278895462703871046617996771814480511684926063074694902738755620689664284771219513280773477431966265897640673284595634657716077836875937318140648251087871069933708882317477479835731757905971666205784773143545697382600594443327320016050717641246491263083985586919318671871681864755810929387921742495146002200299664566231019172805889653182873630569848854929736682410242112980727649936470663496645570266586957454870033176009999496157418065246727714590591886225382259950277778119916091791446907172013728430257080283759691142197188555614455359112531659361927990569295813237373325763183361467772498380017297316355883624591446546198494774900623322403596371456404974102497239081053435715068659260395396213338506918027123030387558489135192759570578067946174753567289527601005857046892266137485830966940052744572947611176124913280917582404333619507511922587173312003617746767104728631538480223181380544778066073549180973935853954602702394670438495190724054244623211586518346737046736088082401315817249439354653775064981931567908601336372174569008662784425734630407135530930817287937892338654001703087689841935832701474205023077499241608288700127483051966986836186503556594518008212683913272603831198923793217191800904026426927605547995634423606309954810738181898886543605577336659387957416476312731861333195515387635955162304060032375537339284038951206830898167000841785688894991708265003321433263776994977956478833172832845145002980138338246236733573515437270621876820815833646083953457790793413922408231816744534642000173972269407897657180704921937715841690648860624765772067236829137699294338460956902370042207340357504227521967150003528910220278387992494229403167750514037024760711572978985097070420622974931281648883755502206221544225581034952659608081606267883795661754552526861232758068288675595456921975217568651538005427082484099822378186086721938109469706115387448527338204173019300773633471886933428081702617582065110218706630749646897257294419723200168043934649660380531888616934336481050140315495048349431912478728822748267359757024794950478934813674826565682592939539865930745191725385571920369654760402626508895496232963842145949547422701484075957741860329155723424717258554347714494993559413161878750472779190765839841885274154359562848248913476447196350571750498350087532471327423077862867057913147326358650286167849638705360236095099164548183001743793501947520205404907424834812885372124943953469822848605393247483393658474869272245231153395908083610669910645921078351947625487146464053308468294446248670111887673713698382969256028345714655035367064472814778602018710728982040226513746212026482062915992245690593754375481344457488600954084238378206217927983407110028957657567087679318651184152351961638029446861698917068857278176650963886633030811436428436118501215172519348655733828992145532301549887870661602697411697658426086092485041910561356230807256603602232245177317575914965157179177324214045795096585592456697367541281825522117631626255230578550235514187355981420529668438273195228425575108095396014442622795213631332556743655427332358041481697703393067602587778778834722573068972571027601893342353255077351175330007994428194352831466017670030273081152212644750358109638427960434424755855120530419234068382457930398555215071687390863413310625879723683300184022390780203440222836858389440150193072525680217837111306022667949419580227348517325355963628938705596610847741695695964818984350445335857653798863388606708082862388586290020394899992835215325978386085667086711006477856792999677448372588666879357925061027302952245298404322907400330819985184334236486970075319395536309522608386945432488188481353252815849694127994229437364629084699392285782974065717645397534335881275718059074337752436332724740035185030766348819617593599149862920141639806540283570084538458256919310490651014589037051912374086673104982658549795100661769403269589684571608402889869765183887676154764967524483063135419864845643866446942191898526032761177764309680850876230835723957711897685607142899768619554608563139328108292732333967539974192073414671548884818533587748533531564202131821499447593407348455756968367411543562322991726616347613555093543320540726420919763170005753234237423320279476950354197619044682700552693140523743003586937199954798619248517103872320532865677414487296149539714433839978486279305227264271000389915498306555824408094814536628215936762425145198807758544806633309225341038553818261355960534148346961474152760699677575911398319299708941988910535891202023492636907142792314339528480248290582237445447913935656814620671394987923603477472045976743338373872875284916970149466965530669124085008233799833370319998606033477691676849771737028028759008146946187723450255629198293188255559523896898168202599018352756997815087090523387031773847928386074499438183304241070408737845402225396914229130812980396676715321733850216735384092826492365899651743828919457016636934736444793560072963689925106994538942995663164490299166624388506635858055886728462408518255287732131410050225219626975482806645348961432175001210140718038579648332470645100026301765086250276386168028100979981291383224594938764477166140857870106378797472997854248643023414031739788840599810162887010305301301110396379082092944472057992472161532153033912332077097864258445181963366445246365814483567796707651339359698329338190205487106684332147816178790701290047340300212945051952172460397534128883238164588555348553385357219625297209406854951586925267934179713409085070011959119298005730713926739876837724160213327415702499783893167247934557156185071942441967352513804780337285284098104107952551266659668718245288931645141631917398253626753461104632402615138732943831665577436888149299296596116944187890462305294949410885130545227650976712652751167013077180467164233378556196029520811664750292368960246676544226326624396403586008580387998349321769472289960127627424592023787509411022583646795244784898792349422778243449324400047906484484326111414259792382576041548775198078446558424058930803788727559402709092132095428220626401429181023102570164484660896340641321598251213568084913182030478975666267345808557998083199672898488022142408622990824396195009150905786762239984920873028387829531115839249812485332634560170275559580804821583632829934501865870856928039403406728548135110106127756267731370407396380866916921468514304583884164315243182852203909650205493317580065691816153330341837775015152435980917688928637818452026802874447686226597144880167613204744044589279118988977002115880676050254537290471720399976665146059695393946544719912641698699975213721237142404068091643583928860675759095731447242375229356078090254762707064590158056760968392515378994695468738717172619075650556160976011185088962944217431667089099093339786865459621105659713956082042074920722969062729407809266099932142048397767925975333037963499925450004169752345300650610186806027290865853249443827810601637640211681864654064424562017591692154746407723428954279447336992121650582948329728776155080919428341918381820961454471943632945535199835927182927542630066136461445103801366504159051629985481901006451783071219314368508976810431116475582734034477733940973391478915541297598918031862390309473413287396496907518981533887340754652934066576902708202770595962405513966886271053330300015954667114004816420044333397486711283440520416345520242891878500920968796895574803972325325949633554463661409705664303936254687408540069090164396258057088610263831049596523050370863219942634888801360999444535112527601772061789520893286463856858260952529592898621880845673656121724598756296394092832246505827565271358477685416326213526093342455225716489994385113890548573261245032310978030611141900813665549874833598539750081655844983793448098406809191211204079114299921001538088205557161014495708780345077916377213809697671523967009078879891440098775119769310479767323723413072866734355593112118559145481342676289313900459243857360770892849993287217901991426767678910993837874326972380838855596878694275203293041161290855873772663547447486067401897972853390491976793880577657799510647122174600375410004334614406391742504681218144630697059437695107315293548393350399376325621277137230386387407664582564372517487891561973710250775252297726643615236128717443633141865281639612211779171959219654522467389962749349110324198782803990159280419975872271645217654074303423586578468615082919085513442984925765763152317880893275753428105778337636554184112040110128153979220224283578164529066966035279766665359965046009514748105374335566611423792216161448572315881108945874904886066059572722661658825801634987401044495890059460285534886230008098734460033927626460890475646713796759877707984632172179726817210418025960587548877100517852358228682480396593192287823405689588827587254520734193810888828257935806461902027779464629994706120380496470436765500851979372105699477840014456768065086886737138599118646893371335822976866865041846266755380844514711197424738001668359981217117945656522078595706093631005132461767424189678930007503559978234609112849980894549152813288667579459626257311248142277950570204831362222518864075686341090321725035420818367146584477151918799046838635853421749006250323821676266256277808969579412481498968936430063557741828667277770020194562388091851972620987714211512029272368171033314651694504783338792478090418034141118076032099069070031598872116268327432525970865117667293908577247561735038212610545411094467912293462281096314193475775544945920284780162442105578870580443577380222627890937939484630160367437876609488053681336451395632516072977696547530877731284274450001629483896710954799096789961817891488169074272038679736797311587894402417656721795371025876187048958148005114525795662222425104883708695198538715384982674592973213513695644623611536041732563485170597637398647917767545666977331006783805633374766247106821247204910378140249737702104855129764826532002595762419926314205751549907953749291169301732211913129807774970835494431898461092075955292718620891660409499686016577606815383900020352344384023188034581539354052627049470336586400144463077493484745466581026057877055883430224398669732997437448444732539803317946557322255281789009875379449780337715560389335686234894742144152628160683395501099639247859919636286771297620631688002311651580150176259738839428833149795576376359886760878654577616433515459554387080296950811649135305991856028126650844451031604494254564460591709455922413648111955774777026670769181165110422592988997086059776080692925980437413035550260422679412420570615484208049683596805661805305671760759097460990059494059414179132526734502362682020567082288868052824629942458543814205705314450466474898416624047519041210778586821900780389474741737299376906461193147359310288364211086488231909965774049123986857223997014360968969679819000450604356923007783298259709102914268403142277856974521055301049120118542792913953060545662481228735493961869303802681330300752284994495724771473993128603174788565828340651356304686942985558180650225038628571334605614972297267653859548222669340750568283048636433959366323984820481349103694351437983579729593422307295420468038307688319697515183347195988278431562784828823533691441102988031698879750175298943438372711438456513072707954732667958949592089962471075628996190926070424478146548758669137107703855238861892763451900996273466969939558286301839843379191892884669002095950926229039355276443519276793813854758046830161614963757307530970787511515568357865155186282873939709616048367114855026656471584243438161301965925626787770057999880315433233448865315043481712353262567015177094766012495084780481935666653678945409364059034891146782166649796325834924136561993502070079945007236680619563487388065284727417653472986340639603071960200915074944106723456722233144152178683869635569782292375045444946245776299424840676368075999855938042211672518131362505259063692389704003446688226430892683133304185682822142255164186670489463928213089697364846935320626360950386663203593422466173483445033308067392470833985510645133033190539232682043712276065636657439899503634883806703803440108144968398689839638916897651074755639644777716134755920958529720503820616635745964497649056651122190100798849762745192777031888290298755197144378013092777174472960017957498300575953018829522764822699940872667581419705510506031125333462810273098324935620011224207177103688799564872191088410955765239486914751608154884239892280073678642969913460845906179308808160140178490366012646073307166573791263817891544995409747737642107297101521115071416942383820485570050155230481219426671136248902298497991128131797389527568799555970755007065578537662845657819097793556330325321393711930482992572004917226184195802526368547480353674319699171718303730705458036806695270431081157499427183555117818840451792517359945929847625577938223158734967157158192966237740618628800254144128835037746171306171456376151190799710854543908206706369948207843658966270750729951390759907507223485536008764264457687785117709077766772615289368906300264925224915156082119165448608144955890527979992375862154637244361221046238916917125103147079914490363185347988809111793927458769298142100663405799396105092439596425149919269346746981590286041182088420690545644231718310621311717007607783967250129166302014605850303932519868666546489986208525077745427836330610721696541955049596892516558152931022559448152646333970614707006555661650085819027491364082175096032323846247198391886575257604183178949675625620995023649645610414408943488748049453276712148695525444777690047973583501468088198388800883379347451096264788401100982208663670761868081039121712018467062172056953360135692543587451056134669260319393602541443410944609970631687974580658586726693190183864194246959677683599923390963761183940718125746425169000604602160161005230960963890918929628116398581760307440318792790274742713845361889452873764414754912108410506312300074983490404984917946629137614268341860529789417013668491044911577072854701230879061607913450342820745111369817068832992579476485840889583669298211343762876899601529926162657296202489266482491940474236444957256132244295853987252663381408333731070026372356695945775944029020447969046323135639513115971568151191148368875716937893145010100994928495021300704295462130618774847855599849406933077690817752127717766736551177972118269960603893920924195409779914534164258172764909937919024606461943763713796843747794739944046248697333813793600789162898566298170128160900906364682160779563535552086165147843008084433912460845261589598849868821310395549060849511775917918720657667284922807670013887888527553217188111513493059303521422064723927036808385257271754596072474295580095822180185203878867955639530299163479314155452438592534789410880324519753986392290468897096551003987514065692267969425845386492147442878479926441954070615606280236095586700846741747555558290983735247447028706004327652226580964276745414668232481099471974595868958216322784014103833140401491301730219694761681829522891891559804239840924204194799459572030812752721124052856954734115547540676854185879686555960812808895698449488915488043051655209350972309711675627953698822361130834483791986563994006781455852990822773289567886640103852544005010248545433870351993457791713098744828960013959979913498640932665796038566594840174533908101371215759131135651468738335557425188581928747609710614292784947189823607531460160541794209171517671030818872159355771611359630008760603322610236780630771570330545148604668477578799173275711817443363652097510283555914635568053082910447683283792002222490354583192048938010430314435223352686061598679464579116531691032689091688654852774686297478877494371490099677785034844822386545699896841727008394792832939417527789924796496380687602060651768698452057280097936463940054588495033869666584704168763422820268442539621866327435377532686966819667112952604312610125391234714171360214150360019936640102205514158642353520160804627504053485728200637002286911149122890087384939851564060862069269812534848862303677913275437526290157198523786985968823209742809476169649289923564698004050382535106459982694145547373393144984522876433816263351755743133139399528555100435116597327373561700074692640845422212223722810916150899738024569144835872933341575921005462984105239487360876569865898912557473483133382042489289720733189947784832637380331545220920199132833407748820105933917938026596067170236448487051844726988504584419931247840764598066436101668220499387129253377245233780725962710787443948186711361161162605200073200827954129410286467330918389521122587792293584437159581523691220556665814537113544342406719040466033754430266931983409128068315313876669922960323347423441720134375085832209290077899994535026599155048659035247367616462946924337359678804698524635985698514389912566849252193185056916659757838272105043765959937940100191426873132430136880399181112214768671052255920856012259050468553550313422534472820647024969254881398036149508916878928308511542183215048562811592525430342251604398599537777407172351130787301310479607545874410021094968815922400525436382509851727717495467988978534972302713282863262978784584399703999457232723797937833892082347397329229382863073137453336185271339477597762270423063915907508226772997444613651160495207219864467548590961031228392104640071032962778200494417903853399948747863560249399043253865446067334106099976021707001853294839949164860444052219239395729534298437497918325069527408804629069265361550723937616090574949078661403360918482671038224099981566617005048249363311457673803552611663815299262308239970693947595056909135343293416671344276530311746138114351945426858499888052188844824226466638921200156794133322496244238353991309706875237826739670871918482414382557046999766426016890725443831575392198071473701068220130193854837450178571800111118913669977074787306634010006064530213093920657839217030083884248246793679539447381081788722019990784523160011898688010642435392059154070975425343108709837498768815016858589979403397289733908768634712338218438085015037244766309523617799165739197159476231918505021584407205960249708385069561421383991581037410995174646283722482649917903237330401005716532897082713230824766131291785857018830933292984127336324121114739544772484685998709103568973458942090449128130781461561115380447722071246693978205334221820569521853527531224451634792468991954475649692282666398325354480945241322547914875833801494364467652145137765627275532349183752007416811251277690122544544290000024394571619291486981529647198453225334484500015915097320615347121505224107063941661269282080254528167449530864486384323017428543586931408767434819658923845502294498954166765350239680807986857282616931192141645218410897572133751000924993696406453584440238297922981321227244417265694372506576360956015270197867639550573533020641500491175301702627798199780727291915894859085060989417155660963476090226183996044211945745121693159181918486069801388224316101514863299469219887331493381938021638128024950557214071877653905380718379172560118771267389939772115059985414169952280974094403076103575142056384753622291684042126920339594859084181993593860909369218548796081603728947871715445581654978987145834583097737978062990020710487128998207980733104830544767410719707694988046727217397387798298329479653331348150017120443455082637574315984653073642805389649099107084504009025449139548303879077083873871392227503108054706314461156493775592549102232430381974385713920502469891413912830689181228958917162819408151375252341171271443025271560492652966184901768288674095132111238976530710342805945294171807713772519410912476538652792710380384644209145361087256230173713669751067690177819778680389597276783496257030020586308993919508432180693034883517796954682265785478789635369911734066278884428633530910886475683554844044333490973856361441014451186545560832242530043076266696360123548647290864204174897479069529649015401611966875472631773372467498578491413118681847629642801301039822549756314241475406418324510476553948520165400229790771261833303716219530972444197898222732592731562534631865468385765541342247251968773223201709254963909943570773699322393680756618813734798611116313378355119391767489082556605903199868127852468959599708203051417652498640101688491568183895005755923254761244470833309526101497351060134176871372703025618714909399039806000098997760836633396633666113727513206448407441972537908539266718178738360978836344105602043614871365177777025678071395799812112369498835699101856913911875743598541153597517303379184083101948288599947281602388326711763783334189558253921451842396952389324314746582159016019977563058019354582941415557886987530131950105922751705398163348435923041818563753080777000266031589678870565822624285667419423713762379152790392010714448786174712689102994822690063023924006924134685516901932958683067585369790850688853567037959241404812814233741837231466549139096734101907952761903179225479969681135022246830002797462626782570642572126250033128641964729043632348891243228078141223304647631195714716156446639129592161276965812137916743618352100011172585005190462857792970517479112854425725552658673800149786214778672200091650493680034826096461671523794583605646876240194738660376580180861289980283890064141306555589510030659187593822177541461636898703701162954661268782887289775703043994957403292939159050931157170068252728546207088268515415491581153978573158628343422399105162927454181675328546185662903065229950278524181909876999970945477612612585107924301484576161757206049050037667024878846402433689925449093326845492528322557807214128843072562290555866656854696234525867788577444858115076103830392881406236582815657430269622334587432132985400245838467904806387895272691488489569389940936580763829790959868187904176366284783769142533666406142102147170875311493132476298340835533379122265928052603478409349353584308212115053944671257758579267568900667879907147940103384992795974321845450311420111164294593960567193820991252794321740895977419733692416902316354679149245231939891495321222515775189041374043709630868696408275481548036200242459707661450690181696822099385527623495396613528715140707024958515204498069446828713199060750009848786943008856640871688182688844575898018230316590114639197105781914778353500719272039321554086428505118018378086827172790743708402876652730570835499338262264973975435472584614350477536932811087796439741831182622448839843709712252252970076401409500860545011429617275702517824543359930928130216217115112883525248310418423558625409737923879620164816237657697265749563820949947765796501962485383897197672969169042852512378742201333069677283080386775559285135807081291410240995649427997590523215099761309167545227812393998133221692517358600502929377579556287761232462038588318451520415996353867278598104165746976482701363309867916943966560196957975923765752709380824777272760723400567790292779826871854322626269804610537831775633956272104731215040292755793156718448550317576349518209199449381887225716347326714700924288540220106973201555738006329763649014882251967858090411081405350287932843340685217787237717335182854712064740422535082893569315932381826947984815113408868206188967335967825136162393508353664518942002142816884040134753648023088822367434056776995728715867082360213899983981767539538581126055868978487686170998006537844917241196452388102567862829889781723287448556149500868392233921283649787432917774018101108774828609095553794784980867193066348964135593138178118380352746715701786484388652109072637231204099431093860876976486111425167514136216802351308572615651905752519148938540702635406102884929951510423467250220295881745396983874426485225493055347120924776580216518706160034654185014637814171556904320936948956473015230145203900339639728570238315774564962488671861685340899103603177100938412815026602718218312864064282113295632375848002721053961282909846247206346046893670531800356581736386159123410454261243748761671402610882195592781190474055663781384356112238341906898316010794647545913393930791029869547704431689695461430275025993146953184535129713032229206166961683240042528629407391030712338603394584067531326376818920119454635593115715298162395839263170655395483633561903662024712034483008285259472461626293339896748124714083138246966094172037904563638262439132926935623527519384337685410933468308525265671700282967573939701763430179604687973764348525991583922280553103931504450668811969429722276879655621569833239681278433507941612686376179022774640773380149323732118117707533751281891539337032080434969810851301488757931873377610786052730313722261567556844596810570480197699695425290151143785229890656624717568501328215747894451537995708833138087759024422851284324940592590106686791967674041777617383156420896232958923201294962305756428722877871959133116944245867780267156832986045885323143126122208034046567790238442589808642401690946737631978534912483796264169965594133006353067505615836625722922861594380791646178514056771831960614314165339008504428045388139846442697558807641261109520184510792694316694072919461975775123775974929048399480481234208298891023360932820422339197715983650723657119385573971546419726386983814283307227675500464606477414819517966116537830211558348118132250929485098494891060668715303262178486286270797994284924396058362037561529011446975802231104216956457676824986669037132253483417595212846013756119619212695564737024052766097104220123788598494381976541628661253317643166191642235117627935903419629681312414468169323113359252602460614387694856542909841768194084687699825566046518564072113221947728770074306396598847466183230831861219981917539985016422300811854586198529873308674881675220792754214437414363883815700419265301917791462291570599429520308010637672724650530568949738131975488734759498053719998581803169601902393925458061840555248794732869200030904203649265265516587591276752794614541441346702928242064651497335733902865041425671941370502063797671466812430228453857287418576958068633746611813123821504621133220480476877847614500189359438561504465075766301517828411402650032637905065783855476813487995187098401127475602323958596895570542368943675616647916795785972664366138651820536407434070919591662999131572493427960293582250609047059926420446290489871623454794409540114311654040677931142227732218244535275961263787043847186206483716532429738115864995836163387715849340059999920472254453087170851588924231476001036916114940299250635303663234066627601611476298131423091132832037850136953840423381248319100241942154213055126489032024738042878353796366363623947404930081483412295783953555755676709356758644115403601035890731577428045414614472120264502878889640770003736066902914138115433943257463658619748589629359951414495884302713548507025441820630746091635183114732049011351097822618118797895837194939753396991003217478825190093861813219868289538937602671197112652865300802843013342440963397552460834080680970097943285019904096167153215131351558023839622868460763633778058244099814878632453000864265444188432503536616203790734479248216330890404920058147513514610298202759576466977635955070162900982407729497911960230459723006257122644579662480938500172787870538285282734264377773906618811260200557360015008376611777565866558281440530467945671806039441932887804960590007116514598498416083500434364694817231148230219908412018317641884422035350009285133236988846946684609823235993236496254476398656933363255145406390554793123777911218063500482824721837166678808446138471690408465812032680040458620416730942237457885817550958984875032535849155554513558375352133141171536343430505609815801226533809027595606909424020007077834084968026797470269165681108887161563737575073007098066259701868769082776541829295584422180795493161325077460699115878037011252086724408752655164112283607140987966202220498947942596993040380728534749754897857111787111934070690391203787856315198434433104466131088452842819807556106031264188404091358274105713249687750548438174240016385846017291524030538944521483792401859973330612760057044796751861151442140726529414118489584556827629015703256457274817054888332334985025239876414192423202492373726650657757714911705939886687141980389022755519571987171840747851856561316389924415332673969803255074689937849116939447366355221127026392849586155793875467712885095690990215881826881934821234355874659433994895100526687570314070623416735758147360594765239908993540045710179022955071316105524139449373403277334225062146194982571414079391493434771146179818473315987062534602834899813035165362199298321225105448125941220236037756529174220858422759552507582934724448641524026399191154299759174959920637605297435804574849361085838155545821163568896214353823480085690296648302949851156350949300550561065310780785481414298573485528617254119491627641520732384302138260003781277093290106693063066766552660031743675559415542861896654850159947491557977659598318969708531210230177850050882769954759077220177024244129091320617981367018656207694894553617120406117882645316478284006938470328808226894429996769406525353832800674054915415566478840444525744972137137486022440356677031972934478113323170789533255377799368781641109722533980027208907882760623643400863547944753377952195471645277304611071833704585030987369894936578645454245672572277487120411412684298872249654374184264950627371284231517069928104781738923340708402758562519013320059873932285626304147844798579599989958441958577791215654733114024180604839666727174278452259756242363737091198771851859782049675749076956070397586977533675958450823649712953398775751182965315321037370689157044340626832887573132195409423408785864460908091479732388924417131217749897782305598826799732370626963777046556961918127224027884593584607354538946611357388063326785160478252295659402098766302389898899443099708214852337035063982032507640860168137100437272879289324467585815784425047753887826249467523211938763676755728954471150717783269186619682180686588803714120719344927096662126781129147653858053634630047550124493657066888944725109883928187597868114451154137057026812261435191766591207238389202232278959951895251006142314319318311746632541971114055584542756755631156633444993700755085711032651310282628664946958453341688795105588407712189042235463069117735609720727187084256326135379196605774361162344738759192862862510768312972266151926848894867022566961643282409073700328160393408205512629218584691621949615130363755598605309521741284457151022409639787643636939918205666987577415605052955386506785711706366934277698553380415683168661527666021877051842414028385414135993917193902120624796681925927603779590224107948625066237194828293351032842340044180366479488086953592408734486186699753488773962219742767508027626401895974348385889895405321376468421366028028997115891040381692159346638608564446097825998634962451865325166655692873705459910441854701700471198753473693368400657611245034415401690776148842226557937070729549760325537578913388509312455264689843150106438722699706569958723935997975295997782013884029639197582033766855110999280964422529160791421788369029124683408516091104578976684319476297003053541321549621539018962682803203926508897422985598145017609455442601317514484698257633446944173083241310142745391891793633604577278947989939260774736457747470263280165354227056223630240575679280302879040170012803122194610646688973834646177551142707696079394192964445249587314183545033338470883453603119142377074321585083386505701501022269924707841412481895766982845425772588841816470475687789298467629361957696493601634587644571807550285308431587785504055834248431694569497999834984899233087299855113276168850837342545239921385077897809244573483018565916579028620439123099258516375551860518547201140180312257565690928833855751694673642587547241458801640784006238368135687536101522419056641308119553056620984103793085770488649787022952365243204380765354122954487258609794521625064104638104082998488511299953546994803870026513265519649275072670842992027414688870189638781455493470701209656468410769464243909234745729835748998653460648728622324279727094832753198842561575784227621549053687827142966050708867911257795247521963484930816562330520773617430760076258180277298815295458221265761197148830685141601996454956735353075953621290595063499478215379959259312754887770465415389360724972681010169702767364696949722330282649541215838840339527583121245039825229902048129316237030038602520811259780979690532534790343087607409663774335343694284252220683984933443354111934722944478181577249887798157245775145914542076793661447483661013356425066485787450916307435469328340378491117156457688330216286695485999692205332660970212040301977168144600970150734284716898724894379879869684333842684050475594465363546570517435422198149297013106933571959408004389996371086356209212358643081158787457100246294658069220256924164144407829420810059045938786125608024876907138519246498949862969025989848981486065019713983357409478099164117117946491483952570153309088437677226880843822121564928067151936945340470641014800233828729528547877793210614858084031943997722666396268710284058688507026394341181213216363586734867762293708488997405478609826944754740598910143434239047744116226596853142030793742205799193178375330193214245705435927835662889995334135776794782459638462701627892116547285236579861546882540424893236007763370462024728188146043503975176425177818619426365186181455391703526468818854678720272690102089456549213382876582110745411074802012413466848030404789187828027650040423991066361397834118139567160300084596019015552763593012843551349138130639206214935327920271510282325414755452524177265264710926544049162365820123334993985919546280757042612885426997704549408459478635152964037849715144180276674797665270014131971035307120705228624118653467226176670221479372379283399173177704447621603590930572746373186856102737050594419168469846388886024584231249266300529714184691233061491708970189033243912831602862685580597368459885613105458328026153476977183711435536658391652966865530151875275778045082591412259179041291268337257706210100219532690465696035897424609330808764000120328879390165984317469057047186221883916555713205801970615894251690468863277456971946913650125606005773086118295296707247053239693381403245432957760163590195317722325156080918851262822709483782480410695818554538080635716005108774677699626133857932769191307196368753426038993395785559422269618698517685151009053764468707025308253647912630396215861317314272879936247794743127461002485555086325635332244487171472755775005867920537891767874481348646418383753063453210170980732789157477673474354660676869015730483856129709259992436823491272480387957651004615928143191309582402099639474337702137866009177553639184903251079035966448383629454730835239117651457124952226067099220341945495333214618624266505797430135059893487533111252507049303935236020951240359765243008744843704709351842042897742453508614753611763402585241047001620156144379159314259997899515646503464471683956599609735783675725927043459017940383897474292124467916030418324177879945123519646879107501767214888148337143107205685383491567093367127353427676851433790592896279609901811655876685376353883845430342571774231626654920550052484992927137565174464541991047336338344083069393426020828151021518999317020103689071733099365826504222454980165774853510146264848883794429609128566307531113001320279192207944541380145703227543928647573227192016838372842635019968641796911916461669682366307319751071647451425794342835953406561455599594609950045464838591205708097653628229598521643028456847381816893727184391184836369856856496803246579469580596707557440091972187525617176339897612828907214502664679674724211018548888610887079328138913807110095175556181639240126348564708707382261259259640606450439218830666188402908298347945776002700934738720963674757715683178704669491192143125115070646458059099818854932129489630038465254229863154411084437896873023922635525397276657186941973348945030202524377304372759287964360201752549594363175080061208451779650118167381801535210221520966002725638889627879469886227338048857528510873463000389832500748021772624867863150837514818281752641405128361183309435071348002513952432462895086935096491907496600038307344797795752855231097239480285454206104446906112260858055267085242148601352993562449428993175032901637773841968741298424295332567937229607685669306055169218546924160646240496056910464168086056749030504413965739596645499955523542315477645871644980186875394669418234457070024036590720408412170336421165889456546263580657238096345379047549331074664093330560387635215340754852244755146495858905708160706283222005528115913776981498995148703208410490506769081953220590833753226166587916822312855841017518666902442443244494846422466336268105159307944096977777094495500398242949972406129116245955278632352664344049996108033389545383693818848943159406145393731640468757399628901703102315446075952938877417756513499739393847965597960315767104355557930634731055238904358990021531803367639643973809938512225001391601903400923402753988366117557384194652488911955266600520540454743200964218649662880524520962801493960619368542576594450335802373059932221538592446956494374487852220848917132130262052865732131256903985881793910165876981431810882488133732751742837717115929292423884996207150696416356602406533096335940642246390841529402144594576072347141110567119476506696923049396882078373939524799067367406705475209541179590392949120250766886999169075635870763917916986408451502631966422682832565856733237700564633020306551289234353096708587669313249404898817958376853650378200748549471388465049883197882045557712481054398858067427476438466567743065907050839887690220396252939684619096897969636539469657860377738109237358704247255026389429068106048765663518128280513190313950025170181038818944963121175496351407943807499803253173633924615791399896961797333734019592627345480324410817270194292663916541612364869227302381153022199072903375015554422435179875908751678681107387547605106579074686289428795869534543143173819057785048926996715938686056228566424519575340968902423544649414751775250797296661609353873415706404027331997492225451515526709578235866664402050917299463118336832258177229326817614089892664037463252886813091635865255382207530523522032912275873351714238851526702872507246426555835018526903459748393737505570872551230669843402081765262049875554078602197513385365776881508011723799249074508357490629626124334549931839304646675593813592361483755478137096743723241298895311196890266242524343240363992742673991499237457249299803513124441599195500503089963845576635947946440096673839677542790444465882686478327312071901545493921386725472548265478057908355627029422374166820487014549830137673656551119271965135154039666742690665950342204937309765871709446634127607140228620385786350311949432604136014647016427588797641112233031800750714079372141569740256040075693954193041095450416033723220658310670182783656575293748138562100947984452368499320023979942209277121726538053828871137508362569076957989464360426114161266496904236782095033696208402980195617086138421162269046981979219056628207901794227540600751183037735143623997222026093262118603324462810215667454960100189583185290325820038218602355405005438881158693076460731249196057703190637965585601821528200412591250785392429336315775136100473618615809703610027212955982430680300967568040323210503724332597835932800936423813341767082163379473592467031021723836920306239732440770767844396834398802116113636527560960453670050099910474920563232903292758451944096123503747824147421234711347895873266722688714873612010308547145115786860265003206753662576732087339120677053267691171541300281885821563495086425280963796951660633917451168774088329821371549094206004883778519926906284935946647198954576658165344664975227299564561689335418868901247228785771040442564549346782871054614624666854201757974271547316361208134640464101460158565337134281482749128390109889811581892700233561256061693692327077310875773626475724551380553134431024415777419767675362151889773098694584579227586040232732088540024586286186834806243200153073318548587174023491590499777624157235040090700744087787243673301482770894727137437499526337790499076744302083399792869295414339913260410562891982409630437355404142366625260475165723289479564694298754677202685496995786255886232613296594082271810837049229362489830463623528272106377849153845261040714853062572670132399225989511183881402037170674531202714485103219666787226322529419743008888863990625439555648679336134817399609194186339006764701586923087825292134664960826202777388690940371691467990485978488795911963890937690912320995556639827308422144542617886379010355646840103384685531671752799199823397033344210145654166526531583489019117233365422226297350723654075505340875695247911407731056895740938988091610781467097292597765200763802015794236486662721276295225270420099077183729543843266039352823252898947028848563535794887340271268931864586059097594228787243318361734466138106009122659770927177973762295771300099269617081127050381660725354994445742042632269614129341163842959552189967970646874317314253205304344887749819131226059934582599216380482034043408317786891499088006009437909094722231276330986075121570242790089276182884999133669980563784544343017359876837505173289759332336996899849575829173259464114763477926617202777552404372408442213803214812141124612567632311662919242591163479602316620916241190933191232032423370702598211500803662938190287114991315781870327435851852999301805151375190132457665926008461742556871716222887444029482860906464010337642865368253731667605599248605227154417436345223203391850822919965739561059247641537694217911238182230711539774084979328687753498920592891315069892970798545697467659858824994733339310459692720928154053731145843350606191904986991388192902949359257958193898766501755196361092462835345556369401071964068691791389119678848714021969037290336231716266385791890885324287603097576947580423238888113640700327058166403992393292091127337320273076561674878375492954188995758992060712696806351671541730173747240650059319564905598623434526394711812073062479888639609683579454405138788281745581044715594698600692073390395841159399437403403310397580696495703511756261349405066735354031521336543179665469753036031089670064169334766606977122082855028989492969927899574741817986810457867029947053724627965317614832242714630803901344866782425054150193270217774356513628809715995262435735358357921138549500699636319653064045028892159985452542092626862101782312780965347705189999381820180661320087366493518498546711240958137794518061947481559319281044725969297072602035361734292904450017607740813842062121170212675227509951978669464674934136939073739726124825853830734791931195365863324063312267276874780641681879720252875071140626609507071428714621189968860782146672780453194575687986841650851291469086475903354198313226226631634238822142498654176153041881978780554398154963862962786675720676640378621958698991070114920339772594041489906329015573565895060908145218278102932925610811867867214851349853296085836386465536102685373506963005510806620007907729607826208683305715330232376869251332551575825867556123313307538456277274965331491718925287158792453010731639934045957984081494955293903951346139821022883715643891998913052904145153157828034864798024179840035056152202137601170147874931050489100780199986308491786765370697693895806686526755809611847528064259234336108222631681421688900529706331968702438100944911837112707414569098243272083052527287892438407727650251547423059879635760935652833967178997766752801601014653270161296151295910925541989359894497858777864958954385554492811928392443691335379421209893707821594140135751572906059907996007007086060858767883271566954642478329605058746248359823082378150399266831910935640948741521618107580374954613620801318842596207401181817087366255372632596762616038499391264640107844789424232384839774183513256034991087925208755443305419498933200218464454642025269493680908031047200986690006853987562617512250436780361396371103902030942142784317001303403865734023000275181848307597852167972347091919956835568260076069196353147402155897785000748035319579765563371710712928541161546550646611806683219949818345465941812328728570069665084161467600124277328666883592004370969682468181077585806619662995769884702258290601122810909626537444059661199400013928339784014763511659977854713889212483109079523880328149357007902985101880371119475820421720143721208061153646466196488356452000932980014736388910830492739107570911274982343060110283157926884296083810544915771919699079932951048630880875719989763965056132951348668987404753074086601626078649465107332610751252469629948174172029740367102705816472113047313370689960735324012685698314069262544606528776468870596423901816131324767852868022887006776170934038944998617269595926986779271920900709019366122495757249214240654727688348040284476783415879484057397092796678249423373419504562882278074436701645295480562345054863162896549168956971349796437535656550152963892241262492454403561859877901081460885754940381644573739271304278191625175467263684161797693513721711339178663123399627712347821598026967431556116517746607798726209299610272133474288333850181585738404918843822722128636973847372709456289297528424670938792113325012454768753497096322616051384332144256818562209262777706127182014099830502713343120134636074092334438074985004690553479364441541226750169720044420937799351222820313228267245884570668173538046052818563975633826368294681307981738279143450947136559202676056028404507732406639118115559581298622461909489257326009806704299052573251952417294059461678017586414323541722708610051187083231231681895904647702742251817754613266262287503814530007939749903125315940608837203673019239528904814090178334278913963404010013829279756236294394912330196540420146342355461446871092053170650757797507559669653842944301339285282079185096024179225536937594934055534104045231351226682576952945049655340207188078749378376317761009346076923778456119791142569006371501432149253896498692261399948815414711557713261155298175318565469097708235714636353901156623475068516099247726279178511723635387238166070223545807068157067188589181784140037555128910902110921952931712026882951475123686186527163321091777050543712479604829372283351901795179516730769125946402323866936654160430185111685555914757861294886450342345756080838426299010364526904267150193553158661553837608450708605337547178153280564642472734331346917095881891165949162155970532169506446007894141803565271835813030871587534940724343920411503442892928477913561613384591178062626233335881084390096207425602251245616920417323123911563894837977301930290985539500401941343436513451010620661871869384408013519331581440971045834391854076309394905666857338150176674849151685933698894283567433340666803628518840378635767522243747750162324434000630559570472841482446700299848471549886593119774592076126913854894085925362307879308775883414687723907657396663662867440705175555820600878726993570504813991216456801628876959916664893035206049687696631916564027081811035763731101260061961041756182912919301855805501290631809158904306733412474946823865458473626403571503468696972266042942676002628813928062008610699129954803743190701543392752881325308236670347082469688724800081546424327721047317176590264547091602229107460859067179099229610134231049868583982897548655602281664385215646718971498702614457987527860827637317205461942928617894845368925120103974580722742204584708708831400596525953747787324505992376891162476290795666764706563994603078020441298029832003749361919575699381770907572425289921022075799471757579845632743928146896216015282003376361843957198460983982525345360134039371083704453010421161010756713534058009879992057619959659934937004605837296257842850265672158868846339196667874245924967990670055054575960562848540089763343432890798694334613593189888442876480102375232285871568646256397548183955660477530378915846319429711041421959907203622559736279442930109339150937901073748361861748467371266828057812002703839335384036019638991799730870186448665063282170657851897183250106544582208767151123810664887059309466582129819626514219115124599591626315223400710841897493110948479537474147832989388363704923479834278544527977885757171899361919079466151784517153948315882923169797853723919266915743530983275324052204178968418044583215960290884941365225798936270741621114060922301490600053705005344370824216603771269954750700569481608407746858886943329322843604629804448622228751825772761395041589885865200084908056152828120817711847642414973934110006289839585648576136730562766516051499283570673295049301922710070843544107419933896579103211869225014052524774872103163961617446849268257098068353407698062542330128449331922282141461644537538874102051874214352685164074848558949849792084743170346851122696051808595465181695020212978745335703218665124847444873804452455903196036754463182685088877617789931991088625677183249233118316214076980045388626241934596679523795616202584113178168934628448593337224344166669481183927149863831228496912672593091113720896050434605425566520054895778090443142387039004771244535701672891074480142537841915287705549970679884517784600712690916392921033990947292226788134099628182589129513731192740312191205209301616681338481946840162958995506873659674323349888242466612522736145153257179068268050497568230286839810624131015253766722230208869511465959074360944603649437283599490673637524896253620844827679371564898788229662745515396993317551756084837889046448297316862595438326407673024631118042544722996239033306460449482123009885511303752057329752561611800563244052274286928444687005182516051901965657130843514395634861218250330246406368701049888880359186416871145915175482932992496726840288571359240562799561765225512238398298874033444625382318004045852379172445150614442473744102966872495550049416811241785557163057999200629926162035250910307685425273713356272703660327783227188446378062352967074045788717718077154762446000148833127148216338946637930845423989971244255516537973491455673401738498845392272591400068922236688088479202921595831652202025663791122946864914566026626756293211671887991213673200400465630190199387922441465545262258695688140523606776139611087821280762870605712287909743589711621381097618224756457012403382376490752734402303911399899241277387983568334026496178532406351672522256415601885862710196802584201168454827216145096256101728925859877399123970324418376186108615873449452805417024066690415443817176467999748591048739691428509974679466714821781226627204510650888825870966695881084218565370540137169607239967181965188784808677518015905569557815869295055540201110678793848545215140089242509120172637577497898451652893973179980113703509935922933337180765063335700676755378347406517169481376457547323934651151444748514635917975898119090816198620111439855586828447076475079622538854351195665044363032020114722612855754437265359722736334877641283341922646553460417254613434533306965083001138662202773884561874129573767827457201654662956778123409469182181607079575383875461643235882571243252296657095024445401127566140828168717834356333539943187456063965061365416290191741052925550175670473753779863382905534966341934779979195230593930943463249769619512110352906261018479670615246572664721873873784396752457727519421421788381010607220529587532111839145544629435365758482847725028016990717447295504454212423625984932242357375704589097588716198651255648158984257176118548389298007839202599445291409788862209757533434194259192541643201351571274965400502479217810915922990780599102013794511824641950527012355404463327964145503118971364224094853073928800650532833255347872532424094217230993438673685641736835311686118966165655348945338024996591985394307155686947674024048898073875567153475524068998203572668336206614108436972553084557259512971871546158518724639858440905476849821559557893385634182854370306061881711685143996179015082914976292923707848346865245143938478390374487667970868290424784193803430229984417930576745343598270725053116797088502751868801897878204230293092372888328843462554673718628599268665558260412036014315990559723320051862370278103257010097128204138725232750255514008898017627610367153685735205004994303010368177120004145346409267906608866553914979981663396570352718668937320809513123689834505823148649317162212517526634257934595861438422219160683457385691344344157183641870427812822476104585621935053329841218679271247052160764742189100599634570726075016971813256587895333289661346464094439237661525059458821850956994220782079771238332485632140080029167390467051669649916484745876676579660107076786539331695562704079064578236673511411380489096992394001326284351244250220344162272590132481328565471235583497852993731444422932208496633469102812188836326468382932963462283582167175661338779860719574088137676638881534924821278359178180687593036217020732375169864941502025523038377872823442463326767102914891367492609844842916592497729878497728895101054147078901877168269130905011779361861518067658648566293264269109874538844391154980995442896668523597669213456443990094946886125269376686567119701580929972409572440129954384713593138642022047016966515303882011602072271768133159856690868661093734444007625487596181594237592772024624029483099235557293657398744350816016907500420229474009486141603858204908203034224983699102963646354232202826267637460384494219326064493129312448219430409453833935096795172600542951398951985553139069156198009806533319771701843405469514632934180989820509329189658504399628122756431331198673848872108802200031985321909044142327538878733706513277645019846648056447151389815464637822424214907389038326771248887273889800893950323080624053491904074815677923890424189891268422759889101435504732203111944038316745356067523785863298241665904542179347871854264764668932176673821253988922748523052067669312201080869071650903997863955918347834941883056323781804256441180129537195797537056718229037294604173025560485762391032426235252117464561138104271391776464824922816106602595454967313391014497578833432895579354798470278863892842508713839586408309412444474675890510535332861502372450992641104244068786534816850627793070655188132008793320908050123831988945723440203643713161269940788406744540584858805957405268097070324779284687096840547413251169028473658459927676859194107676143549689418614061329228920268292801163475245659621175667097493473546188851208968782924282197591060545707798532970235135571573976105457417001132050104798624770512004446317758141990423235439352981240060113821156335899058576116748307465814018116981251533613450925451464651015753521453517879062358308413531483690932749817946846162526992268787842981070536328298164543966235335989083019686355046055269991108363510524433380786469076059546229946445272441058848319406743323659215166187829400381635576520083740940077777640001083318417226410928757162409521478869013742820782376685676975313734473090203681660769030951373838863399400785793960350474100460544257484544343946397623589164737862216638933469544563877851720119282120023040081554243808311265012619642174140100444678107282167281671492086186393304771973877174651071275970949620799909763112798211864660305616045440298925205287298662774843526683770735951277865198447664419532509271904656486035827021707573882398209358537109649304915984501997946968708353624963227717409098580056181482544682118731651025134986746641553205387326513085028038743693041101932784365646296691615522807177656308116305267013520358262416003344735121613832451778303465046010121644725453199717821310833593743184182915335915196087936463477706944142925366659308716321025650129247697090451336432100837060280098394208627942522337066802337110656117635665927098158376514090669192813284735936800469980459077996659658127446012298701636095416791403967393445016982825843723724627501038360279078455383604330202931486804449620237249120840000282355043547381438443408061465802210936094698478487020339839330040321782504541895189571406049836252932962073118992530359785853848653881664360974633683132815059534974495401865475046784239120050281216961075229655195736982783844570477111945646210568611029674565698917965802517737479087186045337371008397618171565872311300416033629523321205290983660425675049283868036794930026838406628738780836321866141048459798409208412411664870867015992791746740707779564272417640495091478528999871326624253968262093653258220500508435369504187796204514429282920066131465044697428945288060077729270002067767391972823154362062609456917352223241321443293448547468298699189912641733667728558799659034948381735293250520821542251148259417380833005380866290168352836037798943994481615965406582185182677843177908915803038137088031240124952003655651511883989822828165771840223122938525259453622976029163063856261259785569419067008086387240945718819139332970876591936724542856150735295523535345855824191442687885841076797508916748550490546111976733579572069186661009325766342509539850317548856756539097984665188718841845370136110880347020164599635775884998714217929738788306181403355549855490807269357531538575451025063858556297203177654459169067196545154687767120626294731683665843617894615089002758437726437190512729556776022516514574136258848257512199091836452720008412465174150898319328196339441065489274114991068605979293013868988630307727316561165885384350706991353880727028120070069361746194366150887014467683979881625441310729189772367779678370178641524316893822529361242962366264452428144172081223093948868511613455986518364009556800543678988442587388388826787606758371637984907836453957842831938070242109601804483918203649085790513482876064921715137720052222360042981386186141507065530563183641290895322394326929885655405045656559704945039499460308391441010929895266049330984177027700758101480043245813690454044378495531451600573793369121139016299407434788582204012054054881111286866121958131249619835036587729291803382420573022778636549280249491819066021920581645206796883258406233448268141321148595014457013965651016050874689359469074869321034004942178728719030804561079210420839677414748062006737505769559022029584196654739557325241653674621907359992151514775218021716061053344961088778116928653340738936804947458613043804418648182416075275491593632431956364704139646467340299718202248735112595573008938465514250487702723477353447485835755270401194469331654403307385079076567829267309896422116335475963476732973343008139952972228221742562604583409497685422556911341429676117828856248087394591593155865530949652596498858239323905070713455387156960851602384482646175007164675417782543859392464860809464590903243167736869120127956750714547559725803784996243442474988429040932742858308783735166202144732584159474769953011866573199143291749227503714856381126551175997555536627101153073114909717379117775789953160186643664893049955116917073581490608008314509283932072804102219480843340715547657216484392325758865645993607725683334179522372827976931761108633789625047003353359750246028402576646748683113173441450712134487057602455838011963214301976000041561366485136211481387986178710126678646504918521706796258418599527738764978167619976847537565085800461723311057626693151057953731976443438934605964920303834848883040152070821475350361187983540550886695391639706055961393033957707759194623851442451658045503038487332429537875540526178819549803063990271395226575492246404233775042899292655014478730011510405266754455343200169414110625214239963138845011927384375683650266862859623075787036934068621748313311349925053286686040499955939532897722368691684785409813701274138147597415320568264760620650236627559792715319979640388701888204206783166125061232855581811153094407533845699155874126785458453139531805819368961034259196123622255986094274513121564780365008696002841276644815659256562412578447801183323001633392951903435887615867467169951620388672423650770574187914075319808466194587690762532872154496124348004084717701073052780598084021944337986010111738634822146113071276704458442117751443645618877303119400083547067490141646856613512663853047846412169366844204830045572032243155983775788059103883850835573071584640676453681743377995329143116820654792659286891783536031991677948335126615022008905372582282213275340401808930707272401690412215089431901997694938642816281830739017260546126616133200527815051115974952425233195910025692613000686245806265562352746755601719698418626474111582546209184341362281086300153003092058584106721560385284997712871673476415539933627491746315746906242431187716044820920815552659166893596388394725263023838387702344814419964872402295992453173117336981557681664987375812280685537969346390903775409746346605109499842585910324890585812822623096683075200218137303054756729310939823101199498297282282629376280719122962753681256445373219851088715699631235994165146312011914182787770331270475743353073001170777798843373984917821898203179222380865523032777660889476832824904451883899800033860313141699891719099951706046382823878151715874280375507501875552304333966474522316478522344027404973723320561176025639144835613761110819837900381128240185631263587664633209693613911298281971087091433361777698227485470726129776509331783400594269054381593481948716917047208137155667225839335782011122516426124961753926686501373926463551133151459013789582840468395508705458724402261064591067448837315088545929569256437066210555930277493948234361988664490025485239688627515183867093589797643627224339797106762383177820495128134970166732970596417216414951097251410804469782132062016829659980723073290360950362633046886899632991380133715242453292187370578955121825553321408382544383873189281553024378879500092764215334614277607893258339804086381071289762307921371978325612007529544044195495336808181347896280191655530799225134055121326732372744634600887156099343455418396526825424283771293968081327959004505672546521625693691615105954710293653632735366016920058425368836734360292726443172550610518188442310493513447293913230642310493145337761731922295860002884732553561703395100650096264987267342350580711274572142139884188152017587119627702902644076662226772351914983663724303309101828842143800191056328524931696917771763377482416084945273024158013542468818895420715589722852139818679353603316311681512644252177266300369254951555648634731400206566570078717910691693415862433807993156036593270658699428286621231817960153918125175884465489044050093833246757543015049947020745952860884186204527810057665608578944958972614533848036837734019373254752092323162994947563685493609821122954459245048228031790083219142659101913229742758225336319216769399474949183818812329626508816840596854053459028259676897841441484346442868793761043392353776454701536558424805113539680531652015194766069951852074260656855552213082353075855103927040343966011554797578163668612594690423639239665598846739001923119566626154269328098947470673766178995455340961994434310728170010412106004659891233640208401628880620178064867685226520812476265517488271983332733304252526237565936642357345868335211176694283365885750815899740408628451031130036286226478749379562648232182776352514821456706490282274180637383433807726423834619162506567743792266760428530215499177067610522463258892924245853011052527765630404971792109766557899801740100863396144623196675594674101084498125189526689493917496793942681306687099948356188274895746008393127119293743362679959763011885673933872922009323648652609329325515406641103760989343677706921015921923315703496876410561522324205857845812792657200238125664602211336328766364506196640909871895965609241741264675951940870038525021263108542035414343664901531911883504601224376894493867422870868618470385528200884356431027287908467220272901213986290974533182706170078330073586920249606213327047122585696067898974646418817439465531978714970966302975993259667581027355396935100955496155107734994911740054803173226299933934169191053725535744191521218901433215910114752105231004908045278527382048076704054392432505503094955611104805742631678462759111637314855441267833869888726152371158731957239082042283268378384650668700201995760405087634675963174993065280124768911145261413612246714330496189355998870065920589897912191405015006755913937346219211091089982605503990033880344254781813361400651389260450223508849445847734620079422219075440800866044969417035391113166755364694748843825981514186716746513457733774090082091791735562169510544814063582840695107890667302750902762753558301905276785438765242864119543372937851494465601499922586389729143645376976010956262528029951477148991421519114902641046153902841387929757859675112863476474510779006597495158129927713612528112652030667965855518876003967688583710973385287064978333939891962470983509828098150123685407535640415628036940656796241523293889366360341581198662833005229738440466369448521884240751007175170834975265329646827477008041789215906020853660409965275352388369776910673107535565499673607518673539473373775256262501046391350950329681963891174813198837057482040840942350988772335961838324925008300401462718123463650087729808315966833585089431269283471926045466482593373464605989292285554798142851799176713555892925712453764258980505232687797399713860410685807926002478428303595865734717937542669553485024498402311112171386781734561419704291262596927404182729621912758482373237627194056314218947538011664431512163827311646609819923664453690516232157931314126549013177820817572190825927399456396944031885693346288967955018732766539824429911071524811087599878572577417997724155101231459368462039575054988532261472830615260855516922042026562829915633001503193207656072043139947754081361431477477478322494950707566196840809250636632373548045606573351713682587911410489142963370102402003022071535712338915084474860219156097616535608483421026935622429908073136463241054912065331515084429901999133758651115177966055103610240052366835745343799009402501876040432022442586190308640488635090397030666670565167740823670520203344992319357909937180234521849981527693992086434340351226774749870522740795084841699630896778751944104460173048979556820154465292908892998459555161726414159710719250234245746432265223882380322236266982846384289950932966664733796129354863185309255043010607532913548185717725383890560393840046549538698367571111381471018033774662560912442170147421893281867116857915771234902811185693601399981468184116177515056685261946038926480336817601032407949283435244996190385921976702484776760837678900845060364621840913376894353471356391368649382105714764933882090420744096707136113589547407550958725293032419159725514019080598615747864877925021853809149154022495127332313875822837353052005215021191688289193236757593592240329771578252617210402942590023280380689635663252521623576907672670199610269839798024585762000935242694065717359043852581383915862221106158388564131490441475541816306427061366240621491774008857860790920478576790533963766683092689326275732310546597461745115286985530120674185753015963378374234007245808756703412492086979545009468669146166443031509341172394634961794036008931987761409465081896112301947850692061251299648672491811826159884979502209620960716876262426654790544288087552702832980966659970277180453055373750270224327647554277177323662152488708940988175388723874009359442412634602612315467389532984464487791575712118875382828042350933102345252712127210080356963979802972423503102926174575003469403819994314689030158490495884431930948864409130373446713464243637824527261853547861374998933298230257065637540907285754751676243613084940220823895981254116388260405682916300487731671477567945188909200295292546330228705427489453570533436385422881461629256307589291849628669625070464157273243914795238158044625663778422151511820340552755294079902058650580480987495640327704390310709054452274224286540167524243572620816487683517659585321191831495003378370881013787902407437537882708667560935400401834495363043928369708630344696026326479763822704880646701066857032364762477984970534339035668369601195404467469604067192436927983954454987065531795709045587529337067557000474765087779800773781341188130033616585937130410725532734674991470063422034458991836165610887480897693869799028822795600188079499026905288101029468836911655478259903387467951749310314261474828262271996287984437676879266105942777645754332415691710870989349878381891245239549199994249508591588497276322040385321645946555750521553011048179677329431136755777317038880253852522252180828814756236009981401782140006042660155086749260247900529722707057974429698109852201402485022580205815786449706734223733418204107803232359934171876756573657975044121556500457506504398611203238733079869217130615872629767729287144740859821742684712077030930481335765892821650514659914341778732061569032149659546928895850485906891899219847187975432368865344842929077584216339503419636071733014840443297508489142971589630168855696167922453132021326067906772297749904930299894662333732281511319537635026148637548887300793693773443189346756796716814520472614495028756268326395373371032620202667731978324262817908437930466904903147494332669083872052881445127901171563777814662938653812870066128196668728796490649100369985320632722146180635320736126149026145091844575175430355057951814512838635999171449577938239046465256928456223975023552513783137378000657359217390210920866125825182701923481899843380070048905379372529003132407243126998775978334724095575549810041868278777318195271336416307885879404037819526114825095118926009156241156484888130465075036377885868528016198574862539840487053702585024975335040866514997537129851483704299886884904197286574760290625920263060542460373831220283802078082617480063903721348594664677596412560216939801157319557133855902617322387785312364542443076941696903190109243398952758796856469517283661608511257597405544388333533026926266280325204615578674651238747516273388068552194122192567944272429461587116983545127729689174991302400981052938639926875370445995995454318330868413791837868393534786960808632351503479188846922632244277260513584480925242718612364441808079785731740830778439419378360839017339725117181934161574049368676691152725968726891535452809679769493236520640212118914909872002573364001326570334941219396544907924281272837961470676578524853990660490076525788794709248159740946673788132548643840882589741308471051556536265581017857867444925571300292240387012635828184637010901743560230100776937979626189708414373862211905331315685341904192387042528979264601222791171641214351989547264777748767612316496990670963969220589443437479922128523469944905033086098583259495611616333312110714112108030159745776235889186648321474116123306693998154842902695371883669846142729323837244871810821308246072318905928033950973437001270012978332169636062014374167367149303774662449956299286904741080088744269527592672159205461545665537359643746842652377752087112081385313318981898468776340273600788761966754017843620456764226975856875021128523822235058555095770694533332813025470008012005238594285351223837261925060701639452947388096557505275141681532084498483157189076612907885503493440365829148195831282521617865338053005582806663937312369719411309284455539287688532858959684373395209081103265869934129084306222164620671775345053952551354745203154203407302017750592263987386063074789522648242527162644171564738992486251851968587659987274996067997940957158025815608345908554559080634534348153878189495504664760742345902156516621971533671832857065709283768576377891365556555846970186383672072030839004554688117434052127691151341743448772955272414789216562833388595021933003877639824159448947295651319198431928695237268634332343661006925999100918250394171715517186708990743785786791924769063837487686486583142415301071522685528847299885151156101477555179817258362473550340378127206290571751130131428068367015671678013872627249095584971280475724550866887389189737741806550015575962882365848100285256885205227823927314855218946963051800742503992559411766310715856196702913789111759519386877356286727726785755154007167477433435562621400629154399695498915034469222209429796072203852639920279378807887137319482801603648650464558739395954236327266032576122929898780003072178235235735859078894523402269477707488362789486325337297321266221065531427690435896460730212537747376725580308802591591159453006782987586198280804663964438436057928339627842107694819654104096925814352269758254557870123646421471503031208250443612861541113414641385080153220950546153341661782209288362594607065090723635061414025959670225964060691684194917080425140589097068711103362462637286689399899359490366834939543208023001738068177693653278523708909687302658452363569591419468895568545514381162312360792643702313372438625880197046701772270811511234993076475751869758869555588115425717326390160520859447857758709389007850639015783373603265715869580347285890788458156328962865670985557181969847920431842412212464029625936364057612628630344483909870101320757557176780581123857594307559669590917367369222135526805441238469694461202145300636418196723770534405197330864651385381090067976070069771580150350922257832133336477917371443950700527025148924346033121700545807719548864406584473610513949435916716029822358477728592264624717863178087226268471534980188406081678162937142137361959575996147452676226239326653410774354218133621531854034169548295348367480248867353108990230664631754811411532661488219598280392633949026284027180167321907663806604041340395600043047024002198412465371114798161990306357074964117546875109074878890966724350726397740517076426318800763014573233474077940715109231994842447454947646014865040975277737354944488394552807341186278804935391403641318537275728355421746708083288157613432178861054465234101455630944893475279443046619303934585867237942937405430207267482078432725669699407425931725858612237708835339946227761437232890910671578915316907154010052708060794141771981665259745136641228974805638817161167768387505842690723160290058076312665026359330394592558566844202253986332223989044383267471054117352005195356475614749252602419394213710686307395577874987217275012196099036968089900649267292834948869003324532131200560914070981913408178580999154505689845335204094839643666580556479256649769940206827854616014205808017340793043011679825682518576412895041116342998343207617355707332331651018730983153194869228051571651192022667591709510794932694536969260871501737511513705704909684625373105170539642349881034786101166050155619233623595161498086978668877760702856969074728478043106837584533068087555852722598251081442793362167216810988521765096009872033945596107736373759099503499610863882363585628150780586394503871426873750073362265569133295719834356731291032147816799176140402553915870235876794538231784287554703460713025791366401229535316296028336817179248498086902517621038061292367169338451349858611249200345567090286293699233440973879684163918839352215972601029941441571415752292941668311565766571378592119264165797558390550800837128295709725153759831591097583104069473127443485620771766525845275716086538197824994166310953251130762997888066001007146220285434982400605346895967163539850591713425243499522352704199543878401819121012726505038279595539551902080036477971789233811166782354833040270892593931941305665907676008427573527906068411741974434408291024116012057167689339350751087751264339000347250587230326835088728629367967720585345126066112057728296176429766551690709780295556935944918478758164842283783922949520762304993622070680846383016420636857968277659012589554512378967974415637200388052211305680780184802050007444509083051622679982671558723086967845112121472099797586147443768283393201811335276161915143067837982789453905972669483309061960287666378831219895997838588926124490096569344947115857696567829781659492169855903467571333566873633595442354336338876025520318873688552812040696041315148283755468117281212966092957549594179827532275564285264311419949285284685988792336913784125935435226144861700066286933595190009996921135844306591600495765070518856174999731878010219086905622346481392057196715644513843499482836028906957003180887681045562193340149888199135248439876583657230991306617169120168636338698586265513027215822704512804513092184939594374461771934438010350991826506995526560260004083562908957321729578784969662762122788405317261495232993681375294081171514536210080746588421755189258735028481037319244164443082789427537111073585646799761903091717416164344652029877935339675722926305238456257436349984650513230365428584558633285066398993135218112961344450252432778713806445044502365452568748193586831135270786575774902854597520109474436799125295802130097666027458294846464154416228965399435772062180808396334418926402494886111686213798062729901056441001385464759309119069357909822379857153494742674063598903272747558423588391610805001447472645489477345758332136590946962674471767335030752268053402056286305300904087020703888387646992485398428131702896740228937312570896614000967548840630580664888295726562193937178530205599344972392340967835364174756515202358993253561127249199741539235884661268269239630192917146763584639011279445202259172245486181700378600843442514538302481743676566798380077722896756446753174787957766020597598890066555360215309056618245596141467176466929642923334427308414880345847517785373804175798530365612062847851569356970626322515301966651813063959163126507611653232895177211791533816242032557005483643446173729004614270574786656542182149415890901082672535073247149088753738319843333433318321076714395690488839472006548110299590562566208116699327024697522471735759268148975698961961811534467308878876925631748017120270671791293612512245082769071859897417736132834534719990929841142537064835327599120618863883940740419010261081308065252670498127027599555554784183355152041385320768711036465874335693865939968039594898363507233299609815172166474081057024460596263454515087124265767049305166703869359647534978014938008976228504727896397585364341835671062960553905327289072590105900251255534267365631118779961921487847552317686915651583940350344483611270283941713165099616694041086109856964728030598316556718478734660783237660212600464151202680389683069603867827476277487048847346465811376939865583926657938109122119406505151814275594879055205199892374703409912545260977671115375395787359171790574097858881637510251340634461709783565749188183189895575590614007257766150171228860697011953377539722871562824013504899943364808195370953766218762165162340522303481109208308157879236051979958457988995900185098711320563414284412739001801289290809823351511970080189738159383009602997960987732837697197615727813894766813780973814014249596300596361955895044571935311199732120124892382109701507388863633225310913076180397729492713552223105569735866125949514323189734709996409816167846332487796632946663707111796198494126317734996959196622640230016490379108013236713294806256632837459645823190153751892141311130070717593235915601352281680316933398794465295414803328438475444181018458729396982463414956702295299483390160971532751821950925058137516092203329261859795425096811886994708379770885999882578668197940250359229868664021130304667839320209064796204596133191678063173462712282912956999000301208798816529290549476155950075533315817584591830106156744976982350617930179544310099159244604335890291367954461148703752052308908161723000810350279305064123095330412645955644198512994168101982512782510322425550144579202176906455080670591929173636040580891322024198898050787932042003272992061730042406497902416439077531598307964274864513633309892691849579079332406839407352231956104624579269759958930306174945479971431345291949662239930593051241666741805783522549321116387182342112794300793260134159806834391125579003877047050981391618395265371992164119135506280790171679465622871919040630270978049124531318117239853634608229060619778864594089040991037560315060498922504463767269523209608684570150343288203721734979631356095937105722842281119459135165829287840845542602855039858504258458636951323971713363921282602881955704909840719274364804257993153751037112510816035491596051669168746467957360620770194292123870246118334599442813602332525726018825052353672366374432268758130374531575218068742857074545297158078365862463781687148518113278642931761333826086027791139981207872291006599950625209964502273657173268834189953779200197853274868181809463531304023583643663037386447005357747715691419557605847444969010511536773968097258676945211196163906469568506671481563839633619583568407052149299150009941130322242006223548339488444190280364070390396708787871820998158038744907400944277931892459497214416955460644639411498162909050549817298080861097115367266542744966539518897913612321258584463169882602919201256497868246449133492677726092897334199879769064277223867197350725233448334198699092227726266685351291011048134036141906748749471921805864464333558579231637499167112511663191638010089705716110572833277034642934943281129662297022312882597221008484572095406592666888510112282859585521674386051586447130826737457754210535117255304138146609840064180819552590272503661799207981353709736336079634221062585189329855552302318522750024178152958639616612634127922085733404190265587217898262848665469890466923259983442847057593166987048240309838144450265267885150887745040906251522582177941338608605904775190950630307544385778931513629540109853460185737448274640695398744172232487355325342685613535372851188440674359978063585318535651696501400626720476690700031768784968890946527333977759997074126257799927951091723768157948422395058931799256466323005226213400303562730920444094449311927845719981189143094628621425368666647662258462631368235832043818200131540869358754376317798039112683411693648903415482780310541260139285021974419408502534807282715666624979333204152889893078405094019542801274980878274231400991013521654541593897089517029985887665059752884310122459254901246281447390685223112761750805818106218238343333198216783544422854874619313710898548588595612362993872639407571930447445595399590712697248106023634281160710164862372567159643739579780265816570036849281709453453675747741665648596484232868342368293232652002886372795958195601618752430777031297159239121466883483326668103432971701491402921341264066615678152993503262597715933541113747561737444069551746777041605597965950151728482460250273474898741535819825132765520779866806360745599552323953200407638810087049728197955218663745993290835007076796841626363632991905366962692621503288770668899219021618077970422380312907950488186139234831628615199003637867552259787213271820809780252145962611462160375299136836076478918455840012527648864867978101637369905962949064139190412718438290180788468537227962409030032037821885823154634299337010546521028728460996948364630362915445817481763423622851121860493156288384855315206917889966206439339246433935294717453698638857354869586688575882820745564673235104612959799168128609158866625504876326091823140990369610897504867645995853149264864246779414717324079231991083554380487368827703134615429064739644527115239392875247224868696281722175311532488754822603199359204212633974273459816271528730620316784423541783730054378903503962978383823285775006282462474861109380739567333728602956961161539589017246790269369405532100451798668580165585362849190055665075473191920574186048753707133312858843003559918634645104311953700781208137780167481854170968191986924519008225345987700157601036944595443828497775019095305754282426563778274789774664586066900913358106004864603975105359913249839068916949992757382752011902246621039347000785885122426005230249782682455945401004369815969082387656732427939305669971536514743574366894385144090398719362970130386159596949049111397202689464520982931187164952219170415343525852954830747074970294540096172169288959762753194260856756635017637926123385453729668684120957806072309133388981186514388913400840029409432789068358653639517625272573104519040049491750500138670332935363752073863908908631247303231377512427192717190930220509605334974478477666723076417194341361150729473335008894982395417792694860405445462206049815228607471436091950789603555983159112028768834199752212193536673043296642987486260528658005988944651271554000499105717506042090965762435090748539108477830855506987207609233668955124169347338999311668618032977108420784328972584534177312263222277260748455231624292098760248220965697754936055552908715619371607217610480543471317536271289561114255648892552870092174292536646499597887144224705402401631968918834118521056470430187488774466778733080619309512911754095461879388568882338930260024570737716630354678272645277975613159159051945160655561370519887394044308819168144055323252813889292972287815185021028574091407940920309470869561042796131747339481720436735606601225786962705033158088999451990998953927920241718979571426352215228119429539794784871963277009787437385477579641400140287773434954525539601822440621416620695854101830028296967061755950276442071969391548815228853793966800030324704793305329673894077199439554168486993204397415322291110714258548930493400097321127816676649506641690532757367357158950481055782502910256343212534158501696803347371392461989516471557604197767737674379810972245710303233706821448861445336550316052861183856472165847385365641516755785018834614397854793848576805802133599984130119189922743602887772145937891720003297908656569569973734201952524226622616941761676705717726656372989230118693292597795556938028905550138997920535009894358019031735435597904312674503242856427444468142954038070591020279561258553931605103795482650257019209414737463417328531840436734147877143881590067446242658592335480590856328331360822136305663316831051815366234003235892849480474566706301761103108725498258465077119752625432792086354440431449279288939726962009979490975384509505163203490708431650171282503636866332331974180079449088310644512011708650423144153916372638490315898748855211891178424338387334993101047745436689828420154357751483893110054530918357809892639948862999343535740989133301986937837351571088548544078276513986827038682145946882645726467807645999507114596064570717364718457988210875010873060798370963821374831883386394938912527262084732614360904138103875888016045423575556034069604438181969330782322940295228264124586127547927271720199099911932616101598370109442850597261271556668770642011629733107396795295281899836253867051720509094511510786664882323320330246333310439694343376108639747575781100481287448793379018381716789835555169422022651536071365158506810330535988546801543953043903237621698883230621768022567001320837778919158881555623435686097402012101268504844919713230740346362043090653147510382180638322694135144525908547038369073868893374248500700454834663703651532716287855178377553101903249503097964449740025989065305524487977164672994847013752970224814382611830063952037979623038845718253180737598957392130569410366499423980465963602713786264376115632044389882366382863728850099379531593068829189575976143366602092655764126133834725168613130289933547000550456787905289715656469550913147327771166028802379189406374218180793643048313679963151185411234891044391488411716303992688436432425734920229370979160377811827553518620936788582836904722392381442919644634697732165504995238375955378347845107733004325160916564899786797325508877179951770219523539649184158430080136175842415408196438892087068049974003900641525854724963420046999124066472149653902524742744270664686289663495548758865078492859009791130996482107781368893108307962145622022203821656179473877561478160208130699370242229420184760052751861931560932810109072746796728977820017572842500545045047343360336239038383392868237424571863873852955262228692641328600356882402264524044269806044471674669272189764743875054523689383600594295804656922903292314046010471233783728502151341044620308898383645617491684929769003323040562490469364706957021086788947478344405039081225080502818201019213927873202203175043362754023258723943101970017700606682674242363866451064148597304848982052216286770888020999848689265558348923061178935806742425160073395914740613588365975309472727355648565784459553207496103469996973449527038737975475122642780283320554397095245981680507321303706795535198673257244737745991143263715566534142722728445727969358135450859402150137574077211692164067921139972568205088767855350968452554318314104121451342954451261080779367371811557736458411990804324460200665888852808998822814917842243223264686654384745894261110761147736110934837034241347122135275470358855343882333044182632842816033302589331153927389712941136280638755839440303539196370990670977295315154177086498052247928019621387092229378968861257359065855267625631580181478274770092268957269258827694618292361753618003298547405682610807705438161371193869807581073431575510118686212721495702639766184795564447856982302086043314117193735630736944670195841102175101303532476815331770925657890099844874612996346377494152736269494482898583145374847693671654851349838515603376007585119058248534019649309966466789779718426634657805834950446147083299122407195093052629067985380514994823866225823693663111227618402345902856460827573568524182636704630026853146731479827417760374092311708511684266730182831231554822296002469389439442411642648577252870569028852654526068394276857184142403999500382195066242250409537437521508881185704290192025682780424917475087338094912581501239589072960477476578975244464569291666019149553340489172301131620900094111608472164204524740539393584115387781155346145933028587814666319246256597451269301808178849099884000169263226095418201397687423723645293802139258953012507948278862333819684686052546605123960798549264453615850859677632960885474710928709552774018303758431333820213198974709998546752264090973393142984599481352306782690723792199467616856443268931927853845745415787413526404203412668702377233271652708731877563101486360708266853647793150245568102006756546653835728504273570001960544847384617385776406779355216923966365889705288692337743629750387722035119523269239515110914337446072488607832269249704631691721510531486890716272467187112501459211471213483253752374338736733562736463424729117133493781559700843548290340109317162279173840276257588615141365831711671851255297325165577357054462940684967142533387969164042719366430529410671564921782445825921160988630327746098378766171892088297876777129210624437549696291348067334018161440642513407747845429679814089165389362064597296093958220937574883520080770844850915124185173192845796998047261366951730671881922472783660334809347849032730793439530373054939442300537174147181738686395340510382424825788224184565962448314955359110755276827067905619761582536399814262017974735939267001331187237647538272302480709503741967310314105472949944722276741366607840605340090729361958874744539854468187488248720304137466711569199375185138825451312361049734484899560865269662356538457257201592566445227046703000674890737565857581243881922423157187547404087449852920429101551421393860248969560766598188950930055443215509179425791753804391818564007854155447188911901843037943783680807878233544094207459111330107923279585596190849413838970663433030561303057081150113890101109068498030866335414138985560864427568738468942200530972312669305502831281716377979143683854562062462765746976818965691592437470736316805253713098256071246513443770755906352433003129582891994497998013500777636319539117467521569802432086542732973194886421739644586772750279869356069471130131216361991391850026447928977599686640624054601955085998119452097865139144943762442157518643376639253436007185252424029316748705301726785872159869860150808009968862755492862937288352838459628754133688186570349545342564134893013321516812787970402579026246042053822017826576210510257450380181822226175999587970991992963172507891301846991201527689487391114975160402764815621045370300167197743457244256281567636193251572443240691822501879213227032611558645082893176396810964594169750235777809856409855450736706806460437977087673036934985057499076358146642182330493208046987055687254221384302895969774142217825870005257817058437446864243045443269299753572138857691537091514032033192943127247868919073726418095955496604510717349466430556288482174952795026846527947603235236345219760335202048950475630463687612201364351740304814373861967851272516885730086035114638490824639139113239195749135758221223148530482767333220438927516091038622718995642030417458147362821539245511913622284568786079464085192553255437446152713315541036154259241090911629017815733763134500588057253110389448684168056949081487789066191970631356105477322045903166768401300787836064042987062942980886214363627468884756885808174837825694999190597400200390541523855155379690199991246887186920904405317353293900512587685946566277531210735445921460717690584346075603413951155265466535963730135319968969905884635152606685447667906062180153572442007266905835830429807370243827986688624596171909471159540139770895004055314766758256770433028339512488527102745129966038459602681100826879069275196840039501384789653202679634394215462000737213899882924377028038195734928608469605544164364687081061778921830543834903579606009857154601396589777610167971477212363107871848448939214735524659134804292497221500357705376847049347276393508721010102854664614355981800802586581711742754652126554054178928043982744222084998452468382817929726217548499896503818688390917027987059620238083197197337587996601780251681857323212792068947502103786677040025292539946252361756750482326467180161315290002074602148668967650276278748190025026640262072079876660740376906804158953002946229956337933769729006002962870680837390514575563032955061683422849865292184013975941827157563718750938416477977284308298521352586731162983986351090702684051837788541794547374742914925932530260677917827204090542071393173767577354681981678036602307526868673163857371119932605951019197058084568624240456608380548502844054063846927328604489509570259150547437390992114459659787618884075039084450951213673838316060002906279824079060031626388947732947278879900211171420669734208657592239862615715089655458574581261284006775347515921685167840173782185998545615031545593526988014193080950239480798532007998323820895964945199714632117128913573212704998458982650179018195530057482703295766603203033635239567682897706869116405945748551852951488217850055199491433704590036782766477737244564361262142952534719823368317334736076107881694507335272961920677587439182831011149081302407780587234169648607244711666865097585695182020473783553480725258856851732935171520451851937931550927842157654329479721356499839483440569884349179059681049829259956866858617232536414955012039833623003643477958988712109288062072543229955778109273346594525102815899647965532269265943871904947499720901538084106046070648888864912928104599314771858646598615476171462077354443091723153625906536885850306183601685058669396982617802968208105586540960861737547205988882028100959546432833387035921345453981996594364857245964685453169868076385796924753015356115987113218925106663781078091229166679375984507868313388539508599682285391905650343320787060648371974932064011962084889064687028393222375896207528493870749377114971610212019591669463612162182249422188774434528144827984883619242431511337467977042066731665228089112805444857375964504977522049627362670378744398665701199865032353854985286840851711738616335007877126527522075370390155346396749294144321654428550402637494166526654711680855887318294936116697524842782820741821188939317020426775164060199394170332855916296340724117806635788855479146637848849269046766431377517155520513817234666892629284396562577059085502492047827826150354630134641872393545052131619102916947155635534843868447140093990573798185002344150904372693075981912223313962238443067791866897767884742841783210632971790574468345600162778721305773051503700626501345571118119738606627594103471919348992225075827329097414520463362884983070987704485545462704668032018328318701770005035800689272378732482385592250170111101573541135195925633638691910269811910085482761047208218216922993842922807039679356497687590701538975261864518564710236426752744954114665975596790340175028874297039366239340082820556921619607742654722814231761737745687325133852385054756067129562863335221139018147461944307159706655382089801934520474771205736230844770190779723946287821104679493933323427559896783172832439130858507489052013465022340375389958351400324134769048733587985829691071199686223960859690303490163894638518386530800169905896226007756231167922348241709844623897425064546981631952727050460705874745308976822536499096815914932019721158653103006562784240782172621310260714997243084639861254872469631521351764730179803134104733419801168208194283716650754902408017953106608641153975097244581560192180876040305042091726621138917063152222388963637671943041397508000782040835870078383741049367681576451491578532687529270753212650163325814662185593476332116062528364343658093735075244067091381210384686032511337063813131780214656378147807978082527111229986378827449079382231403101980016636815640158572508202542424636338731525648536486997420696083815941738730016660433917368408896896456203217301651884369820381136012210163414704117522942806895173038017250603173637920183184699297789706111638355478634503568539769271420098921622096947779993362825203481827459195398078212090592799020232559165706464240410600163791505030102769104832669632196521403844785523780951478605263092570549414606573505804683886109700086167739032539074578164285434187894700217506189301999745046454878309907239736636307258112750596441522471342777772989577266160715619737915472186019977079283302713314375500712229565890632139542202578760084871895726847694625085746840709588394107670948116109419244236953715027331819247032050603627324399051558877449246065505476931048487321481542420703471165350104142986105332557243971553589595543090883169601593397322842760557595323710695218300823293794512352843823854801443923277540378984023593307093881355058284283268940768010690144971194470986682290475231859521524409526381106537660290180818616721735955148889422413035380529721975747848486233111739758857829691554758661584680319222105889416418071250876757190689955966524010618224999343671548106534561409355649237658029803603363427954315038625103672164530935607937923085075991542081960673208113089606202645276659898094887650062350096465900001534324850283971002114958023725972074878622866511361946469541237713235370168262744147014735033781085950908751681810276956665619260252443300929311414176995296723525951909487654212082921266771173173938952459903275230732566458015904027300570180588270330106475542506366243037969414617703597199223336063889554286290781999325463262910827247778686445654160425571228637610424668371599166416979735883540758708054890908985186680026154745566996311880473585108762787936712656589054687837126727581395253012756945327764269607488960532534493598260991475864659725619246529170615176119154590810191308560652416662162362090775360399868764262842727817561633809014625845358985854257516113950256667074714099353332039153465061591245055942210120482403271262074968474481894035680023035480854886813110760060772963034265219185681718437255948087493737317052034518982252672465772786300463502687601605700435697139771777615847635872662785409865524981134932665458288731786374019131172624607872040907092104242086955493696062823144690659331712116600123138167835155782160783302305979349882008821349018907195876325087652055000231509490596648405179221857647596121271651947121637920368459472201279730229916821470900468427570950948099601138123412081152377215404577971055918311268258134145596798211738308052125993042540222245846551100127908490120613673229858439755683166147290390464940524072462414561017991098684319337651615200984175502459483956515692053475910997718511374035977468453606727736750835291179167835882449918818616788009090027093159361775791200657906802082240764417657041312189235840505507593147215314304315444354488796222288206965519451630710867405611642330550833400924186159128751591727278621658857481818489991446189872472905612440637181353572674491260783236186166725714657196170976589469557176296342876128759701808994135769219805768890278533692256109582304656706114056069073146774855284327772932903136711635741203230281390071883652357290610001943996958211503234570486027025507692081934160348711363689022392364987726451854010015383356966177488761141356030744297670939134806840629187165752977964432705448081255023802413236744010243903751804747220563011537774346786370680420119538552026454451253371264011226317295227071224966009790290508324840343343427967506549645335453551636362583676397399014399311716753945430248187980875094728834796206077910811945477933445341456189581887044056935243578066875901758849268812698951565483025106330051831566748448167737302657793245937087529569072491925996768184877354675242642344674803723753526742948638369105523087593327322529147743154820144514689466159852273955494879384101224553557938345896204890781444435484374842356254207611868570442643025137100280358119910604416046568652677329662986256629495898582038383489226042384517796564418731857688169840947000040188079114661122058222265115903026201488530393443608628592261864159481653031372393934004165713880123023835878183795334218991155413448435528795178792439717149891863322146310321442609750517141730440038600820347849369601162627875682963122589449392830240818105505174021142881992704376995712086707910570625464324774806643030269883483174232663858918412850425437376850134606302848657390771590071218329471534879302080976777532422931299572126586739564381380065725482773349422329291828328245564930238924498272987512604379357622869276559497372432863710993031750933427831864065209377833736915887931614886669540795723780052254533156134833235241377914818107041442407140581599920635367307611846661207757130513149941359119116888972978659033379715340332280910502635728192939571199143296184177470825980550124300705307067515011186063510599214779993929650482567183642270121419828296687027435168757064803891296573957592381796564486149146804045785245624502457322067344515567587597586181053142504253477555509810309803066186069888110155838631969630085603379267580306486114553471595315948406280332516127869372360229676814763668571983696436644940619060778313756695249446946754941804254998777439690523700910816216165329894688899451933309368411327411516352615855594273357016381372404796155678917302022708104100852734476890499968756581075849868742754233803147599560038464461485923557995256127432226851534094490373632126845388821115963978807925820176738994201052345289801345254181599355507138064816691714515466288092677245885283286506550424194345777199538431483475697494259966542261117273672886107156784887832911847277285196961608609407705154341153563812000789986762885063054006625346617009399971749906526325161451740699478585265792011796716616329952025078770675834500812329135072588707284579489135946528736910016252841348441666590917354147685968258636287775616990375221537510353232638272663073630646811217205782385196116895502530423697752813110664084014571007514666373245767431664782865127932182409295309426561380679686863301972883046628037427665317597753038907672754693275013838997946945230964968569824924790178675660411186981104040207511047893436383528734002308234566010107393790348998583444461751069711405904986519095748694329935152589762691339423354918431570180515029344436863070986508051147995285815522848613812783433425603217601949215437599098157290226767109406872538190694660254977083300462538665274679039388456878201360191477121481125263493073106550383788573818088221234320918443623796857340194861594348771851387888327592369466380234903726695484447027330554436409355351662630911720926617590565578016769249188551585137154431607919361892084515877907678459571337410034330109640393577230711153902033466150390734802969628792181314264589882064700446688694972729625451649167206815640470936930905300556852823660355780039666324567145323399993118897092001589633874232243046552353892827006755923973422717077755556658293584907291787221483947142488412297665544088676394845608862347739694115414091371624880762230094193360386866406234969195104358827550730252420975636382274410134943938000906718259006094385432151197146965775056130393350781242091427738026818551215645589010291236736305446761184583071850443254147334627747084404439215963478887639126126485455093445040319518032882561980280521338314406242495627240133375633883266716214341539783868534602130598488434293309452477203036545301495429712177386848998179022010731282991278766573386656979519179433752112318585673220418005097043058665476246112609901903784949039215029852813116923276239513372092330476269026375257750136695415919326456092914823194407528805857810223631301443027856477199864748978271206807025165564243433901789737410915413323735875217339127768163095368121097438389070108243858465289898203210839677247706863173824208484016307425091098728194486519097476186300402815540814648688142847429416981098538779055106402793197067430278561474837914138148346570745930392115067073483924184414328540011000370965283286875654905893392308457467255965758344786435049246327279774388378345289057028936868874027507982251895450262806437363027054037370413506678330838672671632012853969752199739312188613967636819047476121094928507595960960883888919706592935479196341881761383870474996241822178322866144991586351456025009417013278301553293923662314073367285249278938447070669313533476031065320670178166792563800022497777567774107335042597691161724630972182521293413697417815073431777436622517981319462685098830672180386948272483647613840002760508318217537788070802498542932978244160883921809659076946019948727878415216540692911766937344440572239035342070962917749522789712880812987167984016812435990078398205670389470801145703771138016866422773361626210367656988683438960686644076018590581634809814956953845341476517229093981559898802816133834485006139273413977271595669780819870137133452441142223274271474578379266129898423974310007793598175923764453212602183035370863854504379468057320110638895957406432281885719820117688027068178103714337600905912248524443663342093600485008379283647723684226926350095673813007574650546104351822567173535365536244767913891427243277771901978427514221877463922898404040385700575166989807468690607725572077739040817910845422546834904937428440231246727545435440512755146963678024328307023481422481561554749666591225346332677984010884629119993503419013040708078100340362615996939326854603244285171257486938086828523986044806726054362995824710342875845759377118865008548683391562199045084812186004857562579302516764069930037800092860864069838707056921445727728941123743011171085699963096439709247906506850509930117615002160565325248887677870114407575342755943101547803040644638994647025182995428738954804450954157305019265019406466691905895709382151543524213606942384714459433020842112688221150236562569277970689024489838121074087321123672510618516390872965958625904871768665387615089759086684828629758181294032052437376175744629951224235471507873199101425272902784994092404001630523705627410685840408439933510018852007500400783435793534605348371974137940716675069303460501469097136871052523674001056083900082934110569433646005120364945962963432599932391557565736475939909695333981207145174740477277936642470488929025908742231651612566619503656488895244945961452357028917986614758568333453328060602998295547423200471454216336680983013701341651039922900264632450963823433921433261271674337399133068008558796952697372065004548064420893605349083178167796842693583686207800210084291260491423864043582459938255233940820851377305942172753557954969530457535458853343077899261925702074328504599891372248260031869559785425040782410712641716321931377222588429763139983977620404780314142989703637526083962682901578969405722771232323426572991730260502924762657937901454256831443108858726003328563533635265817916116405906740943485102624574071761641932491043586197115652420478547892196257539148375270324401696095747456504254154056844266573923188140309403714253493112493105042796410242576126674927563513793882098423585716677302219960499082511316454654891809064228655358044007551100812716749988453817890154394479306204877801207193764988492151159560976564251376581110954358560324898391801557586221304219494524427278442640861768065629745207071183251107016432917059660876892495175149814397894605938419383321476453109618964347715503099231466252839107695051193637345260432210858215677388070828605504375817675350680995566266721728568212586689295962732948664995360463418706387151006861600950430685436293403248437682243209355468014882298347356628767880715294705696256759747468089268624808374154538352585453957949021684229069224083960743640066486240341765584651488024290359569538702197856168123429604026471262338805010923856334591183807029686541940429416775680532916936768150818447307673400560383551248548590574381767859626113242234546455141616486963577374825744266879783459607215674312883099902899118929869459590391056560489718234326922604312452489907755200238357090700762641612534111048303517897971018057365199682033575123500407317815720929937182379676922516362863036458796686690521625974876409151784742601683092328706716468505010386526007357840742868873470041939708169083127341646387558283375799671016381704649358519590354711570743024428300692045267672637213765575092034009181109005511198197135920200193535764746274391839642612835567128060208609065198023638751645033859321560787026148719017774631233490689742102940527627734541321750680204205735927232127122840126342639888981124914764652789871090904890962977737746919450405830108839328495837043598308805778667659921861770642920408125836970971141580781484462778843767899246577810924986139100300635833127093460785591533657195861634961894443365942562601214224995767277251058222963017663831346707859447608997560219300028912850574725018523328634725783237120271624340427607099592820216681005149336462905604590854746964037262029191637729252786153302957752005269495628173154817862191373884310319145525947866647589509451714395130680607519055279489901083426848836937127161874611905337965268475846636661270910030362878843055426965751261767109799865255903208566229138332975963708161580406721317839236326608219924443497052529875824186346769595044808249954138043537504221221160309731940585747640993020401395666514094361395716318282117280433817591332104015172435420162526875311048876634152267612130807720515959887940010185864672827886256284878403551441468658170326606768967075228067029599354280689791700105435203729616260650605699414801736225012534653391457996883473195952699122573617094363743423940401064149326757659253071803715106872296027107314193979755980276865127581167667855728894162904499504488896256064126554472529360582441965485618574233134370407131226175765196991366520608386843463775934690210591040848248312602016166462599150489868209161402527568987358240898000483625923068739526535293922719477345376385904335176020836822419691035315649904434917072563990307196769054548462663608695542976573347821495478963660763665141705556647111782429561905816656063631570094520737217729262212259582184820881466839367477252183540133197523581240443802891515579004856607076795228112724861538862441420054740569743883062933940175619876195019489585207373779749897876486224113169492582767745369355934260976234271629289304017293917928148390628408624642939502329681076098815100976928033038597727301607328287211498823980371522906945922030323571030820286699643348241279048216206175443336569647817142466181138400809325479902751195433476661400332867911897218005171169868786414475384975725836124877593141425986294551240418799606526446186979313049217236597226896196914743839034707692311808192519689130491597664827925834911888091226098463007951894428539470697748506920418109812470458420208011229350095817606972113162429305790732429597696890655841021801453025574471776124125467983483056290209997513248959894181034521427542682522333832359766832453930237054496371217976090618656968959015612285489419280754123166934189677733188222345431924129812316639753466288084677284095697488629662019474906269697263178272903880406853930382008614142025466626783303384789359677445184722184162007926092256154833222719050651654633896238660280880009221622864528709693599314850693521546865061799424612332063765826229804541597719670433599869718396938535224025850666775958049361283177101528747875398660108824590359911067068922598771876654326637866373987323100623705572556622936910257040709013168440544499521145220465958398985783331662048785124173668253584515326162345429136992216841443564024860289370750210858967627250116545928271239994176728737466271119630113801135781760602815103962717177024044646983890269175552728398654795589263040469553900087850912689267097861478041372162448503485669796151355011096495115466064523272059802202968279490081766845078837488535924645068462261901432164806592779992339447697175121490158990713173993541008378160933122070647551683102234978475258155031515545993442270645820904041685832356485933150760339633622023026153840086851166396325229719104121011342652152372531387040163125217103408835514599082841388649055640769817626654144881820363284287878361966554308197904960135085538554345732959181833202918680340261705642813825247037413960172684458856444030984469330080468308806822522964285073914156005610171731758346226215966246476603644480058139677613283243189790183003534305421322949194932029014423890043380969202393605897367222380977223230960508899653586387997729895934343979117228382795821553189451169974008370011165941872837617406929106608807534479191937310393220605302185985529414073764329240407524687190232826616634860361648125492553015043290526008806748212529804995858115252408916371556098973276367774817982356390856671940797684620907325726197980382993424059939686560091361673217535488883360917367378956796997459222426676655719478365077468992861698321128521944359675628416028827303014236855400204757445470154835889188872334221093835912146252702202400375124824122668653046234909046910601938767075605494842705686035506615894824801905972230552145128869648028257535635107070812655673849441562301628826625512534891680925162488588939180155879051044232060460769675195023157188230274344091779608537281390998677446583283782946072250848134564308149499393798000854893321278644105205794755481225059595378258538773366884777129703812621438795026577653087175089750393486504785077480375633624576659019627644273569071453332559686538076879318606642315017521662148126966639771377419651492019285511157021577128561646688880420230020162217010917620480185533092978334108091998438098068040403734104327057650380365600789879822480287150099536418725572074141653790260967073896395756545489070339663220555850897772117783279116004646710885346977441353176687493817385221105760697869057144767366435460350469675835132661377647825392870658811200721102958275882935121660718907158856883983815921472796743018988396060750353398967458773933906101456314855419830158117969096649397281528351748849887982931647075430592035686562270242434405845223285883339818325505667864163316279084820460650349055197443955683058742766598197668075923340896593605933390957439821037806901753526776747368352402006817904536874770004296872554829937449611551295870091173239846591797918409904651252125248427300414696647771525562260711838677234096688051510931893199866562738591574916318825221140993549199647925026452127082937194995273930427568187723124316079646492342023963016737063315872295163137485428262390376540909639341706067254806749673152731546907117906833382602992008285829678085926671862601575369929515101622643429856586229507721651307514117036984918324826164035633000015265792629629660580716268282036276400083850407328360552938476176655756484678206521454615487632402502590311725343763621056140175140425584139051870977701366645254324928065970449126745633432451977193912778122425266740769814885273978290384874293898569800158350932779713956715355039886424450743504805022622972199791824708178839024577184779142196167491107236380288181337840529567612737029979066035964640046303443563071505726414566984780692045703711112361918725902879667895944215463664263892060335172479754692045900767003614317974043594725383272437624202651272340985392602239556303793822240871181242412180116158769956810345491555341559222024096425538615721513795651790507265334867644754005474300783796351792479796318043990821921420072230680151639389948880539649933171588640321257055940009870721467636439992345054521560123498888265035823651599618891368139285175330980525129519150142615455059746327363642633838937346218958147272235149829228311599755970389430137479739339380390409044630016479379342070085237038948666122718318610978673330497909600331196046370241513360927292266291316139969562854654861431303871176845390909885985032164779988410954793623007936171914284565808493015580962967098991515834503727344576988582915298819215851962338775655017486318480373633445521527216092090220309675793818972028877749971962183084807879523045321858747917248944293412877725370769858447004785870870075045150519389841798344774043624631437961149582567498673148733920058559870036444985772833461715109648771934475029851682156395656668779092192728386830291236893326289479438952026903587733584660610144725983832131532402528933867102542144695772991023077077002561819757466950044037036468802828611481369442311332888854584237246802741007241677675192446888391593417725617296087850364844938896138525238243622422581370218080368757741338059941059929908296664816214336522976702703787753103807683319745617724346325859906899441751075948589303292480170761522700565267875335132372399436643583648478782731270152528822803012669153349334065931320499284559360422265717840836493049250658234446956803843667536540159474669502578638082149827534857950998269704361593149199049289019112232030922059083294240589486208530938462793339058487201506217856919749733569640160474128601579949169219897767230127351059543855864798505433245858806153780210316322430024804339477314743478887205572027176532478744086333403520953764905474683627772830652922104419558213071328241796344763441267682892381934530773588496248389539203042624893934220827763869410754346307240416356628101050105223805463419950188572750910717134815579735884302991058492746064498041064725018953033734637062028989942125202684643583716930912806932020737572515271233036139197081061853313380549231999070078779837453238520713303833463216392970846611746602735431536729214413335575937010397189679939704454192581442038723580263499373798583465657286544807516260947281520615145488648547209284458996941898141331996542612115891340674155645087945223628404206045203498055721647234160493958173298475572841139935197010883515734727636091096880443501242817795645855688392057056441811072344911039581299144354074954930404855637424550344934123856148540763003840674799550002443625991007947788218459672893924996590181149235062951194017294912882099635597949185061949165847193410766323918367401849706602529766806168818653800715419532422188785484832165238191571479821349958551970409203474735714437522286801491227189856658203553950668215528123938948284076395102409676725626974888296614127367980151711707808613891740830615902633180315389055269971459701170167916525769955771365968527493864723135043372509736704438355315472286766986567405212316870807822226709260832650989359011609102418903841130677922499064455916651168421361689204345713152987916499091027018376894175044595697812241072417497584825906753001384747679080226271933879834436951541984470977111358539202649880551413951432286385691961745042536244014222965775157491688018687000177352538441935416534087031688436819988272736624673944026929928337488068763139724701036521082110548960214221279605036748432994527517010404077847489118986504186857573189725036516090382695881898588145961719217844436385616809739158499556217072834978177801255154034393145620524808114797125973539094163416116545281046868597171597723630618801151564410657045883722344312706911236715872594188128913100710848183979034004959772069867376701548150215817846585171529553860052517969209887176326616628143582187994547838418182992452542891022074130160135665893481375654576444060378644783953117284418401691079430849515767330798027193711631284394306455508511292240859328129855700438047723805608711240859368302872916224460824115112255207504835879661286885164760192627821703672213862886336722095384671488396043595710881143680444754776333654036358435094456784361472830695583220389805899861746161679721115316634425394708792794442260378672824170781899546019184391151560895519440555439366160171332463030861565676271912042274772131227816214259936798898887766306505875649715993114641779395833284195603268247855434910438757086415388820241477605731079111042963044046544451508682362233672752392947552229044317944124428888443222898464349517776856056921448806903083914016658949012301622630707858663164447855799127890210056996204086276561900859198470858121651770519808754381990481030983874779561535567843313902968687914154831887512553843215569579753914119842706843932190611193235691992450723877306410956842888945617421971031126076995046200365913953009000224807588757375249223043050925139251478638091639310155806223600174547972756108029363271722972063309929578983706571290139727570824967555074113736044191732071195537703834579895115118621735704263098879327871834450087919098755786328462528928191670975674411321639530359831256851448016972508774008448922304740264736156218057311418286405529557337728833307267159092592676346824826579975811948922060819444410321343320155585764130265973902714184529045475746728813723210272170599235622428475167117982457532823841389779602709521636419731240384801483592139037179033116871676200893390084271682218652195901513065332869803159255929794201289535038377404151988215825481198737710137545314570602906538889008687785304410419510255162947852008504371872595593351446944171746217613282714976586224484492140387107138883435216427304019165892873404951210888448166189599901913536904288278684230061850208248662909839979403219524047445871196420808329504547056535234036444864971645399879260629664692561883902449502328351543866507145620313986826402857391226922546714990190574863926271097149935059935161216944655260872871080209706197775919549661911049831169287232681404083756399761331513360911708201426804691411916438648692132884735049364131854223684101109251100498555658332661819407333436024203801677480840880529317676794559164108168102094582646524639299748257286658209503304378888231824739429915797596499290046479116870795267217862596408328339880785789335786360385813581840371157302810609739943994211697263271033329897588556862220660209783128111600978587273106823642015614410447756455917969792310171491348992707622222710845635955978586665723904159849991916884544597965030724559470902208638280226084760423330633435528489490702288387246469520912666211361656853162506345644681989576935350090000728030617617612058074490500800011438391605446289466156542590613831569056954305602578630509070101253742357418042696815402962904472036244462059820393669204157064001826323862317585945393055118948823575257958578028936865606124923787054300078166071613055775459757871592850669878768160372544716421483627438533297333686292343638412140770806216111374087046333568876881555409457512221439913088871436416747443750343124399684344258090349452630282077240433536139240537443372913378452895699419615432850925876055100722087526143925583240446995333348422346069363394151776253591209444970156568581585487023941790939336489622566448599602179271993800273184390448738563875257682320245045499617933548011827695700569045195691100794841200958025676369450601778554471917300236548946927585878701857707259310104334412002430284363840014195258383735900618135915986966220279485339112539917994201787998876620952615560723077571591003602112617437125009530311808479888212158040764133879130049345076437470924990253306974310428221241329243594130899074485771136252399742896738043750522573719270453733315281653533058186804522641345904101459577258641613015622230614414917059575527367124344991711147021964159805508269052615365694309308685858764330285368767344188028460986332704463052634822825046967820490384543557106311945146280647738967293411454180555324295968357494792116992343137036575498951044672659053872107434797439149467434899558744241060644993139661021566262549433636938150269199126033128707447591124836567540966373043938084771126967794983981909959590070410342597777257613814074990433261254536728628251385946171517846279503694657961949944979741254028910756578176124824373834249335239623576734173860260512156988081143249388922151097139858242266663977121917705046827521047472187990318448351854269767899702776995490441370550490997650429524791298588852005952224295979239392268790342686255760267711350972479307890305246189869517110994851688603023508939668286155353568236554177120377680484808047532032724828372071812423638093073635186606528423559642902519979142966129170589710730573624279145651845444078831851324543539600170898781237226855051956240693921798530602991971123925853017760334940671644214847701425454751278762947490480473133452276453528215732098965602060836159013500987739397556973458697158496498964236505293509590832226825936589477239942715445767103942680939191229307721951093754040625659956658252053407625463591197360360712441785617340382503394942320297781563096983786296205298409189778313262368335331382884237454955953826841981353946690951067295775602090069763384304415892148023327868392699562679592996364929933135589797262498397158760339766537732776521016904985630747216473107620831851948472004854815060939617711978843883465802287742220706114793113557918888533136514390760576058536161288227471225573337156874930684901074076953309029223985719208056996850943309792128386638528668359955572212540667259767019448522975264277123184566133042265609055162091006087916411604802468386302796464884731729659069215407263972762233798846082051164062110266699219794985138515119918899240978676506727886891254809168342808390190610239549938539020911233298088767874748809319692822457134042632127383991303109733216302380714004431127482724759310095703679069162889033910656861999225520906247310374210600867709945329330313118897845614692378364157151987119114790775507771775447802615100978353260174604292877609291958441204961603072609866682086863776809014829009860324056562623974979216684693087031348821623648300542612228025083340547501104458126026574868998309058371446335589801226655795381839261684559219814035929517775439894499162217558211975443018888883622425428494405220436630812596482585001764315810908617246786016089564026177882428681412314044390850796307610916008171036729499250722573215270612908539584835216857616449368800093792126584853790272837736798836593361812721038226838009872979880327022809289339545218749749004161007665295362956901239059462289543339479051675673269741238570767309414804488130129270265474335606629324450003259135684501328308645105232126983705146640366639805782335595126042457722904375262689791683593204358798014717360122697734596044835361483645414378428497518451327765181109237945784249463970444272199903140034284886989309739837046266948630985332380822527010752890616007452128207792835435834550525176062248627625999665796676385741444335443433884358839360814400399515781767371365829991009414804713482025686460565806059262576142757350551195550167542881609467668492722816315304637988575373467741421465536049138905065111861107952395787019665889891059329969020103307044732201396115392106624817851764802518643932796368780661512237585901003144766031144888710227383241853681126048748399729641487835299508095074244227016227063331313037560190636908555714714415917203944042094978267407691512217820278505679771559818773040551139376074131978324549822102252504537254557167201938525751802757547498673475004489981155763962148141369469593580698091092636821999410875909539391700908142350401379423808374450992615819503245140794617941466977258414982383091610893173141512286638843937524823331720491071748737008524992803352983598521763888467976880834960837148878728454566915780319910460439439396518356869254317099606365458526679269866220476648725101230113137649833492213158741095397951598462882532785182599580842969759257379299573305170997521513093384626714152865471058556622446531986242490301341474694040520047785973402760034962968976157474989471402502243485466976001457508179696375728311595813974912501869705703634283646641013627511255415349654482981738874661320751971550704819310991965982970445887559814266594180366489724055360465641589531793037627967055011370018802682327360865845785460721457258668632336552044424164809408071571452428191592919783154897378191343227529556936661529397531174117848550242202266876243509595130850832048642754678597383683251198940911772846140261401182603752977418931863824042401495632227982100684644123097331430906932158781161311384847271533749355443428796538213713473832113421620952861656994313386473163026971918216423111461830223292366842086635461176190894560005929504205342738849730638110340936385876585713599886482556781474017427957722568548620677956105969214204164336651520077114786704557221363396100941046244669559098535690109487203843312031192777115935928239961328703520993768106746227958171801116585519826496152027717475526484841926111443621883757066749001702356254800350256905443483436314589079135169932742313653855290585293739999022534064273760731373923630670034863837857266679141774646580667224508476971142002027602407224294385336159511865264916246612223135240002878775310582536610617101864740538614264207697897648287955285788423434205421715112433914516936044051043066335454077415179601962155691432924550741055726880531619823867526993885127413382862759721165328808163467392264571945529423403300080255984348091358530180500690526822055179584169109999047566649565584860951190176056043594380183265006919910832395262021535960552727503416986279710905732483210053998499560890222430796774431989519000276910880375365838826428925146969845637481081749978187021402189228604912139625875419329857911088763481908494542622345383353569650217868699387258624991095591378211192909543081073756640988285199732934274625744056643700850583642643625743689173055139356048608120414161012186001569392386416622687743688291386723996247940035873661626291330372920992344708809232042068458129810829570152573497917086772875632370879433748505684367476217515016590700480724416498557577339382635243460466175911574430608417767807745909146530983656233587402047729453820164188395535819772422043856697452265105618480172161816020945480454939361855875246815483055796855852839204108840232240518424335065257647406611677030406462448594239699756163056687128931371550426417790376345344876769557773558630406671898963767579072211874019795346469286473266072472500017033725032628640350405036163101300860934858858361494113883597559547439087244449679316282128239271102642505412780627688398591641462355479540336906642860882293766182235582017546592277401323784593057911096137852822772541015934436220460556583621178323172199919947032965038540710884412006181199145481295923364761714589465564638468553709447783019344203381740420324001372935795633606381058710826364479084108637112421355251289464609104811770184085499028322207834025805059305099056613726620822707327845153722852771814965811823545207582318663724084160212233567241300040342929331759084446941617581645435416063822149352512985558692407504339241952876362582457199838299664512434890527829826005554553687750560411930487232272671912268514714791364341702604157840605796808257622101202846764678694657975533461824547898110044991007584985165952471768634864456682299003504907264512242159315115250602711047478812121673946402635982986492190015448157111571076841699989989461000628791779933404703982126046236580874957206470353186729689780256903669269385244679130040023237267986001989829088849995856673024996085644909647168307920379100790206748209960851545909513158213250357996225686284713456302738814705862044356281685369738488789813290771606214309584455962783021820327736920432186094705608789943045525698114385147493801821107804002649006026205086270106797165456384408429700501151721059175065398990018857148781307152924584376816015682114060469890762448663510852276992437992575251507394159105746984728201017005556984714814389632211712971693759000264475689798278084334312014673497454142869813958462375218194492879175420949074010299513333899853209889856938170585435719795009183295535306271742583487200844812044015288046795828649988120435179431544501708666497400132041208087244963504181831160300495192945239804389881962757142828041933809829188623785042928950331954490710157628407072393018336721587564618134884287648029539771698959767870363878934023421177849114859247960585257441066958954950558952302274713692341786851259901664000145832758800257140814407563528744885043066093896454327211895105547121875151208951789524588893508048683280269894678582974346903437919465869663596795011635030430234237189211449564746031165117822457705686096936673888757004416980527368748118290563117194867842373245979775810115160760956149795090343942265574204282849341636744681306803093060305711126092129989573067141395006105151810480501529741141525750696954769093827086510669291804629020655640999891799362493709095448401792116576302248378843274319762607502754462233085814903643887500596187896044934528562019963611672927936437879600880467548882541123043103216756320681310222183810133203219248956743244823721997540139740250943374775183742244102000637256691347478730871517117979395691643699122293786340338980186734585878246456942354704012326143699290372278167153674404053574434170852383728815084822760687174012759505380077421235931488348902178220998144867910457043277919825413622782946177504755481376015754490958297083097374043221919102806852482345243064589203166901092320980934256596416366617654806480266766209574529227051253784439626228596727718738581327432601052612451525084729023188268707521060164728314118544690140247252921540320886769842529471816370397106384907581517211497123441246651899260395844190758662571356474922620057001474059909991440290675847713467868466535708470217700868989533157217252294595400609680477413518071729969292869004598977017339561095785033977813376867067878113015024409639548442988784176930363530250955472633468529081044426216420896517892472450364875621248359071538110686382958645429402096205584134760270877585250086961475008266165693975540283173480015902409235166828798180885068740402468701979297119521281829732848634745973944725667484909424988576129005974165273421262817392070264006550422200726305616693242681463669233016472418326516392417118758225540179167990202297502890604469483774222660350562807719427117525246418243334921588265576105171055863831556401319773626575775092537161576395066186106528799475396632968499490186243323384249440754307706806662515588204444261489988350566018104320085071246193427144962947671559083230722018046793392024819826329977619792582057643701082184544793966426350772322090624372928313063435902939793363720219698903281135079104746419108132526032542885105556925699518395753770554544599342934763835503458672240735686245547481611111206832440914488374005226592331184716287359786858695676989351405522424407612355635262064683601050791903268363754653101558407498512936876469712188787637475540502638059048790568697420611478567397805858220487733877595691812207372484873188105097747373969451724741355685366545661599737105786938953648850678828474382808232393044228799031192114812944397934466960386339393995982934220191327753327813083180596243969519298365640917419549524578635929652384926884717033692928663293694970405555420326978237596657970733586558479443748178796548804949659343304815900019821904405289568494681619375002795347322262205513765116365878272652659473868856920003367652862241440409736695806666867296992651983120049185396040848559306922036454604550173317864445308632067872585301703759778547814208484674777697831485156762406687411795707451978857137729613482178050878533262847012019215734761348664427205490633535913697951101521267448178563466343416828350404268925774703736194852740821694932824739541085013089491582905541377580494079881173984095567448018535329632319429224829455193883019574839791145448622156985834816776041601363732272579396789481419552486067691267178628520423499099890879070335376431056152968865961442643209507815257445822152509657324409051656970019612306840160423244968196833198652328929763040484289863099782168468752412937296798284839017567735316618615356819072416447658687576864223607791693942448151680053563781673162497109531697560295088631610025474314191440664554204339125174766446639600748563973682546127845362414945968513905531437046665175803336153447030277170907546490439989726638282326393558694247786353397069411066543703471111286247659034294309664132483265830836072394307464218480296059133788276329928609325464130715102579332154813052261185411948160934141317558566519018525395240934813359106475036586854760013314685967978015904571521837193119906529250700480954314681237876536460434621985310643665789685049899668458280078680499849218420715537369994327776728159633073017816667972619883821263383882179842313628810533744203823795056984512888876361196775112876111161532676897743718799828172819117474741242281484924827636413323349462988313592120960076943868000486800375154570594494608362602386684582062907146375435070929419839527214524405959462274555691518192311718602690676731664658184770380789961187674593761961451527046426032204027267379247238618757401064802297512109863549578184467124878948492878936181808920452146792545760657356968329994324118005147280014713635630965882946157634051224239874631877889576652184636175661331944112505818020752250472790344366078601107779655416284733785132547408121943399201933542409290347434158567777034801249160500123354828923063979048479721733164941269874869141384618338314735600869843818156989783678085534260248346956179510831297112335856701656107806580955896601284818101267737788779854025865888894121428061889282882631637472154642639888262786035502997693471504266449100027295101072956084021037701000704368520219050163131688830729337133350327276070608129811512953453934138429803784659930779437913231708878448812964851088040989872469749390238951311923369732393942897511818214888651658710919537684970163201533974900652744054978467890753372610955134583377318770607091814365752831522943361483473460121489185317419775094641921034785249062306001427250964912677326667399709756042791512094198631501843807970154298558798971833983719711942757230273482521443250022457829849216753477230265449431035324429032737607711976858982473742395393286007633162128484446269896691268857985872120496800784444541394131044231317115421920104845051297095689801391069026041312008750753278399128139734583829799396803573322596337374261622801735695639378923625513281175323269375155295287958908963455114339648618385299550734509407119722768683731140192171159624878182524354779860820740601696046689661728637284393983030135908676994724335796387342401843102967572590319503986069330035814629243409364267060187026677544371735467657222543754434940946477892498363767341467761678454265706235834232599460869517380681175259353460745303879101025149469551899138331564396372185861599531142980066162721322431683857091206981895809889729399666010685189712118370367384365231724162761197159905554598795572594270132103776429213096554082539426693433832863223607312060189437026705293461967771069191109547276844980023774102589934284537930350185399346253201104621291134110618781223857722290347031629915818552304807231007459684078814780640199206387273141232711648374318532631050077312514968461094564154500837665687754085394494646728253343768158810793543903093586763241982985868828421362128379925976123685746453609493170627626246730032943854665741792499320980573009304111394938180103943981214538475841914249446512375658880152208585165239994820291633012701715238037920734388585922126978647891388590550130237145710465094612893571737457237752229676185478544787675888698693013145532870372921865682155637727921042425993242527770233132380694520851355815820344615563099659952214212815932440478043741144154084728356244042174879148674262658328174700824792423904957560355360068982326018816957769125804882066824073499332573131775854880785855194564135559564018582515887866607909680664792656283637154560102171600499784398367706707654693576254415073541595345655965882540397373259267022978805923913025133790330038775464333268828271307229897092736568449585758875194318288504674256400814901094438307402014533522129970132374936966631406621978721616271651128101153638533203707745704003681259369606093115639114970281454910834556137491945847524491199616952781449969724280026848095662819519449992629688714946165375989886709823277858190327760695893649493353436575977720532178291545992688398103213005297181706189756788351136991535877507223982185681431500631429017348033297360220327616017951380511832993261532563819776420307138654256450720129087316418295415965155328939326161676308140988702808936761599810482368512948459077491678781582134655415646924644902140575330025326652413622176751491988928383214386089806320482298303790336158950459690016425923651956272173694328646779439447535354705048864116275697249970583865677862474039700562743000720575352203439072082012663731194535939329194375715339030461808094198622164041316177983512264279048798625999787140463113568374909020502021902650443478826291363043157781878774050174536641264471197644496269211060363634771780418805084668575531169582681953648044323610664343352041648163138438347490460980342728283212558182921905136738088328383802768175536730305294420290695062502862752486684442283641703745190101815535821732548043888161851274189170725271003831652080733351770051088271184909741630513008408306075560826076527891803607302679421660043745150052715348994577648856376321390278614618102145463010192910447966558520054914885646085908293595441649162946530268192704123442427467469316526021190032572964732845045473722974375411410630959073300625700846980685314459821837832820428928565534864166749861667837996222796061613143066281551270512760834857139917767558753016958458395687758823820132347623017497328351174426410912594103853067945441204314435920563908565645252851582091754241803776428208332090633574683796313556356117030844889710202562439870131475278274045539716823965889432893691649503372526410760100864692851964014935740838714321876770865558409798177074758660132690320562275296673153565801392390404016259831738891371902544241532438923265057752340549249624870094631650063338875124564403452813230723585099448239264277791101006514489600299682707075268341904606230568301398332419759396127397805018112062152181969092802122200293584675055105639430883894924087422075459460769757909577174682668702581496215623956227050780721702779389028617066191813722164989646351839937157086003653456687687325482810529537685074412806724486455664493291691920609023217744396347689317862976899863712633427443640460331689157939938715331514659090931744273482480280628899682996734610112976381256779664356933690955818862699178562553014499094829144291088192851351111438341655068972707121967564124613160043655124095783232936476648557066366390483635030252960906069942346361582566478406522684378293030139833306858916321054438449837856015430151738140746834040279700433353162304145703621638740266111173612400208637885273269271043052096754540678382491818215936785888897012445393712370047478428313297844795356441813949688290129658347741306020302308767390856366980113969350431362442642425056904139202862554628377006599598099300353959646048383111520742113448094977988747308985735672422087842000439229591507266452970258582379594350433953620390511994213310819396234983871168149361117612311470483474398252894256842568093100539872647329127153310251279824850502669334008455190363391076801570478488348918239846141242745969639445162132242386806718499364281103792670284897326747127416110828635774241155724214532514421921278572561175731968357277798238474988627582434526108399373116292039096276912582979792440970388518014160183754928659729621932248755261676134703162248795110250562930923816937451894508477390253077153571498670530375842461702880237733753930258895170265737758629355382912043006546007357537029408799561675623445489675412480951644786332296302455014868581878144414459178941672135486183006572442004689567378844534871532607108338988604289381460093616439279035628066233324791675383284505935179967333251361358272971170566512126852773646822373150444954575641905114535554372127387950258111687353651392234360206055500541827487157668333399154133843715560789684701643609404520225908141075973237753588080160312157879906617468692921184968570645992142743411106488968116480455999012750588468730170475240489062322002740414763594133333969181879995797095827208163664012058149506902922722587702781471911965880348898658258297438592227552936123726854451479645050703577480645724633957066375143007432524361747229006751684972288921407785581404007957745909432442990563010703070182712638832304750257953459929713095218059414010799562087011887835384935244641341108297664927739500331622440919128551057121253345461771382077695153633239503709462117177376661297142150014418934666334789759519683292650317497845681573859231727933269156300929664288254149676336614470440128744175545307839281382013590473427488236720660037892257332609964273028647470303837513059482450874063694272855451587947131793042390435691658531187433102347652152368420680625930225601110074780344016263380683411595840151658207257127453126482869251479485487381934785593567462764056224864139513752924026556618828146710629095755465928518918382547111741509466715980772575671703578279462186673811742766994267611072337410404417648496566720799783033745761081993486019510371229725049626138230429765731397815443761551177451501067471158081260363711389436126487053503541109243189084827614901371384824023919815957269863083386496825665514975702964761426202043871896855757092157339843606301691483702639530315306722160028094496338094960709950094309399002640893661748804980140489216411699349140201964263400310816500112017340693106369799427279340232445415423241010807258995062254248623375649614824888285167025974150992287755867545060724055139100642587735131167721929176626766928963328315251313056971943658246917031923077914359011644507495830918749413965052140562268534129448298286648583416159715550453214712437351221417624985427256417618787016865019753721173871108971700500132654054578723048486548664513495712942187580740149189059962749494945420504923471095400971940273060405170936322344241781971075960042428996693618211994568758577817862475794909061486766919635465519426142018052673920767824622024693117659386039728739751017233581705883840201682100526744836957783416193691103489784220941532720453134507992723777846267773616397621486487260744267477215998542746703309482108191960877568231176458849725937442610045760247827576647095856247292424367459158396819029145347943818981024519860826928035131516107950318184139063366428299473970897902709321887093000816275153110211853520051995387701421064417365513545327554122416028661005249482693754287152828306693183577036292020534075925501068601323280137915976206386205967213891079841181317641578498294362484797231246194629344754341870690691967424445012638272327764381946701614985811860202088803393667850432700850586254029949451033985675644901473314361276562460290749783887152439486988216518371522372217072837576625220401117644503950207964264771421040700858137467852881132075377375258089982885027501281026453117496454096236054617658861445933653298011245194475138378701375826046407702718843399847865027225233990379514357383077427870907289968556370289934461030768394092645258939569765618506963118074238264126224493439906661192671799966240682007408133756744383099812002549103691803702281447031041820870965785956023071947872876530420851862376889274737946732627324633143030696762011091981596507883038407163649495690726654249612658066454251592871761205876654359228398565155646593188047948671651461764283913738520448370029122445268813641654668906893057182237303281001057088949713232631406200266685090514606645146543274282049586581726456653205894324185671285542689315495083213339547026444754748871569877702916495499801605507524008572188999505213925633596155139877683824642711648520956967706106442681656235816472256751971981741174683592007859407322803441721214398607290389141399652229791009392037816234036149411600358221964092853817059691085516253620972228672249206069604381886314232416216327419741034014586494243100942934813919983802343584445648729056368431528731801207347954277354717027705941852145320169913159717658345816510019244814717947819903638112242243129337494394065060777206463486763851591457429605068127723601041828822224759010055588787041255589197782081612239681060952164823341929438615186860123954867746498554182328660673234735126318229150984122753373547810766762030921001623576618577254672867971502908948031057835104639672974285845459938713518223759755796279581843119339132520481967283837423984486130539647937394992058972292435416843355975807880364206766170620799207505739866203381264026813919161756897830114381969443057306020721790293842359037530030105625224116107009996436283314010769605976811071774925619985232532124162164410407271372658603988056982370674746754230752089745204796024280048004348496573388602482128144544751650528663368538370766246745246944537891571954190373304983101721017512127403791090248464580204501350406682344998873700591854459538505644974736926181332854366036520328292461203475795296734355493203688342937905362224128743458513473702816799795271127696313213952671751920884526105348650316831541865153216677043946598380165200977840957559111887138891565839796778119126441868765479913616954640784379766927163982409020137870574411417477496061233931908148792881865026698106066892599623479739014015954377679625308793831782181317920298791294890290230628880970327130915127315792014070895543573054527162472596546141159069193018005960711903689139082117004285701983041682463549608576472127363394267299527213019470530996098968827236723797950380748887117686953683248944588770349951212781573763800611773991342224849934426423160588389261134364813501575345296607801387308100061893831363565724884922874968768647778143486904718710652157084309589448783998831254987785358059524566710768526465230804843012472528501784573544616767292282813155265931864205080377775922442094470858293193960676099567308181052831427309980995019027455886255878611688338647343662239759960042331234191494413412494597774997303278032483310132356371236330608191450754129763522259183874667718498168809073069932924499509492649727678369506118660149150730000811317197046410210862932171247711459764480137565547658018418655335941005834552924820486026652109361287514003685816071856837151303224598881461042456063865556185976216411118219741555064247484368193955620342230581448166974237768721422384476927435503729588060784888470483302982111388825487338090545649799773031607005908530509718856693419979013558849774245315047027248305805204239904329071427178826118021978888609619004805425878296813803695565039785739551523555519464471211571468720243671567001038864870477554416862336312315217650094944513619267011497335233822489270386168584003770952703975413323995625142519977056460912344802669966157225405665360646341135879276139591322285560133773360308412663796663401076960603880109208460652828672393463049227667487545641072522787973286652296412064638677540438669649035892098491057360369812372663100096269033022042972329078248833094662817825034117777402930678046120297221509544552474551657158295658689931371419257463735036927064537507535131112799446565643064933911006872003963002131063720466527746652524639403474702350397452139701465501062826078063901247016226018186242257615603456647019233987698532232045322777538593760927346845436151591878510863020441078641865386400782933693498411439041528274533779343592616855591707329965496078924966065631982718226202410405997302276963307892965115453657704240716048708987451910459869453226735176355834027919038187938114312448373511948685827612259122263625620554755596704177438816946668111848703798893949652919448864485679218587390224761647107700810958327615351234103055655711777344911850736444357619542397004118479964563275004062052649890706476449306454639106173870598783100573912224779348124589929697795028280244948121385181136210393488897523238616189540537119423843778764686468173360458234917999446224169575858622806425632762500943723753720099286459557642063903208227980369533523961328114147936682145474505212891918248600979838354918611435025275256819922526815443791417922649650268649346412995880714719832503179530282633815845442554190975479091113729940418292467221585999642607333688281907842819327815683771956330812031556838215266280145866812267047837916593299853270000837632011506118413972743486913038138315582238631220904472454741211410522697599035515699816603834104409090627866891133669383485850593015314455239534655646126573872787672486168479616831339750043775113752310994442940883275561720719173090524094842882583705750863851655529858362962379652852393252643382491920716193074455755702084895499828938230930120379050406232754835826975633950252654466517949554230649369924325993442955816087607546780135849004135695259974123181088933103886461826934613849609212291413659929817690001613863611465608395529238426804347735651677524406100188087431851436706171576400105543348705645473504208127961990441550688580885830120203192114641815135516562587648533885935294433473390255416249594121780337678027217753003514509589943100100785653447152989065943029304619691980386102953507201696998786120708949417756880266868372112833680765238678734435977022836780726222305177938566189872135726156940451194805247139843257175943709824871385291661855996829542542010980774783053021743399655214471553748068257741039755570105778150010065081063158913216095444017741065086673179900189941802641428945163214150195196131892088045054672168227568699147643816861277585735553910826349391611232683006129461526857859415101992638650898189824835023049952394960506574068686703889006901419316984513586185901821155884347291643518478850089224685365535211390601643990074703257020440112184645840992118510085366123466529007951274606962691432251156676036972204219839807943450995116028723586992489184723891147605170765871423292154941106198505357225934689555551900861540500449247199860039608370159791409408092316559721228279448931155272318989176038986133852525256964649259362514452229598135282336250720495034827888874213564075974913689561498591821184308712817073422137176880813012903713778569372804735163637606410997112063258489094561965842988880417370605811043206521618286137349055160678222503040532932003479373874079320545506362880327790615172534483012756801215639847977041896320677878370659556390761112927778818461799193031117777429800912109276781216453834408296210892362149239836835430437898829895721480655438059262531868180261794694990665565369592649231912645474357824167307517959145398934313121790031613493346740426877108024952089587645426923528349555759223831724213751154215614067288582541165490982049004921654536214816829881268573950932039445105955115057122247575612366053076782051911628611711731793092551889920555570740880345055688419921054348533709044589968228600899741099280277149454979433576106284810124437243194817275838299586910429073289240574594355147292185798967187059922189201091470414058815462114380656981711845040089160382818381603569140670001828198413779776550385427712265684399326205740878085533501588844688973989755651799917945478477339695079023381418219432796750033007709162377622450619630213819291321478741240474465677429976273533314725151932934848660159412454119300703688932417913933393796785904147511609650723474284908664303413184680626977337204671369445821817850689526031976253398455942158983046286126496935453495172268932684857102564437672986356746566783805487616163384086363901729473724985037506891704850859226116329080979487772130813644723177470768015887075169207370415925444929222723241995137703521161466415782165285416237777054794523873593947036722821028795325699517048917283944526078252282641245627754381811137465314871748965456540302572214205997298793574708468884750195867503797993166656186910754296343383632939491920649877874992880172977127378580180149659693063908135246003070800347376284162405409915120670919166577033360148451414015400226498247592269030544216997007870767025411737843743264693512327552192625500388940307441784569091325747354352686083267444308762359089897807180818491700183464100946953785048449924034765100025321112116968290452819133455232696390565697007215429968187787417144702627375963683544627684675874622169631578915363917841223749787017728164625228023088338157895453794411047174886357215603609134727892895707220142030139882615226545471253930159761044315610835030214260794970171646999483927407248329494405822782167340340633123697214754321296767281042035875158600759161760510083342152848938128590762844344544421410710040894124131742284926274246524214869393140472633933187233631761103897948352184710913839388370940507448688667194936831659740529180133561944200443709327429197700504382577673881612144039396228282120509227736359014956847419866240431695942815317060806458244900554657166411737095449675911727726861976241069717846118095597014147403835404135344780123424413492398115234918380676198756727353382628733534475916997305085072088173553175849836152260751733422654937381230606430638670279416117075822595949533912087926139040138646419722859158567197189429037418487402709924517463346844794196363293103498327039841399694628552133658916321278159427624629506732223555606685416693788447938632984726137900942173890584792354019950924734395734321534109636689113933729323231547656103485558716381511758808779474200428359504496841536065512277867182778559131776824963805692798820672465369894450413087518858880480406172573021492632873491908481743550828677252647856878754059210101154813918585582203929291611924854269985576952408265112944593029824968247400210098166181956844656309042407648586226997409916321770511440767520461385900892167874470039091773588515902879416836571443167403495350401163920574911584885083684340014775243451929042424715955048322139397148571213876395252148199631744321845617454361682782232091659691807189100267435743840780379039171925635783174617610639036086062687886548384314377265855443822279046642582974925598528470405934247090777770722144443385418575958164537557174019624867196593230240145990412345304195504731646208217301153912462703166268700477264983133666315872240637220383501889496939261668461827427698320614073628143327183832031556933066122318760837490316636708371807355854973762675303003114769140545183679510698880886725180415515103918951425773141994566433632513523965283191406483886770832848421292344066323173415012080401242720232023167622153756117190246260840216509393191582304133231866520027252582577440578165152702987018679953111296959729112741152200435120250298975912312894440576757057758139993258231906396531803450278962901192012033094841792699200787874957967904279090515399416365397339574434004199290819524206873870062557996118386161928967855971899907498226833647291497217187752352803776756866590028873245347116859915596586428352154014407515205693187661014861046419741551844987302003221574926809776456512129147234879007461249125312605455524418895963594892349819786783563661446178285798186332374693714710040059981672948450613257081392380773446921902422399667799221917773299679007144039293226014572306118830311457757327862797695931902528832566862080609726136559674404169048960997642589291698671132136752785087835949422817163255779183413412112178210821956231951654003732108334589277204435356500447242436283816896090109110580529417821147823380968686082730844004480338196512065748025569908710744143481184943624373558399269506161767231386919324825395651816712019584699092316312093433826067312683286048994103818978927434403171570550656131636544321750695820345823817459718315575366538652258489166375891718683839618925430600921212374961975307305149130004991247698213028866351385671998824715065034102281875148001149810313843942617214965097719699368601281554016598579608632045852223360921376105695039687468725519644128886696676971932760181364055938253882250248158774655564734131706743747056764469160143238756245202276588228226969608528501089870439281933084888066876099851136312903005676930589894780920041076639777380296426746237568641635481588216237590822634256951635055520112911775153286471704286563751449149308997811490930898635229558282852452779935093177321513793040389291169166218314159456280395090227462709683669458530593701364013368904882138082945274168254686355768780956862736378277530533442529814141663984667768695767399381803646422861987357110242282345757623442127277639260860565916367189707864038431977427620956306109048724555617898845991982878784034296700054185426970063812626876004056506269132018820728224941065362061930940915588643392623608140955593484876522743317859061016604825555016173265135622147258131657318132961268648411727106965412129913463502450570094958861619190647263668503628700126703677384571248705509330388874493142938163236265955374925635296330561688129262473828522117990113913739732668582013608170179833968475626230630156713937344354279668058249528436048460276858335135422874204701717517313913581557263191567254461114332561749166969443338638182162147839889590224206406200122239649574244472010425415616490880129882285307756704255492823904545523339753491006789733910123572120598123294126782857886783735160810017255909666239022338051384331185514379291346627585057710984119239562762319524276793340489403216141343937816449292047793668077692754712613305324776821650984967536477344720289138747821854191179553994558145942023930502635223814655493762906135906357151035795542164077463260572247814367182308865124903743125303522466195118724427188654423282177961096589107171979153454074594529802411978616857860741232712567722322249734453533528740684641393058695917651367677957559909124614779468136125389064621201171372749219843096008268322962424856992895537873190607276166320132374966065679269424125962133915454098766839858503852373416872221101499491425298593376041299095571331798621259563257481236211615356794574944033374867494942059932151778920413532531549502701841426479492965656783860578078138233914804601663207593327076826049469448833030824870396627320784052276979346455638637288400989431430919365571879575793156416725193218460422716357254406115642267369992928108045257285060998728186385082121981915709261529613376833484741662837239210483079913170889776659412168080787317616499498268459584644476842734309534859633142996364009176205614950648255069981965862390733257042465575691604291798027967375852818990612394582510657474495353330003921070432815916946881354069509895232859594504809549042606408686673452365683603354466355759839674279955359463244941360383361448744476915181271628760523470064051384279999018309684292884665910002105562092033324548284216422665406587290946422060397694915984572413999647056121611701680622276179480399281916361553125430142656043844104282844295938877263373326931369066313256030372816635957748568329186254139973543544960269373375795741766487699883966117284101199734333276192769280116393681002013109235539691549390566145534503866033209014458772993651909402895398316840386837389645047397535024350151047621087048703791886312268032567921093836522995690313259713562910492402964664420183860475364642245254355947274996956425190160708524427057665588090294130304286161580769240007952823014290482201976576854268695992494327430076457227509382288931985713568075287525188235699542261111392193533523051644976228994198833187379358944893549949851705935174397131304610220319309026533849403428440437808837977272267474373304571782845914424339896219064512374702993208222241910646672788191457715962446716799292480046101520588240447749084402392231676743912451422562782608721909347671692239907213225109418230094879350251867331615510307432447557098567134785676201354363953734456397127035593528649137572531562256954582052244506102796256419848002397632147880416808452317183589180189132433695768411071060657440076228744647600320601928730120048716197428305315104454021482363751013111568956790467491348659027078042438227131951624064855761516244237643371783513423272811669211296781079976611012472628159555526288575505164919951229094381076335200239576335603900761972196666145929749898504680811827747460950462832762137308247174073581078785663828613586739451951665971306698743293489600484771743749797620628914345897026261436724208338999365066972976106820271965165285896750014828322217184383169229265363034339761134124027757067110660002560681089285075992401235744056023638246841839535841711170499173690656479466827759524436811043822854018896983312506694676709555135486311654051362777848758869563439329927099857249446291186052001489013872495677979105439447525433767331503201039437349009453052279689959161296412510508273772203996907804570953734515678967949604013727799646121366637411601628709904326600419570451973549430092596656004624460192993972900010752496302725096556509641159696688751936697719313488002521370186834536481520407366776498702944460211155825858310362732231087470923847496262766856251010884462033098483608130787462959166572343902747540049163955929385541496931262326518244104443543851366455835175360323208744695386751299743325089051891453413718635735010320826761397151374017780316801592021648355317928999843986318557777126190707701962572814092387946417714333519206381394970211596904522167680371116873513387379390156718922898021238242700174854902966022796763708799913038077642661945020629154891211688151314411801528092100069333409787728815154440937433761812316569403878646787300141749024514709315967725281605180177902144890885923235568053508880238606886793602035360318244933036572783019136939443600609749279239362072683501751953296826353427378419238250272141019289637707130654136124636404012035067624525060996512746738302487256941403061730194448588372520428234116290458648723302851587381981374316571437398360639242354257408411600313580981482947250741580997335604133605457957844052894422813836367615309911720687136765509168492035964000077476697854981236729235440890761614902395107323109767331451235981209744848694132955462663798073330585049143978287504054008547332393922599034582194098901382477330560648381971668490245027949732809569696968670640206848252058655950799501595293622172984135197841702036025615673820828554599523392938913900853805409613393247674005904010264639561585405057530954213162161324477179525693542674510920268644693618943677098217341932502199658047897726616945260929706361458746127758249155841270625591669734638375864445167263543960146879522715429209698587554511404912784177165640205652286358947644874132079156373613824640147754219496360470232112936734391824329175080993818338342951059914938040270360199149812529179218863144457101810480093550719757046319063378668696122714442188578089735545328342600198991132810144829057226361279110449471456245284109686643188785385980792121286837907701051238075433678275402022125070568560431094807761304939872329268240505101991291036033375189808828443200064330557025945164923905257597927584424721669399219045884075732122610774299699121498129900382544276427595294593631100158346944234206289512536337128939270443830828539332221684991351747868146077121558706539430825653088514228166514587848333246831002841255921738168078152243992947537540670513074321825668412515366942103474154824599862924225186446550503231142772147358792260445421861043324451949096710989750405043509761012505898772574982862445536128856594781961968462029825260235558785123136771747045993888834180539460246333752198246139034388455155738049331196208194990059064193358079981220582969101476680335660182205212778155247975617811966916966568757990109609471593627827975268789988265958858395427979285854942554218061583854112271106747196111421568601989350252005861234343361588738492957373554497714628681586590136588663224098442458608447145160586639335602227859456704481121724342331089144585341103536068149583277704800398747171047944658609991348176012635315003404251745595379704380395900208857195967297736856423338689797830191939937438945355602392295818554635309914933165417887712285027350018235372397489000260836081275272855089947774098915131650247161874959375236969682622622792814003962997350318737071006896780327898875843679563718527594191404036315548622936532931384823986560158395249236276193819146246829734797224273295803590749304293186102548972167552954104714239629094608079026028916254034985353896676930171444824851090817186898672393626895574292143059474326571807298429957923200611094859689761472807867007096032113771278755435577443253334799451211655942891143573519697852612985680621392047247580830458138371777908272047814634443967157447013803258390828335304896468695398366721844872967042578918522193229350893837639738396076316355228671596049196850527719574011061621569360714250685172993975631343396631326402669966644055853745425382970523938013131498005475672730412958418022933497344690589880686634962719501167682199701906985511408545419153246492183902043506090623580135898752007223273894030584900873916253028237551264659957884840151697470848105405323021786572279812590572224145644069457923741081000563396758144607469834843591418272604642077253393351428712417853978377967826650468251303333536310051185467944641958615807703531219233228336621306839607523478550322600984112631028555458396618316396271141992973857253959776008570203338492900418025340881098457335241017000271300648022959418700574142111533923077269975811755110960175835709214734032302903011692756002041056099974876604314560871885918666525336595511173794431726858395107411651649370303516060577183641735147636410676015700348911556360345544558612276862130274261100751581450015075807375047201478834387970380716086590310452397740058525782811550177090704023080867348345578173472073426484710969271909064243006310613522119661701719782894129880569228394836985573818351613525221481926438422820469033514551868936668715473015738003397960509860227328143027997672899989178588463696567011064488381982266612189169811090616247785585325846384028871825659526563755592642301797997907777184858257612122900648062333455444298525152554790597578694673480468103606997396253597788333919968246609789242136135889705359719689224301288207332163767230881971676903891456900918198521183469429874823137834839110969322608409141508925447539669661923696420247322958256987527076849407092041995789511683266731014691970871339736900334291998909709584790487157581827708678387111429033465254361706063134947939930393009146209966351274790012250211477477571898961832055698860923059672719931998984407304132169476790915199044980830168636772525712837443377063877055575474355597568103421996478787676770558427985708067995728434035897836304992544444500510841324224387017804546933052753275046773531009095046555080159590928562218815207067488013666500825359913597396606217982067588386517371201118425282139434584994533787262249854707238034535891735920853147508649924129255390506610214527765237903076935280827752409079369399602215288463223070269864589612897596332472557581803718916425348670644142508121886169359543032731435038119695879352102324142551403642132605893923149182779392359173338426440258638313228154176302532570068938558424464156535493392432535384579543106608995743614086447104997633017502042527866050229760142608186587631176157637617895900396991775367479024267118651923191661526817992573623499797930207144557712026303621448888740697765952971762518930238118613119346760106912214022783054706198159470786468934276796348674730285943071042108863191783115678015713283838109949573703229656260666003266912510915577032776023674643838483347246366535569555656197083586196432395105632640549378946012853651520720834345243645839926957512381086293772618697360590306188825287659108525885543817031591998115364064676151357150256970177740902976097894376111131072585949472781134741476383999655782172086275946242290557548297817242563406669921953487085717137031796521038898043500104516179857713051562330138633411338649770963025686432403412364253370591599638191260288665245949089006874732761063519866890270733280522656913459760718998910723529357503153180615901776098003522757746784264125050659058784573181545154034444996288249493889857807684642755031245802339375125679630432305998088525727484864241040544933934177583512570267446409251132779814742466909408764688525529186631551800584424618132816713062446994093729357923162907208861167024458205102106701731684862505040117121216570891825114069199856150085476878004566505524009517881747713019942863465778130130728056760879232751271571083339571026709866105941002138567500307984574832309324122327785208882120575412382170596092900324460542103443628233271231696938186752156270630871504139377491892489629212909488018143104550165252005198667901943741412008314275528123979682985363666417300373047475247947180833449211966678473611513799255599178137214503863497961740906867504173279189880720908264728129749659224645649867521374928853529366834525496957357614415826970863072040098662571006274316435783136158526210396118296573940847707858105954343800562478590515909333408394579646936972448917999436093272713297855444859180953755698590975266075093002306985648490837908047617478404652567107738601219404015994008120243535948841971954365703988016621460218991175337840703872958172975999610265348661171153817393241100322997184522696269169335263382259822260006803895476645859045991286420758150120599197527719267485173369521899875920351862351235787943351058974526235636760157100175119943170811883766740374453592622193136567708596998221019531420858354850377199152639191532023937098619938117600245451436010193522446728443373313224416773177412922842512774469157912928075780395157284892491535662525661319868268782109073953314863380672890127661142547054899171359430836955238562451705982279896468819455069299753962842361530505349913294065864134544931144129061630131615479421189071213651683271968788981911023727086502998566725685358969952348530226674668841601409834710251069818783266810812473062781508681584533140644693426434266808334523962911975330724237379373897134738449244743690589595171963771156990727694193458967191774078608392400956130038551173948186122866961733424373171991331776083669204572603890435866457552784385877977474471072978244645234238011078800496967874667243615869411644694450345933892697516246174622074876714453014944730997039120370011262525745729290880607484872822383311195237142717300559741454803947126476304097882139388313850375672487047992568593989138161993993426640109397733583516520667940917748048751052169926194610939442921184564949453919227244121553514035026765760971770091505571525283663150949516270242733511721026086935368448305236915808671742018484505186691250098529789929719384831548228667515742960198630852018490867062464576508351223107922780779693729066307661987426380497160278162531183375063640272405606190589033181324133934506078050728853564564929980760098418484838811033057068511533299881076783030818203928516744258776786989885167351389977931791006483643082910809169634743454237216557406117758571948548851789467243584189627324366115575287999467761988748127723837592499055717909846947698566771524691010980081331666190259735391278680792647445098514728732657901138772487544606426761387861245633956182553946534118288717032838337444819640968056392174961380582220876806675423504527800012370959899978470046515261599936027104981881022167534734535637541133543789839806864650011267812425432788883505923366813077846912264840173310291101090167639785689937924029335775590594328737281477033741932078154479174053904840234313922104280455859576202665067673898862105674608317742007634536243229264291068294488521704353320970934373732276920202400696314704933597672114318717785987705226723231990776584376960026445556758968953850303827602376693704463298060554617976977092321431884301922620594019771302632128319028889770807314009583587796914799819739943767182471474269268282947754948526759300216715030280842910425435133531464195553825314572249127382780386995573033418241019677882988425836907072675164821405711880453402841508532891960469200675237605390458904357417105646498917214483228864910296985033153391871826922724576763748232387088809982269508724517653187499604616536668376787207890625741075007620651740446418499676302543886625014191109674613396274211299640585158459215340611753798935210748050078544019053308814659891678759533782045929753255638239516563853798246374521726448877397234376269701433523233199149638935018647612853329547672268933165450272657671992381965296373869233536218912281587703326419482244911585913158479877583379064259724357804859287750267098973554527921483976704844092564832666881817684680499938465548537293551973139134583909215821865168340941182647885006376161946501446218567130253177411849133134847418142961004042500911111393443918761021870974132198489348039729149523522369173983436408918390515193768633869012234254079179965458114282011512139706824677159418965228480365769998875518133831669400746555973673171278526722390993960723726550769904334405308278475023196586192655864307555393273398589012381086772611467146040615703850343764233489807456427055000813262968857723195777810140988924403845297768323940422190900147207644985696639984211506198173403294311862573275477648661237273864904087893616026566854271315270075142653742453787662427583126991631162892459128930205766514622655752331266426800856868409678259948241225566134313066979093318826541571059056042203905010038619306772785630372509292866184746806131867411998647071012228140668832893852239268801091720256499804547508607405379368536878505565506761439954130943369985850507306126699395703982289047363239027875006165701002050174466751060008220482336666675413568347209446872944712968788095738430497948299262789761068898531892846092392305586116652292388427403950429930880604172751865904871179939409053662916578457284426657816382361385072656210269087846332664537256416085538757129647968669112282663895732142159180055182490384816371196005439673348244141828106995700303437081163829667715503728371514630501150936733159990863026809196085826719357179466614875478506885912518173849711456023426156539874044296344557776973469024965676368021901658235632630541380708563012248767575155891867587496818653956772698328051012497965858461304166540841938661698173279509209738443802291066439349395550479461881552403257077524652479601794703827239552659941575497739829899151720641257368527458808656449674991156237226785265851999934820154688711700688029935397607382619439941441581442454941700225332534387281052123469514138649417505007487507949809984097541014735182752318771998959974257144197172816504982460664689722652377693576700916552315004517977034888282432270030296048782607797428765588101534762138030058174118862850126627217260804184207548472940617235105220955962467164982476648565489946170186416201800771882052856310222693379164603578499694077870924979351473574992291312262904819408952276668739336693765720740448336406330617950671212113066096476533875731566608498058463786787652127672990384976870471766110649112956231622335783241468593944292392497849755237834215608595049218327641473312977029950738092965907522000807400177662545588377694711823763432872945902672120442091153669124375103446483823608389372407944456499902753704784812958644715521656309358050199025020235206703580014214039063402208734580521082717572081459596519190772958437957743843123629522888473546941659487662183226952072330834823372831387154824317970977971492923369721820832440904741938299000741831558911905675267155016781906981968963463536521941520495903823247245077104166300853634392174379589115038609501842220327806506729234741683413365631531033214300818360744978524289372509724866691179479055703458743479239843929119563847945103428253101060715363230466325145247366834424435247380520290020753392490691821939259207375733819317920854105358095233747850541159324856094207715937970578810859230082933135208802925085940128824532162581372250357544709173846211143391024332678515224852767898020530390287575490256859809839651802480828400506325481098978945533294276141472953022017002410200702506373870191912113582875466915764161008577007965841027041460846656123909546049366890345149584663890094754083497823137361881860770790614960294785302031339251808485040101907855810337535658353691468686765451706317298857090381546031632723153924382152956922081861006663867895551649651709164371101698281941263254269328783452216503561484298782835399245562423879398600126298554406292526758902383243685872017310136823479236119660499269054190517831426401511269554009383329861084528488803515107975150509637922075438549525611726423656155028648846839271983101705892865687381161785508176902775317580230868272541968303564951303811634977759146901643949844507171289135512455119664251964649457950041911609394030653352643741397568726946707050377296310174876703558798698759785234311617968442278506218151405553470397323303342657035832663385536293418495863506311072658521380624080888570263228095545381345625286678902859177023986195300993734953191717068257051055308267267018625462116220969605733363467742484987013193340169726796522533311641557108963191051369168088418399534015748658678933428861341251488539639528284673892312362255822989666883535911708168949661689947030241265098310666712561236014332461513530332062666127434343566789228276448974731769798477850460068110816265805754812593417349260713159119884072737825583854877854814381862703577917075287539850543502924396741576062231852758915067026558569137672127495639792225691947625436378506030079642627947564038838145446070057459662065493707449428011733000995792206798730654510735640255932840618731923955642084879977173152419162846295314317246881402339729214209837842351830993281797410661530279895653805806623175389674479008189634350116612800285458876689581747593832536031249018305628556311906100120232502627631859708954019566503004469038518307953717728035393986581408781334446121182865784641754022475503719945957016401035682707099216648494054267227541850898342987404587320002153763143833293203587453168033435946423192427324137732915701235833759708289689278916334655028831824480776479360385382895172346506884330771565828010059635113148720239095733366411416489727681244977862840568679075988151530004530137670532151616362854028012686679160269443759972764049753031004467514396295273450405378873823167977235650570443070093362328767832112826543358015258008075531028278272014028865073290619850856802763612894075124677032043423068811480404848065654948943867001027636767289446918794566466168133210419400823195789138377299465002720805190096804529336608382495921636532709766208800752620374796247375536483042767343587279880537926187665299496182346056474703560118681605863121486959660272949370176383610683617033758698790648810976751277935311835086479150600101763731315026408849281970149663732716170211419944118878763574061242063456741749957349661683296894985104596955552467448710746872587211633012435066896401053398855293641475334451339844863704742928762402109147114996092348966284311266267594724993208849448754760631136110041907106664326920149863240369569285290974598461243934338399017666481589450498759200626863271638194764983359159171024089906617440997725763292336052223250844084653518737175161229112873301502811056549793166693895904351942780126326340164531782034234910944262731314643197531682935872362609125542646290885856808620859928970393025537277905146316361436976415884548338847022887066430581907443548403516851373370568063705948907124998968671486271676107165171566679163564287871584290388026863621766202673077960561291875619189601341159288984406532990804567392481785785812144832465774883566289779377039919604891864052513948071240810726390086944821019401540482657202233871462941835377138759743469752080958211187526269210512543773488470041489713948041537091493505327142326039874592779020546579851289749461562351240275250104876530718124350185408147109916029281759413692957271783845125263409356636010473227955869216406511009460339286115370439727611443792403710342218500758149815988443504568658813145614567054506979746768620949328025438230038605074269537714986251703529045954388802154673653049051758332121393608217152463034831533865312379730685067163895650849417187602467411724602408152202708210832922739426074632542997890369691462490691179458476675740700385835589999002558840261385401656002234518831027658029090579273313246690449449286913785279908442747982311088351834147996890691602473394597053629584836510202736409417392973530002998907709250697189512065016838465476578233011121873297723105056335323900030961474845008672102135282850978318407693009715180120528091375909132804593768722343759794026618593061327016310022416029566214930099169102559655863103698621234759437742654611809448123323679557470212456453116110764011686414128743320797110930676191779029330093564262313967140552769707434585834000882058166791953038830078770230403289379146751726198184377654371332304050916813840061193511653578995440096000472578050404560937663608540387381528133004447339927203092895503071835564950878120036300006344284816491275155282749026301066228974521066464434111829072140846667459854727120475630110356707627662256089400005960073537194058211455591449803211142503671312446203459881122228817936426813995380523227298861580053380820948682514018820287662893297283682206044322264724741047953090028446740167223271905593179796801839588719989362578786044628646589231208886927316497478390041556768065410748920221456093036358360292559768921403431279179268728124425235858188588350400338146945743480062916906052175549303491063452816123609236402104173700634272982801943778232072558701139867864271520503896550614236359991798027212072234194242386601299692266812165283877900155986647954492043374383960474398210442710525542684909287984500189137827595738646169000637110643952564103050781212366694124407352846702855829714080157426607916331486950316687398908110973145954538052331517756285976222956594037993255046682950475346712193904673641288595796236251727910112798441393604240698381751170122376739915746227211322424799475178566694282940160625427053995673585506287339305278016452339190081536214788820748278379359879810805774034295004481014855760810173468442754005681113019969107540675009948249398087143718617119169733100464043641220224218753352437600969936999909714103401668490281523535355329268584279931751840544735966346963261267667160151184106468381096841766903950588336536176179691644783925752964864595974305490994236023475232718987745289193531847648912151926376300857820063809098883532318989020301885860187093436269535939683768650280629951354831738609245893620111135958753189055455887027992224182964248852102349738741842182880689148374816664783740299005999041462582727062515167641473958095914210859984393332900532615356249662276777414496259931254610683176122747556368524983632343733630711532042100965610050637782505513604012276123479602228258381399767683509648633774424447681665265088771103177311638382332036089441021343525877051383367750496779598744695901555098768264344083338402241692037254801480716616844616193312670588492508934126397836983172352061629349961823436764294033560159614109347169910886631884685092749136492636962241317809372269770550494929932494686274945952114408560994051776655613970485216037328205681046517035008067018047644883125559871499521248964312815729312627820957524420187227157462016045996843680500603593985006925877448719340841947947588560387710294530773351408809992991114646234609178559601605210345499315089692122980080395168977925889931868740722880367807508209852682059055671178704298307950063215284848199205357482798179909271747520247817192846753489246047093011770454799734954276716188921906421326153307581737289854852552293308619497679028394239831591894310261289936414696379938496486028429470362514409578537839525804748183503883121250344150218496399615876972429615616210302764089100436339125856956852538166207931262171542745697351043863550991939670692106028019360159742487440616601328816300461877918407742450896993877862710638376672544763639827350337677967592535876759766735231282200429780657244721119096404690741412810160656270279016695606726388585205528971209918829181389470520045532447027270945644315956277007359540451519901038895806115892737833875168887022494105597303773585788973311862581967117832874934949960890604026646183810520678135188103647227234785352976663232625791425100780502262698542503665999681475621334202409518400531918564836427762737240159750556047010997634538322643572140119716994920833055324685768338992175814145473806514471641557608063962901618443958264519641009271327562996894079396920865981337940937722211378064415044646188472215073834766329453449569677935701465080624748073717269506544432090661129125381129552545774974569476019264437401082346352103720992988210950406008005412178764565212117574009906174477838163198184024431930096842970365605431027722637242460967174872420982779717787647279696499241780696039235212613163594178756546553984711076948972846691690854093260882807207682191345546772202935836610489740003042776259568597113326139147443184954358568771520880893657931489074604309505948597958375053883213080289807756696944197125063560796196867429760145676313788999222036469565218005082168948973615964780198725323593769910469950829037541309965384417811110858625968679935417497747287717414178301383245619173542293665244350351309635054872206897528091342675955723483302950018750914949886284397655295706047682293151234935336516170277436147711035477628463581425633858894378543532809395504412899170526179135582393330849554107171367825018295203442739817276136648698595707510377376866662374761004830246438375425522110288151855924668531741107912011014254195581280184332048748595080473964670927574638238583010825662868191513292271783349686316822964487185920558852922171343409430827916909143853170720311636306535383059218833602283147037315332782248044040697236403776148909765744632171258336141652502516337836996961017035371191904763063857666688362258109893368872758462455162393181659503497766136082371012652057668236435272250975489123316029892562207358670330541230063470934449393172939924674653362574508470304908435859377082237616360631065531704421403412470729600611417548532978143899952301231451885396340679637358221478658722271205318253049010485997829269454593174931769356242792797658225367538876184934646147387103877674752775041775518658497320914167686916072435508087520784638615233123295157502581246963270449627614971113083157745674970354735069465237922897669649881375999696350701066864016661482566464245712228901619137305379015191896534943252705667136657699725515547390675330272304426211857292180578109250008847991112709783081326796871944895854064726451536806121484963837147027232149935713099643257938394880858702664224793350400406384457604458434495087332896280839004464348513659387320487415447764241335248471889667122623744742527464871995029422208233011156726507642589940015516567764648649216108347521211293463794971294247335928267787702395504014162838898449849335246581772699734417866405435216164865418815664156208076495485729418984868639259895760476981794725774648705945882586960418439361133701976812068696007307315779759522433715383625768049986863253509335843357719539166833760543239391672929986306285100178572213859442092428026816952465080861328438559254060297272013882982584245643237309239951796175409125234473135544609741955093037329846172320719975924416889325043591233619078702768865888272136793706460421991012119853560502870967812876982761753903323399362383432684162179701060846165452648258361285280965934250516113603974017011071692846333234940991240102013106665273843854353389792579041255529984429389610966611766112628088639003710335030607788768143862589848425239889997776081037854073801624954398683854735636080791318008919164278352230496625859260819710497343819802050094051833657013698276015945022388592589178265191733105712704033318147128216826639560930960510889522901532152879045366108318802585425052760848903670446846832672996033361770344705486987091332944656218477070319055669667144546837379480814636600478706903311745749705943853774123404461614649803787110379498560593234276607862043183445277395367132764352953289860481660022120855708281648973027780799451135532495803499788040673383059247299899033442353298362290991359990366640230841787157303352669412264331857020199069557200208813075867881238014833125217814751966105032072806727670131269106783973098229807656057866380675844445459798480449105242838269546636447554478415022943809723229244109922166103687502472800472658485181715303728583849139339608241552128414232755485654321475064031939360603886338009507669681184371812205036182314792412371730936428764587935446984813186425909318909781347801950719386575637158334552506801139798129912158673835539740993512140003532083637252238403667103620372585332322264028021462593193641257221096459503327541635930505021132121113212552908020937909343680519360072001957290242472999417047307389483929577191389911021107517304346843682814485875608060215071322068159521857072634364607036227259437679729564422456534788388976427004391300875068773545346339003289025561997133203522626834940886931242792020694532538898379626865308580040932816119081307896997652794515149941917496884610934496398639305929944549460735615261701165534941084212024244471977003030445924381566444783896854825042391968392988159454397362266591791275828881776762974982813527709266753241595020918286392616115260859448718118432950167515574874409009822512469511332275710409039528891013400937785087662622063621110443524883374160046538571812816275713495592201320475255000539153298637282809073748957440994332097029118138313015225922786677562316156410712434086474873762902398710481448718692073927178846479006513800283745821983880157366387097303704409417344038426724217471776304178157862011533151057763990430978644093376264074034277633289777634197132424376472361865262007298583556156777205025842854791461909136318015203306967649627295442531651933570818404472234399458124544008495741092370308708824378371058831440370877969104384682028995034893687950183870805945631350335118162305883308618589303564944191785285147655442964403615844077316482943539066853483924029821326719505857366177515947354973825678130795215153408023400139236759643719895501884448221834584214414879195600077991967460423143655308466529956047279431553566769936040993041611859915449313413334496918888495811027217471612347626919877047935971866031244604982077382807459318018626947801012340363206950877314884646322915820609125812419307005715297694702893500515981245049592345567077504720907766488137593469220382811814123648748109275504653242984106280043939572791063493745801570253675565446060617184650716272482171647655597146355240531146643678582711687124031569608174669138848358069059025163440658613334095651315876718100514787254638048889624468303238012773641764717390996421639264246075983297356424723091087524645015899254044077444967350487559236318285337925328272456085066211550734134250764838761942947684268526385683166457981045884752403377502241463612536826946302568090976531072798610306395142258669046230951991105390661599205244724071998897075164340727946456137191459624646383910348750872418255661979681143137438923681287829082689920799988788445548731642354211005501496650262149202516197806078858013383842047935640689033414517301423572871963432706231609588773007382545115915222196477667683150026115505928200649755033719404907215691273170661681987471640751888077920345568581315598125903967013687021305832512040095421830535274933914473500304575971475443365193837881011678846369221470482169964524106225692868145904721106650271528169140750252603007166239725720769347356586372557079139969517338686505711472111918759404810801289769732362992996504977384983342936359791657883569665555363039085392750893582802915773412671074558976624080397771053712717687164528577251510501920892400697212169121661352397004283800307239084817569091023387076209815590602244843740975282929424411323149813023005800039510152881436532784705153051459235206504631560317251436422970110790271288441312197964310564050078184040093253166063109433988043624732404560794321056143246028480896182652363315532313330524093338866444676737428113869887368058988400451940755306605968102922658353378301914898017476134515744321641763119021543758118294455147919282779985016687175866431219222377216858476050875547208123103442144711297814555967498660793457615107681807885685408500508361278448888255684585399614763345948864385860012375528073375349843202953534734630950498950241591578390763798245815218833026305211767232612732039406673988935381397813569881987256584078496564775859210685215459905957262011887344484159851923573950232721595794420074765539409971668935391278708937638277436103584701283638598824774308402808347518007153254892958568060271170448306737590865995849251465685830035335872560884335500086864196987955997143775903919343472279846346499621593320223298245229831830612765928865573223542550513834044441506578356393560882165379854774268345511970466794514226905838219623628766640702337377679297995420074708055734230950795697109717474304600327018876345069410549993634757029723781034517807429084361890073087294311719745901162603407718817425232691112430779138617214767577151702392514397246757449533794830324285874740605956326612568584943222669726396170469550493125501691252834370088521076464899576303653105792885097365126931090133303109520398425803193598984844699487484438137935820485682673988548280638529921475469303502804221022782107306137318635401650243720007193787409734460308266870411844842144326246863975997665964991197629061791116555043653907932313327706141200900814564418296827865680058901515371709646476893260511660371701313547234760876987316126275063299073131593256678242862799297265527964844448892782551678582162618620724283434665820487833125184655874100184506676395634835117490932000497610428408470478371844909643279105612193767491500663738583884099721019951765919860930150698762267999977181746932156885331964304063388577974107977195186555037166844707622689130421891301568211131774024126943967771926658587241212840401221061057458356081186588430478337387905521325833118592562289700704406252208472855353383136710759017034752956488669608896710821744972391199783303525772817040770395367713730400038479331244924367819864218216677818566183296871034739928724332593720656528329775278714792204515335922675190739976429327484801401397441042667108162530874963348175534847794531325789644617374667363967317539440462496349461923822768027778486206757598629960461451011489273874450043808489975082989839541349577831240935581886440324981378429568674692119553629316849505574035334511549765854303048727594265495195552550332689289383686045504053054116062613293757724619518227689595225502444225107382975545134098498789025114995909654368352194443654879304968052545633985269973661411041173691515226265343598201045542697546284585327097853212987381475798158277425575675897832395186764600507429344572759901770268147635117738715281302239607011794521214225153498170753195854572573085513879723091050199119651723663385305464503189362526119562947365661642989721873893906858707092597464916381207352331604327601414355021450215699261921185627915185176106979192560060748387511091444291459106273938890322742762459527794814473593400891845821674059783163911083688633563890747283792681084521840229561527704055971788121391650441227175211053225299268385648545668718799886630292210348943817366631421351098954648260370904996858088423987919753269690238777470075295420775202350464136880470349874595864227628954583192587297080307911705469621285919070680731310979770471793647586469139642114703563902127076646744819480934897576466212551764188812655322586826684612864163647656990968225026464457892816111414528279518934429406353939671812353929287207440907986043421981823705972374870473373697728049997963450430279459393472281003914341234699168209359429820135143254964932036020756811922563346780092415105791620496060034805258911338776715793454476764823676848598816774531152763456853700446032972289235949801899213580632457236422550372378691594436170449809192930038127401123774895575218366608568157774733901899497625978666811867792669880120556837469956633469413010254833753146363770783198276189683200487102127707396022620670373653977449527641535052379121141205866044766173879866958531448103250404158270000273379600441463246545485025497891244537906948220358673593267025418653136811219606403217886422943903915781956749258003988381745434550208965724678200749039038099992427794364477671451812452525013885316260142222166497401633042475317408045104120805894128804586150419667208221499016826348713033596692146773322561293342617548579339109018049017759940830931886225818524697461166357077112947213902629158786776845605335994884646526055406563285747449027650793048627644304585395892656639491044681254931576806815863334900029961753027012547502895056992473810231958612844709125703949406086773360051310792834329994557728065777891376877821119560500605348282805455666688036271125127710611824605410878440078751370131763108186521929323712200027480666806306368668506822890003729489414953481226989031155343147446389280670455962155391561841391104910334743557784956487120632170511695394698267932527295432369028631937445077675396037564186817156775024419293897337318146999543404110096502735497234933628000753028855014386886785797793792074691502413667568485568093964344277173639843950187244198434403494431484911344940918358659517252960273103265020779408652337480286877045068804285191896452971564449329906629437691805297907760313002199775321768663734199330595448782874827106289649673486177123374661027316527699866310381195138138859440407349802613396239708894161028239911144229485703666033221886750220404374796288185570722674668705038043787939570870501737417190536105726274456716787481503435092395286104697784104842870709654231240165949923580785264975450525468814174846571900999903025248318687384124307405160303979974145359092307099396405437646378443087282223866509945218878512679714469565570012225089041511856590562815408195579134524088983223100883787808973117661996255180217231401817715892231872305490909811976231834980674662239090300037694685452898885518551316833601561322888354296354004771336612535293165521841796888931234033724619743762880692395094491343989179549818604819658609066404481532637371382058228690524613061041615103574235522239903765211410200027079725453400024881202002266317106629311156961587747150330901516333446326389442615441453070610511216430118006047202587909435602651672585013549269498255462571630584802942441579692811604623335616868453595232942163793436006426694133781528355720089617989408916585356226765556453265326840363022232983616886602694857480470663108690397982724891181057275850543902690335152418417167969703855708916670080547255149728899321967487093782711303291736735875241343449985785603837234449308756414841593506903542444479844102391099186727652532713523064271077666600462971396665480989340281459184756124457987245185585438200452151731469001058759051857672112854171329737441571640059386740594052212894119021315239106065472096712537905775440366377890246585653657962790800751824344270534418166035479294476589482939616042201968036549848589116954712749586255193189545396595594477688641256861615642257078428931248831522605245054513867670059742036129375618845119059426351914341557957085013970741594625909288502582310722865823735897271337779921402330841948451851671063741418242043464708164013070233780829430024489700079827498034879141204794276331159291704518349125156870423607356769911064265638599174468043439409589837202299227878886170732258549299179982677976746804314486698478981802828776215589160850959854813106082994264043070491923470759828253920002420212316801827574452313862404904057720647804400656170157609595402423217553590553516500624895367438658755089010886046574939931096510182397780843771233431096874361369312640458849875330837121897985152202746718848563381566088916445076501841536176749995966585336084179624583478976032334461352906943652445553746674426858091221239497537140778831478580986325414345357813889239066846190496033205539865218767049088121790976793104845287337858089308074502606457931429011181007230222408538978904990913498941266189111866733337030227085732620066810055039421546516918825680411942111673939794886372064039466365275236781272215504435213413679778193811063317820529338257260904386364221892219887350386987278031523283215117412896170706880078446532841146617904975843541686702048581680777748622290235581432623373971928233174118168115827264362150669818650794582786081001105990292177841334479192957195760392536472092163320675405196495241216681173076854514359739376085608190163596634323386094336667638000202988888415433889919795528766176564361892529272743517059194419885933604417297549108312171758541896629321860344547309288930899837631264395062085491917447556450683950896319094902055876871334855287287027948644426489617989797644434216657966882452706960063137544525565938751152613822193001509296537574758317418608441881817207477155754514302564782551592169499567649287128933616356330696887762057822018569099919349208535174429080832123981146622176547872550855260055102273181616803849328532412296020739825985889468952658245527412197633925325807283086257937140829517053435860482919816401019782024740381297344368242482511312457809808177190460534035062620929254378749417380973440858205961116380242370842709433584381604556522808374368970643499321127201083525487997423696694010187974798823424759900057622478457963677130098270092484924416522219882477172198140717753289974278262526100227089710579419734961258001114341740831864058322338907350168099346408514328555990579577292793215602362768384391659532091245797081854277525671983581302424737100766370486554013093855224699008638648645563044593342429677467839716015163583084494615775875083976285940124344864757908693375642119422694125874545079587436911614555850100738495262864671117164126639925177932259643477060928210543200964536348389108868223116810824214479947759526726404959793319968463049532882757476517713539797402421140037823859004183278095188267224397196587787511382051872520627785287384591121693162066038620616892853910690471992274015963945155436891285388481207673832298562896236521514732674563771675720798715746753894303988545157986935961253334472126138556748160786555337460458183800294617287504897407526324116768185497505962900366997336560261135768778011453720299535361522579522729432098121789432567181946787593653054581110089185187670796352683388550839009992725124141939947738529870998819678063727273265511008586287520302719685068366115120317672151837174341300363389363677082229194239844757597621386663568747021383188656550744383480352548795840660085734106972347465335536341928688295880096007453407955391500244551487299319260279383875925134951722356480755606950989445233292925246772763951229602465027263537117612876023176242837573882492490679546632722301477941703230501007097518076269721992513906193439297225110755076185842440291674293627396464642175763304533284578317290940649816989002566037406996688406193129341221190595148312640697865823888522921826434387144571428400320226680487153356791731620475353050130111682347494827736007764709794396427405856171190959877174038435046426337856465409793074463118585919743303785640780615265431365383348694897723812802576718378762694024866916549069102118575245054908201902277648906567503504340358657913943581457286912426475115328098244331882991904083540251582096850725724725449035693342642673990208168375995832705852324610940825487334319448558878216904513232594510055805911893163867399581323341002098350655487644851523258726073580970388379748307720010647955218847558654309828875368853292366581137121532381440658406474004055923923210376700315886968254621457419445300777670196869657778992417497139416560304862347132912350794010146291368693735349663650433605256267510103344759758697172578372915475712704156471844827169393678971910927082708450576598606400539351944700515792354390587106682649873058531858980704541403920291898959852352503863510767278432834956313343213114773490032388508522861564348627321061151939846449219293636394371357938543151459971770481761782526336900440666177348803040187012497406763536540817373678856915090144804984757847271553410550584030483526592219591338081495085104539060460760071387127681428545023422666583093454511640033513953453083729584506865974963134233616183013730587385929187444714159006437564159087921064148029818224186146079532965114839213937951887251687615837917956169038301456523681301095478635793521829740472939606668531964895400988482670288382109023139321854868186697456244773311089450320656975496172068798903491045858402006866622510959854198090476444645258678868132188497176602701339809130634774782250764971557451446313229971888890756453037698083001996386683889936447495855218499900039814711761626631236047730559477796155475818690081744037957295562236335943101310567405254981821813463484765188309585130543392619735584635529329079949986893386566859263484231810268005125361160911703104506725763937690332783842285947330726279259224967654537239164215629317373390775263571259293067937392208070571583729376545534079265922245853645691850560347769317810680349077186645229870853658006721979367798874172526463583297980422557069336981250734519605059979796932978602317011862703024470205170763846522739136242507909076067624816733959344982468114439139566188165817112492759604678330136793786638488521462070758761324389661850770388832158594222057505894072412727762284841153458280228379082189644325609970346125589616639771959389854165087611332830423788756078969892636666610929299439343048734743229766582707396038116823353859519178455351282899812455628170782329066414032976694479909168078863924290367806897650490340882942400708588356876093386147861907015129965850750778591238491013819888572914770810197434509184878326434744910872734694797265751620350558659748048971397333863800613947991896569163973463847110472858790068912494589185404064207702783977446576563954533791278091013338681289828100018870175323679501121750295838897628213696819986360823038129249474393549986694434346788252498959827058043290731396424168129909887198571655658660941896513119401749162768053119948256345179681073614531265386483268088422867045857878919534105095344042661627695296660436595403249473048576111283054248509355741816969859794979743476119129966343463593352065802458559426243611833677223629397239304285460687243148408796948864417063537101427526287277131044747046417990101669627770798494558742486235601553370781010764233135547689352672721646981020740788126591178429462238713929501837134473173583988912848712471549520131805378354985980927807384046442194711233237626705652961130520937328734706851694091790387081655252043162732466017235846577253243420446403595520767169557745226282484379721286113870363176594815535044261367653157788554271976610140229227359657179415569425577942077627813128431838277442636781764809265186896315547998883445793679678908532180191296079294682123983033441879001656928706963046358172982521540230785303637475006058731810392990858142639722925673086308963411995514566505457951600676283922877480733005639970929749231260099966977327522985916943288459753244197544899319936922231880495925205248145799915657840147636697072597543151621343949528599240006108715950233821084164806432862200109018868340460830226865310804149188163377235103687792880073727232999842741627360193594149082126290472700885196510093787256188153412027284580107318623405068612822463276113842286740447940967183935566553875677146429245366675653640591154120254175776763685447737334179600894332723878601775659965739696398710546006427008796442875290013184446422020656829903089492311832518491296149640447024604995321681276948749824720065599334930697189342875680874211540877285150048803182304637944597607649471690883522575428874644534378392558825076042545230339553509790602574186997449275068236353105547742518547403546182713741974712340220936540759174143781702313402960492628851305376486643872149913889344933870773369076469196126392309137486809736355054455489838770599773491899636450504404245028330718313578189957516576589184616095331883380200722596623655973766312271304937238933904546267083439219894299541815902038087720248478403104546592671017043905702752621387371090205068508494407918784535996630799266014029298725621988790957072696159047318655797961542631484321148811249141742276939914111303356871921153383493690968922847795090034409724677910208288576981950665410597733195716187415957653349454616444873420060795767992136959619316814629308328269783156210580620457664069269956924909085023906532951183275148043504741091180710117018569414534425666324849930115632301974139092809335115721577356941017181381442127384342716439656916113347309137431896511781326526199935987853729461246125165955942818362262902850967323458485048686649231603219843266915182970904979869781819825606395879994260239534989040536517818817096218135676973487084763209300025581366449540083983174236793718023826734246143667076699155398178291193788809499191540820105124552117034297210476778141278642411407252643727842564390669062303070712879734797000091571540043101560583425944031338925764456554331709160340414847979325498480085886472552758888035671099756636148926839592484624921313625802847337633218161904024696692629915473038520544015549552011764253130244280696617388194875835292510801375904506360647259854149234258907453113922194432645018831963271023103317470531338570556652056531531751417768256030331906287367819782755579563702836129038459352798224378013180887102288864034580478470935165576783813312398101520702683961242737198957481662095595645654670125631618907670519606437931995363284280506218046163390543839011227091201959200779119623800475387312033398520949959952578016737253507049388850177874263817902893374474383822162403394056168127946070187126491974405539769658088692313426070692419925139893850999751412127400824659331623149744588872736935943116913837240562428216974954705462963276601174665195391252423029985204576809012119971224351119552669543596482149895182325524293660223685319933910829402228075131594171268391486451221652872985127063279651804328009528829433454841233009989920443156793938770278719612209134903696206455223411413607598540099931151258750683780986981692408605801412020854999729373421773005614903599744093034814252252516276871371917297369675417805770646830260517187308129335517731974962843800870113951472381877233756364425591797408999684627600075115239798759898898297581473266312911905831725065567811176423640203502324888834140982299032971987957613405988099669729139557112430354726802018600274507766189505670704321488993759417769789464325096379900774684030341249340209600586540477012795910436313664499012887824564883175243994855628991092629120036690754361266719337355744644622506028136491660606610725436969363383361792905220259110199403476933388950519636050979423830399923216619215605450267746037183477673770820131044246423313509037718696337610277056029969531113579670355974914907234616681703526560544328895285114117410898079586179857658178338607724154162612220010748163047213507132034123196306613672082766445152083335369793434605560967998533309595565745580436337167745895183392138596693834191017093351211284090831461825644282802320237197191721468115397367100171326811507533699359357513936622608151918674938953644202006675420459844233837485839710774223307088927099857700229986859393790096121009302844151850698299561513650576026514694547132686913355548923784617292962185394837152041999171953839289139936450443823572191267514834034455112536577811794755430963141075569464436769622300489527324612340521744855516945983932017789406254579279124080118654431350395326465320330363179808198087983299671746497185326332732358723317386390979564192591894901976064969470225197560781519685255177419547301891112686028834619488161527647435520942681644007696547622713072213768746386543904953695350300108714711334457009309836422692008407787553773324125541976631935430381462818431779382047867110796494770659100106131989403240338045773587514473736762297517612352022884797707480141153270965695999660819303025187526927505669179336340201631690012832738516823020477693872798181575901408745917110206104679101788433136384255833811750853370482755525941013929632387515596324342231824629344216166458869413465113452297277869796955749356768387184391653979971914102288840921217613951884007759075608763983521986927792074333141836774985603127374712134075252578843230624092503044570541312694262399759229546777123014097379736489489085113589954367112597228908985149712796342005799844913174482552645697247094158323662396099748398940950285434306559532175972623541527523715229373260654589674035986864041714508279164389186968639375263121446758045652475020967596447258598037587348252404170934877291746612840023348694389882889855710744241386474449992877075879107516580143046780322049392134243864139164921729669473757564676545570511046793552965019420646317529020320428521206458844646750208891317382897576422623708659213245943408901299778740486679423355362112214108697920701283044401565170844008642671868780503662996240544019403893472862531617096628170221909996096437884807978583066625076460186535796136746322693757803876019079514587830625868281690915232950162798105113677864583827877542986062762129889013001099499695062515146875113392044002718244279736056070241487462773562293088361733213259518589926240457624002982992343817911284926507178041505953080344428813217916263867464521446562899450452070338647810242047927550911092395338401111952311296801155704053441236010035732814813152841969536326813066461776475836873999940020905503537814489536764586740196099274665819181950735476999661421516619625354810250315344114641801852623369062244932855706516176017134187951451164514647079074371239173485422056528725237051655638806222543426831091022499480833982216848631548083248266953684175715288178645552688329597735873279303772993320232885116199727209835743374171572393146689330057968317544035562546626909191915104181603749156542540158693428514568732226695058535528995482048796270101313801540937723830344600838961973244492763128170823331909967254248410208807892906600367081126617646910440251673891464577733224084827859462371505280648486090818115791494977492056266451894099090356598962843088749431527135556112389413490611191982544493914461451394091389638163089447435573565438087909997769398913995974787444019432895674910607947485110418879058307864123622172364427873072515984884069003873927813516490005693509344576493320154944473421631974330587937275241473196779259283216758017408474205985204054963553197252610517028592711841178014014242242563834944981262096647824055094438538335357473530554366629095753597988261712660005524186332276703739583787689426567481428185146168918107680469691542086358175901616773325858796592239435497569663453533393218672413170310109149085267957233513079642962707873105113586094411052409350058623336159341308419350597481466867150263932890143331588191130307463898036721177842482263429998718728638093504250494985991953863752546791440523457334950010647417336156798683630852689166012868356887712454837166054382797450837341941338897636938834197314740194974917483435121848857486916674576676693398277925346737279537909147548019110706232007817943244511491893461079043702990950475737162125986183843918707883162716224076623606381960912818511219413290952478674835205447046719532626349074050333824294192076172918184562155670191018293977956139304450716287668645223155074289233000379929905785872919173786752284455687359108696787509225517991220332368109448466319483321258968069044525065742544476470687548929592426359109035540663213397123128625615575548039948179269627911629788075581196331469203021594149930594159425312020793215347853320496657230069588021948861909854586689450143939770381283796587827344804967678125761440919030495646851392740636048808373745938221369976442392354022629736579908809769083389392813553205984138377842386598604590224742137431553309116836416323545405073440708101438779947805527757809439736821961397920983971149736718704929534691194997316370735065206933194893653549862012709949830080468580473250835151120729142561875245489162624244462947483764552804034542667195248910600701470863724240901689606134802655136455484585743625223045852439111399667585205582514985945616907425620556404565248547650599985435524765035565169512977139846426865536152746916481997875473000348750405922510825121035116046412170200071279336895560990342273050349861325410571758201625273055205669372858323077844386834502408671321220987543648925034549890134296124233861722875872339203198825573971371270971359396986408150080830849135626144342586164112858798887254273473432370334764837082142051253709622498797170326397815606164795828835449573117948504008795671936357508552652177440066365574448002958509159645148798752983740311736071739154666088189214436708042446346757286110018502966124450617870650730709727630701356137118689580806299464286703982757768959789533455105765600488486562167050729234789456800293640714232561615140467300680600146536451426391242884567015722131140036347075436306305145320403164540219853849168053611680543625649342440140142149763062231912585357234005008503297633023856286865323428339813728660243858020452164740287790583538795823831339055841507488788051037398109970074112970086098361823010469905826883642385396062094416651344599689258884205618855654693642195181343031594880589683283206223276443723060686346006726566889511609457574006714776896091705791426738879342210281632624679592860225232546848800318822258357272874682961162786099314140762847640558714828075220787411292343019858768399522873150765308016351690324563281064949621850692565466393104888935047067224755225395607272421273717047059732366061949684347471129036966922022050503981420881233205259424688133636490802764068877745714649531592815158569126510844467817938488679779483911279340908659242024912698733241256135798718609933184473337136087736834657740365710591445707900186141701403828223353864780153514179525491562960550160379452850225068715117488952764746068022760336362559295336562448423429499137425538752160361859838005446289238853082729021624378057543550506488569655594015431357682915183247100880462151185688202122900920318662294736448677162922402611829287285962907269341846010307840101621257805622640410577856330779947740413514899151081552227464548027422578001834048630808867022089098130718714575500354186179613985381829802975173544403589722771066011271021440587965433632834181536459424657494612348527257522154924921906959035738913230964849403095631691263681677658446819633344723568596920469456642580246130560742691495249044815719210259684870839850430729279767556252077386810998758782717063943824853011338094296051554237290333073547007323804572889704960537735976532337817777054800456495566781350539011677425275037951077897300716620922812002915295678693691099556226629780515992775024565755416352835646903457552941821130847648751099804649190346196984117369196167467563508363710190655942904888294619604692937911749935746747593131274394159190980936734115720143617460750661495053810614537564061851685512150157552238228847126007265527544034076009263659163782147493875374834402103780405127962545309906707325029156396310164816932242540565509933783480771002135426511443848955694407388056174977135049836444319285815930342281042538847394097963822551510593910992927392595423360063033589558732882086961919416505061935549148769241418815788808484929138283849490743517104662744587313356705294126583246585908754924341104085057561014462095911038539388886936764772762387120661263237740501974407712972964310871914355002508052261083439166007699769695282407175673156303069663591877906048554359911363330626869494717965328067734896911564424256693460411842154292073241730523076209061979561525116652325216406675196673046871545580870475873834578222109476735581236731877397691294148765340207023803107419805309793774649317460020320597548995762285619792191032245461606634238897184761850788126353936411033690497276871679814238826708535976977531598979946062684944318166583297224211439927603354131238124337470773160507510506402025627294226120431945733518362629927927790114649034502348601301072333187972887013027251159347029247178195590480761446966878594352735612589806960195931658792758682704169559615633305440287841788334400789622137631877323799452306961176168308846532640152286542489279182242376339492526043515256646105592774150096109794261047491537964968058385787818901362244885469766125298230985118101913130428335447699303357562079709921955151773649771230517613070810858046405260192341213170109624514426719404794757220501144004011743207542897450844785676573826300246550559318510746283323730570333214060859119343626321837302432666251425876802584283382279939801426301647604701182964700501557266732476746894783598399238506091820077157802705051358748124764899766201287026033844729770300142778658041516042650299369422461502547989056039630129044467799518767289976462666275446343227690954991632404344012429843119352375695832226346099601328508107639330563459493058335134608905563712052496612331227356750649849683752751749464906612914908040712832659912855185253320942957852634211899047073971636456188186932859877280170469256759591049257980509088793147388592651917816272298054844896187084637170925038906322663609543557469517209700828596629321090389778020471075869521963336534244899555046143084578572034328236576614511098595815158934261095968586428950346275749163656259841052430074998689602862814960773961677435692934619222628046156349820577155718231983926839995689366940558762996612862537062079421338475137686852923656850512376301351742908833848451839393718712758312827952964943141397939099952397681630035996223234597585644865848807630951261778699938702787514578010455325928115182623269140816086286529258554753139638255912980384218547925126008578218421870353467643945237617992528061855327419694092014974763768641659323818818274343123261851987856063664885466155207075084287258757952145747757856187260674754156107349770536761623006040426508151379081731394823275756747177648338209739600511431047493876908719369456694767524950822750212589052389822872134938294771215667036290432807763692211251942849277470907101603029501838186764652465933875228614453416149659904523970969414868438777326655213357919826144528894122497607379532399114954256610564727106112652834915271115342965812230551887933850760343405430631394118701184143293723019210167641628941919121706441189151159011567245383130369714174001354769549777827562056289013243893576225762302975573158071722576101535306510058025334975982020248465082564285572935553011746642755235379129156743230026711465413718558527348993593330047439378533768110483530070134891182676435763040142886256016115874608754903278782193986055220913386724049509529920973833885348614644218841429042992107777938006688865315916096792820340926161820428950729642844766696187046350190834628300016117468514211865611381802266784699143146810696542354988394658031376751621158807425623272113669001652583692337168833877463715586034812712226025543964881770841637960793281681942704844621595382690349060583198505904073009904178460451136782346760596692369102251465226892419123984660263783343046246842074229042406732159097703359690046694869097525958524187600502271390375563783778383173454560170684378126816630329962650756259132140459342058892948315067708303179402398106622215267129553031941767371473870600497323757340636702999520244077610487551916981814863179824684855117839454350608545223435412619075692836325982439771065645340235857681871176892597572588019703610771023547524495576138084382867150067727276309099136736944522122979674065169138396199683528455585006164507957609450288843708538637316678716257618836663866720086449784545172764996081382802864504327401167452318892344995471994597605669102002834950731410078587427622104664865800003622789985766374729065012949507907865143930416280809616588861439473862942903266693670905362187014543307809827713838883438519700454454564770669100671755572588468637162169106820316402211315021500037712551713434540861230183569868492634247330975689855761894959645675957171316916934448740363767408562525027014620433546776278952817807962199805405500038198126315175118168901928196452885235470578754290816147485430723915537617266699467434841255209817676232165558698931664463367744479329027565146622384132110377558489076348695962324067588179829244899769385793156103503458617092387612899254957255983370040750524740323219108838816804542955051228652206806508217407984486439621450659302630422862639827884477235817361499236602620795671127865074055658390036400041103918575537612728737273781318453273201032303471257022679613517783040919474520732434182573979987082860988625216007365524281586598358134238305092235658172922184502630565655663367467757900972715172762865494182275563699048961092475469130845353020202859938013655810085940582110080065561427708607720655761730876494004105932791901774793772613240281804326679910818701195851012562394227339464919970241606061446728979104413347587525222982221720453514368865237903681445940997097965288710938631742484934256688193669195538323661573226730222963353433398882025319238454538366301905932868655553355875841561500305814137187388753736060745238863986694350606900654598124618592544329092295346377418502998633771949133331401563463189595683804815938005232497360926578548490924387859442293309673419814113102760008456196159103667794702247744290898046714462945833088824942320448882745884444346751880450985675176268637278606002236926488944695326930401229521971615173770624470647191045305126966670979459355853554988537844398088555263836998167445536216124083270050536026239008193596948765806871650072131724075632361593642055990518004410706971791469893946966252247282699541100908984216181908624825434626169378754325925324312349336627593903295414267944739734916925005092469767318889476480205380174693628238564900916946948317473255612415559127991519396201649029040192324820495638478438753597166201880168974546802912249160050809869690181399485097820147909339072940580256485270877772014861291011058170020503287439649396294842146759446630301573181292957031452769325122526627231464141535521577417278787246241066378738561469758468502245290341890620833340414653418747596372179676181053867777427804399272394622169091660350592793932519231874944682842257215741687989731653378852252577206546334197049987640755659672328765313153992600930947090553030790345500602571420361165865879317571603731115083460999503012995814458425853948384552919871323299728216181667576586265928415300646660954738902262601913952190830470614720923973754010587538282044135174800347604851730363097716752022561898465632898077068821175958045102297885009483198785099361583198112333487286995270568495779158101518581829228689541564058704981611468019231221182166611437249617856186540811434361654464297144996950000257784813946606041641660300150367940877395199413130299232105911723071275887002280823853409264246678426087201381493510949182513830426906198355129946884904823124749810224190509427986183559790401232500872741574592915284649939046104236068156096737609259738919232394395663332708970942999471553651122603170276785185121440116407815573262561258292183830259907200954420124929349021539649273182574377797792591908402507166830810256777039500719256376434534422859534395772509231512191688473320760366406525229229307428321138378682365174030730420271381614327710196144200724407148284395828112657418142431998383916293438655910062988968672394637919641443031991677285017502476056780667068038898630110613963987918472086331175072217729293467883946884214305774859307884116954431543110888704672172233646861999722900328023155245625890216908994685890322557016170228584783462546522475231557793763389664995567087469300573831260371787486261604085882219851276181761683627314166240076276924742010673884972254669864869719276157906549321500521906049907178478973824283397664887130293089993961019043970347073274552564417517380796475448134116413949523058668634647214625739744330546219864824761240193747840172529578614204919902626103864963958842920589009170627472700251240710633863323429608173454120415738887056480791573913314696098706793975814824312199420587766094515290994128868447609436206359098813749255196793240040565499528930131557761471947581076861799148126832379882349575718219360675591214358780557771753960370041922539088111112805657208509486594024223829424319454339580753897136393143397557676152922738430019633072906371899251622391310982850435596389899144156839228582725954926351518703139746595047867327956546732286839554986369616226772532915690503350916248724058462965004949223631000275459685769944258033316240263242126367172312838217646922733695492838946173600946471294475465589895737773787674058785636524917147026907188369658508565776118853260622741842113774658486940163787328275191048399855686700675693471929988531795846244141657650570691372174372547220310834367941267830740175204013847631709118461829214920875373486936473505681498208144531174823450446955221386503989403893818811656532637330549462570019592597992980987794485616984802302860363886584624369772456126248138174988131754098530894187010672956526095090363739325264720482976250454931310230012419480470129682444222929645717621430068515499877176504474012671202614428921779959554785976703506080135771682674779989417204144234434609961870725800654153952080116656322962799612694114749240015087557956647434304663273443610397965479459002573361467046895088806007302887019890401506242816517063530723615637280110288696002529567842773160309016208863754796315043246828999191286273183179985624187465595156689667812544133447629084027969158823989004271093440543287852677918382992306144733167147780901778207458480676401814769291052095333893328754978348481196315338260397089696161558232571196459498037234392025123493225010022349157650045113040495050011925065660595723314016790850677005658594862916443220073272404754446526943485141194368355118665461439678830572041209525424965580425522654281593064153238795316102149203222157829572889161864865803800608494904246048179532443771515466786056490413868818056812860323399689727286485265022019914989139975235282960599425300986570515011843609998984016560412974568414485130169430293758561639299394562762060683027645511378520332265131526287731591586318478500676823490371542548632199298241334382160991498871594448187907041535564882549394004264053851389551544298893421690584482155073160541433315868413546683073694419982663502572908642950756010481843264136306337607210085979115911279207023856627759627583766606284543121057045641171956316563588923363695438262177339475004775757624504598786142134428934049601951876991464295221398441124247082477360429913832701970659307384197780138974876505346161518974344971181196483598835656308497842961120243095915980271944851700991246570839010491137438448437594888478177669082580923327036475227108521784375419191434373097058790386755316660162370545186710712624616404767285129249273908975760043836376174430420378549281466692827223330937847711145161415938453211737532136458939786106393691031265152869956283639595817764175757269518619246712752011388879622012846925327481786348046087951941565013592734449233919491122420156316985568419631395773170704124706396119902176247607230510748495249921378076476735729522462934043661579590083615944368476300343798572822843459868373407903302169395219461935360271162050300865413911912174434512438880988817639916089779070411266304982735954766435896889114307481525362565709615836045755384504241368382504020300259062643239928755731968822858487881942579259130646955386487794525629720596438438299631046332914540727582052760187366598330622468347644959863637997249122187498075585501333083060237886680095845820328266396713975458192725927100444470812481094039863044276311859714280429275439698868053420737082395479619333942206505961651438438577897900308514501850236714011465701114317604804524003697784103724900761001623835902506228757987504120734469711050349890680585586908339552650302782213274599228766837613589089502511762417849307101390862214590576773937364053484620313423610859882550802042272464302711654787992064253510955445071551390933539219137184358698865967507657333016371311880952317041720495803473268517865191608857641885945596009087935003578890326985371859453297703722228999375613001634343537052460180415527273155879487972964620681522349776140323611895585046144945277501962054140982872515716820870682237318159302889864743621508640614468441600726392737429303233399883048920460681748201498474390230218379280490510280537662776487362733249609104183615691638151471517966972604735308463830920182950889089280167357393189621615200591525563347267484544983421717342570688002649079545264541860829176781168156817317339690131135600499383980918230226622461780952470178791252493569962937569978907928509128814650142567538382978199438073267080993752680138537059165761348270538529924200163699875268754441382559016582068951054727999026026444196531906949534082477112561004899246833439659868683291356384503568818611279803159790920450271720023174467542277339601077737191418371805984570904058425496030069788404380877432653990687701490312259450603187660103269432545724764172899263818749416876240132432480361709004590019348927063207323094282805819177421594123738298952019892904361577151789584848857983581591007100113454407171604129778216345950343543405896140063769371210096140029491392954949254629079708305746927122586773271526496090165948051762289400022221250967364698611248104444459508948274887287813012646103180880377226462871574777498086542882403379686800281770413557012631441950306531303391168558149029597479649646738994243827233269970834222080379680593123467169498516135801193856530297751193522852198468596561172972864308025415959040460458181636422939726124987195726465243818130828502764165510067518722088993141943166636916989656455002455797506707034574108037507430434032360742815881219134303348151258131302716670389191565111567117007413832997430833479565609323626053583055165579948904568556700364644685528821293417358736388644522852923119442652256456012413359552289139099639351648204424562586795776420185347115607481079147842251888833834330457662608623633851017523572288373787246504056031877024408248321322621565510439955077055564419106396072322140913116661200883831525287144133531188657293892847874321752321844508546373540157308867500834513680931963444484706242690656143734750337173755861160328480803149132022271871373908140701908604455469458845680539188919872021204715489081025462935260042135795108069912732247176789085678660434127410114587367904018917725715170834579006245052282213950231424445176124235549323336715418938442035491630445665301467933470094068475106625000054741561038036479423838871525162557159045768142625197272090814884678095175940150134137269510239931879234460801477496923320495322673842269418530382005327421515718834263455867773236593271625172893087138529610277480031288906626441084861703126341702792128271107400793233753392738846617557864334273199205507286587943208194928635974273438692731347281841789762276345140188808836597707727259871303058219660053144161336443139603528303336892890152769898808702483191111729315584449413355274632496860664790934826463263873398601234474580909580453704338061692560951342619678130488570331552973684554695050000510508516310611355632654589853190623596979152317274986093549911509144004543570630522779469775307132624384829761927626093839482614811915767586593739121675645147140032174426489206150237541679898466734170173073561631450664303448177629652434878528256128179065464496543989579651616663033830346534387061910197846548889617965520150628301222042774055155131350540336057985689236455218093774727697894386265852092617465801448087377938723039496282867647263895043981815841218164935352019476067913899180958649554246301051402540988994500628080373233493993774007775009636878475314672105580598163015036564374200462726094014626643084875244285276456566245263032636991852406564263974534963951299117177183883908790669746863733220290675100888193284718592820362869419292397944846040164666290902376648113292288683307465483060289011764026367633935649282926999648147472044099359970862921503457391086630498986915286214798719306420214330073074274080847126405275917923928917541238393739891681976898458291945187530083178618296273644028479506547898091299993834943859170882824293874597938358596295421548454658654475415619713080529885717724841130066609038442046805157342988913610974342183994553391167102712184173843178857337416280160615531304618671672738701473435893423246465196671475274813459631747725992285825070638789399248509838315904313884059568991361919194830879038826645734106855478666137477211206765914725157585653606348718336100030784196395616482351103099823482822810641436644194481855071717302880074512954618955261811219543145512974890769018489363481551449868961231578720922121234504186364483582587215551442222228469351559833665682710654480883742676493567054727785338004832967391939107733442099151286755918889318264123265017787294100559113243353513390795389669522293309492649246985414301239519982077544362931258231214248877226884676858504948692462657773158562815992850924204663681901207435564486028432378463582348905024114119443510708320124032237854924738856689343343078143960865047247222595918704581316190271855281101887650817290246155641053109323256282844429637599455720819504222305292178228396639139545579719529680283247098310419568655733114808145340112023935147789541800754929656182571235383733408227352385046047553848034644309742683882834521649014632581668369347650937765641601206711851040170973769266979678605541778916933507288929967867093038865256646178565741121942617295799738584356895205748640272853764668741357281178159615219428546864089173934201092961020165391112901735697201147470885172778841557434612409872245487560994440007678836994100864488484797236991557844174971596056376180713448448343767447569971962915280588358101873607340610675115312860897234588456208514539683524451598846275169893121248497971109464289585367260716822797131202102599860735844004533372206465708991989146698586243212839628389206465392615189381712087278501650433009063824459912044568654212917751124251550654087142675937045752878457629120148155216717886295532060197110742328196316010104666216960044404716565966375327751136267588935243033525682618939948100389362486254208568403407922553540552460853770840278027452952816433170848163280515732244157186619849130040153490251787684786624807266311884052126913675409596492095226212073266251410605275829055645931182593622158415635497726911353631404251019886775265608500062735120277321066366921975839523002177064271382356558301785230459168690809901249875351244303101925654000581423801910076397405000364076806994083185153169483641847987509302407297256675990118691790362415917649957279205044968704459268326681780711093000994697905346595641323582440689495462921088058201146641125268547888629647309490038874229236358838010093275511222414531425795067174544612186849060724611111608907870555737540637877560128858009354744290295152431403331384340964332617559600202048001427871189471491370890423384176166817810599797056605159862940510152135269764280052637933837771911373842417799588196947965844537863064434410784117345798568888427287243946404174517581139894362749508442974881657276365303455949041608120914053837144794818316895269480421440488173833962053478828147302100362794914140284365068855363973647389193214720136894823143544942593813129390724308760478948230585748552752161369298565847661516000737635272811070567427352814769036653208767395554314796760176767967644863033255623605932854283468720979982332853847648290672240875438754219246899684939318430597752233393750720469206208867031145590678433141870382664997531086876120328334358701766052162346393957843871789356727133267214383775714873459553373661789160117503660828512631510055292583350229652619472183801507253663567058879705710638500490360471025367410220377844762372909544902606777526681418222923195729451609443204869675686845240561620397951226748992633519759027208847014399227980057050632007409463155032832953772532054229571978642520926281773144791598301381428352249996731822129168763673761644513590005775057580706436888038422454446584830363142250069460918585237867047765188532134357983981065234023770169694487315660304655153064808047934736965810727087089137793186539708827686279313887294006202566525836244137261388034594067761964133689370160832850151991901125248417469906586622670294926415750264292388871314298236562619670210023979030626953338270167620192366743519233046540443307806819181204246620038941274183430425468837320762717774050837675087822930450688693061705001347984003440788185919282487539060410703557503605107486851977128517892329788922278419157610784571073840902932061008895208459603234407827449430553274792556279666265308162429327279300067789642280551668425046530690081425315670292457803379966021391208899939412397338356668445570115403233040954668731412365619225900222383457478400754050060793302180227486579666528090034697510455740114755571885397397914618565075784783014028706429835653387246734344553790803572675770133237518971738520116620255059585340418047004234733367338501637565105737991858631697512875134454759304342956763189400695028246460452968771610244946950853196367520189693006320157409866980205360902099712287353921897804183433190223009159878820954747699289404353954758958812840936293221676079765066323550817441369250759441605291087698462843032288772110168166297506535342653296737146781541699354121942584270468572936911980138114865591221556592474670829864727200876641889782910400069057466572423889333665420551892689825649115486223212338416953836112733746086648905470684380359577308872397944249915575496466568028841159201056885916916463373661344327972998907835053966350418961323543263252545140941843858134857230205914993841227863768620793619262710679906217129128109470933154747743937313415566393045993073922741920559997345367576175628640169378782588817739527432462336278196135910593445612600776736649217222310958539136025526400309182584109379223517309366414033796112559767104048502473748048285798084804209472681983243221247776066955098170998510230113151531651086214916514062701382609777760218004568657880956144031869204377645537257389454280674558035171248042486554726831587874616769445854019713491149700052291798569537863442771781712297288783373343957763192303423244067451932174072347427533246336633870495341563388444118809607653547039008207608306573598183858536577216314300344928986698714894783014295471774211980488246097905929998076287183124093404883816238792104047077521498396546313325812634219130616217240620782576045552495489731219674405633056015152092126535307596936393794254123906642513573507040073871757980802662977250035409679728992589588092773426024002225959359434942851354028097757469229753672978248983803653409140952333558208281212767455445635240812657531771795723306319762883732236771395412630110068401248032922644470691689924087799355751049451584876596229963104030447714713084501981695888472788561372305019596337595888779187631283327380878697128794883997913833367424147897956529791036214323072383302688221851461765757545927569202887617033119732575435588272666150450013135817674353762153607123526163922642452308947879246155666023198256279893098421114335604040851902022319775642630675129396187353417828256301085530934193662282466073146728346987938849171759791788587741958129173320029333626775377305864018420996621819567867327345675226693384972703083747553672691208569938100576529841288065268438481433498685087453457446255646580080205394523065572672362625956061174196162735975543350654674781963319820782033700740013497092140958503277786597525698580916540402157756292635664335061620060412729270183801551782726903580227869977602915731138028972726100704337500938110948495974276131139955716985026996827729916473080228649288310786340395311375830509081966337973957819272458730004660018658337061456403552364217327169964842715384465481504816865669580649230759217606063229676262869696846635491311577795351148744528060890487943883088287062094107099431330267345503377165945650856563332324707890770365714809570751246256892684781514367219414242342452840439365592604244293419896353829282688587458078827073254757018989515922366903583960970150952402992018307412833924426097978556371019836833635185811787280840341552212890006720881172085143612025198452132667940713593506874638178001633058022475569311781381298502188652329275161060144600875186232486801002187722212146975282431858204046959798732868990282474639629229571485689224780408474685056014744340912832242810406760345075586143487748965662100059809916945409368985528719642518476961716068873174211501606839267421779307366375140435219761133484418066597161312209654607379882752209528586013546448891101357777506183408585661094182427419145912077404663731479241695630445876885508302008426081916271495248599363066899896379958429107392356585183211881730656931709694796767250363216965280262745534409762974116992921555602002956565382863064267782841603921296000555318743320578094210485856429840697957734627755429541454024924043434789949135204156363592987631292722034450664076428659556042400176358981790861481217783945894729206044417514302837396472959460729428253575000599664911118840052976503474830351036540257809696983335230050806033234722113277734323754127528043760861646637012187789325841012689886360406373301999629469563832661652739222688215988076303199675213042817686261604520795304658926731621174004540313668850645600139657949015561408746723727297883020165555252770533288883635028213203542048074639311833933261946466874044970684806616282575509081349290743501580288303838390664207947155170990627149087664007711971534119796951383892314519636616202840177670177551153062712916176896231851366791604254923281332435944594680268879938296952801882992143871873881826922744116888880767547819644735414494370144666821897271633566974676165515761736349050733333627495297229978255898082503078851367707968448121673099235346542389786982168195561348125576025620463397002485710298032700209345225752177740400520763924844157657641454132931605424733188252874389014146176391368012344407810350541594344004630985021208300416940322162415921958288614686081768693104519565322931577561888898301550986431587949861417024744482463066876949191760945465219608437155677494000122861163074597156948526676135577440211088629328523757503178155809348599722905100627633590054585830225180928658671285389706621930496497609385716905132814227436168567858321022086118512744343259772661795776004325564573924901191171542595446152233679076672862251955897735146668323432124120127687627158916081007863873868405587028297556321650353987771856640288779875209087137162589162490053242435807696938515705518512928122614583385245662665100498579374435564688594112933312611662601651056941039451969444925030583560084496242712238093517702398591255825150440341026952510405385485275678578962150603621476682406850247059349863500101931509567845503591733091993891291009607857157035192511909829619863385181027332276962414677919777382563969517844562470648802675275106927998026638760953310260784125753557151023324740116910119503179421168407757560881171436547378812208572701697274680875351668453991556988461925571305850383808172766490030739514557645272513661620223396327333136138966094517582313615111557700217510620690998103250603812505954834821713829455503366657970481746575633567180761177924985957209224124574167004540209172793814906582061995727763616843252678622547189827571526016932429269829971174024746256567722821943162501091950625524263606130886727789023753594290124844231954774117593731147264379720131716234784817258348075324144407826288993268074288377599057415008787424393247303307508163127288094706977990984476613363821190687750209173295787928464713422231310813539335633639865194179514794825203545328496036324845826945060114944914552315894182144588022237464166065062325774098230079825865065509298713632152530741119485935329579422910420026516233622551880758741441165515783301057421752867808646615079945273991198470319971126189935240696599146512987069544656191200819461895317508243961166248248608277488151072548310775288061206095871551834172110781493296070158914603095812358352068061754531083060647640004921716191349489774924034241025006568911841571334081852959458522964515172934462229966349540913480620887687043691137278049264865932445099927149424471467577801013705981927002615296070785402647750796411092257559318204708344384163257474412081797189320617600241593153390065034695030536377748064565338110149684174612859611010543084975452219654283654842301295795228989164544362892947788773181123457668157576507259852958993561527465572839013490080851632666054301699395865914009386438159118041865039775632035897019010597505431685696739524353670279077065139976395205471665117000332109012199399531628052378943841219364702543494560816081574188787879988301321315391779254944606506185165172697314547115443363763503249262978890567847290982481459123829375434504210775449084898597417199464160131269960377284924612422343322691132488974006605512803669057007786683640779440238006857717739096871464684749722033831021788035804331923405764655755059340270251143579219002357485646584994431959204519234497810540948200555958000366692238493920396745342133245265757724415402748882392355895738162579455035644874958444785953098498050721705616626837527824126501219572580565600866842583419030806529275494155014136980123567853748482425139896964115998465151664799375974948908036104506374048750287969743950704329815484055689832492391154528373920095867092416293162310419304881921179066349952143208392638092515610414857532140609572024668880932790232537748878986025240659143321716855542664360504769114275020019452946450853856382591907746337660229831174777084396673136110357144499136355084731535996085479574114821138316275038213799963576288010510773724525218017574405431729328845015285444592659936900816740113496328458931483111239646997616593549467839287175888746875496222594485411603393720835516939166783653775488279070681597268428886596188137233968703591598151416521495456080575717083396922682553624090053969189279770025726661594285742419686192601431863722804155418917548085415972012373465663729071684529335472887561284576905739153536299091638305937194301345425516677500097950489302973215603659395393878504684672444031051624569664950729434741302797803901877789402438281665078989657265703406587027253661849517269765145746128392035084128986885008226957604820931596179531798330510555366589486398674215106793718925376744491128483162698286561250486418082650213735890319400865578681084521276384238930551754040009771531042979558974807569418133829807631705803836133952665696595061299975282531228395786978713140037917466034273617963625423395051172623797753083753943157248281725581452492108058720097055291520323748776477443035147879341437196059720796402661936613878400393791485685930511061462599376657899775169408950412381775263025471329802729118085146969018915558950453453006856255415366300380485116469482837297265452355159949463204304848023462471748778370859870985915713073482207984197302737300142460759450132536030664028330889854398043395685824015789879458044108437647996882629747858819150468263759591909167346294681437070067536834829209198429106040890872649850924680655697908891832102194930372511168419289035109561597931421500225930044050846624951868067616597657159126014718251385336850094043187618662424005094038762614249685305363991559926087730389912785174421929968475457814145332801993202834067177248541723996483628114998429517225787985440879036363479330122755028113310450389934699476797902287224396958165466820353702950093651645547846545747504673531186433705430612300507463777379675036518383142460231270453432028291812992861445931888272436446527660271806967108250181790538421413264288591108685787215439031212713001654470794930469022341550308474706319472894012544341027628974725607146443669815699304270051218100607747069406751347683847022595513487497581273743133622136862917034246365828436807414090590840362225956223872864865042760318276070192750626497909107302355306257917187207101307546595341858095503798276236988517323215734682430692476345983416699607298355508670172084943434256524516284725936309524579639623701677114791471053521275461183178742289135508229079962515676075878410458175637622840479409488653150865562033079047547996061009266974667474195444886832972864016966646884309315927606321723818005509178554041220255035749769641558758468491826985592676410481810279851492737019717381478495974657012121449858474707610832045124315691858242132553824379762769724675400177274768964168908259487730333743865145537029313674024617554405278883865833827380426726768830755910801812918461574587327059121515331481641702471847342980442881805307561077824073438504896866639768934922188286718276107376257301071126569140359811895922325552597821691775214970801118902140510457613275480559460901979237260337368245725689675418666010782204827362850811197768103587206829747017385655863934345920869735925280034636519464031736470907596741396017851167305349089187302813935049030504398739610577583378785534145780581655260008314126409197846631466487975324000427360029634503791858172580789931856464783064269577189312954215417225744850241596039451010049867704073469700484455064004879354379007258860037371923290605273060141541533957392198231045492096042477327440819341770406877737825755671082046152696551142779097873011223635240425409627493321286738951972460667599378059611736579332793437242794556733060432325684655983045259725356027977794255778922403680839295120169343607571735424696981809211169608822001767998118259115138876578018364474801081017406768138178090763888790446672641557898924572283692711196504121284228050600902099804513637113412246932000951642351934677839758624511421242712166287511079729535603556193349983898966843304535686875863944854842540163942802801092980179618389763296315181427873956509812693386049499319804418123527352487167987610252336915338667328954782955693824164815538257274137198531697394266317451812604751085061290477918800813342524588217009743256063971442713740929619583419644896264656692432420126977138058366483966472801624828183574608497155590674536657628853484609963805257377084224038337633934074679922493726004634951011956554542070750572421851834901999248491890227974791227993072113046819648644801237977976831423288426018812861901871942526910036349327950014925846433849769141218929649323837002252748450544896537858413683858971911679467679971286265191114041359782522173718172006512675377794682088433631597872708602218622626696259578169944152491246152010796898611314852206225926476716976718600123428132496178540484377275288562676059860300525016923290280265473515479275077846208341113708168662733597908968947572764472397659714608150154166492214895394879385744797613046736690138463227257687101894628456972153559212736424017927898822460890139424387883540578478252543633661366446081376359030356834809428614235933475491673186767769956595138138158714298806698421446149870343345011177676269043898348987069503873779524676577196318076513222766873228316932290811627144710704245559264708644811954513620506737974168186606626791865981709535282264649504319286102253954130051256045730695618005683153189183470462289174702667429099495219399381303223807163906445399025927303962440241681064222120875248849764017792585595633575176728045861819634395869467717798570293242611764094218512521341668645907635931605126526831636345346658185999276262908513147474525008429514559800447431444500862505225285013038710546739151705251435166212236517433122714446937022109896710789538636129382744424446252436782139955855984002772561934588088195970405427754255713290666744609575808360572785993026045107217978616378595036020703627724759458803121200538346947441520728845526324351021366111666389054258769447455567947186261464413188893338031825934663416346506030659794394704254854386372750314554477566514645494714741930520215225179020567454605928023964531772802004930331262689734106304315753623492096187870192863287246972277351644671676065477707508745665712171979339991537165862861023987158073129234208323770576539656854160376652568460396003813157705060860087342115469910441443927535354401141627132187939033337701685080682789529807884742745085341727255227181668491371592319516951379290852299511728179245100738758971664198424249569008371907716042678152847016415247783153324835585170587622662310341118814991691250569745893780890933840382179878083941591787200141534194005948631237645380709344965339094955741959508535341578277509998744837702720700400097918603695352785142160318103434073394243337313342444247955888290603116730399076242086439963312778332413954071704838631580668439913083179430130434311057803891054282886416509891394156153506537026582857230480101324190818380884541978955169703495915132387857624330263209487030755843128373673071378430999733833056314812180748035126499379070136535549034814987150373950706128131289382199241433626219272533501825740258437601202169589550295772756904454236191602629298117118150692435245358599963809103714126928959084358128917859605498349168705050613910441482353505682318656148778266418769396278187901506682769060662102034912163639761920329083220300671800240883039985908054261047333370996867210408363734413569574735508479787760904138141136782086822792468568293546911324827341029251325871715493699570556153587842824361950896406546512757933056130538060517223169549921047032863125262846512324689360576787045076686417302405837900669489093562003441278279940361778258454683301348542088347408613275073528068534132586604576537049971879817913821092046746279827800397964280964073652641572858356316448737099045959544453872822422153496995076519774076822818880116718362425600669485109842901736277115083423910914530237688158450499718992754787171367347965239468396463837685868715636762354830118746223996573044020857609729307076055830068149533928068467756600447771678068202888554754187694069464781614457859439365003004324728221120176071220253545631998290548095674178865087007662102622841612634031414048885262262533777546978900087843507551781159328567754226436353494563966941498798479653696441755477017661339702175510882131506739314764754966179611531107301613776108525104251378718681808273874489314978579592347477246100216053638137114304511161699927239491778880249377616686124802563209273560286036096969547952619948278781693275655785978922954866144671166099834991874357279893617817158856847933489615581278744884441843137806065266809491909502880397679849759826688866725856148045822526099999047100519475861730021953872312434942435010770860617405558417643389468638412357495622579304091412943876306751472549104847201176175666914836499161523026615681957071616201967791362081677686747437766062365569938347867796354295684343025964539696017468196512469050060722742194936398531965095824021022515470700461876745006587166122308030307944516075239001218297624640067824224042077238195260050153987518984914946842442072407178494484599349094880210453894847377288179892886192688396447268372715706783615056565354702295510056015396654534735309775959625206645068141322219478964590896899377723083277394842302410056143937336821506993880971320932209633869961152129291981071950291320171643134516417486939901133963134024044590410948974291423410555670309138053998652887760765055872585207411869483397370749237223134278944850258871966962322394810086679901773225145684696000988930207535196634243673398675756104181762798573441001930097953297614584447360933465964416426448112997734946068369236391463941053067943367652536460398896382451936980471670070298162887371817304233168017328038240140451656724491858591184237968298716927937368824037077756125806421459820185904684147205330113582576379588977728884191638056153713725428698779394963328121505174407328649455067551678018251158316731728762502125187723817826115161771650347360211788457431449564230293761546629562887825940090825507570425964249150477352718686167512020257867595586750698552517392728925186500715708864163761005998341884970596758238575411682896395928551086619775863999724063824785532926574222867172665871405059187938870750498540230945480771025450345550230994528939389888583918499622735957920849977590365784975370804684786787765703220598344814703651756093111289506760762259088201181187263024648757211188905165308236032063824844526256954541832842073380813508884130738757509169448341409645052201146296145761207233819535636490406171542280077331551611335519658437627475648101083624997664723949892073214061395795062219039888429028404470195232936843854789554784740377385131332992771011761408665332155921240424711298772326116198932091263289731533513150408770859636745685795285157580556330178135507845019979831968392393260862850520261354295932162339106014872588828031806267469781065865387749873676549910271000690671644082897524801500657906001258864073131812062124367390121246751982829617406238104615372559276266158888593859861910540684858117671707662888462357780487522202736996389243506173098475263181822311661666450371639587026749218978056781236204266250986012777851834503702210213520834700487537674333601606265180703880514380339136683630777600716644058593172505035714523554939954665249167407554988909580168566791941353944558940392694033435798806311665603929542237131817477336293722371948380131180629279685309336308570983724386668100487801517965286242705745151475822522044076892519718159233933546151365753019462431333135495333488416908135688320003012773655915396117817483187526858709912917788684317664251126582482756938706892197013484243631489615492679279383503697153564057447043298306584282949595864963487440699671084698852785555423241131904044756033393785021328010980758985849812506116865659447045789760561386177006655176437895448664899708542427213353576599945921099441368605864145725932725996109926478929010684081516621914047948704227845841656530430211295188812992811382027783203569724872338658270162195290935438358457115154930540896910376137173541479443208034652115134896636206590819782894298728819089313162662275096940436261267737934257354627869347614357632739316231600963190848723386735072098899035957905804234618635255274986939997380116167224213594334760715239906904074431433021043607839268054257704870311503022432551447181849716273474858586529516480959672571962129484116879299409841117739491827265133947374166124856418169285297496719855048148935740235419579952436668969477013044500739631972053310469506167597952848692510814021462268110077142213071904649722923837409751316404528236385214465083377575603929646952680872768777998614189203956507530439520385490269475878215382320439475410339458587347867873498731978105416389878730966857636212868706697815900030937257982817813406735953707672605302732197431051484837138261526095990873471484376849409287077808690939122532855633192607944192723161049428323574533277084079309176678095059595188214931557313895941179204187638380848685380686730432758367203414129520746757721646377615675346286503494026193513357787713425001654257136225549592979599342333734939688285020549538242642158877024225062807200098512356908952423374745535497831314944061107804045396133974359296266285833902289216335638842375115595073769660154467901597767791124211229081927496766239724343777536503791359121886926889240545043486252585256391087684539004379376220189880115664334294513604924128455794798756329214984671718058453084373342245668529595502527730330494205827428464402911531613789010588554520836617954399825389166042372214166295146330065959161561642156925359368035322344081682720400525513206964848535573731835930876493909324568982221215272069318150960498840782518904772900744098540347234482775959828592649347679963423616038639911782733554879556512335304325473084520563448592349341809155514351025317354870926658761334570666854240296167381284501955015003112216493961114997515846509836327766963284206964637797394904891634662825008207306452250679399278148954803598032794649395870478739588306647237287710428844488537153611392663542386738844804523249291883421859406694347364496237173711055467912566172971038662426900031296127983447233666260972672541489244281231158867863667878156579900918690381102364698616610064411912548540199180715705712807937420290422934044885466355532991935735923734657106182554491978325016003371224765515008524842843432348182545131682567322440055038910863084167398162242773722834586659254808630255360476112423527791896996999603088562033139412190928025191577973804835065826708632255100455852492905136888907062647947315547271958000918621332908826663436274237560689248662948556724890818087600845616731215061765726302209418585903019100464295106455429866113374450658779159025698529841632068904757070474071834850070041874950542341700862471557077975243785682749676948013904257681227170483028108043578150672945905434261807000907851471131507621880626887191309994217296150860222338143466804610693649515163040739699260668338744607456889544222693350015586790053221927571376995067498387990581167909021927303377438208039689698912887500219303811932915378087934849670503431884392586146126013398439690620149499026122711136052113929302820094804011198165898387962657075317945052530731652778431841282187017149408743952817502344476281479340021719072319540032670786319481592068647490220650445053340356816817072766453809279385362673616427061370114244386840320258494704735710906500581233494988047125606480199120078976017888607475449462898246279714612121925507904845677329701041037272421329284147155944436618832346025913914980996736659170635507771353982772705043654151666505342842401742544686352143329150253041929197544668925743072202002066976567033841987197123132548304719179966570512668765824984377183916681982326030987661409367645134695015079711959019966477618589438391400561957491105455848506621993699466667873676067440561146815882648549167862600912020648927241030846645701061376710732325360924477943321365913066487627817878569541530273556057001654268581863084031763998757214997224015772285810850249645144708982723940143416991973189178956409172332831540447962706072069054072844165517161166293529314315032502073661212095625124841270863896556583079926781196421692709093235598855641719901319550591211402117318577512172246545572718011799028062998229446774088117352214025507017697038007984522051283751478046212395458877546311572303898454545258943154958273227298584011643191015960361098330138368815978111471025639111403867939020045994997966085154560814740115917657857724165455993395360050327939798843366938976781804046890558528056923874781556364358940794808107716976195276851301568419930744251867412007638054268757306549477600640397056002755357407312575987918097441950043218002453894672311340498024228975293454192603181461319801529099347763209288841005578460087532847969285260849984651756308404967693611556556659217652676667894950800551793430294981227001270339647595534551204305072656958582437254167596154058453034417328004348991473202594463233719518638597117921161788154229251110813629404666363946432408927585143493479195177946429108640992464284427692452944339474564235010479314140992698226307149581386762267206062453256338954336080594079525001838496313114345997088631775808620412979044874950163637140516123942219300656877499865427644245095677245597769391028527863901654777876919617280376566462172277431198305657648661332369860696556630388637154840744928979735932502705258882802142161714756378899684666278804908172677224851857777883305499731305692355032545331262799689143077418099588198739767958108069804946861372679660467459540018016464691301954283463401387443756393409676812628443417047452440930245036832799464497215366430446858374838174894020025582220133461505614313795457375772160449775602980486908604062182460965098198723253342874244257579054081619409431174520347997181533942269187327423455445718906833445238746319511846493320585466767628843042072419542020435633404942233634323398424683156357340869676875579945680510891154730606425663902432956474150010451856025337226284763942231371518466235236891615595408167972587033496663920307823585247375867005573779644254384010247095849082150544237464375182172664536110760075950468334973027804058553997639424528218729973096889911993440541156500597601685929539928415641820670600578703485220549951717859341035642729610671576638415987745154021708315091365556256694152952744762369989371802859839804610362656228117641381686503803752238185660580066277760493463184928812861081864697919301803409695606532348931625214088833556012183412602960065779045134694312275435754797700141215413436927302006463758004013543209293760260387769646466176879419324969731651021903189441698213724825395334318958150794420527196599229133678008386130865539278058917942540300487821751580933052610747606625977129014539825241421747651093010397359209806261061930383983410796262229502266984539317445070788299324001547344987342491249380423450175441001344690221851899828415361725053309425068296428126389252405116584977040638662328034719073701530809608445383344724580076223537244732442596636110048044854101094955285243842079342961920608385814456007531499773070635671129535836330341307824286958073406909391256566162379147781608070844390138526868217626731642477741735379474984442462116065506916345325465884366451928206741298242296340558423248011481750278292568854250573819049950706517993748975231801884017559732014098288414149687645766301400993313366505786061872170394725413517378025351130908553025949561205486719737966564475043375223562892708482517804018436691098929171875861814580577526807661244633803152230642119096798423474755784634843350975012192572365158670848762311041026234048135770168709418450081762526136321767773713195724295543457403795359611636689172033009858120304709778112485420146388246377609174429501601254704214280063838436517157126454280943982438452186995396484006117470516589290169415015026842053558384575497838074881216746584698508829554594255962905643074180252855534167393111148922387669928730050419893150151163925733641415277787254482778984168230412262422988559013889762896812623222573711852391733763949476688986629334557473057874667764300036761608589679876082823552324974400908673362014918113779396376695238699703761637743321175342573886100357274920436197236174403520594553958822682894800737815269505115351802426750230530054021451933365803992679942302560767606690487261023380559351327768972906945810010260673481309849694755300154910203300171247608122840366622770143206790670052452846830404463662888637245601625550103692387436204160334400474805208618453118449326338680676126031833327201940138367322833190980991672662389750780236598454138305840829149449796799878259169272416127543727041616537132035257765125268220398059711933043215416137180230314357106586528555633918176904502257495971408584331766340358933685745405316147176360976279389078149892955501391810013960777327737410332799433650837260547267087013152792795028323069528607736583810545833675301071534792261134884472976615158505731207000318101831036547072771637102560413465406096749070004157049184796850552542327579268366678788703211565132524211972749997817257823611069379295960192316895703471693632565397323245999227758822827144398318196344497548810988530282764601026224538548296819710342339614420854510496805631470423393260306969085501911899451527816822109470276431363190237695125102445605900305141984141965059839432809289389745018309327014050597801081283537019776593713048894562419104104385472438333179344719240093319812704379680594959739456610252425448080729312159148258386006294746638873855174024379938008379493289535040985246825292249079484647098562550133455092303704781419750118765244501512859738042860453642861697377374499747860508250556405825587990278660930707258442588002116067014882527594028284612023129747287250014149510408465748141333668774970105341448186814305205946192121853367927560590312384963691337653084032497969433640798866746048925549314799762125253325826477657115001414760222743103021970183105185591787250000967566362448138005960157298887730357989594541807300736627166664440743846969016772969936371938548973325996101839501771796969789273446277850015623209559824319090522728205608486722183089217046919191017715120641990295895902111485280190977265763801646317511434315131599918139300113327673761116739920533094943675106782812435134380791967027332402081291411081116202239350983731498069630026571959897864191908600298507709716801109607174499467014014759880791818828377237695064965358052400853039510274980370442913835236608909690227711176750581483018925587707836860368320523442493285839785130092996249534195569823043311866890024034371069936298795545023132612470979492688159212185590059759548974528457979553767788457694895127601071593915694064544949040900436643387393386673767552657737631117524673417437312593795569641589796587733325669862892869722168714653876055365044759358772200212255050307765405837574460384326780815560134755617230912652743980734150981573802502627686082311696751085252592387286684957100531370404650595808424676760892653320252448233320479303865503046392915932547448066915557773902340918860322189809519891374889668162473777873014208673235637621575127356249697176758265685144855169247515475944067495232441571186111044900320173874783977798753208534980345579175081840278123157207259250539268142216468454812863959792879658065006942469013542973757659449594792508039657993816674566642332898191330411879921520288040477467153300999163008245673699686797392440876005985769867040332262157916833318564439877435837156969817462783707788876672650903718146912144603335859668350974910091623790760495505238942584140826341992169147553504259092710751679744874995593295193742735203547064537410395450550597910659900616992878786807246163865502275132670341170235656765241032956333884357531952306708366638364369444140573282566821750588452687899370097114399075603796294507859301593795871982474601213954219000431369643980794307531422558130094721979448499694295212659165157570074985704932320368976955636586574172052640466825896511350399259048908431249249189226570314634241374961071259504116476523129353679904106324913923773155339996572396983634280978040581675995926183664918856711275910076491611060423946007809055280398078155134097490056133259988007137583277922630540095222039086125014684900551305691896881903099197752796517179154390206730345332085819009839352151061560284789126665837014375343466275312577328156212541800748813769007513862741912543554430132099115356376706535869445964810711177608684441870709940853399781271399957419596426973708822714191750401880098274350230822479745362555402673583011605828474147554001571519069435552768621848157287264393738478825240117876329358143013780454103555182191500356182568942481841329069903928613180442025214374988426454228499080786689753435043963086895424906018027325170520766024707409553269138655319325122694426966673143330063493491522649011584898142280640940752089905397399316398577259395377897794666016492330304654897865547106403527305423065894852238774519092289873409919866542080639132827504898063546381811909095052266332401428034069798604913346408353978242354719170474094023644753924610608023590576111277648781916783912490616820446316698167805920791483681410199848832328918797653082600170628780004915129274965403214226170115853383716422526274913389049026210534454709398326916983866546406876083590932984978080875200892048928045106899362874740017966173118519234038887200326928085022243462481247116732081397056162999252229387055260794295639674899352161016713132871700735262569159660105646337648360110285178294790223408005371666033293613307986684682544486522762648068942814107361358193718505591629736464664142067578620128305976640752973053953388609927282115949994138779036951910039610719929988007570667535286569285275814485250952486095542919089463632537542518831218187992186678794962335561205473857165026789928568386693103315304950068991169980194381903215310629022674578641224336065884207610639199703733269221823598441483114020312288688713006709969240544423191630309385973946075721141441682438879679547644182089385658791705176708799904414466625307218870227267568961153408045768522644878699251763432057833159671052354326790769638410235106107775853576617060390867663715287290507865607287172826056198943097979580480162544706421192846353122885883622045826207605329361822090747635633360721365232484601759113563352071147969860516206764439831019452021295043788435296003131900412105496015834127506716591301646958040058408818881929578696216732412081396736141324250568274794497981150002687593901093528366807622723403092589237572114400908373005830007277377746280974443888555573670822150213617270629528326702615953178433611251400644274936820769088803093163780811600728373267971379551764768471322829009983953897098999641158781502125240119873501840608411699105548250393188528354999916118405863801461119936775975278435039206892189381127660838256261111860235194127747887308830311319480627108768811185819340852629913787688268346733255052953309059339014101922054358882578935339714018170189942110313087500966111554109036512344821420673207109837958765414182237843340714456804545922319939757570855223023534695221298727623663400030851758724488956213234658675705083512704825469204338901781066514610068852883287079784855989336074728743731472908837850967888244221460663110175974314363225116735929854254697297874007146411235425548616525854862156861099215321278569169343705532129880895930300690563121616737174210174011000453874356620942699699459132358582407168845664401884891249986273363769470444515533755412750196778465837129886702714595454364437546135862683621797866790587254095866434430093966017492468678666748290619803881356026830919229307494727708829523166486126358367331624678263244698381319174291686702241963932804282564617861320339372404051360501533067136295630608375663149092859189309194070942244894235044428328543076957901674036755884103843889147361250443659449105976845866403991835705898935824716729607869831363359677439146032527450331507819223906257494802829786968166972920906395972491782016496807339395219355235966594820436838052880519352222359548192984255214028391330360055359707493861416679024576837504256803239134291290660529224568916067846278324022263730898989705849230836757231396311970634792999962699695765310100839570735428519661731842721974952849055703154939800646339190336432335626314796157158844451512867208346873230264750888442586381397628721549439355813008933630719572638876585384028529238050320654309232765371391768367185160292958869427573031766085112675659319535536083671647564989185990504258650397185572177550312683679813732079847118522928710831089468811817780402394870086953619510275128833514327989461105029698993473131796017708156490075880301023097693113261535871936828900996221707067527159952878779353904052497141866752243558413941232526894757558952500493465669742094467914046871992028950984199560432921188128102876030325169202946819486391915645755981578209729143208686820408992279830513322423080990529530378412151289556882133412077912222933245857391663232029159154091309852353555494285306954585159388593679704458400338387483208328819295818846121828818376951327587195974618655820608400849788330725370944875422879631032240715155784479025551767006263525147533466696422986002640194983166383767495267488041692505191446703794042903068693168237718728795598746560728924811101042407743276049924535203375816194476380236284345101473599014596168745911033716443577255848110970952795233865626302508572706871353995424065532972794759457506363853037753020995632999076462141639056860586482791130350101270959628563072361142608364155041076700078288543380334742311437788179647287488838028670409715807429649568870368314018784335198331996827056622106629386765713452855578028109097295950657931385765462790077830429232076560307104300579741184319775437409950740535882558451938307701124339767123801113905789308242488147671127226035164869314844875416944509510206509439756822229933146965191180998431004938262406172529647443175889063337795316730853034775313688248074317930268527579459669317753840299135928355732214670761128956028624042342847814773293582563866992356605363996568727220520621031856374575082918432446380306782692473155151709172587945174032172519711481458351158287078581452265595997475771395591747263468632843170152483826287503506951708321099434022884231871007737655222495114368777433017838315379479538241446821460187962554808467159042269624282695548615839935850421342644743547995195317643056181771845055874441307085193098453800802003765739633001257011840390225759234819196446438964010925317008454940532169290691870425528308311314702959353052526068338789216386630582675257134712297295581696161196300208347161083607648662705319218668016264126725873649751549287310091631722648614650501454746770882092840088700441818459772633650608912048964170035500955428492584488503467287289504188788454371729704116617486155731710353195890298002714799758352711544299686672468019794586241789803095639835700372237314797528359498594382762087982320615228067603861024109304502045233917971276332825713284117383505263046879039917541804338705143555404203599326579904936971862888981295596078092599765911172592222694941921685947795197963725588061513939190710368347868729170634136828881760917844331047528790504268388138343723135133757561248134625677019850092878844176704250498490250872630298912575250044234743424448252997740342702067434321396414697403556637675739128472282154343235425472486502717076149248359722834226902043416716344746430671178964117315267983164166967428014432443174578471197954211096899144592397980110569405686505982693256484300620636742450653500992027067155949672238068541851881184458931177621582103674126974411660232880468512949925936208351407299827571045827748896123761927040640031916681159842347961601977410624425959472193350792131811564897325616267690012950187561022895436591226429266058595737523864006432992354919143324173098792935059337682968071370204734372511979932132118509393851126588616209848216304796642910088345561091182680377268531031630177951964072253785756244988780643182357985302871417295002909021035680423576760654737882665409551207220427673351080810654692173692195546670879606662121386951234211706720357786467076493055126249163127034133765340885385773052861569347635633389204406087885929695192606095543209460652833316440689112415650076946818826390330457346351894407391600324132706736618582653351392162679519799098182146794953742927271494820409365062909266915547069141761460380310246222367898723900383190840007202902667695257695200125483636145764520697716805284834593448462745246099814209880356760461036404618093353848588161402646764838289517975129238531239279454475039834661027283234019287197455960581862618164856294488086435824159367161491800723791581963579668266018132544945647869879093468637479954603417974705769208292650477823835193990533348362655258732303247714319578883761031176061782907913759958057562370419953524120301646034155706070225153413014729755706708008643399409457561305384983944164340925488952601132030798339148769087467926189036519913671576520826006471871963234882641496422001483238428198966323900427668650938107493319802853247892521896482614026272585635012062786321460615049287320054590112552362041804255638006308343900769151596959879708126403123160272495966199789164798607358043176773630823780431173483098366168398273141579454569444816411440748176309026471454113631342642069707494380597019736059907633580557998788113642576805995732741937282591528511807305177013403740065559568532238426962285872008758381426539536477425436871925411300479537299308116166403077903469566611620534222077951525980562117002908862863995215286276223353087469765598117733763591785226754178704147467013580750833931109911378381024504181561947674059801712110510295138167370846594869794580448659532515834451013393625191350991858484206903436699056224330746242852712027826670133273104463963801070877668015415982598079021011797223005644942983051657622023825058045322103688891552421196807004253826726469077471436852222305319746471543673357370721682339269193209861226151702460618868717290462848673091593665820085377862485795819362332829386960490862792962824167821694960575401342695569097849578959586093193842103009752612869751267616706309205394905760305251270246955936326051880133342663281057352022951345579581860588665448421343430289817045716283658263605296586868318925762640457795304893592484002376694063098952728854392622325299616424272660769912540092819996094332401621672920204994245365820422981850816146692712638868845487031111722822574226405668104262111120852860080585589124787991523230327702371415124782974640848377946961896654806547443112646428549728203004790664099897434647147006746318905198194942671823406987328392454447162067709017117546926896147517620959593148561748518604081464528801940254096163999600168326415327635492731493906491499362593271454187536405968308160935210811668549967484797530268616660444973731809325112768346004602091296455291770915502694895336108619335785813588813514306566586888621545176896946430736294974438380715894225433651704365745275881169867871825557372377952862661676520954032739068468385081612319784931270936484301829493236382307142714079138531511892202910050358452885280521863958591056189465451115758605957033761173657478398402362838913944920645186336333519077068313635120038007761167379565777958472997364003621547883895441582935114807499312873883896998128946476989985445464662516318473207357306066862398083912718113728639063799066018491183990757234392136503033557163163753482011989970338467899674237244928576674648513356139692941661443073315642162116519460924757306860983765652572238070675248205373363952667895296334106971361367838460886468923580199016262457984741244567012619521756669342059951580372261744026663548420250336702797454786546050136102180546677091467212113586407214267964344334812483975594225073717350624722652672819159776081797868538820191003184857541180942136121661887521372617458289981760338405332807619598240659675935384590125844199196038033558142010092099700687550304176644844044646409019991853363398724074152783587845167606335843260492495085958938544673704536666233773426587919361389992623027332101074828334996595724356510933115387649799133697087912304113801582657325185974144666930118870151520616008789791761404960890462248665119494382838053647740692970519675364834168167069790914186390925812484854896305696442659848326531012478501689000920295141624873004651741170158281489326691995665522627326819238119861285812950172029538898230325390783649334536938307492124679702885260142083516509008321172231425199463955095726972041428403433074473115561187384225293062408536163468861720792263302588305387784400028607148509851077909606261420129497448506524580006860671213344745066738329215499397306676536315375729615086034007163751147489742722299548486380679280398465981281738622847125878711957059451409641140609034139698014148946586397000966255995131529076655549714194600554378977544990157787385606488584047937743658737342957443018619434596847961328378171393960907083998469526071426240215365738122812133944505493383371243112482366554165717979787102103050135012295578478858212074306837189127931645647993590677595486750147405473264773762311068145038818262588973859685304809132832852712596424345753826326346192221231842789388105668523671632701003997936209860639712147985320347430584821931876095539611240611506462510187113730840498248082864902334835972194761983517636244869225768296104404915462205885793760278217900439825013282005536954360873404453827813354012175097502450724625587012067513897585967353969107811417291147329979519563866800385729988589261465941794531278825214012301784294453409729816745372804306584389820488443261144285545559651746716579326005506869691289014962490434941569533295248590017402266736303438150053819834959606430322631241239525232440914831373174632746456091383115645429208798668116491028432040226811364386005881569573454773856449500612922416070476182226142839380301612122527748550805669822553210278436595950845454147573546990565140412193815461482444228964888941311536978560822311153377217723948252295824039141257795731105889757527330692060344758264286998127016320913096464320129093316618578169556732905656747668949475920822573593079076935527827589810345726401249231382498875795161607692618893875644460738173794087614656338964396130452168162648412759816869136730920826098087302837537035886842030374723985504072768549833927134599168471032950682189109911297824130177886457525825806218702099935196062907265883433241007201415165899431561092535533656777527002112413080229062464543980647445538737679613394301175017758671548529691627857974373145444881744227585359218168346642206421364715761519551293043353229173749395543198419540740746118864280438618371115050228243310299977219743141936582433894602947481542185408870817012496768848525238831840496116335276974854743810327899615119139896402958536539678162187055629968274645819992201885656148163541285558518999056969563206993276996295331506604101831613763882135334131384172045364319106228286445869639496579552906708547988545481852315771692581718897314681120786077565278142935524923569414377363533718976515234012490406637739554068802672703013746349280616029602989231761110735663075023515124154939477059652305858338002876380169543758639325479981482973899338113498133104716254094236196971777542304299034475631329899823837841740005569799389751374791312398134076106714660127032012088315761665146303632338817551772891247120527712789385883272977799136482914546081496353891988836581837733066618834401555186088036361484402680781791981292862210496874176777602183430138049194948030055527026776616689493093247522418501971528558548342068234886842093332088074516304387299127019461777269252994891383869261098618191113439017395726902929109824914784208642503119676191932340933121701650198322178791480873290264612463730101825456361767510497140331170418716810667383919750369034476603551307485363742439608221768436477589170262108653636006434871920069217242107757806846888925640040271734885146062188321156434013214945153617959767126104745625093375321554176390482535840896480884773495830522436684563578728617494021869247091605182484914617064042434902839248433731788802217611110455689462905979526449791384244235040428080124163878888649166701565938159416825475196645244228158866296540987999769954493844730088878222867932901685519090908463465235844342494890316747542084577967065383707688107022628380480879029428114797412893034909923620926532130717443379415781069086754475318798465790532966221473245907502281040201870357925008545276500442598236354354845131730517404313028515004282128647740538003038559423273875581179053954522442821789770771804745148675637606588726234294645436115985067648191694043977153526341211960299640751534345616322057257198571742517542846421258913152910629833330467835173805719986191687756065592381782773709482252825831761702790349192878081688405950830973312998828074272830886510068366511813368613649069084000135580196877010280466097636617361499350619531827769226250060652874059093839737989483674214578764391750370037733146329898183011485323832672165163988773223757183091951847444706541088002375202716821550742949170973063783800693193135252632704610535689999819637686999196275823126808073380074885351524005356336230659374300503679146069845547437912255113559468259202120073795412991206277002490332618922599753414794950806304063225770989633351231485075264152529887941575586930513594246543135335015028660453055636087751686885269184908726197839321861917913910990143296660884149865466684551712615061058559927435102785543718418903320229529069608151658803922975275519406002731365873629685379877409792536323764982906678689401258760714139977847118546832759666156784903321293574195967942420286721998304835445116610598702605462650282837184037755983708978801570412082062139755354902335807923195990444403426070528581006951304499489809136732656600308995818135035169599711509629102402346237745440103853818882994740312934987059415502685382184372256023530978421852468793836026839650783090248031841796650657118326539383003923909632964556344009518292087743921414301843567947557312079016719703655117056509855499291926586592886167192266036406146384529480755598137478237120253261754986741230832100943630739398037545514320684350989576694726959662438829058719175530590184998451418779578984988410650412352185845300635710554959518315717074626317722415193399291859626984856064062816995095813831984802319644713523970151529182200292423605688126332595401402704219140950952041664764190390145483041675792348013772567829188283617185570091310474008750012684801747671645614346114636528721343342307386486302278391162405954528777155586095673466759278107648499422212803965163693159281078740533020307651718093041730914648792675109050109162984439119591107653699381989920801717444843063892720956154286046498276686790989175151035709133764770108984049221856958268870339029262683484180052267204117444771231908768751272596476765012790080230232300668204269124071938891120901199395480037966460882351387231388233648831901267720022348358096747245567116006413610258329999753054146290221135025250440041717248058397122398674832850178361690173778414934375280401681780920073547952167607923342099102804673189883313809758013517863362231783218149429753443104690300953211640530876921055105479899674090637880715094753759640269941693943057678211996651331679807512317227625839297954585519346046591572451755322275318666620364896287093815849794170200063391956483131211270979883369970590247486436223635439543239432040423906735641187417592749669601508275511188918175238313453908313637987093218738160473629216269922858110591055457406680770048998328867180827281681845115554447311585971521453012948192753762840470090402490082141395451588325618722903997481494444757639055931525591035460271379980559333235000522899196874245286037824850273126483228161429826244051385478427863242619143275698308763476911142128780829779576574587465913780574300595370266907221167640760249235534841968154552263142887984825705505554264804773572003637332360436108569382402711201046725774168488752355689284000619848793357135142385242719911479406017333067951501295604351107527478948980969928326687740296159035888026698393605453126064264654053764241288829581820787632288795459236111608126208572973689019499193872301259869565536215843996929880117362674912521207047206722040002535149941538419196962072142680223045132297137108406140082902640973900266206408888190547924954966539020132051291627303720636054636873273412612570013815675039785940264684567066324596866727414525902625428988709125738852103273496078803869735176232093367796361587113576258315699865133229916224233793341549822418893571404372121863994185904459219719159456189185333217917988561119442397213498196763926625949896882630862011034668540451014613101756129620561077039979929112737202333466845564205674372245284262788050155260317488581100088503258123105864179838702325096828903052292438480817013301332690245527850058449006379117747636296525175280156959510073439992957700988328619210496763342804784644430580963312417469103313395837369758469000515961867369051841553730810471215224418859245813252915590426242382542184849509431875437635175080550466456233312038935370279920766255316242246474727248702854421620975275329433591594899016168723733936415192124966440300589639411559668597959926134034085943901666652649568836214043991918248458566480861074916596712203376901622867957371086430975877897940569646546900023423024431608273029189606667161177320242727898350824659890626967419522410227164003067269458203621527363905410058930767399866871785107747794653195856685915525889732200789540276813574395009820780766987737840865014023026766971554103434854071688963932171452023607826360127054457529750852013922984245283312495934405325094272266556218460084528554557426458085635414878497753800206016782904020972051251346176446568515242656999655468108225842678794118947436178256000353213089088869005049310615257791275590963759161118226758061880982435712504707449849319585809745615868742756755443004466186843326080788207665299689126746977633492244043315958543258495501052539685730667652145788003112484266340503512446756051879941721499956199208521294644005415480847358150326043707297924570768888356800252533041405319156608877901739970996446590544864197774638481788792038197309582146068364885879617111016974224709073793338460435432238330390343795345147922303325506086874970112559968073954944019002893175189028499096808717485975689646687058712511487889413825946430642730561136781436771191071773903898444821268488765916744369677147201352327909582136795709470376270156454810579447062989061227727636585116889517213990230032025504560312895469395364671799180067900670546847956969759537971313863704544994961133754577941129503849837536716526554435427437158143838127826750104105469835988239650171668258545088871293934542058605762821703782775689996634566762463785736207218562898308922101468389708191129163093415892807626824651127101303814921874850623903370476611291690707166953381330453787172998443392653328496584797441987713324011879967649890834855103032967986385708458172496493327858463823827060336926806919681022858083426919725860783419181173800676639333654739954609557228643587610439194866480834033653291643897407718627456972816650193318096098563602822083206305063968074504174416587223535950519020696416050625467544618046432051285263206071206574767202280069330255153344786473373752626891469424078622262294221803877006517195043454230942898420414366949179468841079540204831713173406631602374940746752935983467516937278595289425535203455314936004131131700530942631395184745753716096579129468408460626592225512601724971974297256635696118173711537918043679286077785251291122215321861743822808926028099401763614321337960403044950405119295941775974420388096060657731029668232713228871862876388786779861221214208586901721751215168664907325204824028994927911794527736207411181135892729778202062814133013819672324713464188752706814896479269653898680899933084131783833819318365841092699869558972636325263461075207423754288407992857958839751274436237758512619907773757450169581163711690330571374084589130296195215272560075573309071364935425595979267376157176598139679414655355715959938859175373311699439493061471434378082722309025890904448378909699151597662023933726227141171592853615195067609619753580251303762647106309486255592505215031774995414363280700082048580135938545913106114159315084522936872513724910562716251697699413043052941899862020240652870420943908734598501608804413488277090075289526383638351559226862173681763969861362433700880046943160876239668153296718934128361846665890505183265159894719388941466591912532585368894495884865096784883474339569074910863115304578684427942094596629484634984442785120664688463450410824083303820449471628536205440423996776358176268689804493597089124410085405682610125244420948913991881549364149908175839385968032576488765470468619173110905761262042934515420138997774833519286426176568213846828613443991199004488172003631472626383131009484715570733669464734223197419706412368149776961443738305530366174754241224033958342261772391137925143640384588878898872492294140815925077201093042709697633070132457227620659465316440824356943172900867124536154422662092015491671952706307122277346132183166622728682560775905217835954787072382167046760050058226253084889777239598716835643728259808465240153622669124351635672305420463021257770634604074735742703231987864883102963463592772632673246907645216992002055311931591811513761575654048978488147417719863213785749710050985494298372934668756842125761067784557261646279908136896734026449214769640230123097415647012229682161667708016508941069113561241923421888348261488027414692088664410665111544700359874338788648784142937324493696348159105135509236769423669153557224358868872974007146244437205954237161368041887251001113423952635169794081680757106523931569989920642509781885897934320101261653521552943530371951154526746155690538495243300905342524783510160902131053137882710613695024063085125938231021288072377830103975391446806653663937646995490994573006425227273418067393639290601287795274114398473354726159765680964636417040030683904628411228795690176181101499628297255203830625786265209431134888726267013791908697246390558583928041684402190740561236460128208149671717687156849562702504930073193747563993943433657967048393615424450625324541929549933756400003269697197892112134561999409302448072847095318657084884372234802763164812608236024368092059440698122034234663297758619283334080659354299811489263223466428811383323984793024616202746287405659674542130753649605225403390729874703125460457869135759495521531172723137552435731925250439538530165590471135241410360483373349815067525087754738012566794559931656693835862944206714113279141554787206873745501466975267047668721816392396705036754997156733953527761949371768387914491980736139792891786715858812501198787981777255161181425730947529984278853224044318247936766995480377869583718020407143075384700601941230617576776073001678061397809870058178005090657808876777918147740411623085345314992627401556291073070102566434634744607365234836157441825140193588702692299978347954547489031700657049386115692268386843092100340515805090527399182971804097486824074630645482473125171336034355117701055342096431561444337826821867910515187974887122255576187337068075628854806931837231439839520000744605315464054171720262354104373604828170344564926598248782851441143331858856527878167689348957181247191564483309641632674165432012879610364756473995858913343743309978987113054903450862543903329492200890557541342137440663536665051117667315356677605640773948506619161117707671906450173296737913047342578626158070510911300475971261065603252443031533366864836672486387234508772848169800556469299606942333429740452667911832801454740298448197544271068448054232372019063799034674596924899182612030212899899260151378646814367509015820581358618438694575811289210136466196270216539029950421609356468766536347749571065163255073246055541609519027712216817982426313471695036974278171076360762777101717326714912930222322034644641257435861951792150288418903239597280163912097364259243264689901525085758330771047525120720537180087725385147366069209171455028733753758827227946691806008050255505609154072860831060578856243497432737630367333019150559915650364256633827829324256453323368687414442775468548235584893704862516972848682793275497738993143091918076066630153313913955914325446978794288006808323115384617402955343283311051293004334007280763662270436890847341015260531862001345741474526921536157401800159131949401763117358801526771796898126486429274849750879766759940291662482513254448473537624531927073259689586820217251821173708284722012410648691024236974589000781737150565620915488400934683988677469073946591035808894381698293991038174566703755708440387027349116538600430602823739458063297106698297322439280193527722399571459361151396092358497531069914465616444654891525716776300958805374012262128037902017320722975446160962770414510111404696079867436397136352606044184290848370897392358131720400934592333122428311077019955820449517674048328890009503778977767071265403844299481857995925515262040209604878923688156231551723208737773931790519640608876570087308386568506761301465735578415208955609092634234754291933087381849469647129917123874156155331788121120575130908686329577603103246423469249895080848164308193583755837068612762574990900478181941852955423286841320359898970631227563381260040257269655102011536420282808828926578018336079694076738045841424491309134849613432877169834239816409592949777894282437545473875246954338294785010843531502221860191649300910792782359417377860956792232928281479700390710262078306686607358724074193707938184955963056969146856703559292958031589289881505205695781073419249016400511636314660645444177063535614502956854822838603626437438595565232400556935449796874589564403487733320464168752662031118938387336190394356704893036389863359470032608080380890978675595310136598183136587609586091115992259945350460628299463383306207033221565329445386082032670343767818718414211787167014865498447086555540545371238667837406141409397088760513309702923940769459042852999799856613458629951285804228527713060404351755206833834899003968154283684659327245696864052128409511254914319444467989310031242940189505218950171549800111993278564856305607372854617152112745611585204087967963371047120933935165357351906737539273979339062017935524463130479792625339514416451081224398554507366366017537262523335505776228749152140271263144265100512713724687096539414005893975325771523442806981855156011852026385457648489783980008857800476852863944226120756582342741317928886210224368853832658805510079264100610233824594494615398612031025462545481992348651470708633669348927967477397740727668714161326468304530096434845952563680763179417569779110350434839908374630182187145841494005725588105106513444004653498938499763075931270977578780925304281564936642319281422516990587494036513429569218208972841575805219741038166807765832130699239713839660794393162011389391983836424710729220779361980732486316057541734029018192083901306080159136334528991971478687837405080480715602136220149931169000513423404904725226947447475879996663494401575539888029370174911047758382861689277817985014360546083360556789106901068158042134619163438037704999843054838517280143157559380659694524255199487276632828056636642905259551825200081093414439189059135171333956194429136716058991794069250452166518634710866860796548512989714648712031761736851034188640235604150322802530635703973241639322937434066367343999835056677640046776549555806622891079479376462490317609482007446620513493252507091955280807094272648535780886514666292238359375029625135257440457516998996391660285222239960153007190126499990228110332092836729391852149371548371255640251018186360991452701881582975244237924350665618471885063774383310436107083175277067247393902223628832954765553452351520197211395031297672582828441728149089706971480767402633578468017264526242167581593528964225979847169579676343771460214950656032820415102284256820393446935279598616589456733182732829298117617794393312961186685526310593569922635023149156375951847114629632438998076913116530555350673227731519700925874131865707909586739093167690964005039128981207678738877946231652325509312050467905484117085862663639227718876971716303705300267762886192789907610860640591126159440084745048177626210821898542093634413384184318981259638587999810426498932368281224328124098918409767454531401259075150750318697480028138942052024664301976765955205223995196635396540866966822017970074760269009085155204010994132811729673947928247014517166057746047726945022318122655669033233201389298552477798557593761659918704378839634981448602276048757359967945058079937359703879691887100887583437159248356183365477361453216915570616515991898283515604040786973687027114134878389756532502810428544486341003516522728709988792376692972460395439802312716060077509850682459397500685792991218794019619786418794728027563708717943655751731572241241179311634045526186010039267587750376213547439740287960646111481272496219156237707221031438572048369745430162918486997537550972486350957374366682865506074500929254987249765120433634933704476578313877805344204434250171987576704202725426894645519266419552939073788401333092939715145330784622103249962830654089245736597761008574594178095899524155396292699940064672084658823314713117193349824796326421998058390389796941055423946675013290242791976617279687165660077323372415174798623687275462999473053323164892546595653403959873990235006352896770263397063153095394913562451244468724698255648189872818315305843703205996588713708163627514503602724730951184873435883711522877851260663469491363330694919021696215415105408137278169421270106857721048265699499036363145257406438429062200638109009629549587711749004740597270135996611275520908866118056662140814872097244715290591340612436939948416230245420607830998225605128633513648954054588980745631433955965963479147202399085570558059735862585019379815455253124542959869123210886191203321043162188207013454445341572845575301511477044642480484810962459835923307961884796795226093056843916830231616749284275365116795805443115306624195738033354073866436565682518255357652511825030548201055034654045216470958435500073873025861184275837017503610613106422028805458481576109677847443262078729129063600965509564523482745401305334258349290138159806657225921023935912043244865573444445691846966366961472573288458037748955783640286346662206629687360024110108682336742415981186235059037775691222490642752856821221100102050822491182744263245916422341539775620655952310469308280226287628680023524373652048333336027531969218345493358139814207803509153329006506591112381416242695520919257029678608801252040005506977536976955744044362669993835812771549560863088285791648436794534659360300776695663906883044757726528900641938298713539276547534210991516152118730798035770503941384243296837671613644207488676306275585634858155102789649478515183408443106908259671660135142034420387072798013820302925570780111253283606346468201269541379831274260281593752615255237941402839323031611317019484408400737014251042374494875213737446306848572911016460115124900098341238472207465385982447859819385100411024178491997669791116261905503109307187103946205945719966964134415486604814546039888017257044952975682186315159194845248716955013115987782719589249989564464278876421207242691125527293663099174157607093570318668477717812375424985825080964997656353374838088389958234017370272883334511353177553752670461197071219158246139721980566066853228474651235172048044893205258102910025881353050760501081238001021919109135730564498775838205586529500858746455009860816023604000810308448939645628318727571973332979521813138437116552591009485513536555276435834781588192224677574690724538409005116607951892223787136019248136695519788554290412156065935339672771730046077107311551944569120717459396766500340455513740584516127441541380071600280416322824396004000435476083538743655138355303808562210136559029903775554069726810883193171492510706733673823074889408363446028160357203362299059735307112777529185683408390849628227151228697305500061827827828949198517795469871413986036653236482749077970834221494717307978776760435637382184240482252576637140374363145878358681005733923428639612367165193095384875506416822464985642423984155429502530240876788172683300611848277523028899622366892352197838415049945682127157976540291315060994431793096246161524547957665413820987435983022677667042886656327514832611539294634475983581987974973940216476887610617293509687847133975827939534985354477401736531137862817682341393473947984572737084266373965239136993847519773901835564076723421968656412340867734963679523850973825433657525634592988760363570362249634962305578830574135533208749030391990025558796113925481221490739995790938291223922395292211727768347687366557937942924728837727784049277982762461004642084696514471235779585292934114118090907138469302862645014008150393193353148723321694080571439495611826223879080115257277999214505539752425033281708875699710098028047763854266831708440831531946836971357046399204555033178553560169359610632400515718816319799678438142940300152620120221545501762946056323699044026655133384145736237269045211104245439425065766643716565620292597129252779616012605939647295028519333874182369637189719953459687477894341053619213380410066956452791786823619676471965011667152713733034686174557551485223013600155775409000619621268994858082960520175462475287994990015725114023406778626120640108053822907477675942508951947289529877386341615918156186840335930817997108993195166751486648192790046464087987340532388639247082380308198892628014962785018524864871103417493580470679661770008712589990604490254498919456205230578089641374494590355089237026516313684496769717896184847914114803376920779459376913045564773063459330047688979571714303072126343838841248104797000335420245469756334502074410115644510633818838187765310769841775288580011484470701248222594496201300673281452401835637372767691970767174856821655024419756966806560888727326908528415208244785191787648419426857764130916828621653819942856749337988970561547535506604991784259950590366656516479912386931451983787613798709667138720983754340516417386207985218096541303330827893350807092165058225740006248052034760894799736509970430317167529285220666227017023635491328339544750155625601073245060591185832458840047661817470218527761975213907758853067485432349970055437924472852452759605494338441740495398587190505689576850461841618638826123653039442720737034114149101423920078379478066576889233840063303038391396182201369259177574326999838045354681775340383876702530015252662319371335775718374885466196021204717444955979847655722603148228001235664705303545914291178033140173270562905490702979868480703821636364666425321350296616716434199288338544353154440547652066285891602137864720377279692039184912423386177642615365314087492586671437354010759580168950920574388397327187183927920108085836936409832911731914844416828911713824570535845523819146453428540512305004572912024826265195323688651219797688622055391031122739521056877595860769080286832403628133848612336376557437357811694988524303824113376995067366925441034884116643694947668895454952746322059933879944028078337447888291922168915886876716967967236479953335536262315562162757257754944970902613115369833500956523333404216841161030955674021375200669692841949723979851825489305155893223240724545388163717194054268365291204673405024940834351989911018493979943712598522252424637157136788564025981356338314303387664966768129774330119624354647569563859634884507324506366998011746412388939636852896166057456448105308215987985209043940833128298468850446524399887374553231330077911412952114245284719700173693876823465782359338688532987860930427652284354668349343666780341354947622894695663719268972140620240724312960540888113358259369698587396857112903258574892047706812690130135546837895862714903602262340294157505103734748466471023215439591835006951220760655987089948471857416867459895198881672565266259142221129655958541273158750525156784085737638882054589278215438861002785157185118127429970941174638206270843471641885455474708557796079444988303653731984588769931076113157928464215039683430371416965048638170198911366643943064720650547883236323770071007129309037831428045640004685497130608113635755635248871990275848745718914828522275933779703362122102991217169483000483872752123541140620532832897540776928006729124424942169459611396512206414940799722650445343920019662483187747298382010629004364810044409863619276007048352755834235259689817018062124984374564457177819134454402229382141353206340303828677121369908929807071350603434683936021944080476573796615261768255726132305501697654235119958390833961018532150836133080100054780796516510721023954571041763462377462830318954072343539651433766987955741310844084050054014665538147367747969865258902999730719164620422971574391607956690108925768747970101228026825816175252672237483664531737280697445129491376018921177361461757250627387310214527068167054318257959237721342257423129842240644604097450600319653534446995131570740723941086561348292397649583601247375716749342923263250029790851136487556067014884249248714813227178341891657325934660730525674578357693567078262194001135584879236039937240425655148349181736856754522989952237470406022480145672087753560594750995426151144352692500499622551167844403174127044882044982842070100597744759910404729751674077696475822423647085488584718107094088367902438072028071241435447633171827706931819693477892125905604711849903406865083283196563446949149263355454772465145480312728882648475774393843859334110493602695490388008230915810916409656920825395028769480801618555756904268423006040427940973172812362686681863291186360338810482918503542773214864875897483958454011920247193235151701545679571534626889171404054780393475362491173953964238802395416261875939738900326429027374234929911027659428540842797540733826031761411549442578053501307649947943845904273348114158437961258251974162535995140586779691310555063145540885942257370563086447019717199863676868443045828550156860106577519806480769913574064327635764022635342004573295942440772985823913238580831957549161086104436884355435766598727669823051713136010278955380690179861738706469196474109259880421965027153279817374148419994578215452078348996121137770820640659529239144726209574343729615349455048575402316784653885412809984928943820034312589633001154941756990251282869503332903351575300303113389102077526436419385688591931179792853186403815174252191864966424790613987947852544004343718047431056023728903575519134232006209639498165043417860724442303255527554557946227785484363642298207197261047254012505698426922018570483584835447277730416679019315811626073687549380933035714622193058138747134502790287110678558162900808282488400766704810277410563179278557901874278274390814960842612810070968838828712994793053154990002371381769964547582632658132420471511245561063791381105723674471052097035694908636983087214184770446660007572714313819679049620560142288788069332368244815761476767776970212811369597631233813839017037053336619079511043003129598688121949956947729791419915505220661923371516007665323830467233988773363039879946489398458618547277488017490998770359342924184164346229871703238619301928595737581180855518053260191264818490080533873104378553054391079483031386248672823945449044698085875182990846507693774220104297511226193156187726872709781345510158698589912104644121172707056159405719497923678470676174750811373435175349116850793066872435177009750011649499325628308229967475328047605663305016082475865721661654429827316500953128193493765747496906670087568537153063506161393816089720044355735849845178419590292859742554691109571738333667222304376439788175552652727674797765744513136415538587030796515580185424423120084728943763692045956912855734210251321024524445219543177734467744274320934963456044085103575785459606339809601816438185959195003975784294286950392905702356598672570294473329971892834430909480846148715533825011390607138799917901694312101152516312098477337827335156135660059982738752905504806416902305367314499625144620452478541137173816611589088126383647787093771410817533680621384378656417043324174173470568606714929527605757748410933488789264973348763637767164102937961726366682051506629181780688738860616127445017102759970353873834193879328308127873844036736131261420950741329607746223524638278791222747001469868020451893160598788710394232279858400697911647517908241674338665440832911384774222112563649178017619121679407335800140040396808554287147539656879005272358588310390326379323799337961757267032283095252501829582314924954584752398506095171948350900970493742917311673730108574019260222687741547487431191950466715519409170245358282302435005645369549796571300101540921496841006333286197401151025102571221064210007063202636389640928008283781077431053282541512140209936928557243468367591137921830156396199339686872706926084584794554611794832670739738937062711169852010876074705012793545837485303796398479541680143597956928266157502417423522281307677238938195208614278256163493819920086238033135072768503717664935632431969437793911312927148329369064669255718008743235715364816143994849662428231654887485612939011839885597471621781826213279989125549707812716823696898276504892333463949614446010238272921947544220358744926217489734415784950780757356012260996184365749628691857582351967589890315784750579012309610545823256247191352877233461025162821687644790325764721980044678643697765689931781458850600564853571191270777633491050405478246427486812698549311321895853381701982353120474715147778194567941977879476947762188268373573676081240807254974086120707942732620573252175919975980664617438375988339039813088944894092404509636735955306502164270894690221287632644326471368304639206292274577572113954076627288346558582534296177325494418286675619060385374405370803158677296601454235672471695821839883665280819781440981805591537439011438690907338305635898619287006998221518203837596059747268788101599231305241152060112053593853394395675251684303197403582695752445023593466692260809802085987971877958941377060245465741476002759204104050134661850954954581947385438568451359119361640132179862177324340039752641686051014515159363590144224383149242382612029427802943992613327617373233439081612177979956548563451641986696579147139263447893809178576045062472510967527664799845142190261790256218151775595007800787290475467526764816948541139807015221621050288491548661197774224733882721076548003649543842303393482725488537821103949883128594114322445400001369294707441151276422598327419014104080526683207577140405466281135610061280407040946214802871079337131912634631937872037412029130139636747367839904922715194291691018540753276327966886359265914426688203362214882308093003749674735464126175205305782503123691707398506958084581446715950715196370981473897230628396743231106535650434177075184945502254325294787329848045679230325768853036627214322068406468121449075942223150953931224859780670695605375266899686469231312545741683985645974783014438973311708617945610438822708955999476597514368317120968778196758142977721801403182880642528636921401357385829869482850073270682397737007021195869842840916644983120522753453318020565916231702576744803224757365699539206721273689014998116271104670612279436339202967679362901880662828255421525703342815762273253733708901684666010064146210493526932493265063267776186848867225360854915903440344800425653128471256126240210285738732542289755769273013309154913742086390122072029224835314513914691906983824433373780682431916579058855057208308618030938597472697739868602446414965304202711678511727484627386694252749920596280860366622134841069520820795052602273283908958577871417696586113961301584466806979294443422513525131473990090114439706881746925960677337947303860916796771291746458913369475927649975936681637900734598642951045343768828519471449606366867364991087923136347994443625423641871327424307927460540650076992758907827861825492948648135386467268915259753405235732238405731801354753972316134104837282098493689327157907567967897761880009430981087126115635950421304150440127415055506081542283315315336743986278572571554409708458708640702063755537345581677683631804434038050376593954712744062144902877423524946304203573999835288113916105639383757884093355939613309643681194398411404203261205031927894531403863489002231538023886712349651072924109436749882888350568726548423192789943438573275602348495062160950913858840884309656515500634909623784091428158537989972034168240595645267314520255576078035990433523027737450878227552493597727401509228530438676449084546131741355475920447787377308682831349999835875117949517791996528638038452631142930715731562073319068655987325811524274997847827317624532861687358564391723438667228911941561836649462684332030384473782939091433698343176300078617673596135311424731784366995655932903791045199930717412523609250967200640938903062702949701085834986104671177628107576528973467111258537026158393114079808673430766528030860248463221389618175100705554440793465174685438907050296701023891861369374917695682709009502440776470135392337172222652573159252920993640840380033294360623072394979897173444495117132849791640571182631972322730158645584584071800974695112435273950387154249008420365064043965556380678923361650148940183762427363559679698980612355164262406626619760872315101697115459990814648800248535368551183664091205357972486519332750264374370904399693924669379419483653247879851907245932534291910670865558202861859707400698512918048788635968823382171849310504552166103487262063344660218922093193237882260180784267309632209780151275659889956418565292878627379672460983812134302465085102910166746432381912549916338605890963099997628434688921922049199594246014960278488227420550364103079759374656962574188078300356515773793972370779820391544579165062264003617593195156607974176614894525611247627809858472041598652689369478389330163403582307633697691808756354106980453942461476063299282170808783315313398809539053554960481115234961361976199435755847402054067441286233710516048041073441103300022973648837666955487890779913118480563427116283645513221439667279989906829264068172090738287728619013670933742982789253012587627548150933297015726788114631575722251576222329707145424783739278988453301223670834368136166730484571979238285364958110117988350382810118599307592014129661073649732522217251009927601255935067857460170067745436208493157005516067467778100917876803028302221296840498033571429094928362423757748325784730847522809272342645369851418634301940464755954556604544029184158978805046912656315249317236297393444648646701710943290025953458846185634851859658253890797524785543227240861324366762821966879464186757472780177896631265861108800440618581669763336289340965329663798800310098386332602808983560994503817316725631375220077509779018302483053806993113319582246901933161937922762845486342261401141021057873292215969285845180297876884938721348079987779666229574297077272535749435320910305278613084276258170414943703470132880710905409456008873548173187875331549375232199440154998943365174734325252050982598611702905864572141508833892733158887013666337073984765025070948139539927433823855276529324623477392028225424353110989549120592192254013064612796745123853079028886924827356539999997946322489659541639584990354602177635767804797735996066014843085411200112512938954938096276838354819297795602364737059929825315639977798781683801876939328663830586404319783752629153530505046931477592589225977693288582828917782208918852640851329947176341080163076157125943851669885559996429472215568622196991818594845645384064073155537902259165887116481964740393203223752486731598129304817474013058439767659628810125467254093324543833914720805620643538776367242678413443693802398556358649238896264137469091187548781543678398523110639105335989698898170396095736090374180859675825504196289703535167202105760384488731282072828680170467372145415959236495424593959784890631147349299010804688174494263259467619408979259162809010419603787366339700007405076340624375048040124377606680587510480426414125746824416515378561502676947214779127245649289521728329314433487930292670426210035034728961041577652485619305413222065207003430374877865535600306434446541436370389244663264211739639197470068707735194669754100773281505281760239009462431768401697314514994282649749905627814504750458195476830091185166299652248857769095821844605502506456205115891493858171361383751565609164593971137877412347999599093088994892443474739488822763188835386267741393483489178720338059547726101378345983057781279280040629228906722046803707391791355009418829441223699976929035078855379843065246289253384621147454676710873404645064851138438455760504139750703431188812461977027577444976522682255792475485556842360745148238456358527437768211795877626028454235064923181137172691421702559248539301033104786887218557044369693060511618994291962805223646315396087080371505427650870767027048147236056180532171777043706624453749291517878219561069450536032673591188156639611129739790252500448300593542699296453604385462730099333575662049006668026555774213341777646660327041215182440821854912251262923405033187893092764889275177872391444778044192651736209154577223273346931187965191397650369906586757995980773086765608099606595685124770120812589132461982797392409315705041164030379289420626341389580199849502147923680461353496946079116033126677968392610720743422106329168980720144266101996274714293708667720729321660854622090742787080189052655704741601164429003872364284593601704826722764695896404230285832747521488356252567213138466042708453399820208443462304790944033466409550190086930501243437907684990468747119456982797854166124825541435504791649896012426483203943618233303558813112481426313550866148877856524444870841917600031030581678095882307686389759382687289470417032651513410835368090670253476244839347705086691738837305471694489926736755572367960041585376788208243456798178964056354184624678193300719590049407546452704687587367569872613630204978421649887741430151238174182301089081878055909974882594902385469304642281143421655339712999219458259760151216351963445195538197620061461728895215885647557402107359122722744858936500089975256256720035171313464190118605240243809822110416434513625386634462104941171561975964411085562418018700493493637445922441632051420485109291333071352735315542800121645839472081763953865080114893242009769269859660028354642383215364443123062884988005200463487166036516439015862817383615714149240660548287016366267952217631131823132607033722546962760529895519521132192826900863227078507075863917958301604777100780632336632071296330141670822227945217391717737787691197377957459022418689792223535244544076244830488974679943621529795192453385497751148280987287482452457766449119370069930557249794266018440273715490462701705039794059712378581312677561466729151953381822522840541488618502619994974372708979623816281167121009747767261531649609377366465735599568285013819234606242946297031350556653925185123834279930215040257348482448816115093394553784171214819489899275276581662403424196223010877260852084712062789331506299499142107358054303170484088139575352711972802810083744700322055668891400570825831522221608138639857145552741867098289993733862678376955930792886639847356563560097726649282240264576189681790241824695025382254599728056352348246734315544757203027970568534301995153513306533068186070533460720660061543127397020228215373304213533532853688484978200619118438593114844721293886543625709987936344821799138648064287668191350141873097347661156339363045426496921552557547505893759026239955389740818406293798466854168371693738242424746105393044245503348441058285483308443160763295606984827274874364195124839432027365469541580567036770731688528964347280816493710403388369287962463377107733761531241468013906977280784499625563687260670509104583430286499302488030356812008629621252913882680356870797372207852482401963273480496290758067526090582398895664260825546956436705908516529296360041673818338357090284010676553095086890284729689564133514058547061954664919310804847383231321979830876062019002857130518718854026540909177849368104696142279651311997191233145030900767562915243805553162097758568041846698524006534856686740442426620061894834428872966500187188044570344585069228750020351611875961920753143769899668980708969442097756965674831007835314663285806562727314336431525566065008564542767237800921577618141395724679724065850652301569082976390433183971527171598425315087151316300875032072439841213077545021978890103292882559869673201699610335659419229680356759694768021328522206621362447764392096833229115522264287907550877286209504620703293563124559971705661749358360223133869183156432915006425666698703074342772725283412980149051195163099199572369226078359567139990882721200804464779618028248880032197410432623639531142775187231754983568026408902511721771290126586378603053934298462361281125329804026563008491241495435168993127689922684497189491159517378888042160644548685362672801035403393873614060365894986369739639948445711899008306990763689433812803722642527994462251788881941739812815956615135400138647175530979741285823915116380980203742295688806320860683419027567890599138107190499075157032157160785555692019294777599950550876936145165826921925622433997485018385751615116004805292431726629852217166544667968700777831560189925717694901044509700061724549642968728211460161364362578855035956342318551490784979731454428141323254885642492659449029332188168996600277284085688338061509733775888059904203456660460786781940387943028910869210986307742389142042097866651451806187323759904613752811273915152154723599309707395923882754743480427672305703869419935948363957883258860726464695795529809734517270173566082376114076718957316019159210206868538682284505576966738022258558084094637373757255543882532311854606731468532500491303273597112222170006809404768231135949319944837100180748556689869442906356015587941994982272961267859040623324176702243283673505774218891113086635669127623022561464515399538802041063597905986192508857466661144312151993101023732146721851043482062386769731908249013146403923178605520867226755617997945631034262180731558314808490706622544709307528847868577967677239061313835769984002701725435476697629433849649084547011637159052365812309538132845898332085551097631400523430631876859701959939487122459087059009161279029300596251196256258946500388199631652026381381383073293763731878758859676296024585003051547630417352790094329540778723025410567251169423237011887442727390901047004331376064748614288868313381553338862513480025748526170654935615139349876452358761260429359631231854925542118811131312129947127131019640232418879955634035602886157826420406034392828579461806402297730099721528120140647947509289890707096770869394580667315140148073640048752348577801898399700218511451719606101210361548165878198701697676839984012068104416117462889549966977922870547694682842219848415534295130177041751501009335554845815444881157141612474115805375427512958190073220154187442188281824372145652190471308945384994458416246897688923367045569569489250148464985971785003224315828383367808507455686873926643882093092387438792833289832914481680475340098844447942689671585533612078425667925255723217770773525164382496321897513353468765988681587809676269021420698923993958028136973785453205456847078593300258762135756098701872185980750431318563165421116360568935049300167633796905565198154398592224660310220432064880916655966837680581145119463938164435800065668928117215565473758276273566529424525441301863337172516726138181722788832959168491072795987238333382708219639051514306794252606213573099662159446866080785729194083005236347764160119216438362433066278233211197539387166189094284225142161725207765546544436801509343030115657771474640354304750420346396660731368951160996021457387275062817125092307231447562143597892442645565316497812897761352235401410690839423463369975970981693690956406172202585671297208489138261688405646474929760803314558992320228592255904784264650369994859421728388235951432606350581244604901623497372345577168426665605764101690261860963366097130693324232851247757617570547345699264913793736050036274747946283186584233507632868838515386141847192940912581218686309324469535176046475460570485484836896870991122979022017144524141176363831361390867680589302058385377895682255907705799975268094870073723488440809096910587579280011391090360679666993129492007913101761204282601111772127332111182328348966843993869174133857752375095513825054106588859828575369272222091881506904811592043209753179340336673881260654416432922028614530815501326217746459266667126620812870646943896004136807570641330491778086563988585788050943137886665839312656864942281915562979075804542080280075483065379406230365509975119323430225376952459973649742875622238684639573359839410257439051896038610241184471703663769435745148840296949201823399318558666943923977543406942909730260509838440734995277445395534786682891099920641371066152605443171951996070004414778123231444944461974565312476296988390782368221874880074631662340719776121602095111476664198923469567787012963336949349638494115782596506985879515117930950146268870546499414322859719555390312055582473158440300344551831041835100043004472916316748131434155365805174228931853245288548141337995951127573941669841453396155369309450164300262947974058052178784329724718428899310162710685317627421308700620468259029915171390829335503405604966915120830650303922566437662402068952119054316304257893536224960249945092233830776709247837989533358165924136252095013740570612368237523520846651068036905443426852973502098308872445815234632510888257551338203006487360260565546186240689321704123621750076740407319681474275414051730743536014309160665700977847024554565342118422532972872471124325047462346552625956893085033046836353442567265098047844832620850177153719523919602320907346418468147530658172918050014445699907768928155555879292987860342421127871747886009401228194925331266301930484754015539993632684667344414554744042795337984329379852392683672725041827715058817439752299962647390314236579031505362314515162841512341043850511239711882054286364060953841117110803338695055820186877414787045121512138784699980939698719013895183607683094608753416377051193541432861439118471079122499677162755020839208913837449260747750333723271514011521956353299964050956265999105729968481817194605398750687333022989661357127478496176496332170700016059708494492907629400015024858360749757851162240490155283292745039671323566477472925809167306210278981342110651625882611472816201157679725345029362802222731325035454840284690986727651234381221362388280097371302328355494162159548589810732919283800930545888152614323678879410914167025354109324351542518309404898759063402550281134590226819783143277989361774707836653974843866607500184893936139198370091005466166094801325736598932703803245075015080064075010258765776453394987773583965603917644085754654055392844732324735876832289416464557079489706999170818500179864121832570714735319758363739568436144258000505651462323723841804313804197487410796765172571950170108266401617381234779342519347484218470736826310594420191147652323641415580760211838258103680925698376271658943038459399920610843566237520286100920953447930878093854181136426080463905435109929807776423969794282824414426254983671036916382553663129505545412836205070148799652903878049399542281174478153329758746804750561848758750238069659504429124745616862785242432649098917748309283922585016921334140773480078080245194194045948076973821943035280362751383418255667158960231879883267283850503170609971172748746240731464604468070199330439430787799075902461496798506403448915944691366957507692328157218826834793770871826654709652132042585579017944865086068668326458187704614552330771295006320137829375051730267191390761476899464950566086984173559565430259578419654698052252974019517184382928731454707330997824651795393096458095869060276414444377144841533415725997227183176198936977443988064331924560822425744728260962092216867790534782312989177589874949226158541908257507323653138842482227234019625275246827111917602839474195419211880039512511929408917851492865135017611494383681013376063809698990876350821410656469955004463693584828769866163347294502266497846488898473946074388349904928314740494221872326953269703078055465878739063820669860723077759069856490057963295076838353425321300597249246113031945709860018626352470339956852097326211953511287303487355785517765311667467538885854082225742542203990449598043245466735263024065971573982042681818262545755453432377902872634541539689428051089835833952066719213051900192478662058114938645900914768946346976236978447258781148960138216600925179730207510290155037403961662312343019940492159794763738814669323136689171796741670654077032423880807222961658292531509245939970502645444814680784004127034968904920791310750403702069938628642390595429549324165614907966445995453144825636624369919946453321772926600991591215921578290887854328481109566460620057791763621424157229766647001564996278816609622086759562797716473885453599963211645055075504169030658733604210878509324944491140780620480493167050248874449960835620332048230105742092700987665847472317280682163547271737479549626036901651004191225836624899669266184320388777830643296570806322715869460985097809936151693747633029772780104144834133345084223487861126208395673251359096189468130740187603253065580230403254984503595056149551102073938559433343480847693429394077719533094542524454803256225260729243361455790559161973472908158520969399658143253511708177238669688961699575920966633719880000050364018579681699811632039799528062895250613871312138917292509659352740678114052018086171429171586140752063886890697901342256887249588036243926918306296483215904562981101714635914795504735793711527842589682929178024168022145582226876900388616642198985019101797734689487123896426469239226254691882916950492159614537137154731306807019887960306695785875751209473424313391143260888482905419058901783393674660746612576938672663528230958673201936937347900536583981388855311359206176243351970758650811010370411559651626542080883349484464644239387317980000026850388454334165640322865934680529241373459361027585364755006996549465155218035555560381681347510210708490462056332418553706933481788468647237204423017261870459956083486478085864581712756873975398056476763074262239266173305404047561390063852360934554286692995475105355246802017332703231921043060654560852271878646040220802161616236641557336915829756243641583663718480882455819351650248418849831642467748428883397795900781893010978564346217359583414819943462658345496417182153936477253082262655081554608653604972229983064908340575446542824968401158427878986208442536746819062305111051703388638774095003502279496665690563786455171395641189695199016461885341346670311408341568032051037931177160229410054050230825849930186988444944565311564381729758684840781529621682285029399721762347978656049372304943502462748715307535874683689447652442675928217125333093020951913250957582503590426476530175235545364206196062128489717912118757379947018361940740127141099356768552779919259086560405677075314344152216396351186946801708960017104811230639713430199072157516825159351788993655659328655988434319440391951981934861215536175224075386913694468577718969491501655406535430157563834394981821924119091008162753010195677849387387017203132145066963714667961517906237052231454140865651380220508046752939057947264547079405092923735795548034447801032732613977718613214979849669859118059793360827166231872054854944518958541345846248984135091050878620900059666986800211232060477672953143292528199874031655080471390998157920389944328738008358127901932473448363430761249600661684948034893122974617780808423670892946676305687679793158968651839645736970595518999608858342865231792188756329729207964840941955900209783907729079206507902125449389320262735902947496482811123286787620304730350988100256462926280695623040089806002419572219496091773156233717862527617719606259622563734045301778366041612186251827443444043673774229574836991103255923403003682467689837670883017118024461483117091807303619058973057066443815258457617519261952735322648199292701042839879373882339021181816192810116948008659518949344769105157916744249507194961963472506050606655214843742699633648956533565140240600458617976788518690627887688072190141252716098777280963991095514692762590841320422110780582672322785272790849467660616952048219611464858580150317454783688163790799777641235273784873359572040270855130180177467349163053299731174235039877300255461316089325543699616170370661707718662551804055124590872977914591525376757656300801335602795243549789803285435903763321015533164733514780904052340153176436423415137540935062077675944170076605276799884576092127368732185231511265289250473564145558728217157679951238746668125002876991293548501760219470820094589064655032840062328212744282319647631965936750590543752729510015051849802131291560069161995273074617532166856681552777822855782492829353269458363745125599699000508393633621842904088673892233919698197504148730874806087512302005381783838821145626057452946675514661001015459385392897981529155281649768228057759119460172269034909375868622962631663070955205377048424338261359801016974780509287746332283315582621405586419221996457350583191669453273692240274788198945257567385577398088029174002283687526152498749364645480554954419992314521756235591796557796392399015334089515793241278884273941325175903051139797600110383590949679574286298784316516990564378791105916050278857549038141253050874238391794619466072505799894009605742795298437824819243921280048172517007272090830758087604197645964595861651522259548876448077606131576313926145949890975516793225577928330401509967486490085376702471288926249002711333436068688091445967227607359958064673366726989984024731391835320598536001651181170251592009440267108255236082308679805743910685067605740482411423834023240199556082340340353897425234101822475988680299701534268817583311465692880827942999224796214126294553255736163616283705107793560617130494349196214095860007402078435438612719164347972513346267548368283522600793541906087936855280639632822249709306720208077075934297915098124055179741185516837387077839361099466071059624968051616230929618824343204015245814350209747058521177604599894530015089200757302250068284839491330336731749427411741495812341843460792488590475770384665562123914322390775521866116438318813935077486183192623850667626091182678470457642033445986476621539323724293675422417659838529616139275779121986689867379997345589938949553316747479366915111642087287851819391366839112240915504031948411773569457657031189084263357173721182508355231170003213686555436640691856044428061447212953191939434717685024307385085633269625837472526163783079096964612645201498279408974784748330129445871181989221386742538666742660000538985636010100000559005900056715702077221995027504946773724387598760816466649383489230757848715447479748743761474133406428719386478424411199603685570374150405496687314880861090897868689510665756522710794643570926455084798584058844397603827182734814221070946594360002979503372980021263522610579338556066817313008480205022096745889281655395192727014956930268823769747937923629424722708069205713389662430801738690155779176986583010887693644242544863117002563134390755628173839057675492739974272804203337090007716663902944913907705911703523745479853832113641198137291533177111017157369300365018504456765818837556750253390758221102345638609313797106557248149913805938962822951231972333972670729072128474594331612484236792268061571300947079688549312477742933778030428014683283886965816358772938322015782943079309513085558523669973380142298412188919457154737257525798205528496929041663372503657980517121752517388627327790961988784069470913914359086721456870848369662651753653004548760885742676287687733199257493916996894627844861026008321130033625616053550664753070708275064350722293944789908899336036468663976017322092609992667973708606889100871361787060471871991749428514033352045408177820382459796764194653976052797669959939091336832579059019758696921435311153412924152784352561983614040700567367526548356899202516902611280108037142184038437165551797057009935722859986059205377846395508188554293781540996909565734024753538189698346787741919394639052631466372068263261916188867701138449578023264837028099451399572321349228859376466486731841739281279135094057739437378088817758543305201127440729943509192932801379175432513552041255079809809108985191245231775499130308103045719438748468467407945895301767057681599975638382802863847296834381622036827665404523303904371775441527553892063921810283007147113686304292751832626118685064522364574331392513161617045955409467563909597140134753928091699204630372891004725452024278547004391830913943146212578672724869577867652471130983826057932061812176633339670844139282027141536571541215124191843325425607517422085639200560065681196608579518387286047610259334045347202168434898318057820627012815909857321740721817424753063548503622315850826950298729210794977288689914352058157927659478981921179193944745007169723742840585848914603291359402908953812921304891933116936068497204443331383096755137408554980073606409953318602886324118972052740833004976425642364639872340161322161038486155981635379163479160924735132695300923342374405624399109971621160341631803812658961675017434762587918298280046842614578444827667690588540472668998505193421946355580580535878025083840846780182439481365901659237595123020135559440240830305905986514156767741803334008632963559723525646260815378492285925797593132974265884788667467615693186086747336278275818728710523981069320627340107155864475648774486091353937435598725276294801643152707788918150289523194233013826218433157915608823553317140594072001594434255685612611560773995882631992489536411475592435236031435241867649606379352517449951461029399265701442120121211961723566576205921018328765531414012252404549862874538229271697371826106364113423194887147655084016879743559388735083106865578637973379559399959101000158910032599734052464282489048992118978675042443981990012149959293822051858192881386552478100505082951880404575358860297087529385741806901429709751356758743165646369618158369321121624849513521388676801445770294600123410671911840088365461066285172243599917332170489697979420570405189335457050152572196629133038469999350264293333820809498350615943372704318118435775766647115780649602665786961252582290382130512084592180082499686011838267101317783884010484890234908863448307364069516366121703362896642469284409236082989626539524294193566694844866127401666417188429988044431399919925088727747890961891187252405727649139539561028115127835736431805055383047684647031845540752954981776390554499602286527358407388418435929814018004695513970005006107812634299477418040720823085639505243111121994524363226563303421130839736310291420192159265106943131856394062038525302650415781235463985359478768152734810995196861347567390591289470744132887375339116891382671229014218791093468533197322243360219015845275742128355348191831777038446914860344053924741309933928969514355638147602016096201395147951070950342326685025721539234952271236026226678792946644799846072286874908755041496215061773359437519032394011326564554784392780204691062035699955842611457540371278087002496721280855361990563936663214417195486078169199353900924325273858830121750535699111562742572129244324153069983571997044514191500879874948169808567293514581158962577820752350701155491177339955949490761356153802156761565849405726937373430837335891660220787876129381453537272398196758991593676461063825888729555865521154157479472330916358979144914823022543916977908342769879883151450193993324352888812128876142852918059549714732629471046508650870330282167920422692664742342734612486749759014894819396570778392538702161146610477603860054698126130969212098648385676442812413821081878511401270206998980772634169895904639806575864237708806659894816966842829954139825617181456704523760215225305672297854266494328279656697212222613520185403260758808665654400364830796117455237163294173770416513074263166269345326597495623723137308940178089712250104002790151420935276290917294867856063122647198370739265939857802512685761334796208683415687346290657084809558808182156927734696389725894286667336483423891318431854632959053014795072967974505214614195642507327781666930495238341567482033163013164595445070399662330273770217526486308837217326162446579654153712406534913759605835847335099208596933397391082472633091944158842712837778789477870304687907482258133953078254753511699389665007284826678772534153368371777351292912271064636615692431882663127320925686028817264180474558213800031010780987593599641460932814582460332054648029136825436705965090436766245757835316895608249972034405904633783273229465955311643823550713997450182389794757077194940784901959307775757246074389466720055168553171971622125141233566781546591010513611793061403798036610213978292434478812833159048006381828860519420923983572095058538108253378639626687629433940464326922912662994475155583336263972335480097836306311975567002700485845439187664365337377311429904101438913249167867615145023615967017398613521348970944055842396359302999467796569989208360284086988046683043931431383818326617099889639157779529766519538811094185367095139440967797828330170357906484897362571781312203852453470958455126197036829708657499306746064497148983346472107895618293572769725732795509884136574192469400318171678659786414706683134790623160157340472949185037107629219035456731672294613090959511210386690301471110339332095221941934644715861990857272889933136597868400744774401447053285558394122592013449546864224104065628622321889973152088307531960857760527429535512507228539586471213992567362592129262535645709642849239878351971154430810356139578169457872043128590119027750888315744284510532876963737760579146236712939902055610781425400709395376250336348069783189462991879965401156207419048572612298093156656427429047573036426433030903980567265614034572607732763413390437706209285664896478858792421363816594462481801968291435247185438585129088912409120882461817448317768594132008334207644020700592027525405006220253715180519576856092506732279151561468154410442240849541818196709974739142512626181678448862614339339978479714644917510429255110886753290870326058028286797299300452856417516030641912340032817662310076804746941641259833026137189178332914484939466223376302246908586860378121251120873183985873923853032585901201685944911472924472900084810751819335947284562223770297836837774375350090676240657788125222989635457268385639911049207421469760979939580241332243768768235478620114180252597876662750729336221132435971027241979699861195306384188626353060870820810371319597980393724920365099350351637844154563089569816012933137760158136219863582158797090455161343894392238525826963521509542231679805468406864250841655420266227856000451701553331623869424644176337102662398348220177453237504899987174868765026785490150132699554493821274514286749528242403128013039164903387562546187674555042322378658036834771182161349535002462391590690955490841225558158517989505779278789137795009685640169038599671139628839932839001137104289478115367811915832626804165722532872557394901048331695540227656866224333362584681050077960569462287174154997314480641190804676968605432221751802715093607067843805078633656101137845644465043055736874022347846211073309091031913692897383760435117262728101696771285412328927016537038804029367870856067502989566754754607442074026542867723350951106573190223804705913638405418133548504167878856634256848220048530687739387622283470479813090934835095624113628103662143394036204090784137498911634102954381102153589198952269462154237669831830434147658798795589854364973319478036814625239896946363119346767979860041960591316330513218770584307988117750461681686995663842443895610266692318404547326276658929705088930820185578701833253949076805635007099131646633170518479202931162213220356659877929186330715355653276333586860681088730891246650830304130853666412607240555733310653053895663308731534400269676702433827440001353536284513710652382775280103199993684164115911187893202607316005580602428992426756227783615892172573342710047148051479148659531424221545795435525330906581596397646969977527080112363114735024282976193858596765344475459934988675636800674127061150960027569570177279120057600801725373241687238434090468346740031462148218588693035188467501807562864759237845447681145387944140863855451800533559784874366292667186399240150622934568066093971921597496338047766411544088591787532947387601732567240123816589901155462145328727468973331346073388532314871483700017068135543759136120491917366885887600607414079963545310117848616541735573646853420163427178947664017521621253138034823189970931007786839811598012941838361912232724033686152820526701974874206844526257791122458477693531222880125767976746465674607750757301277531196329106699839158607560047880899543520587318869468088419684776516743552230735139522211594500294922060776855764473071535390926633392748811715642069270711060397997460979476197484421012862287554607028503039802513064000444638343461596990572323547893711206611019871381306753950288856213821750959441671908065791845233790462412638911086621801138970981874245378953031485930087666334183872198643257141005652615545278933362715539483561115761058581029970652516966410970476709865061739178583619482386380532117076654220313051358674279873794835699589522471954693322238256179402809892279267670649196584433775312616029297560490716163875982207006702859743526571334951858383966007668090057907175821149688472049974572920265845306378497747387684629328913073310619208019626922190209284698082235223636331046929302719603153204165441914186466497098986665903906373818311600091101807814909370573083325783526213477441266792782538908484112862150358312936257944725589243062498419047452915551207593940737730450517123266334171903576583025108904583801822008301233242109157942134643888499491933076291231981185146028309162065218592628584566876510180858432668467842113951472910247117542168683686415118514370465104662032997082835261102916032492932933221582744242742119418746808356874544393831188290123511481800576621954496051861596620156128305616950178560378103721991573355361654798868605128983098923311087267114174636718699452735224539557250766152949983258554505107477999445529321636867415464560976652817621400115579346477448282892281669890719481675007298888714810884758056897468231339480041482241687634483748152981523807069724491595124843409128173287508670242706298322714994608596070629284318991975215166584699921562695669181198151088035378033193535842624501272115358638941969834492844173263821355710660827576684281872849044108595569274455399681122917483145557937197485363596053142766304903376492338827658013973306597476847023841794176028754713434644162910050350608188095406975514491914099580700879429951628006056305236426929378783306092361221962760543268956602447634532900271509950781017913547541441392022007171526485585075847863353734719410004215133361809165882467547636273039262630372291815987602289701997628136422996180803898215624140875209501918367000751578510791167211317791712833661192852083390220121950640948549083348348838493262187985415898036946385008919437362450912934157068619902921978302742185374378460150131680273737590437775375735478469186604362858268035331675657996162735024847256778876295365004189406228925123581232439471321883624863315112923752474848204468491936462041366012098049493821725318825784212112013896247550285841813198392889946153134585395330294915686439450581487059488874057658864424211585610860828568185878338754389953257274408274979296544523269099744927090039079212892663621214523692860351796172822306938364266965675951289921349658935298336228398931229449164761779972664063047300284247189609774238547450126359755786615738340062004676166008956366608999913398919542540141669226921577971974972567674753194436134446451211370562122267500906050441871662116471501433648093539950231306654863024344308665249305389412037139795803181109887504063348568136792154766832087376030851204797173597232687211187173952434094631266174390041009347718364027811184155904423269026900210435763129826499240333069350189970744723344249188476054883045796526480487514565539038962599320320189586233076880691966949773518430086175391408182135261727556806945808745309149772295137875997445662950766606018605746430534887496756997813857228406908184732695551680198071882299395775040371194070359284005339444305162059175989697235884895269039310651393722610482013758698901604562811904155353683568021249948327843890977098585696164811762946876221900923983933406069383090817080026311449692035664371823152177580941979232476203065107382753098872776703261237276871529837600558402270728807652019114203734820133768522193846953652768403345964133124256355242430480172783833965262800227904876808863439217921762436984526156903761223615052870855667741630431705818245080803507722288933209607141556185243982003174644014261139929371518985688993305481104133011578977023584684807410724424619879954683755277904675038015769435126023668637406710357286875970824443889312844946504886002043561163925882033508963843936582357854987355818729325312160949859397620969199672437588141649774329020927569221777469134942300390855505949446944526559200716590754459191758336363191579588691775873500540419919044085717409754405138364609042556269872785222216337187004005058250696788547424352209327443908337220097021012305033265059127125755806210078317893393415212298014358134933015749462499809610088578133621476629914497339336396932959861053779088347070987289132320038275790618253763069549207026318274204817368533621796658105602612874698165933510230759421253369985683499928120622361376620129703879644269704771762908806779520688048955762295187658514523156035611653325397076210309286797749334888544003450516224593624418583429128532983605330882443876647001112590813484920842982975911665360187700368703862790582698623694365559084975304800251326524790211544017265710438212782216763413347047656865835918526626796599948446778043815953625496523735430323597929565017322268515038259169924885463005527332046556594281933694520778660310789059361588895079434419889966853531473940711301590764863516583042988581721351147951827446008976411751948517936924377446335006566612036946138399491058701883354214370894524905946223023646357312195278877626042596501318703410801842621720143591136309256732556051900614608621529017782526195414250236093432656078762502912332337946991354126044886979351747423099029550636329251857640811984930692516310422805473494366303035706367991740307081431159938692723603454453641640942095867054456519300707869785535875072752506854538966708675626791914726625548599602346787628281632222100802802043641814911644674688857609301825244820002870123924692878995651233637830139578338493506861808010835191382385298635213212665768246166150733785426126430720847979424113577089405331688856806945946336250733087192647359997183376694596840244090941330456866464597261176986873090617419756570444758847291046588097598996172301115942065605282497735148763746063362611732956366713500969700059575167469965588837893431079585725567308759057191593224749425559614209111133241207182782512640845323402318694606545257827909428478821414848157439180859750507531185926498045331146264934172216616965421337313315671579792913036557361330437184465726872451980539292756736173731019103551198067229380440192499516435824704194585333508673275124796831451588672677273312765779086345390469911107826412215968375876226360088155414173439003771668155122358824089730396616952352648580825641005414861250984910012012263504722105528999262722661403341210895876111528058137561761181834775471864198333133775500261945606465505231561282048276475904803085531939500796050600398673359911814601785709284633781055184255007167809749296165067413492613321653569524826634122375073174927525937094876315085634883102538735304065358805528866135340246757124300515795213262022914993351205775704424803902698766591676096618921472322231433291700191871524471190272705223229500496888523384927606371245915144746290113657490100359911012918491717708295413618760071441112820721922880296656836412324985928764368189334998674255941199655304951666677550534836124810534851858545684528434003704784184055768294707868858996191479899295402126425928781634846308373340950480236891474205842127561157622887769666728638597305096224949398177041961594545869060238667050439935774304850542518544079773977298972687754836639875349978236619814653581611559695394610056313496718323712088099252783904582983083985240690507504170443801604478798709686761716668318718978291094203987077503144916748534048152517926425109579983041330974125575745022619974220250010934837499730565864964299030245916239452623077078658286810147312436202110196015644268123064300283066503320078371144356908192790217369085335812299948839534664948452094678132063054773254531484848339788265483288219533581432066493624077956424765115341524931326573190163407561063630792575155633965954545797253721717741583609830778227416557782226740857108093832336779792796871064916893918474551889771044200346609340353797975380226049759176344750893668343153173971935577947568773852078002113767147156300671886368807012996792375608397215165071874378517565168466606621854577266666877349341146714212526876987740549251199559050845404087462559499886273282864520519796616022453258972606142040595734153986560695550071848220793673299803604497835169060594247152733342118638844514534835534137276978067045986332963957861937798739937889576077624981901099589440545901132335234431661717089914678296891128768618605159734993130605715427847999334738626446164704440215985164884411257698491344696610372278339163260366730153552084237891037254679329224474520160102181385437402644428062186762152715551677491490089897869551575271277824608287024015810978061215851134953789622186169377539323348677016458917369764064775728333228079679746213621946724443594978168964673422475455872445360231234794483684819605828936041112189193905255741522302224316864967431287464454786134653095350218661623906718636857220514946529534597840536596833625607416608709676423085236718854153429319270358819402299866356905482987830042863296969029914599317546605772022186266242353023604896439777490575114531731680172895520979188131267727621862106312943496673948698192530607022869192566829919821224614783540203135504209974474207804268766576115998432785366907909722530284169644693988977803088272806578357078005616771422397166144951490155848854374017960830107326211779454267481396189273125977128131915065362391225119118110882951623717374789051990036343671467649632786147914530491981158889283872983334822350788492359444000241600786730499794012572910162450801142342209837553024898029829614280260797025301398572841463531507829905080857166311332805232121264975522500578419151879476255437316833617875942824236644443552510451084746880898528736595839213252253526095612564028027015190498663943228100802703531630618967289730190325016400856966277623228707370341925259765761271997370925549433518834068944458839124952131612367915432294442531387062075742207640121151264160003683568867048648395806623972500547538622255199781467586387331339212263336463852135523635885996776903040352163616471074333797098717630835693292953026587025883558059461779098554887696386831971217688853708408537215533850620149175547639294966904832492188151353494407125899267082878194124880716015183087644962928775921368070564030446935888086283575492408084059798660273013393155434289345358187792517529992052034932059646169336801711320629317877450336143731883317813361577141964224677662745673343602470584920551936977934577018808321942443481251904949286939373968814565137406049387490095585395573140127752786014006592883269593774635701734831372557208098314626610343726361560428955233451399402806249743167543491807532601145933639783784910555269536977242325279932620925652570871576239797861296863892853283968951835517455990309027650546467924259000358657334894685202096799694971632160792159050917939482335921913669844638917299320927336709798193438072013857601597527499322464396713919896492092086604367816698109798929103112659351405331217437625037643786308070353302489218425799203780142801173535973535433943194814657134239153532542759145865186151865547292647528059180471638402801856481517109362550039026669103196354335669280555713371560252613317757326735294077217801716217310901812723034608585911537116640267180680809867435323987946269914495544190998678543343749223178375142769023795181272683972878613790303871279801608729910011838840118527132826858031842007477656547174595262708616077960996140571308608375724960885298425200729502489695968322670162664519610748567563427773139175482377413035851846733763445491442209884585300409750103594329172050477383779151581554521170416280205146351891400190220123668086382910534981531736690392588688038110716296156381642541604010665813685731195870669331506494673068555433751612033743632382509272296850572398400767110426183736196012231679608001494895718608350500384709958927956136978278519590981945000068456333322652739584515895445242234609715428346669042714385170652037146716124824774612634743113816586504268682747628918286773795220006328520151985760249520650882216084048596270441200953451078882785890838712567773202074689256242692541834407003229249488898395194442782878031806562618475297173116238262952082544185300602790740554840087880865122905349240247787017192002001109918475514468595884394789598243025885316292084086834009112625300383969777968337987308112219056343037411373027178977710900692225105777180831053348838192472609070000249902656690358829640314483078676123800733605036986350511797061820652036914552617967983859961362966434800008662092852829857795264206244936965966210344551225584143581659585604745709195854592204193364495434243674714324194192449348026523409827381618924609627097771978811414239753868988769216555429886397515124057770412870402919119668469393529586229712892425677685610911102059108044240073832354360263259925871335307375271382687732559090524312665160431993184127445541078893722101762281305316594927934685306928269526591414383988574241842524724843141156199415928089216991913393162623405362304893550672805732166293105216505913685181241577303147709533046974292893659395447052237909174517140301058861310777464087516483456503932800401887651226712475077636148978210745866165604677624491324923911526218201787621263570288257450113159309405969909516323171352505950900462550019641803377522741728605964206873160563538676893644853733133744767062069772275416086942872690987767162971762630575847724970828697536278480750339372825775695663002640037765108721580457689282204723253832794865249149158185381914940841347647763860530425178477296589580669897614955111377661702121193831076577639515681051370634989329886090942761471445644915785695926135338120132997220388201405200563052598516014790599408076772422033495880534154716761520874014979797041167961789284527640938995758641896410601428885601251329425984936579758134773263398524555983963006170387468576100156568673641649277508063002246949546008836664527851987517703468875511394823220936274618682289138022009127090175216145861800565359358034230177924438654263779987427793511591618762593270243453783354370861256896445001570874320117389775229614061934197253064210097243326718101778292530675267153096329204016084951460858660136977002412727797940792126129142676605029589264160377203156790903729107578722579017988603688372954540437738556149315323612150515832161878152864749603097872595587943278547065388945907657452012923011791918030833368311861357031540613363339917285720247821983343219588989645883143826604132819498719096898995057836545811078797184525389764053768172816718858406967348180624497094349477629178595104772353319556524631983779322516931773407002351828091637134500255158189091851578119278680557425658100197037286124979398354205562692496807953513730146715436652088598604642131967990570495026998015345315673015020050256406901137357463381819999936265800468833927703436421263899056674115704583028981696005514511768332537309462763545687629600132127681200955562978183111454613335840587129712744615774910696058926860126654779653500654356180642850767752450178629157522351555131368126268141064377197833198826193333424051889647866063201250020498550064399603654781658505748048843505611536439842352870135498027252447460229355308893472153300039130785304886179231525880795678976609520760363620863209193500306626465606324971335248233640320478512112977695363141397776981649307304478944500651343593130826120040792834081203225797527174928024342553294672950480834412889844095218168969862575212447141899030721715400167160474791063980908574025685047758662891717339016284132345050544534079536202818511212650764411688666313232757603644143691361102742520959816491693462655501682476884825185862107807532395842112743365473156985234171118394801934963614198611746883355386257709976345970042200672358285353112775493952057062769617598780225428575985591562862321693258983298016954085812142839496846720519320529853585998758687623956176587007764275236448507113065400824093462487198946344716232476829526216054537110117471692375129858393378871875251056939323627218546562344301925610865681181443806613957223266711653874901662818515919230533820386927924882348797942127394626611219873126431315948500919548141113945848682095101340289639010989038162563102060256374743174287280251478459856231544737919622214259641105766021662281806103831810088848182954246859102371626319841137139031015049361187001349689036523296909412134108453008794375379604237380031012466288095525387098900755156087613309530602432099420383951551225067994176441920832377938445212397251157210593258896620080959446911306590883665041229099328364984449014775332437532617743653349006576963776200904477102176342612531394066453681875840498361251648926169937825801520952390587893311874397226782565862569661725019625972432548793129305198001704968367332102023780961527243213742366657642778072081805279380737487934658175916428673249031394447433713823427248022890193006866342222985436668134001156807724584385353188740916659113655334300399404396770535336654106084674627140179646820853342288233113655512579805692490544616920576271072321402592850911569093826655142686107787831125791802467803925069740328977913517293460594068275281866366947044716901658243847329386096455175819470503050592618844598672644110682061192930678595853515315833161879667910556751355399032209358338082371493218774146383572053063120468213521963313244079057652859131653037494393683332687854223031901504984984024515318816661487126958602854880417601288786982262425458116597754263638241779048584540483808607727079519805845495934286554375949768988921684364932925441905744443278714139451193258166593638894499076635206808272546466093429629325063105810131580381441072389475443642374055134683201287420346655759949415467206312382974091283464661611155511574353845992131058420406261212439273015468347621271327204364600805725427353895127069669963251355153537923773181445277999382956199030747166651120422416514338063958634219864953531107053443197169741104171266976934040837461317660472780539936864820343491811171742647171241848447794409095729068631063466136193320824102375340580157177727354719437309193172607636022305191584120965080114525682941996460591919338759566871148022757089235781143362479231383082354173191797762930058998548232484823960457990777213091191423167207077786574038610183373464718892423005246128409430005706469422470777358331306017248895341083371747914272242937591553900413085762766618341830649129178090230796320162938233254722363190997944222355835531372993045365356056368402223635484309075735462572342304850878834645180642990187199790059464516078643294156304394580746468174057951400359977407049396089573649161181654988352053444714934059570201938839468990247077293478847373818861524675689116868640056983279838046621819160224162261924053600385580958324597748561549939410186804604597902413696907936080513602721154271784840120426102639434439601276588816681164415586006358508607270644700906765783305041566676249168735737375235763560942182790704323847798223402806586751890003866392755693421156829562526152869537731891478868473971094870489658402497019944020579813932957353265549251253452566125741412426956261438669043757569028002051392863579602717200649905831211227897673225974306823576312436006647736902400475222777917348259414583754977207503943282549560081019442557921775056236381949709583426514195970476133275749519288820039163468044092030594539027620757708283752471921925116279603552285579271296314605735820072555576272365604368689736073686273048721373144295655869661801986994376382641518895342960723534820995988448568707462957160220998728454115543655886317640756512399376463648930269071467556163778246164779983250335583157627476927671445308522972877806471411510307302925057842975643229543450386715230912616619493644029225348855929527041683790211692319915212383268919692741270376535304582529594800417410707226333966881498997975285971782068763717743964859238446993864300737636367631373879170992734953482680635296286805185226220035785621444599171416113495797934385037305548769046975516118788905491754860930391597910502031286621151215012274890617587120483682976157903738169997866728779449163126851199346144545050630322456693978391466787901307263213001325805500702614421953106842681965760424455572605548855480438654925810886332123998926282422285378730660559413651429717396098830965807127885016596111818412992775949077332885647805776451013865532207049801660079057878852000802073198134250976879426378086696056861104006813070605996423955552977267605935813177082422163497783209816627101127839350005723297194761857908715867681626987865501217598534182065009226972584412442766110716431129872924267596088736811576574546384869105018548823420136625026140346445879979230637798387606455580466783124439249944813027162088392019144146879872750395762266535830430473158557551109111243140441830659902973410890578043991987212317822344564650117359838189197637944027919355078709305907871357535809376918621956720154920412424710120249589492840323812682633571007306661129121100425048880531042541147146629843271457439893500465759015023531418649833837906588354534166978028354222720917003990330794174597932710002345026958696524474735815198956935574983260390792840922604204149354063603498547429707498945290132073321232191000002139161091954943800964421585065822925151339493701282446025530222890863281326920710583815548354247498217841598400858452287147616354593088298974054101325648225387045173154080662008837587281064405138574432098330715787959656705052126675927740569321307793226765197658378552195179860843115831355635177459304329542529688757834192621139447805338275273069475262830790691179763750075383684857201403620985911559794225364285544749732418786651607672058830808239284688177043365763422396372947055193251790133290208846227443853177875173874314191171652581117214068925843843287479243259604362868429149138223370550350240161179353587931148197892746020640573896644477190145274308644031403365891867794172084686546091689815676358238635403614599793986107368242863142672928809110455270195987043082469914564608919734698931749608175008129598912235360693465487797942384944018983945749019572527983329883293816007626613614987996644198948682475195951382112646655000318934356659904107858598213714249962585288860762953736866695008323127347307249393028377601434937802287867022205633360249674864337906528063323877108713420401321236321736261000154074976451785829804724574175835484398564703148713150581380951157206625953347330662297837869421429931955609818854734989115358027676149577316022907724993587419953849907823155335707925265485047081559344937259361494826695163908253817663536008958824320616902565441019254676909758028080833697904156994771856808891317431156968579697464143122262242078024160530378069085984947263122874820030952937436279294718547470174528876467451810587501758891303388057945991593076497504694349731560024311841130805909371080893961485534890203180631880489710531420151026662078066998343340014544415343278559779101740775277482410976293782366123842847071367634735203298807055978132636129162363810959551150857880546115050688264930351688922377859036911625670105861987850087506173136509250998687210072105356188429052734858705517531581072119578472419894768388757195747866195105819350241315400014329000786152658655084370043617765235369431369255996341581225499776088584681653500649571176103823688447732584307647881803656632273483991012347671854766445571157304596824304102575943490885330080513857779226737249117964219542319406713145281790457496900068122700443962097152082147636348016807612729376462035572080596755725387727880529618196166585989081591650233148190271342672372105646655172348445573401404707421273951700823317399538306569678428314018710941149605487854799096888840444420443155978530562409565505309715674689816051227358614442019693326066796685838688057632727415956681558306084488821678228925730269595894366091886759146179614025111914922194016730400282844692302243356791935492377100133206854525923708827332365966203199769316885553637544792996653314904614450420992084720806923424281088884736480607824190236625954351174253579805032129721407887366408109748976072684738587065311039910384019758500644631317613054342887709108861555575819577180518721903398265101454592709252529972303302271391415258032957591182995157353551820681196926591772740706234535724673341745219308479498666663823137022247771704112069209157218218714979363243385839910901211792120768267052553693432450991593423882061423070110302628089822990012385229473771128666583511742047460136877786735390359871475449855492106256629202451426123336731767896169589582903306524304644033753926898360288939518148974259877135660573240930042698179185152799536011600014370044519504800306587574433708448978997427051767816578195664425953288451235562319553998910821118398302370429983209532709440733037062961850419904764063938077160473811519435843873819400360594272779053396693585353481711954934660530548018291692642051197400490217558622443449495480277275159286464587266594226322974407806900617654433607838798931336996288587346487687356366442862723262279197367848358798691015869730641583789591000789689984310631137183242743009901876338401407321247423633193733833401003937207029592429260334559187946461175973960030371512913193212201549195791637039631078662180797555274587571213830753741907917101077221197092261369442346376570139058297169678351190751103984602667450865868639069366362779578956640753631992995211089038363575639274169265526841923458891056947347264827889387651512369204408160398231112622782480186999615605614774552505412512933124635003418707739840878435011884786989976836727905602576865276269407128748525775224746223241902628377112711705448747788281866277626447241320388224012218441800347236627695390650308896180562562549887095597138409403577028268373794910224199363340794023420154687944476866560884800564497336588520427156709584056457760909298968783585095242858408447054137602742800271570065999794018612359445608369330850990906783052195219883208333089859194198242200528395667927828553638152188934399544008001880222342300573123122341573576873687439334973490557640340228534994761206661472570501115406893500230512268729757490996040777393542692703367715624770246067915694646894737076900546670104800907011231057713371532071548772953901204857677150385454851257496448599685641976981279250847685843942584665445320693810858985207933613702485308157225522053826600384040110524815641508607898368584004607144441904469909601389174997269631642595702301690535289594272753179081164358253787746837320505059317852035844944755041654736056259651302885210130098265495658839328845263506364318035408351769646627022382596358598593090583737609884673595526137104407924797942818063889876663161491051383220269079190212506360367503835082378217633281698672582749063115428709977963762054541819211488088821240900154174425586790799003386647966107106497690914280010554641939216770078627647916814671323578051042780523142088406399164619563596365156526962666739392093204851399056346706327396101359082615236748756515042205926721400364929764386447496649917164134421039200976145234598700722711373660634709739478257841211365447780123686395862531884287092224524662711659981380592979308696680031349114099030730464143944405354900824376031295681061539207816680238605314853387805049955474948197669089158129689977943339490324868400551788487353357812048666394174719611815619360152905435059899803109944203019755017554943074638819225374016342744846453837846794943071007373945586285591770552317377673899978129176385134451036542025904670382281639807989153008053485564234834899304093053189825154132397191360755782638006174251033239875227713594498902005958487184768991098323662631215007449619670914107201665486078609531806153404642048867543781826629067652525039716095335988187231313542107196809962580181180293801585725867355744554938679427346217360721538601532843468292266787263100353314660485294985779510656689788533077000349469681747666364013641800010798275964145913708576942229217991558981013531806866043882817555469052685628846108014247591582289510941854884574767668269624629697174042577916778336671264580371874469864056701197914542740611021650647152450835377120846390064820198359082540626365769778831045042296178121542221711137400463575786628945841657672478155411326888416780711645058615457447312459475256057532289479677675659846036893951624110045708411762967544062191357817502307205489536057059616957015702482388746841826264725827311355727456732679462054356300745538449650965460941569572873880440584504542011859923435465700513604992634500676778513345412170828385796594069857507663112376312782088686895321041897143166904256741667385530683589698528307344244945783680238829271889975911423392819042747514729805036241152455602143448263416664832083860639082737749648028941385088343749632239829904275524518502858748385283950088916684002015648667420168880474191888318614538297927408343834730945179301787198692184789532018305033911829550249434787112394430374815735071305082654473922367432281430077629611823029351819643997002257283113830329557550012346108694478742180352651337524969138284521824440485699619012715434891140616167972484223227803482090508657354220854947175214753752230096860693169640544698235401125335768060243173638641067905199476266869981155428354718834987721551524795715818567716844295768779095429057139339447029553111617162187704870832858572481131071055678953673492238806973923758213988040525348127264357982662378135306976685639813690730716288293369711368999499472563301819099133341041054330422278394798829473265006624405434695475399315823686630246897569948472052856537646486586034627031949885938647293280490095182983554687341111195623859457905855875831171129031099619498326256207691162785004558880288116056712929823649295014159369438980052365143436138004455771176349166572254741239704095183082442258171930437720519692628538332815798442431616862541076219616790100156530720077102217706394340594200011884877399400412999188414537311938753305919775029023215277723565968908506780610006647618147998496630053193710384161317985434832635458533387701833750022519521712838785111711952235698924209035996392468467429014813481899322135088680411839095778432635831065588580758170040279550392918137259508800532087770468445953603248674523064483674725429507888839500281781203305466683594062289618359051568821221597646313851537860143882498354272934617256641421300320012402538158806290920036929876757986962008968044097217928560534881710873073800807668459341838455560339914387447541432548877125189418945550656819872003930582665362673728485624181249171167117154678473485055308972882829740096874409423144534615681083513301850110542306084959933628288649926785662727527275476266017829475745515665948727440369241374423218079382959324331711463285537526273843048857331047926774459196206557775498228098518996531926762357066867342427475997424948242145939075756712590205638825142533969610266026369886493189091492075943827869798598753188621027812980518229318568165722532393747407700731575479985243029807732168323240118626241853025828757491951338685439556113475438310971056258601104542255231619957108486281732607597332744935168403723500919393434090458281059737956592622507952518721170523035149608504011626555635559490058440796128948642807271794009879181371008034705828056728089403077036966079668712959408367333024342919735071389475154614239064041736145814368381104212093830607155456468069395571215213411063007374463641478114293567563442706373435012796509846636181998927447308089196629881142877337279182254023253577697780604333810428830172686241798135419859345673859878383096914653876190704185821957577468946166701697118552919922997550502401869119890094211942448294673683225057346651230800203385587057961370261137623286860291226712698499249201331060658833458302354815874423019444299792795651885149183513603760879113529891864388209851523122647561939580986944688640941081666581729829598722258637270617670367678088576405133099049265404739354333567395496028719137375714633616372888558897587831724834439259818682320819892322267886916466858443660006375814306670634765362543453121782214864206910430164469902586599370123694588519125674848762145826001470363849985399134695123908679130340745078049153496305390200822780180339488784903600521848817969249091408687529971428549611611435814292602084997785322165355824397506795431813719912882771122788773918191393054072441830665005815172708572382727420884229480240030608499030442194909854726837784458854761848165388153465036363253368716129831285768198846225704839524592385002703904276772096187070154606120273103337598946173796095162806678687113860320845123825988262105751678193878235801269836594072028612481166468011602583297607267923543260091656983668729284504174914999587509622090682173985467359064110169197541205648408431140800238786024153908121834815499793029404122040934392525780171354410519713245637874917315813006798247404649164056120176753489485761064262806958114661020654994672325464324704423752494828552706302920466244751862822432030130595834761385008176518546335271953681350999642073269595271182832397861058898357912586110960531109041752172956984888825201269101962658247653718970027676570948296327139209370543338830754883050415634921535203025178810089018080119811671377706424342963301259488710323787809556163587042015917610940552006947354374131556492716677694141994572182953507549752745456849727891429738333885366077240269367609147400440601409042571863656960105736299957393860435144488286917637103869317763764396531351653239984362142271070379870247467750675405448415893069946752301400514497041835077404276639406919716123341126647352328583328256274184717578255840344588628794595091907850505567532859813040359015746338794504827601163056644529783798589917713009641504518259892011860583083938972353943884695643415582446573596574395803446342577895310876294511383892212809507517338661476587180978857909012912987748864259978034358547669587114470481200236286492155446505061968936576747148975439976917746469948701829462698212480744311530134833274364219285041617665424399640104052585846179001544631195970557642881238142739211733538890556356428757708792377266524562668109492488414847111914064338153770222619738271233095636857207868353980228793139778176494331634348553732162083225120252551844491366039585841353566993690217028360590676886548550246388415883385520404125607887063359842865615282384070020749169275384406220649635035517823724167037562792272488547449367697067022224118628897311359684391637745215506140288061506401891350475078326493920149299392796536116521328998704629205305879614258311377868270364926132867698013887625570630338845416146183453439933559433106427513479888972785426293146823407863733689471459230024236821599467756698524697922974134259385970856084930029969603805026703988209051037140793828050708173162394750970110243670318100429490716816752283649425135681559497376944944407382570944352890042512049373290083756619378378848364095710645313836627230389416653997644396304403845406317694572370657462851566637702107315781797737312780163618253898019792690796109009604929871074575220838498127604191758954530527077677582627017753914713052406415351650472134397115624565444305709903981370526864790610095046763238840005635723896615610285565135965887103386480016576826997102606555716279521464854999260828824356118549074698019938514929683203748683276126620006544830610489334396923314186845056550634423385647782147878735025314180339614620226422073481378778247644186052556126977023174263081164631091701349659004007671773988398667587495848064396627034055583677230888191929285752145004848186357199133541113454064230475132502420314391088342329136460545857756831788264654674510654390832203777360416097512283957563058641608234780625557312116699458841431125291183895730396661312792765587091021021125707948051108898591233805116629898780090485095848074796897982033327954374329812877435441297779944986544506010319467495393102208131167230339089209908951278539560404880149637266709862746557760350744192577565794120495399776244610494576784698427130125216640930722967816904960572981522854009714174862869324547533141645275180104023838543373332148253878562763730509764929131039274011400528985113820483235516543052527878685590468865282672695173554215057054015361671508722445988386262292132930420577752470435059092207003515227726386529569797271396278995460170281975959321602875821606663105476908294074530831404865928365914279383098255292541056086343217310542829864282074202587735469972787341275147110412562184992504872916262769881946381212367121659275834976959261618095562725216597437854889363980393756805654979044477240392703110234406554463770071569814151411364845784255943201495241481964566811283480946564738134848193109608316494873428130731536133843096451068492424974794387782979868626346035805189983162237448185452528339917226175543752003963606528806924825018230000491981686239103818339571071644496402784063867693963640699367431701133680553067079490798592033349097363881215025610944436027955523377769798755931867126717962425089358619763163687820345787126947329462586622823907365858496373461504652260139806588785965224430190561668235772802460279670263203626981067100244510412268047277259881431637508420734743706329515871268611721411644157559452205757828835978867426047004770785746870414454587344969674142118239248680441927144181955741134633014734426020943421710763896116918985410997288818664156728452384640327190307792709365084394693777836358299778531071787205459485425783405563377645484226393907695333295065408194958266555732738705586094815366923980672693507134709304686726809570808753382015656532225723636511553832160850451326809923256349794351240231423572859184974097407060733685917777842216615959877994111236376207155310522528087094099449178262248342687627977055405921239495978215780992816351540081932837813337338033345097434411170899004693176496100376092261804815282316831609403488604682339790904246086788085600916125817167685706512816866336134183713089232380424847704229770923262020776956220688785947151461580113326889801363241409581619769385222792819939022073918257678527297259310952472982874554353463319675859503412187217667290750843829050896609108688416698666957783375462808839126462591785943427809163607534470718085861198879938027473188333629179290774967938791184915230208674955398211654312367456513043169139556962828852810056084688531300998343996824526502137683812976245384808568392645898819109753047060407210281054513342842223009734574814508693346343270376772714621300927857924564992738273495516071250056299494221893528821947927338856895422087728036730344294928761997930151514069985227300862568929924771313238932911080465139443858702172264350310475533661080925590861275817092823011187387616181702389105722399959813992678583717863783834890978476783388082586025205380660880194121738469451940233900379235410333546992759900357909063208513219439086601995716768967074623527037999089884005696644665994085101083690582738739646693200219413327896371909005760432806168795296129718012655782074189897193949885753350549228962704075000921381427605692337880600024911137610749463180473293291413817617128686407512709657236475500454264293184001980979190878366650662787779713107727397388866092449353758126671125312676448866362467885113524146860167727122160887227645682056414372065448263625269220515270490799547681404741389903334406120116572756182037195644997175810766624865324083338091465489836527360972361692420829677453326940015309214809609583742713524418942169502899524973788064450542837333302802373988585156031771840660055583954762054760584882208415955049091188712333679770977999791986300269840027676444035047218526963833878513963967272510951006033780313019451389811968914363931309333730882038149539731501770827657401194961981903245709028205727463009055834609797245116352301311131677641002671730938833288813985254087698437382140400835719330545835551988268810552882080060835541460522585548483163769961894321070324473263536809215127394979788337877152043974326640573259433003590818794037835743950083439241759803712152619472981393905556227990123047067698568674892406598028258882486542742504174738469885575827072535733009877785292491228106293384393258863717719068675297910669181207477048519108128157514168931828620384386914111646627753388230328530467896078859137423318144782910208031048970921379355178644507095201669930713142042010570226609903269251347458487943769493676458546057026937021633321265598343661857399962146133030978753276794554047847952005688220188703106409422321657256928727459972237076226941453141764188479898988949179500910920833709184014528815335095692920104286417920049241055382554894022099594272483695776003643504265123358480096913097420113721684044164894135799230548773554255605329202537590678671078231713941926757117092515372743158250242828389890570409377352938657284310528451131220033414360750089089211444922815324720552892700484568250728648101910239904087555074601039778009099253527533153909748695384076178391213161796453205488045540184091104542289786810026760661326087148697212941063710869623806378686021775963248815111991194838767065917886988477918264866538309676504271957444463921104802894068105002541167831721254568305442534936536427446592400673540571446655115375655701976189658811081977513580307272183311256830906213523796850922832305439554485021474091332983170764148939027415808426386080254512387549201090016553998037464054101848671550566376480796898448770103199748718086180306684127222325238914694426774163426759281842202927017174857373747619432506383365076328212890866625274915239805428680260504542877203180187151613341281591566970043307632404670011470612488139207912575872212432986649078026273390657785560904786121438236484593299711909712371777269472930120339593269921557063126480675920762796290478487104686806804313369959042674625866033091866229612114435545485840194249756954285019143642351557317137733594014807271125825348179021588840603856161230356741453142737089526707745679645816379548841052311025516045476366857105934072946018807859598092665267720146110627178295873661401024842962685541153881617167367327168438250775044551190694541621593544764018771772513781983536471109650020051552506898123609253077705648588778520926657294934515249256070100305155494215071994670251848857605417305313131114201119315204127581524996736436488423465079538143405911414392251235389195880606680054415648096305701161399083284367661451466705199512177915220157023676228246844705951858382676961042860788692293192863746498587563984894729625150644913963753807325451754396067797901957679527529570860544513543800065984534776486617319215296841464256084003615006028097628098222762682766740604033705650310480172378556566047986295531934089180536373915109342272591860171298581856355311677239363240459764374320364777702354792178490880891656057239025468943254217058702352048776816536651294298039716793171550062770732101333419286001020911888059649542658897968574402293515147476736650769745813303906602922889687940079251687578159494833091415512049184020214958606510386519082590964287180284418642355007327870441583729301677931501608239022151768456424000264080207522434658180541154239914079501726229984377744851905842360987708769083842954439369089491280023828163619057696686144336759137933110758443525825646544963519265584444156250069565159458412181071064693814663402623223388904505692532501682330705955227606630772996428010069936384184968925281451883633703407360414332433854216380603215660122704609369596633568473950865811793580692792415470069766513450644916462171824437918175132699219094699615818220159000983885945305871039256658919314773405073239700483754058351829889814882860117488900350567737683813971796161962345891315372551892297130890239186357549384055320514160617122289281510376271460724845429228323575578879326875711361669736209270152649918677345606743660017828418860660948835276992493087443824557186623442557779319008557151974019401382362624373027978070697887337504887822302153226465362560682626968225309184610629355896410807217620296432326694271118668340694903590947073130695782499465743143559464857959503930380192423860735452552198554937777163869274905917281866926959750591691714643013880990499026935698874361593755249834612839901599954774658500343344026414927403806736947395694758154110320256321492232128114511892118741615609980235280599991090529627987700207194283590524461501672190507816052362023122274113663502907060120607253501959007728091851468146198132134510235657499615725193017327239778537183246763518182686800667970878788281736855151790123740025757397599648822406471237190206512112978750961953684665033065821403370305956434092808651962144516554194235227132728165597830645244039799151433218211377099712192246937776858343162032433760586532692947352566573074134509049758609692631069981441696023473052505328553850067857976124604029623873571318739753064474257293921968028204196871518998075534963778653881170669014031369360420825063707881779663843004972282978219634727148501929366707018439505568542662852101516979987869129855373855330705436166640448180583509613879625831158379404062149007380407124938011601245236147119064840261193579294710956224667050694369458437104834010829839479358819720897314812401582169276099552182992011803716865676553280849286907995587915505597763570584120918568335748345243246549658661858040764702754527773811105002047750688040783644049102874167035213760304739403630936807666021481484285394558534206856886991915323909618287444612249835031220081396232269492072100628619252684040728503330041419251368646236687953894085452487176887694630750188523586297701757951318703129241056337995077133110388767068412636884295890235355552098358093053421696078773717917077156952367400992348043432509057255475521976553323869228579623049077058761626079272286959790783028662048852217094682980697312955615649402205789773754525319251094777079099245540001967024437260937985683324636753030308432230554831630283549975575004908009402126367630383025412422625940996581084368650890406770367430541555123080583567194183545637244739075117473644880475868057820672633770575652417841075018644265951661062405282205989308231087361213331736259896953130231791583496465471610916781547727739460574357413037421103352904162802826991666391767931517292340083852123182783312126783733368538896096730216945305617769491083096805396542972593127805028196070759559741433006733124877151235883024376809909633692400462012044534134926909715700981342559397362370473563246040010374295955286473169351888770471628337765803012189490493582927644315990425154621755757648810289833764743223599202851768576121053039139122973749479361685536872957318048961442372441666841324777260367035755897809555891134265253153028913031354503420028549793396235335762164849219442103335009573334223839324662200063153821588977000703682409876213981201059671380179487276788208955015711960711950151013762052435686268819388141093416599352248802011377615444462481053455251202695925362996591679485923228127557686243608180239552257672766734463373837310559320380866715999632402917284431806736328071151348982020658313428011936142878705158537420572483146577166893910055308454135109044432634550908120581989620672440362736668060314413279826776125916111668830694198130760163532839895079536707642308372839699463562149968912092824810314357263267141239548301294651500686307514460303232449804681007624001734927888855980997309210280349921776640554008717936208962650327721367367232701633595835888085447567544399896113700134072578076166898429120537622011042209633692075882418727401445753004129813439898776492741717182629926876218637447948641590043586388746766218013496336070059856064557467024689458824994710785117684744399980942506233806618150303921444797289877617533194296333905404056833821701226511048508722395902850840481353055802299082014448217064994231757836984639778103961147495013850219824434898623827598427229638541235035601350242303839794618547250080282535738782264386622253591353723909338826987801952281591018565086215419404563203142711705447810421910128007214181097300731145512270969135985648369320930881700577053417552948021042525587025146778704666708397877741649210213500549683428548989298297756443302745619714164687394980924542335226225381064489262297533065045503083096168861154247731475774428957341582728744145252231684315485063076725527600087031850246268281007830540389914493840253502452233067426281365685268529397013463026357812827397687309244164937776324483974995248343003875704361361667446588740737446831327746102733093977011935927858531558223619033863602154907165749209711913060639227828367491280149651075527268596751067098103267456610419574079266647654152204360205177750312703453967777997445658575047072884355890174703727373476992262816376659287932137964690117518265646291208952187004335990420520553999410875885900673766150566408059990523476949262451887308003827881888421060513219452591281021798431859372731604812348806979154105885873168666215899912843395851181553831196048110012276092314082761334246497124068486620088014285421847927285608511546189541642879472143685810420382781210241587970905894588753104431933950977282673577691188407302854166961857703954330902611627696546311036666422677754449027819563259468872056000171383674281742130028937727670386935180548425067417111002253326209587073099040528839871673292752538250767781435981153780399465372752280224100129470846752388772031220141878045688845817870493247478131605244843174016876557222841005870230153615722821008943949193509895492500127483693457324985697720895367923412158396235533694538098281929863335869762081980739301282295787576612678568184191798338606346830400700063355299456223378987160920240046286459411708251685668498666701985635069630707743582510048801705116531830577821161236121248384955654559599778248489101933412776184591829802917598592122455006786720450509696660134392078655030441489974354707265957574522939637341641178189196583669541486500785382436402186626293689317534189680454893702696940177674313543316675964607304807451053149619187384234808216487674380926482508229773740211565843902986828202790010505943984690953208634567252324481398528872203549889797013376668045296414194281542276285051047877786374651448402798485411833818663463976691226409989763086737412387300953851972674499402497019397340663983003754449348982373775990150809279157373819991644658770358558935047568360345439016049406253344816867484531146075639527153850696867918463760734882807687887770833079005447427567195470692699428117766830928637063643777442455730804426886938930395778410106703708464002555280604363951754298837618307367799868147579425737960038555148667589166365295839920748719901431143407808622562855367029812812644829527280636663680059912609263374060690212426739253573317950266962690518325600024660836630775066391602190633312553218601659428596366858858045876103433977047078533064829724286821344369649854006969132349195884829243112807436450292330316264087084770266385064489548313435170455150748514751573521962112099092289531283104211733019700555832127861504278155070943842510033316583319433779374898323561665225935450737342112307581834505391134674391978419819950369973677957022418007216770010323159950465591145790109101922850643414854634846779787196674246440754908516353756045063697192506732532130010823958083038802032830602284940563566263614550001545281411486194270419194025436375966876385155657474837538594799057103446080176417569704785504397490445638099261000735419697196821692076950927849734651695701263702955865809971668921244217124365461452677157020739849849774200843363169189104297906122795785155782918270666004011544359580631969320658240125489971938297882824360355530944348412904718468785105004635374277497529736855663398971579683474504653395908783217892518085122537871920809864184240169743817550466346230557184604601181135204132893573835385205222820177088646151744366994230261421953928968121091093305794861800824953114144724788345440389611766969689341012132412359373373421693894883918204383479265658343800472381292452398705405231768760955545559045883785676480094066733394808102899834539564676418802935281726816650311371871367825688709661565906923632077392841952419809804422682794581146429917729987638241287692446865534297265343497833088958371776658739984280902022323014261402692551657106411047617330981497730797406774530622065491967577757522085585228899929616028263753996775646862108869301560590546779398083149525617009932179639227717858111519910556259981137993393158765072846616478287130913140608692260746487572355423980805532082996053742254783498124574309151924024221455251731299540343200241594362684203480115922135130674481898924425773022077013737292246601474950682312718988947481678377743098864150032066008696638725079567651145620442339122059125764771866397305969166790218377172872241758045177087916774323648876932014248757213569888272369877428190655649970923232601214205670524696099206216909344225126444077821149131623832900013382886419574659998577946905404703341556567578586785691873705493372599826380863397323465968320828960520792917320392317783748888551709045734187298454336066613570678695078044473524036642404570628128848655833155115757369443865606532509002255723751596461854479093315759833591450059978731242285719005604310871581947267064514668390604242367530756775548400743137301412285075343977113383535801361949255832695297113196097751726817806894582034050210313684191515793285632148052467630046259761595123175390266410502433677719822819971574866526297254909197114224389750034391959661023256183135703796672816794224072021970949265818412783227771378554378786940633756273264829172221810800781777210484233479886351941147175469091588719913816470346552612315508065948045112274109338629686952307421413216158240284243287056852401421780739188768008325911699625099049867241534691659848800085121214691127402661544429982430165696303678554693031424081627171337307196720357040622034961454935855258537275076921259380237942306177504085796630197107175497862991331229705068929890374823778544282036508641870238403798559840058791836747771554980849247894583138035034871543870517208609549388880615501618376322840010385563879097159703570451918210661961866961666690770332158379902507468561031692654372533817879886632443445118503814657515903509518573084839945096278681058165584625365609814680196182710695390609262556918204017040218109485349730664613408901471782456590186066870901931719375695738310172568946493333841836599475573905459547604551027260537837055436437730186488065207924070105414000725426691986989590619017207388604716019770702145154814335266699959991891869554326662285393095742811574086819478652950939056986742863143022682617003975896475625597216727073462424707385502714667589040816084335817755618557639506502166814051173971397861089051769586876119436442821935160833006702491271465488318939032078263825033504221341051836286791728723589433006278310868566628501448554358167505427203314943080670555603994873519836698594826369118101490530581515528470604154851921657395364539682861124313379354323521209901477302380781688100828119402631699344842299288575825762443460216384393911621930147445809655007774147252172423876159541172009995225056527638530470028759836223702067943941154705085681714537469114471440809243906839376391921057039609855974281872824965844645795977673704965368122349589422032374133628786175787119183069910105967137402679059172383797355617658491814240134792420865023835624901661242920237866546246351430562586959463530687024555299507668470899898435640950620870899984798466656908082617339694192194256645398153075157086798690800046084759747979133153313324981111900148262664212921157903097572873878951208490501309857645772356068695192810771914241563357765211030842414737613199954017489376045235396725821473030711686458413760348936236705458910251820147733403262744029208193350657462967612033599563899905722092667368914403752915230621868750728322747126373604130277849695361411364225006124201654830841818405747049921098258200138936475557780571567848806614431766624722941612567838808394185961939211505037995845623585190368173505248472218780614427198040832056156005121160329167224013726901931474120550370687307343159017358028079998879226775606427241093022520602223086262766442408579027480255386437856872454874061226728766606346682901679501831478978546689094246073424390122018224903183605446892186373914132612789693611064345663328762820786775848173956252532223554952322769537484826962037712827505904480166016188259629562645733156555476686581661184422885238124616687854229884204934612055817147314987477754990976180691629355644380531881522069471712818123043687842272196720870942573417235247452952641865480034817467021577010239298911502266027050917087466198968462377407733237296551025242271116529365226299845567833598565170135076535368607477701415862210032930700244561492645910830782392844533414320035584413034342214013359357788791737123031236652487959707033858349223979451384012557856671985331222600132977130545371265151015991116415172388364738060467793079443221706071101042287144454392480122577537833677317610289908759913825105110074045520885696242855056258530324664947695832093435124253159662771447952846891710191564731968124689460033072937860773244311536201465999510115833115141697498140208982378002353003548422845095583364968391273642802046984420181482814935121916337252453357381385482855934554372750258499225311445027963086944685769716069733708910284483897027148921799241475377990829689891426139433209132261233580566267286736038194502440011746033265737678409290260803962814176804033400635012224298776689443521076964502413173067031575171455937140638044264936402738806295674433931170259823624404388042987221909020924458437390695024430222477798294707846794355061226408606924078265461989264110054814359071134328182971800912677191851948244878339517657822178397315983771109371657780776179472288084451325444664850448933690934175452235750014250575145600506491965383920041834290679537361138352589550720326231611852451225224356307007438930445314943205163733513862082006161489591791118301313443859725868182664071281804468774798755257092816226137854620244731966526168947848116849969021698130827436843796357336777301106791829381003155543113533234135517969417990060579826177181414866633605865265462924214656247018007645962031876699491043792849233010867361833142035713136866456743067481410485500275222012645176758005289896192654366012094979950416594536172351697136519625799464056983657619772094080762272493928958472673601085801465420156135189292050077802840601537648853970258209695512049244662630317253834306960337097393904629083157380696035386620091661176288347759638869549382757294494378881903165983322267587700559321213902579074192704411777741724237353197030318894865206491710661667605858574488393317193045794069716137363949780277452738647127591435741080667781615535470289897108757827188943234170679959896304843998652236079220397414726097759494572662414234741922897524740496365182608332673627987697705808788565800523826710471114272809686351778653774824263103194314994665735377054039128752074920299593901194966654717114969692429110554078135733615172201121191247753252981768264557439558556274533222789275274086261634975229105974167586442968922510001344892889029399931846537041468276361114719086903793088969492098082970306889631543002429127323017051285958306571282281218580729525514261640156385912829337028620302649844867552142599648049738220355375504349334219317118312529488912779602009401673942312446701945524073703759476398030988743621503588844752136224852990688171256410259038696514074291484164877579278252270245018174165862348794785773926997480316591286998894132671929552831441225123374783962233450347951317739782050238605927838761715977813991313792381819376806649162545059017151502708043684756789400324288857165495947489701817938045666295931962213062465877796625232832154775190755263214097179427668534893119056210234209926728443771825940751025166479474755364448632713887745630964328027954787468729819454553204672632439796103593689449023186259449172902632969201575460634005358211753109283023186605600137849112067477022900017608637640217119497532727663262837749780594549679786640230073446116328249785644490819873247190755916377956754361222898482653170411656710129790714750954146290421842008927117808131585528006434852849147627574983212052139268995125145098727148400563914297641928786222096003179551562789654476830395988974014102655466169938197099902584527403616180700311337462818428479198549136724085307709159175546320932446797094091639187333951917657837568778382137665997487586819907935955781131168544690056964690112067004579509891308425056044709513706895904307327273928766641995420774314458803984674907348734524510386276085730516282938784511455402640093695089991301536869594648858260636565921349187730159228431008488414280029455385004125255393691567173476712273740308329083660214414159519386144232241284581086919160837870481581082667905682510235283213313302535261617646258614115859880857530117070701909986708780073611594893257806633010740609307232090396825782469048223906400379755318799857125020361961518480496881811666597718149972220710713786298490301161900349295229963769869355597198957920132090917659612052672578125234541015791041373150539025099531872689292129316649263423243952782228276624822708747164786186396518392827771608837151602912702377201210865704765305127148531908150417847154709918378771136345141858381458621448677277405206935120009334480336019945131876707571784878215589177467615280643071741032096532057773755289367097453542061346428559441603495455084278775596282082447843272858558250148125540439381150751426588971425159581672188172227590327011397079239119930259522786003167814392201830467289532647283669619064991612975758323460032207120773359880445159959062301916305362417372489254873636514510092176049676601916051416465325987152156096842874675196428722124082887650710614064689556105887453792088279233250919686533008281798055813534872466262251825977551228984071392511840020513379144274455831497985833467638393556955520575899195202859462251442500972626359863181856997496930393194071959327896334508019696139904191925318754817298607977708055337178667407951387048321395336470467741160076276288314561917795964943749610935150068722644007074380381580104296051530839046356898286010510066874128449475607522750232336460039451210254531090421448274019622976323175153282375229876541962863355220942376640808261786556750380967353776037551402562796337866023748276776106169643633867332229867478829526245729626448674077782319164532449572229019745086817976836782940807717876739826947308146757188889953687695134130919647995353243534413701151547539732329020389387290649690649272861636954088237875731822179710437095274566932056271153237318220761196430606730729584321004931294347061799072468439802479553222687074765794529845618147442729351843897061828445067003092752944563147595610878422742898927955110306813835170709804989362900283966182899618143474764796407097888671111528873567172794683590543908846380207317279910009176667061204788373630610070023976204781980933072221313130951134676218547715596698894189569864404525655510976154042070534650772082479143987518832566064861624401407761918154060212479705307671488582575142539164202345296918829695271748329004597985361753983564053393600069768349079523498855650218545705728385132666245463652113302202248443180681006655913349252511843942916098562002560381425889680179246925285418695140788393044556490916526023871242704649420888840496443831670342462101431078894854812267345139224015827539159200872087798760992109315186215780808759610808259929564372228887774823607705127865040736689741918419806386649590512995122928192279048534733801212517731693234734746375760624246019162588910943273933435482612705189669271015534881732155401058963053917479605117623608534028959557541621769494463330518844466953128362974670941251510729514180873052199200886991847299274951047591188448714813145780245655316755512233218316586085805835577814177696202782709783244256952763187915543038198106814633192314351246480252260712799221146948604195872361056437347718347413391312774146019470731953832108572343587087396408427261106713414084394218210530546963828493052429739730347941021878768124310641204748664893102524822902313936878552285385139502017872198197784470163987282834850993105219724399534743108808445531310020624906115975640648581049774730311104733342347244386387783353549033434315416200277016239703883180625136523859924923258353219643994868642429281115105212375595141336628951352116935193610646112258787793882599324398676676581668280866506792915191568468018826761385694262269809647293173865932613518923654191706170111696455919405663729326760916773314337173996125890599992380252468169898531875687262898325303878541445953784980784371158334037594627462470190201855647253711910090870222816510060355543140556445360848650187426753290643371958142869735365157121753529912667903261256129669616445826855202075769227476010514585747279865642599246822741681927448995507139457260544444563775441052969588846381575946895195284644710080241283721911567810865852455545714914489467085458126414853097148363548409387300121707036358584547231561968288132688344989778970950062286150672898596054258527982597049438998589069823780908525765712880266818607695972163291393005389811244372734330165921025022051173215947612190426415821020313150343063912674992926783919707701337123581537402123272144082620414383116003048243365528129607147789120773186875532477690127713130081782576129357824323553655254085678958053767696173999685306035563308283916736418324186416766337616697825882435198839298725019239681386308002200784457266319788990530753498830694004588603004786506707028004147364459907584551675255422077073199500986008951666929995617706170307399938307846717930074625194832841946791614079994011093512565357592132873832936438822922373998532663875656072432463826379662418137175523131803861129509410990479830945620510862918026252365009169475436426464323397405563825814336381656893672311883169681608942637143124900586239247676000857661149739445955834476467128081043334842255409118100463831186544201046790665845585125173860187274934383857075548880832947977433998322845188895401333980567787356807869527669559593398577388504516400084921479752332156756605165666235352112629350989313374191087949468831394789910869306532683927148837118079797657523919758328559431593376038460226245640190161100290127030737213828584722461451006564954452682027840976223540834202521229262226854617216410995050570973813775645064528453700102877766974988822719468552734032148614017541787062655308720575651416093797553129478192668407086288126242305415646919764526896219745477275220674235409567511398148326256773037845388088008806412834156453470296908446626387571644326388414175183104021665822984738119308984509672791705394220167303348062096813933838570043701238902978215790520615023538988574074836537817276862730107691956607696309268154301948110612037605941907130003999678616342995992101332934087517003985533966051673069519957498316017321133531760797895291056449054661943720926993106362841155565259192017690283837850344354057407881077085025412829199014341561108830909430112727015702280333199640618005135329394809642943245295352268893155376625385573154696180395105937368245247933521580247583373070211324880353848568597072604254232709732606305517423641179741847200695629810967775214618415839405243875671151881501099874944909617665175983037424076776925045392673124050937618271200414329651383835061949941374045063100242065865778911599597768847479130962917292325256597926472144565529591186209938901292042219333862866749600519378785147808933095956105737591250670183105521780478483000949112572191163679447759266274136852677177760844091812414022289519417426010668693267561690014922420815166799557792244397278085113562920483920189964701904458943893876793723988447525387002613238851943145567647751975264349124311398552149281554430001291571356268129372958563013996006137692883274147248268208192093899516848413091252673959711791174811200391242368045311347257961954585432667870919426053952814600207726155007825611477824832922757885510816081257643987336616928679059106597929542989893710990935931062209882910966953915673145540274735810270959031580406652744169373481258441301903655953075854133021520958562963481175871094991958756225233726594196128958446367913079021504275483576084812356527159608243682264567478946630109037742809391828077435511398380229330374024465861092906974979797774332207895389217001278383046502491466282614759183684699838766760494240452578361178410726522036261576194484847972664265414262724009482359021727642378665691202417999694966159314647478904791077868151063354629302304382493217526504768409718230039914086421904879685237311015370913695322362004132153778578789476719068199127916255276877817858928263391320550828735524132867838415986742095107504754986615944120792402941728414285073727447680509535403784753316382962632105431538864077262155851900356441924692333468349255178015746981437544937080521423375544415639911676248529241392946879684097740417922966476041191059250360576306953901382188378763744503674869512081099845649119042110717765616701235686868115808775436993163991656980122736525827004701470044830922405572500479295543392277079669597833485999204793345000598570255582024309173963658841714792755349125373428866266358272115019965397048291102724567299655258280900650108840732945810977327712831229376780235270533414711996924057782799131582923750868072067416219043691718610053669913525535660226305244883809489193113275534184086664457006907248005086270040040456395160351525200827743502824904750317882920375126566327882359883370188794222709787458657481775843944600367187364761716524691739062920933925781641792475582690812953498995008122759415297759036820182899040609391608257038213407790610534960706130117865512853546454881541766156398279651665883993555679818173841190382779755919644500824743812245221869604973368371212265945929730075450891992327132511803437246662995065434431837889077907393685102880645512533070693883644975647926864845859103917499669248643021948235066861251137223223865144251711327496994372694186888145141743964846359458190582236407449787604584728013744007256759251955906244756359765143556791092587884012566590369067267715727336032875599255965158197033798098058505337950210706761369413189036217278930840103970565052732486663875276116931562442774661186116069955484690555466082618282155136146432994874692891587571774827591333387196208663606091401974104154661520557315814953538164647220323937523316752332720798717463560880944806997518521824188581853605908133455101938011401925430816166241334210348614594293508871158177646969642526660707093091381507984695597803303473982943052633708262377917497844728184377684565662447392383535973889140397472639495174234746221117411299971648814734266190320280480794692867047173042086129033407713042215501804019298469603110597978936488604870634815004903189591933765514901240375236718989412803567989446767720581158757877758263748515188490496008233013580985257869594588812947301602251885218071992578243640346578195936273309980521447495920263794251507527575060942148826761306851565071199656142974365970738786400004144232336856808481922234413309075491606215752096140239069244616044601069507678654550104290990938694217731157178725896083980230007179699520773285770644958704290165394211106858028200577532323172551945454813251372609546218037113863069328684440704319091948430131346287295525448659328051805957519512393924872198403061849826175135878267108378203820793137568658859140350569551489394471123202473322257488111445739321777198609944147778352443110525040417460988961498254986582229763915528162275021541876138595338430836312698965075300237616371211815055201812431943883791105385971856720075142850863227339598609357306230252710231526472146482532193360121046372780726184440028851774652825466583701849782024235567841492722643459366531680234143203519941254306980202680512856338900082526523942137659258913589834159696571571512922965298540809840219118893570319379822731237681203674541133805666254657483670248468146629402605465662984367951889493924112260286886528157574267264435580935922333431623735541130923274886630948970008881051319419762153145148419049937748360502271464414949868121139263637348688034400794052882243369899062485615445492710019928739292412233088539884839919357179556196205918291189366392901887861875340259878003007259099050759861099470117460947253287525052280768337139930956167797976101548984038688882393061578354020597345378443838524281490980752568488880379883487686927446591209953749448150578011511146210804689303709435061690493033116199787529124601116006306736653440748704618286572565524441408867572059576195294647920237793625502348257064171431663831624643500051014117769843942019644313243707001606228398409083256201287680655007557366067908948975818084533365994400773755165902227370327237601324280763911595769218160418633624521964542466911652479637757147871445347389954784459986339343009086652578493129591923099805665128339639011181548285715853283996922375111751934289702929151472016178995460877324642797055545413597438620390746517510699231165148491252217731913168462801735335615246493227721537832979153700614145866285421921465713390222396460273272219503121075067072140078448214705842936752801837725956090356701349647586082191814583022737568100869444229822282039960714287671280079313316094697245710950465757475123328936226948288166709372432207281305921775590329748256039279812844576675589906888681724301098616283415222362506389167560052608000992240451952279727527762565222550589224655934539530625726087483999289443241646840560404486126107250296529550313296448128255852999032387854903202923807418327006544528498686843757588018851417432278541997047554776595906964703361182074189395079526874906068613779163620737313521854084280920170766749207522701926722296752145584491271414351972939009891742609739470271436622511773057443534600052540350696559533601384498375030736120951760461949695977887394968936604850656093403538298536098273073539697246695780555480525632241590327379643446497884348258036194942872513029832952963255291462817467526664683016112902102136138950254285662488063230449574532448624839384452641615184587866360430678649795624479883684010370958657710831615723104474210918378564748684046484621264541982848484628779379277547784221941267146736266630937089907405567762929515966968299072213420093176631305763465290365548848873668608750381306876742169550011390506326068835523962089958492472207118625619114601178365227157345109790005213934034096314802656162237215832936847097740612366971244466123038302702214778045513111759436032769368444652672253085891757186483167230761704128010523601670516272854400325855828666920213116366255366673744638198897580013063927423051297177658988862083651555135668485889204522478835955871066125570208497781281116664800894943407778466066648333842025052096425230554075150842632348720659715299229598632402338508458853208579839101226154489333543348670226317394268863345368038706797254787996706140471973738325673868040609233007891876442006314614951527967332846485391200132166792185375331546625075575715762453649250195782693992196269072444676437493152298387182663912761488315786845570767175953540108215409455206711073807638546646948109092069571113150491970834688164705617344215160261495871928160768740578787504252974825070638833286100357645442722902388341089411780814729392221351231941906306728688077967342235897230712868826345286108436212801927546060822564979088369101258998729448782187005360148237398639432385895072108797348732003221444339455484516502198524553755813124804882580165899952591193065610163033639029506493994865513446743960260431473875961352970597748359621019050252764071733407960492606128065775082411372959032417709758744890360722852296768835585931942975643053098127587976292762526804747300411719344109781838837560432878486458017059242276975289512322143743617418138338788705674393653729815533805619216493759823367548392745915913057130692810967801654456081513636765533294483185172223930444680535914453763883820279629825718724410733534980469048266020390104687724597366318880039695712075829600091155805696554274347968340766002309853602414649357910672417817716572524857837816653086078386418068037058839243395495170817655484778975459928292429879429493513290121188294907161021429861802517542324635592777770910452314948339628119455638188348194169327695419965459366186398828271060733351617160481252408495815653736873820075836668631126594193255083108784997197561070332922347440028002711655266419941253584368379796617199664190241343558191975677152410205966963932498433026472307223635960681275359384149548421868353214495400051214018076603512383880387412052857338109343497086730343035937835829617551720526553836581449375680014754156784841200278960986162081673524382174008449411609733775497800954388252300130869945603043275439764375028961505116540612466373679873526449871871599498196211164469925225857657516836863343469123608167006542885338232915685908996952494057266695933777282466560435248412137280589529074441365631349392551365618875299114831939378087849374450252533226137364517842737603617639117559239227318301688682940595599959644575713513615627190938072116237999334849167358440666606875903107068653704159288612504412265954646302693303698643234591270092375143983469553675693165341694097729335997212810997944658003796629075091368019887691241719198759254154693622926668682700493879125775118095462983542763385130492746730308399217346338999494024573607612941246525095177291869483690512157642194841142953709358418230988655217534286686883799099968491567499903418552486229166934788948388798688406049454362763199463637204270407732280833025191736690402684555615942616155621790655670346411675773985238792965945457537575944934705557208905295627511087121838984894569081973177913375658045314487253507561349441898981236301286415021959380789438571748830209462644124314002553386503375432043435307379585533395867765355411333648275463566291252478536089968344414727976322824035968686485443240780870132973845620516973705777080457591725771621080169715554089187830338227748463964441258582646729653571765924124125537201476389040852680448011742898584227541569243199327438833094321897295552755989033989183240978454698507929115272432830726220120514863382186775639816525964465994801735797783202259626205481764677101038437940810699910886025912193555473235201404515227627519940228495164049845283899805826955079807394556132382949924298655268289769815612441543676297597374695438557379625793898710211090864771613659507390792707061597869827284207672779256024939132517505505957809011274699060705791899657384229272158439026305798718529349410981540003884499427058047335829727509566543081090246633295199232365988531167364969551719283112677309704994409676407274521998066224448904894226862599104617394469753079360075119324870448200663907043327869286633501989300149836821268085605702629598824212438188523960057471997057228736970550712704742479450239794914655230007651299666621018569705230925109418518953791854717370439408805202615533635548976213433024961774440144184906522226801976816535900756111896472647048742809804222125965589447814356764681364324556110845061550809979602067153792683271153892864213321341769244011692169249092825215205628949201128710006969041105063401174848812434441009196205532477992613144232070096724503898123022219601637326142565177050765690009595532746366438447649931048274337390301700880409475794981676517485491993161049628003608424389199440228792911797716057277252433975593760659692262801179896184316829214180798136561834875905926555909226211651067452103547739308660995250260153758739823458681190771624255162554496515985960648884287496877233655554952481296866789830785648019856344525242727181897934631097846111009450821594352985121273928287567902877894311103898891654186277061956034312303685825527302881165064520756280497766815371798269595572760157616578349855854410666227116055086807800433287347397177814251868618639186103827196472074018900009144680063672767504227348003208678892205095681151239339278424133321924696282296220268987396074076559347922010075405455467394135701938838841478019590892861512287901011716822852094502942153867036363801055224992453659648013153311998847316986888304504677125580176940947373502568564942793062346896547105473515023878293244585994818561684948715438659100441422126144215016493692701717657250344699285671650078343002254298193512129546315213736848145661746085673085581933545431215570791604774776776752842387098585503247125644621019795963312208535537340347950844105983078657691896264367009284001087640260650353349170874909862220650993424739334648932314449272212490983252294295828128655126353604200023129141596652715614394754371113794681039506181103951378445567267725213786043596506149152001747694603846096943353237095416882097633093363893648457244093535079902994074045413386266463206907163573323313763943018579333914066164264334604943531605680207416912718974857815416912630210498502211598364221331057842011634229336351775935453058929403607181134572516831456385464423246099718413369609678087240356351216297563512007489121606551058538603257360919827509052897637933180535079202487910720162378629866929617924290863962747437884290402084682064589720192061972029026203911385801900468625951252485293017411817981229363836626692288107058647721012476090575489598220991585069519787421503650933608786737946436084252612192238432732020312979716135806831485955922023912746800439133292874801071468816714301018533717009853806070201558289241530891529914191289249969263363848252288252900895977127700343953288811035178927725920671292285195695045508924755099757832260919310613932223069935215436413756366839101525834698772753831824353698436154217265602285720452848250505209545669170876978282681182698199739930846174021930674202880747181355573881313898187795086940300976133870371891314846479653241422585586323657363462619219915421572235291786494481134489236822578900302177631984043110788364593125355121800179282597060915533860668567212616249608231365880504432924280635098193557923299024570663731356823419970562323916189818651574747224404059939221865913779821042651936449318398203744402299905698345245597484493336058680001810798983380338974306912980061820296646978930421159834212853251464098137840743085688002935189602348582703752203137862580134877018037785495678197008206875314913890333616219960797473969165544284386267273556508814222566521057184961047271186025305986080422022290902587256493169548583205963554382845214064127388204273113020071138284013418737652136924022857874263990511946408789389827262115884818891299608738417761716057872325866757810173492370308439142668029138733519274129089784088212475289390675611435031103595016483924653814055162158530599744273736724306858428000356029294289105554315403961106616428703023762559318381784760145188050895031235370498257491529492066129357925018559695901926288038898249608043718071314795817506711194075238737640457954192775801236721577791529291625754765502266536994150639122766203314886952734602312095042173102939676282270373551123096339906674470705895474886911082065262721962017531497619344992332700092832811955872496970191018067039964282343162214857739097476621733797881320537223932976640145713800175877752268058095933396530805036640664514945515317077927609197278845974868331425615165848523514482055272125583251563009728516901589970466065434929821186186229502942017318124661975683414420799068608029196504658251674100958747204617120134327387317754685141934883582465979712740783608010721430638844056433025419497382243154331504446582925748606446872563273403707089012984739501365596399607188173941034843286828856575256072358673726362521288623275299614543679025345341000698836346720729205665643642643713221597490042132501567327844511619542091200580921334722286300412863518092703336311413486969188351451921391991976412187904485926975866562890540915457284402630605999899841469808491824699315104407331173979621336419997565527473122187575297158985085122332019876448772591453187102259075945579604382921835916948942281832494583318501595045837931093103765000454075067545441405250962094029488834386732684369082715581601003744505748702811708117908377384010881658923037004386113927042435491445646443857549085157481162835278407005293151305029748870528777029023831432656444013272895725676330386919707861113728406515090853958191069620104414628080963514302582274767192278781522027313774388040094629880248727962776023995421984121735089314003418467870133068417686843077614943815196400846668613662885433375146583743094838579084439432749139322992177068311519296751916893364064505255489268174453212963701795987861778211281443409932244305556441494101324525624149462321383809867268633888001090474965035005896397702937619327052869393044163555131667097427410166592498367804461424037762743147216077402171461123302613548168814782704473333109308689830534428918067419000459743933630029630978294980833022806504293159190011972118025111377895053160414568936166838267380105443405675030769027402627678156509523767033961011230921629219687372496129061303336963256390322931754195561176990140329633175271639874064879055765503615672269145789079097005915272137163849649105290689967786975960842456897316239851983077625276909348133222790763534436532522240696003406232949383484020405014153955134696417951491540575770883365130506136038698819212292183977908857751101047975960614898843643774120974003659089468224333142355789997665442077056688478717929560297644989777854457277402110627711177917684472230235015645020974409001983959119159303340051922338237277810336567138692684725219631126078983881168558898242999187163437172617022756477419687438244312803865959896325748021137203523198935266766472641504215642768139922366406800947587417272508752050435684718315509081746903336930361737432565290152429784623353720874613082144092950292111120436649500541686120808349282150954905517605640088870548835173203146269958462024067172687923037064891067420158720555792332120685627666838054099972520053709215916911840253026096478384675141073166119792583106406306737363399762152051531023685750195030523150751063618400408392915280642313123431848835172519117712135836136617421425081098414057537517608979575827709158734256363698146664915732778159698842607301138411195023093984668816579105095529863710644109404198652492032776631405188406574687963735191848806764013161369900389611560691334647620838734092707734368881405931333262206316022822456741650954402417461766919529168841252689094330930647472438245370653870539001269365463071259467625727266861449063979856176763510839980140579072575561130175896896668115234929286263470886621238068670550434323698825346190776574224892514076953405300596024786364632025673266908793618959385459847933669065296274307905834621366279830117259193464622771080645939486702450839698695583877261717407212980611804943034242202867211496824994547388085836667945181628485707780758561698605776099819925329574129021851604639270222418131332935529244645346695486294889099664931456100157135833044856547319823542666897763939195002406407045712698791050104330904477342296533777380253799168952967791351834128882502713973942711173550840356366550330182131660408895432782671304374099634760951254185717134495879550150773554017711223175291279356783520089836276475459064353455523253844060844319691611039300959091043016765405187670518510255604874977842313853772936506068627771771919657995211515210754312880461089116917055497516233542051072010643341052407177667594815721290207886200046880862258251325345691358081066169311515135669449387205314549065749420171687102952212551616435957303810262804385237546520969553999846530321545312230223797068035429762875246703154067406138820726232584861324802871571952421419693276900237613819061720742326839131400258251077583903306009359420758909959290324040751634596131124620504172920293104426481690082482444404090075333847710413617001106398196877935606448711469140492083461197619968522015539657120531100464278487981213051866411926273853862814222260621792765863275353839994959054453166624728645392753354714372410449280498134887745262269516555726847738014883074651293875246206038283747933112281169042282107702750792417889457133183203787099674792424470954251013579081196627238460016548224640031521274158264623061698925863059227756666031431322245345812616184274673550188677819482827118083020882623040539482888974958695124494002031376887121118900061353822688250009178329291077025439894874804490806476357936872575609972371402729209495195787547339115612547944489316656154366015920151405048467261639538590851670286408178190815508979211906275258087457261100998315622064945755603835401429796644135422221022212386681392594819386526519056651323950066361701837169948173868081372973149194746908034019915689387153939877103990862140660656451199834721452797219903128145928103876140770147081555808888357417375797748550399606945787925581285740532307786462062848613499219572254835323125416396679546373986236760400989300907703668245666164298122696999689906471270330111907443029825383429572067486238893157189222504309031531925232166887592590735599909833362992911031024037728777063820934313242289561973221247340654808522730266220719422372213210997869342698690622783247885510076402893446380251605779027562148651240345035633469194539411560052565276945154582812577153829902301173873205333741239214983666688822245346487961053862883624531736795479326869438794120158721040569834397414951491782443852336469464295699223791022827904641307244749185474651333859362903259565335311354362303147629610231529127379056680925197376325247478196877811321445905428873178621960098403988053279363821646227150868457651396458524719735211096211453376857003956315794951433826247176910622493549689446724702393804445961307910064556934025658116877347938104877148641026554363739748056119774516177417831077712356422516950744790170114289663772634075502074938311358889088613326926069495238573770217007660201871124132114548238245440125048959162931202908785608281544245851399007551993344486998164156908606195975800612100741036035007742403263516802112644497095213548582744704972713242989573353464626043132969950075427673243759005937565585081401480801310704230954280420179480479182257388813682972148504684707053289714038727120309206873258946386095338107834198142361827191088132241504971643648752462401921487481979407778791363098913583719076058287806994100512040287292511645002968518197489519163335060580233829428404075455323263361622177561164769541468068883476282031255451424465858281065066368201290005163684441917670952063615061255725224579007125429823433573729284365822938615250673706948583042761441767934879911761280197811470019349525669772462100546022356345716702937369183764658479152146684047211905728570913431883261856693036900020285925280637737892846679217965437471165108948313032995614210254364116126525761673668370985549586637700615396115046730234775097349834637217931487491503667596454087108826522070322815782354592360886774483373825369932350370037924285752028616536786824971096993531257489434278326912089735427076064743645894044750271826929685342448140571667578107671644817539331855229208413851439293705382906295386695821402333302680943173596604527345040309374933120821337035670946334548612271818325007858947362061286073670392079207975056591150681458433936062866138774711614003122191171155326258423436249456167403295616609836186746495155992879830198757817735987791470036210724893439724969448912887637008468726882014843113810946994019380432711112296960522955236656728881575935256369082559345277820567113887863490777580824838817249732974786732933563527665436971221931484867016564138504881664804524375331789790926621881280093037527535811730598834185805570273953247352069678310100484877842418903851232410544899778080917676896442876784677889695068721865216327538020519770771385357088282968963643586868107158349254058565136222388599887000021868882210590469889048060947304784372760195051027968834034292095082223303806374573201130652943820056854556189668429272112613105639777466528862207190172691886033195143788918402465943120577811282122901232278646528288692819190350711576027818535579682328120273571198061136012836853757874799935567816775099638038975375658019961620395351265392846875790342501119255688364920527296939998964922572696537588927922810086359899114412415256713256729833176646284926647847439881625511875775926657933458859233333995187022295043394252542643140914404813035506370097666737396670792021264740385294568107207245910987803162140638058951502223515724581516869421087660675675937769476044669287008816646281648681650246893386123830369322969013718105181479336775761963278773359857661646494108346119903326175336895802102345137572238531725969055568596746571339393618927634840715099750257061035112418502073881616696113523745905450923297826796055130901652333121578967124675148331026042345220341624689778701009975373810601545667964440647073288123250120194477663419835700863123544312848567084440226804385995611510904503330222018903620907706643184060047137230135003601436038901945689476774574337690415254771749308334394028084116354904166993586954606960332301921834053055058756173942369818070641336607822345999123425453070350238141018480261763100889528891874423833012445505694775525222293426883548094850618216430103939112097835944439413506635083416146762799425323829322364944366251688509496263585791661349642505804285858952671400005368322229114747589627151977483220097171714004835431506936403690401049281031175528437415878676371892577981278366811892467732455562073991307916721823475099913912306777774556141165315842907813975248374579957069796879185526168420362908962365336342894739193068193695192724914002453746576190673590334516212486399285198130545488968927145284305073988137601386954007000231691402823788297382425677837869042489167894900408031961194332386228762544936080881761058954145179341123011855984309286630815818095259580192698069921966118577590225885035638166401501168086823907551703472496403675013057842571993369960946599696945060453551746034544799971335764616881715057825603962592728580372541656610084760317198359895288267215424339099359244416436874910075850718848990636154022836357183605132839260196223522273747029361454004064455197551282658188050818677329703342977332796249521030050684919938548914294315044958926330171982830142404635082829205466010706886955356919429780288744469723197262973428174344339186842849408527499711178053571655660214615782910759446681633649898339136729648142185150867744049730855476456520976374717137201434381797615525078647236029525134291520825060830732595380104226647189449915003070907155063022630988957613980907747480941748141288472230015676005183667469259729659480333485275808319300328717688683974513690572603358531582716900594104086622248325868650442546206227221167891746624175594436339646569159678915023730408199577767506880226928248733090771274968262623975317298157086972347316041359456493769404357927972705923884870531264559016341634538352669545705313679805344698955384086490560360684867440665806863756691047378703215848060277171422521212544078426521259651706847351784571795358165281113416210303385752344702048290828269506157564187569999443817421952503195027596323029198353143226401010200538684848919598301082478192640180658282799025528877854515097397653478300293267982150949490993332133220183117185269911111469807616745896044263093983935333951417420771866077601541926426595337294663372141062307212625301866224933751131035217653158487517407180676714982805716012746618238399787634446235733596653235333010409580464764350859310015727948727074687248620363255110359108739520385252883001272851662776215205005002337504314392912268708747389200800803952156000986350695185640285566428892692303873109485708158888054404424891560890737598457027679152583029013741567926107529566571774538399972736000221156048736135596194306145858831218528914206352388454426069457438574821505399373602629576433077824620988954084851097494307320325279818887870472929032651976510088417132614171170953107974643830648038748543820854773023451838043970760093547947498163894802746869806704408259764315636616511979241042592796607062135131266335096416410376395560523815305958114289431488659597680211967383640281970792130822098581602500460443091537468684848304029151305069957913440271552448771997722503450033302944263894781561828167312627260250919349994395452411814416852263947976350728173998444561722044619519704976419980197971596752984009775315781131310748181681749298279936138564508095368005775799845562445227081182255416689000158642496128641012685254565113169431342929416609820535428031489703863226110650173183930544179485628579083830306591708356402081969211572676651317894048928407316636663466595057039134236349798074122725505920128096533409124074790570589030520932964828606049365053841325538407761041507761022957623517787285624294718917319902173006734077988192698984773003218385660062658723555976232545828668573607698560138580349872024002301828922966112554279618573571163555151706965588817515996887176055372514225616295808202297772683572272824932953157076247016795244469934520331569250711619075796305742128707596938409301240622677533719727513166431902191507276493178406994149157248178954998214713891299289158266987764467767355021553029674043788732126743438930838031288893666407202954876406533507851645797546957785281273993566477075225349557454769720574214461322222805154946675202552705395150518131271730117726867074282583753372666785691132597251867115548260157362931907485165940923806467725658674678834979329203860070100781267204234260694955003836877747314875969010550839266620572877412831129718916923229676024029342842029924683985326845513838243910299888032330330111498718338496539981682635491394584336568243231078933359662464540921529707634383465724279485708896257320806815147156538566749259155243884058457586072921993419869328524856787404473108728666951297317316366620027941496395251393595439002186221252205576128676900828698413692484087260250219683226418816214904285708015664756102748454526836687027564840998922947447477682218863957441021145658050991068310423773602509736041857661117096154185237662341005487098740866108077964615708241917228742419717564908047618724660713359563243719044053099529756688402302521535786184261166316248450048498649437885536095845986456123366072849526322811123960271062403618402860396235734573217399825821016897250068126290886454592067496733883528484684205843352137728629665608786098619275451581795111497199019834343717566709810127015085641790557079840053723171644297016029158279740970544009515858383740722055264037811001224853331479072709449437446521564764246362471354939556959851893512040375555223676140362535569142498001223729059121016041319476757326662541327326058007959554528208883366920456816413113097616797596978825793326801445495711919674554881474563895495568350244050994671361938947351084562561941971704821922408319872548456170402052802330073961534714515405352938973908296611428572026697926230920771743349497769017010854481826373449550696909978363875281522975708329384157275124084943803058852296511407881450404658761753229699502576333518969757644904610707612522159385662272368205605137250183950944290664350632536820042180103167408218368749336037113522850175373017742322223414592346000687746515223346300855458975707801507464917577188828299824241238934033789177283084664120216285347554362742939019849653995551716177216108358208569379505044892159898594653152432698412000744526800480603241662601723378186246069554980459358476428572158507106586124284624966822045343626574542050056608611449944316964852210546388119127916719894569263028768598277483409640744615488234414618485955250436245393146896785114743694460679600416607317258389257776955880434554203464341367989864358153037372866685230151891062268025736627391976040112646972013424766514771080509569292125390691774057471146971321185796648920137491417443575970066971412055415818257655988997751470753044382479308840352701047212463082428789404581935759898223441126525375752857730869391993175461904076735524021359801126959439839243868657588073344595398738432778257648797403281193257225652482260690081140991627881762167212141557864491077194861656716399826522206623219721808164266457160926993742575794642614039778772023863945891190488673884104240207770039279848234797285139810429328607584180774744504414336867968071385452114818153293202049799786532933507255386529662766987815439815411836155473471944887366871842153955789827532415536097162895205258348847424405409636491360706660600601850245017972137724415608848805048340613252440230451422615716603761110392193214156040309574165233333194463160704588467828206413478068714518977983061742170445935289099817734639241956264734440698435414208013181543408423185700442543032323646219114182392482977907960280774992112989374052422788674845841790812618743681042853059490818099056031665774501555930440664423085035766981199838645174018467795175354196638501730982790424671058618977525268065531159510337024048997096181833809840736485325283875459064014632784453362518408256310684322546048495985450913436436652660981271083724584883794427002553523686648013175196537717593574358255551920197091026349833009503328554489592142029678409133788051067809840647195226008332969953438607959203144227089857964739030506043501559509348164287563191973171593062575218428192084196202583805444893732117308454296661479499209080245034714267735062570836665685949734064193024680493222298985816037629231877922554907899842484376985031343608392129774520761128912512050818140681093732046456895433202454757539385476881776489316849952695115874167357764146829416003480583648128035743637833881270198124033394445460586976552622671947634699861235501179236021025581683734509146945481932702889043094655083461056658925263834671830350559966817934281713394189988783728887146259260080082260571001458426914600505319939890569750857649660223858066606562101041268647956005581893778651806745283043362504259598384877720321992975509939603441561981842846901370043144324902241167688764062001532725298606278519305793317270668250761808729718559398703259072246185687361248592816775046584680331490456491093775832890230841191658465562255862772777521856720919786857821052329278606357608133336675492325591621061090580411556543315271293092872694411019255735993998406983472681384365191806394099560759114433953344670462080978314090311789553205118454138232534048587932261657975445942986652056718460162833515242447139664352274969265103701877512210542710577760601150715115322122818316526661872930974539270932170701599656158221995427492892413523877443521580013466350166908321573515851889757047535648511640342286782082294282198095707757271880191026299477711214747277775635155624748495432011129265376183241819411910357064648168053088948670885350643835053958122725188294217530981754789027847403591402261965190287883985983870774585839184969929587453906517460639004080094196882500362297101756689625175745612801225349755863195451101847887701029777110888586446333927587004624195127680269253480894681102519901188299867062772608297355924520373556549543269274661808288256709418837694078297805350312668997475987124297913820668384869713421280293894208675961682310737521743009493221353421115422680739205176877883925604185312774036483373637560867631682805944583151748465136260873687472660932064383020579612129554829754924918580893738337708121331034257061381995700693820489095617446198796650295772994541836360527091795487064143412124257776401794638511091795314139860490620531016018568804434550791634885986594659814928306479270568322058631852669197725468587575320312679316800443936322196772281361718504421501545086491672281416547050492879757525707242521966380391605070306720962221337015389890992268676571585085316432528595519688253532136837723918658551528413261319264997854503432815832040649225636384384328671815920807917484395265700382013913341379985491663027142438618403834868883321505019894700173546031030291506839497622560067470242112284197298388118178378419508445615490803334129201190156104959820567711396438358392374454031943013272658173333128323509149373472403983086916856082175647381570906241193723427453213762528645516855812353452783449133647259029023717797471595122279452615093478730801918596032808769835086495600696796923330218134300258645631551857975176313275295571295332254988196620278233640092763940300864249415508091916856697092472344903614650797602960432201707449682488594306464841240632168705866987539026664751793418459826094616124374824461794570199322985292558579485836327781135575259134698025157305271250477999852180763498549917446970355501994965650220638815798089857529618782381848347097481977267637689181805602799873106326424736514291903796598658222173036586829250758433469672582127998558380847768864075675901107956410786284145691104439367546309604269382675678614963162911379378757042490567844972608720461340241126461891797931150983190330525789873494559373745235618776783931959365920168974916283488721859418340898120539697379353090498284438173905893465028066807978306676065644800393036402416618803994771966296789078519005366288254953637976339142386301901070888103802254946893372057389865628202739695890586371471627849943378651435214531802491293919646362092946557937775414947812896867291623348630607348274993918683240346034837791541287472602871920948504151762356598502668724791405744288442387524144131947424363116356253078201899398704737354137979752075849665001579644210952963238637485330495216140655954780453324585376579529395693208679492700339372841742162135012402790513751190457307656013362488235556283365419012009566166392747482537108356208737167595235389973369341037019605106450488504615259643578023803554885166055982969094675966017778707371148834310382663377527660256662377315719362300374296624626756731513931151337785852945515066423552915285288402517852377736718240750443072613713778831244828768650287163158196085299561371961990444673216981490845122721300694222054757208246966959099242690238105792756014497327138889299553875276046178557458338045754486658173850455232886279748243622277189509269121202966610845544018870315081903056738443301276304374035088937301285203270683769508537331933174401298414252821455557283718943814776757720466629555265417150737910428914717439164874081275725478662495093624823986343890011564542316671978069726541005019818262852905271335210246933382470572529664598892994988184950209985099397155992513868711943701903915764189678830044080155537746442459191065236997955946632414411566861417027195725427649646850309639991316320609183763800368273361492984350144968796071671594389839426048745668159804997463382512513873069997499291973223609408791995448130484246304849356494443743881609711072957990245791601454088742020622548586525899443671751394206294512085174839666003273885502347499747685349979498232297240826578317621064218030758630322679111291479062317103105808844277816483137606547443408018446518186237626600903308203416483935404530906272551025244308870254349637501094789943740245669201064061164661380761508950749602067183353701604067881143201376459900146340741168451060923918660213464177726338057135619401265746246321123673327508725616100151849381928537626652027705190742013379580580521492532221159446050797369104569869954565308557434827227468992197799434714648110664992928566736694971647258118095435352313300326160320200843596438598477082825247699635896620182639575285952530142788229408149675076259644781516691987317381378102388729293460625898016143745399603661106671218582338124330673383021021544030733393483500310113375979555617594432498050794367649015203750703179992952596831813048061642022668890497055253676316547777302428781175676065300912304249497814485419560506072024869351287554045203855805487092830304522266117401725544505471410407499286821815712605056235773528027942006349284445762020676934808164903660101430962306379520684540442409501830460268955961970369148404749229506952532358856614243799461626657974793528370089879879979814517247642268324733252785978344546263091391605762542585417324526733896356143739380682171068301295453673319518571653248127820522442439900004392732470158502434817941502549219600487902214094199875217614256140203931765980936455289646219149661610997478873998608649990112193408875056371571528534768943843575157762056775816543966365085923698995630864829262004638093934677523391884053403294255004801597866497898483193624266413831795786051862566747904867278297053480120163307753743883750021147532963039103291793421777326449689395679903386543190361795622189827471409253123851363653208426661302189159982180488983486706182617726952889466837072171118070566584083034005495596059487301209031263675008591985790821546791380248960787504053658876000432468586481886695931759785208184667510830310189994822742870488729288247817157676484676185227456347446512349049617686598448989425151644956547743714255612085775655443009043653278580841754688821526824986347408259729166579077730273065230245194467595278796739758753091730955337806265701261140846285638494769690315612666096820238682780617835335654577829459911065952292929986745609523170793004397272589348305484699859235577513302843193333251699038484499249723957444021929311065985561013586644911873547646227043165665458524369601990479204798735346207108324386103794529248239387155210079005684485814347673545246775081903355498901385233005413837433412113975660124736019049286910076912582444321987680719481683233179331545550495884845439786980165943791218225144291870194246116853393557149687416015364297968573268495381610823754431263228855477603239894527256161253501235152138401490262695853398380123145483792460193202137216801803515040560024066907258231931848953273563707340693695194328835556618831943810012392281706113132977766321192480687668736894294937408416266012652889604514505018414582413129035554181073319315188076330374501776892263775002067795937989981775286332475442570421112516204585865365974269062521482055904163649432048426903221732172002948629522949594035384174567486436285276491985027555541738775872573750910431402362184090568163052774566713658083866777563782551226635313452773648042368787729878249448581440319815523561440624633343518946256467623358440114177438782157429520307838874146776857648687529279145613593010788260100334084815217180894207627989805056742859837744743491355136364405851822553390094198503916739703096829832519523689701708155573060269452283678998367705331207498658887579504944622766719324894870948994959219957950481425557278539178503101908876745737705201277468391258113140069079128943438605775309648346600367003047723800825002753407670788022450321691666202574539350062632429397136217609983681000699743946249972834693331265622797585402776467582984778955837336825094856556431412457976580534031574287187284528659372566351424460321894313467986427720652404625275531645966102868363022272698820894566985383970542719562506995414246395071794296764248089967571847779685201834427168461359192227063066072886585343670518083434416086960693269729242324952446973337444565222494265879869150896764310773817322776005769129223351100383633730108393819890603767902266189532805698885853067652513094886313742189034457015253481069141811838678247061828539322895783548169649605334874319544997052654919010042040686544031042336319393268561404935873391224421269713294626216839259717906037555321549194235514614905451244429764148728534134197802107419809840450368387589774700740713029301944020658575150714241745808296434297393438312907416520850473563689994768076110840879632399220469370812592203170115924733318360084432355857574629163931111725429365549223484927007580368902763179431954271685230622413227511418587130174380911421265845506486914642998503127873930389098785643666170911863553794050320104382892447578550617639018969954393658358568948249861288374449716872983097910115927884646259221488679749654067284043825418817596069594781937325273627454210024285537894795024743772179690619206055448670909043261568288759276831485465230650191204988140182886520762151901199068216034760747007755838030206142406105791858841034001433576226098620527506399080245799816286335747125573501037802315673805913033474304542530895852155971474899799307656971864756401748341290913528164510002379324879586271496431307041564243785059679565251332470171390266296894036823895015946470708617570509285394075931944236062158433743232407803513593502660213339305987797516872668435957629167553803972755873431314869900902031925529723721658217378092384902624095182200347645214096463915843894929881965763475959464876714525483751470112212929084587205046984658327529476603615554000777655694652744546361689109625016630217807507241394196190276910583408623815383903250706806511162073964295286215019312988369479712259722703094931848317588884132796952815117312290223247682783360030073794473387207000447119545805169435527859750105642688181408251127490267981698083736621519139248624484794726410965853282838468582124865252357825032576471985933591004946196205861681090015875809920380955929683953969947093081579848087307229436132664007544167633151901350039772921329643230718436873853170207843555682038889253761629597787778822996809511270883905608435034077414538039119652684550480605478473009177546091896069439801636971023817480053777726390972298160644437133786950947369909455879337410616998952238702009822196878222869572041671903864448569549115725903787124883018444104100322152115492808465855208462478931629297607683484208694423866274982686833114640882362397773395063874423310549757852279695158060665451944548937767685335251824211107613695899873843130412328402158594011362831797990824559384203481145440015835701772016183711484483796423428228020744921905504417660562726929133733347579984091906424271547968423474337174137421076510078523947070826327945732943785228980963801190393313416417062078680929084101015920133217095232057544065788746545669205296453264514824036116689607763130189556457253735615571249905918466901847425251302762217676463549855078450630027305495664119454759465298302386496186677792603011134970555080953294185396892416854182929958865868699946610870042218001399417267813474263464143394711382500644665925584830942972116658123613976278221245156466246732594125572103160536135534799784836707438155161499966089323574485313367691888974484166041537101213234660858514302437044890400119560021720993931487856107129171040593520055851361485514799665535550841778225611275670489458138018769588493244099714553091851602999280529943529291159021362195099588109716288009138844852841186984609753639800901447455866185653427767132150569713211155741191286722343005887297587607312501044755609337527379431956621620105941990849514048393450241500523340267942715932661167797269666765364194588879599329751365935735696263569034633769212455806449758414897928426338383593059329970836024993138361987832634325096995173624892423322073181069355685842570677352968371384939215470682190554142402945274651584724734973550474897766260855139044188818523118913100850627936423091925724921322702526727264519240958539691425783622363593772257391689668601374659507707569158343114448840347702697408945536994989030364646422627111152827843200411690125125154909456479903719510440995841355541508992114588986825235594194730843808467181592365850990700281167584548783741340494727886985828963396791584173880676169858155470692336521308870823477417496537407322142862483830630279567111360547270622037092992257771752420857832713743596781678407326061157552134839634200934859325960379828619451872512070716235398444786345643459431264763769218724475302010244002881104231022757800094415678343667908122423767102348824557565071662889609742312651296270855133950768975559108369967616919264814566182702211203440904605231604115655850496172741621672628113245634683210576160100017683997567002530555766343262695715180925404275264681720110676919246660742906046341836290466491804271202433379467710336472189019709190921617944410488749654597131841075325160733315245667669078781996078702417157786981156680167513517271284241766285936691753118237806599429135248748027667417645620956096391299624558621254902995363133140798533932185411380340438990473342091872021367188176981336517618074161879024934973928891048972025373870462715475947239486237659029656563985098826463517794730062384613481480229152687789438877910923348949425416059756528755088230941328494104322359118436501202002908630248901735369944246804984694618962959641395518407471250368107232300638382192160473556603153027827945882066906870424203229792849518932103421777507865387240813920692722788315111122190898870459553600784642667163641376452952485905501261272223211838127501858816236617479626035456391313447303300274034030285406857320570069944022965360420564867491962014174155133150208111859115986680471443970228431829183792807070232735312997456785338332550397666575998581188297368430399083992168389801104196616133476922635483272197817328730282623376702868916757766995577552734147596380152500937047811949900068337229326657721768762684576328912923065344424314467510292709297966300336264913719564880803635689063951349129448991303270306197653917077835688527830667934802580184536754622564621617021653750890196907307687471175913656838110001482562359714589603333759059108047581185476574812087216747307641154784788999252340124036083857739348971614319710067132757329821369316640321409966308421362209462059102249859762167410938149217576353771247569867257761480942492723720928398077094141482366220614485226943359403602413577894669781836339714800995090339798145024122951851142027690917891751397958958005531714319933487653196867330537306179442767548189745043818515041740758597452969490086249193194577654182913680649444625989956337406760296927544404537840746110418272884686710129598947042327438622566172273315262532767020634131210343009824385855274682059327236936393843089183337211966696299875653724981091544828439021244257971492651998735360291871617886129296733942316310503241157760955139967501799340255623490400756625859752157869560919670269120139274551346889275599418859459348858254854651049668163180172878280570907003881350522222647955762461092953270290836412749663347693627590003924242819516562364652646355386139396703252355795096915770396328582297320129351466740986380041826006801492651047346580089272966577798314387788537048559846127809653326064511043285922979191099230073919563138781023627606947607955278956246590127787864152127121471921725247438353921781232098716227885815267439871983168357127826098227919710639762479593811733823315789471013108207173993487347108742038683927199443237917742151371264435112528068067290682739032624194886007756442053017799169405754534755075440073445112775198829855575049560010149296084226575320090067561806813074075794552230150318437094029428161689441909805607208516779933517923568649948354667073743990541395803619085903643134028655817496637257106843090941152843691348483795109928829200208954333741168911440142757007481211540427155133394210544347629284131177567760599624782370398738535054168399664586778878319473009130935875313383140100227661263458811575053345620494245010382963550739495417298759311256434178445199348620102842726412892777836507477806387475554871085394681329462837551363606630437165575876870821525197897623503141211920702495862233389481712356255395804850822605293608227726476543611228639398899378802864391582636980361212324264631101041470552017506547812247154410162954585222442317307723881115377994064435157937523223291821410318088170320382544575481640005561967775058462709667764826520247046618741962790879491824225899647785635277247822703467812634214621139720467636897961745017316103163246431944345721035824996065147853962278223653032940465499115283970541140553171469538518072450821313159798215899496915295667343380952568040751306016306134712733278625822535069132380757709077936642033564962894660048113674488883694701328290012944989790278441793090044584917622970313484452985176276630515139204096087562467938280315855043736175545032500527144976381006977515236794209331605143321890247840712722310731116920391896826056606542446903644050709454488471117475434751666201690789882793517815578414688522362840256684896257178711037632587659263731572971637368437903553848985278397632795846157170897470908288997088140736059584263659434446383203529153827607012683233284140857455001493537301391195895845069819466077237482147477126420934540400230260216592447243188149921941707172734550683341956509745713325740235999939529673680293163613407515423460235576480591423858064557351934639836913229826962196777769469233589886370540114686227922986087610247540837714159647475703893875240220801101347114272888304316458562335145343322289645971875225169492730733858479481161175330551538900708647967849921251762112366321034635969189612733108780813350282947946108402051904157318962952611585313355217708276535800086276050126138454788445105863716698177236045367508250727765393884042240429953644680184510584289796936622466972469771087685495105168577240698074970332829872060767480207831985784932346091734833406610596056498991145185002617819013400289110458129722026769266511438864935369665797538028390842877710095998698250579688149234721381084263801296789686414235753846647686273204525473101052246302773478837700781304733971151619392296992666330893053559346719532529087495165193698160355223707281809058252647213815423697666819060853255984580885399046171988547022779325502133717865946736221720322664090843746590236861000705368506761637958898190900020373584192206050698033868746762221383460025984432457898340524420793488878414818007222835411053756829974110274855524261773177028038514969461797415552587324583895721852575832343573832874279029099870265399816887619391559528918900066921710263574347787165650105930965364613663709567023433056076885491256898986789225096855881078718682843725219962279191038828988831766017014010323325899231514770776435388077943934936607729261096299099989512019102234210832368119457007816454602821434054668405239317572261139340126822959646617745026816896055125164870253314083053225617497296137786617673307378118070673900452069495923254796293737237429937697532626885819595536190129206074174723289985633890621048633103942591262443874392329331775284248550752489725673956162741828771516102254383564903620297038831254729004791072094289186293885438777747151676139404261382641029810690971400356086570940859913621781053994580166420651387869292677619111865177346745922054010325724900540646472494427283536668602153077257517142685752971960571317671814687661405146478542680573239756893766399605581810225492552920911489740388043397545989728743936482813377410474000786400708075640086882224889413476774099766957032114856671360242559937265258323240419375363142307383977623402699743448182179800510221511235936345413003229501861611837102726913531503175474749601104619354947921050758221120502794872089057652713305224456309802869832647390489497076725884343242605719096837447660109682980212564677123734942307804356333152322269119727149020285470447552469711174424549990428048702897344076538515184671605568211351583286479768734704144567549942795657915226919162873857413860106956727808972681472795464070162282561368506172264726006181777645237443047980105887476415960970941992553655288425923106886479883935251120864171531096155078909869361324190589338626269057934093047419542093100014426599875913644049590276096083821957927205199566618108501932176043011160402574678969858394823558476559873319032662443166465323698919935011340295180817212914953511211133571769415487624050363157714863008312472829297080881479637071157883171699543693932740676566979770136490107587047944707034586895870510996749123062140126979469027738914206270501349203446196001053516584510771492955231061583504860965043306512357985588717999254148052483234092949826219312079787468135169132852968298225955128300545715524520081798450359471039637909009007316958719271455518954543000351395071517656896245109246791786401038979759694959652215704405924072667073403046922655717926518661489849620361243842691515968139846824175692769168924108060834449051372736614090115420617314957630828259748858745525687510399082023613550228580995783710964260662077785387253492886714034218430482371609588598603022191737257231574782987490399776468687183396653880070676785096400798049160295283443052455778468641118763789746884026346581966040754830454721168619467998791813548883190458017641632028245923545654964334953509082404870295546852856917996378576517647630005800626634060467011202374127794397557740395931511404327112496456801120304168346537259183850129977156001252497053440680066000220511538577616748650313591606574690087358005121471075453003175082590928786879189158906645405640082745918679891909818085875406299348898473951856599301382465182463599792622835390114311347066046073561304075568812333009106457011734063477892183237286294139942083845878707857431262648068599881142031692269538969415541660830465656600678642136105637273593816026959650996812132331459947115640386954181739495317732218493865757306376873976510640056604471748948965355182116000055888378774326445289191465706289927485796686322082005482880966129962530781873996442730344560779685555199469505845378153804280218898425504516785081652850130866016639061496301323401041293373447834646647254758387970246115105187994655060392184154861949842362809338056236675250562748939585799955735909106443960279366115326069033054358312246354275203405297177812774895445828797623737787230282584956253940574473485094844294180295927497711030455627366735256143917128873469008444102961543283146297881323310544478540678801265012273341743507053025521304362681903492282995427582685506446987314830875930439542665168943053113120473062446317983447406239454693581955855108460370235017322944153136720111764883463488549829833805777417201453126434473635226113790863616403380727116118960543642562445495930388101330647348305026951097429289927154597228438891520636410800326416927053891118423381367616717761147224074322780318441290390316309954800582044921357924846684331431794276781671821280503871430944788959262306764302006285797019919930220919293152522918668134483333744958137889768388660418165341474274379029823392879025601324895466118161848971540696494767088688100249055651829531778639260508605942240033024868207486136039226227452549934892786356185672360130677741672431751596382582989761794852452765059133619653266704028548345830754092723613711820814568823567046762308906596702867221051382071034272611000104646123570097420094980466064297133961440018105997016866367534780376672216144987247626369287803524685822689254572360846238921337642710878243408675839608492901567546942180009080397335797526643620662042930825219860471495558534664878352732975442976746981654717968815045010719167652397779960082071272547349346769532604333513315819574563075784076568148291184057777354862399010283162959786376363512862947642743479546775848900476297033881955083448630191332328957413665579370144830667725134465945722322305381215070315867649045144350665294146584297184406340716089043635605717859855705401883486453213022935782619905660086860974719704829890360913575753089005182860524790916122531108448137968139452330578178620371730812150527753106591132806979365382128384473652600659300855428680295807930757128245223483907053469096044876884536383496709060915749471795247547528752558908333922100026980103434026783968146457433490954719581254722922386496173443610208512017922634822042211079806581177794059474427192566028926849498331800466923911688068344223209818056166445756900178497696935207496977403173023076269670906002834228781200473441284812331396101689908349228912841751055287879764257775306156166647644591909363273370277935414422834423095043487076551139046274912814772596960047948600625692463714750691528480328153025926573170780659761442887222566520380373495100340062495330588360703316545285838919227144254823864442281670006504930405230361649296004997766262292328959915533943907991135145044559433256081370402286684266056454768075705151750581337829024910625483586181283481595576780078445381900518783316823418906701729580592558152507812705581543928303941764993836435183500721988647370916558697741959414565472063969396148428958826620172759407734926332810762230107924431077264467911516093701277228159532144513507925754249117518703404079876875090715816185976761250123404692202930841409565701493148472819886003974424935326825316980454901767838289684419815636313888080675812104441512979198199921522047910546723114210313170792093896774572863441289353780759697764963110195343920361323224560073325406692070639268440232832855991229502479045023077932038791016161108749439563537660964366263123801407196865262461479320819107108001298580227824432470665510279697849155538491941660975974989451935864183102629241905134882156427246500513260703845551360345474098368676549380021119711814741557027325674762362208474897425921481621712738883279541956220571000929808291932129611756729642843153992277961522434366611670663353979705316382986363627823151602100589203124616705163563340741865125250956695012918643625370375142204212285774559729290249068777079880999638855627127117641015177301734947763128310484855815641625376152314213874914602060689977652906679460824148704135546172860474544203045570549256823291690529099987104924724049847948033771396737418690260975349478719900089258005719483192457366731651997181430901938596711771213290758104423172356894717881242001643881181930141991412229716189423516874779594214931295931074736281418777648890047922497726160598576063223567956870885570489689308845455487527057056067390136632167925207861618245010241978105687699099509689835583701335335602222092470772376219744012556960964058428608899007655852253646503942400894841884639901210735122344937495097565652379116070035243603895675081743693846978353597766580828832279552016229382350140374104951027103285811685019010881734664630434451904837479590147835746456042961774291558708617790172366585976312239238935260905126900271872166647805768332657260886544754782068232161440830740803022490197082985915884443242696186176882096477766069818061618427743433133305570585379955393290115122515432763398655531599694391372646719890098716588917522899796095828187786400611332380278054540012283300461133799934350540586532696748617268687706007874331888431959867670522620015123572685070335823253784065116826890530395402352841880661544295141974026857052231524885404477997625487398348559396250691679434356201541297184847074436692756959085918227651231693609674200987593321726494445352307644040242723150233781081603628511697857197023340214726521790799031676106164496569210205326450132219554872011953811740377598207976576277404476591408526509859549575129303174148169451782399544099043234920917446707921140597742564092058461962151118512795403056637687555026309627489693855107286078445391330675973718637939965811000465115632095904089190814317947240107030310462945608517317131333291774996212545973763277258257050766208744548245720678403966527006382275014163796100768241446437920786118574222998709867434380738017215518827036497749663973296138513478210573373399621336827954306234219020919525064656719893033939215020234558538327301578893667280101084677346158217679100873598923856906741090381801597447291138144977671776992380327573150133107827817850347010515769281068951172319638495373765957329485575483973198892628465456847961581014331266286962714602311139376824183906034636814620959084648957356957951371208780872096975113798939004550688160459864181225582735747894919765320469649202345718463050203644808666657101663377986074425401806008184042401460819526700948416657892502089698981502183291256112995750959793130024492533506406118068004941429049576553306265001179207319693362920110902122240645979245595641037600426526264768439315337587171402469108890058500724275545430462284905165953444187592209326440376339456860869046939038396021067558646068095504988673390565553957864670524588317025480859917953442363360410257534743957294936517281760977315216127169158036672241140532840709087485828446899208404238090414775939015563824899763387875336709205723824598571246202731624936694719365327879369001050168297654719587279558438483890473707745509445605509399364418480394413371500045262334194588925807132971893257275620562007204032199533877585115755015090389829319630148988758837948567303360538685474465811418233880748564613042534643398703990943207513075548258825195103484646916470854234474543200552522541068424146935988533031548739760731194705083814571766120722300404591513991487960278753943742908869760339445889720421280754550167213888675528549086700541441347159146335584819459165135662564148682391269428491406768952503622368332889672297391954449352887518779674186552331388416647276140141206310269503514007174963364642485619744033602084017231223795118704990247834909367973255258347000337885139177671855430978422495950154184892389625890850897010159180089239635441494551060041072815486450492970181660978769685587349341196088454162746412227531160005503271806912087701114720959637249913295058360666304729125430940729359789554669197369893936504630989029149512062085033304510839192004144212720018880910663009166917708920005235753765139460544520464581337249224654857566341259856668261240302594695548156860917090617950012163817567801924249965484550216591661822630526353224718889310412149762453648235467164900490242766517385481482745427723485271461806689793332073316838451991567471092435091358855498239444285773686722615121835637305086087818431503671314457826513399749479823185306252236784752332811144239583808554465523554975812880375285207148418202737355033236133078316369648249393488632466095738862920214656753506644943829483761875352586969940107185206965167594354170676818037401746281273603228105401709624960545713404556811190863181396100883535633404070767608909016138517537421036663217004274284946935187118331308283437388548788441736978466674180091705619265132429816533138223788119415582281870152863325492904180698689695546069656083904573568038612237356436179813569127804475115431283599097601935506260164571571908161196368515562782000723072096835568045020256896427481291515691622501242958673474220191483701011328167856370598924559787329144643995596531524511921746944634447457469357423661663815130418523614926851987622665220609977583972534081258625512650991582964526955108835681874204965633711913689242780344564033793303322913031502962081226373504802849469048014622444297867536528418508565908282533213058900468720493843334728951645420393869478109604746722453607529835181616980868262879374567081400287456249938340610917705603018128131289720059158151383642700617853830156952504470600629241635072334050174221708971325274523458278831423869188677759793909044966196056238603440780505144554175967401697877578110537237501576147811406297000654741683818478295640460582683520776940547367612473763624878033434443124933481649944559232121786597829004078542762980137136706372486958003180731616362418149251724225871551331171579890765604436772799098451634645812795431882680457991111391009300748869695748800026957154152192617167316139079422655179493917958047531158686301976161406733509015205174063235723399364304746746935307738690211859351348259975657759785715879325098563296188438012146653588152389844486007170823288018968254098866358753362074671806109960739168578427943991014888419154545594338529995311976727577824651966134690133490113058557940622194519422418754469621278369126360396158211580025820214358496044254687615832137968288265159525086896256418829403636670048435758140117395775782575978305039863224848729800987065324807640580819967837376722598336862140189543063274023361159615010554344403864623889612505941764900336373479859214196896970967527164260207742818147461131696928206245397919253172187441985192323913584178239504409980717554720812850573707678593128346513391366935360696774423251126247240113487287183519262930198043587942952168921050971784364679281570472404441299719030041278736982651278980916379239234938574794606546948227788529867906046004379946984361614027122421096001383351709290837657921514168548047430226836531351952725268346177860040651994518153032032989583019224460051112438639618124228441597810384032406781997010627051865682122360170201384493748837460990807360762449750545161238077459952447101600857972263950281416254643314024054929207681588372265962263397330778093223118957890259126293509310604157614373648269855483682574670541688354716262773352046200816408545158184980236580705392521292320057516481024888785636922860757624921550624941003638178458698883385482918259630718500460447727846640798868345843472311707882479149093672338525033750698151366521640455352912109353723770023182561931505057639593957820024265116169880333797382312981533825940350258529675449588551422358409954020591930293316096014234363925022271598706103833397342774163950148355995340922326784554562528403288664478574846251152315028468991090251290294736246511219850726027792167052501081398078431669360235865623988240653708570248921296503691933311176718614010649308804133688804242192461154345045584053841456552131713375924308758330755741563356448688995801038151729170441623011665357326037238277208777264384726361229765174276993424972342298658380628685010064802834724405034400897398226830884531890251591277398284786994400577643754052019742003751087128617807929333167025491749336735961771874750391848194669881163637125174786308002154065014088462717428432251929432111501750563040162688819084315040406571480315615248750802945164388593429098215065003028659422133604202017004220615338965015603746428206363924085145808752628897851946680994219587798666881645059323459272529415664815829799405716695454016878859526450795880228312043126452232774411447496045202780800071533911913551110090914199723394407467804591064584744449380244610373325721376776050524372058301008188932839278899272421346246671267214079218144804716540461627446797309557875427102768829514033772543881112269854925598881127357707818819489392975321638024365028355811587367092882511568802948942561423672608521823196271320373101286883087215756169316951351818757674101820931768257525682780310103135913861346445301431963000947322671770873726771477587616170681600565002129651065856054515326942142534983940090627862485645495461141256852216985167952010480004636419355710071705928784719781375806911921515944990249063932276593733210443856525153668988530305847210132398819446323079769391838655813901899999818615178826725961075105293196624780519428825979424510967194012140552263677685420977100270005666660303856328724123907877056150258960337352290032367308371532105773550109258597652032083423494921423976108199596539816960998795384415076872744549072805098309518532305940728066531905262117051317728743801246899286484295626744154376785200960345613497435927087531662582456174141059424099975224937288536122067495672081386153775686790371775069121522632850448619845100900332487149792788867457692414496544382516993027650497997994147793370331882525518538761346536466801312879216686742327289512753746432599837099481245351503923715049072928753307031159083382380013300405244216613513365269555571300120753322856290998404951744595946744527650400106560988295653805289605275767192626378622008825090445609275137423488674219263808800669487129748465728607262798640342450768076766118649513172716031486573828140870150420142089164377935975815687289814130241953510946732971904336165281075738786906140337850379490952277105468868691542904378296348985990743521649187163085522551838814035259181749907073388369818538620785771183244536188476866429819129989256719965996500069278271383629309490887088293533249765996827632334453100577894873027073395202653730384626687450539207830889519921920445397084607149792479749771145634263737797197464546181218218975869727630300301994747956389214059698175487458959428332544892594973871289821065853104443670569980042053691496912753261873858000810749119507983116472913104597087695770894247266475367409168529137734284656384252878983728931607363712318823402227121123744683563819880251235263691330015021153089975213734415831738038896534712561066243912596518810896579425527570526117207299692540268604186749115482034318547631248670750822071276444682521779820882698775970740037086643741635633692988182449603303130990270990721176333476073612570877586179948505891126418233196875691413339439155220703040134938547873821630957073471471351362385468339269975886722065216558748962226013263497645986829844129707490836124624714824326617078852572340031409258000939215823282443391702453696512444945762206043994880925906937928092287897107735917992012035069147363046230896192719320827898229596429424199357654120788674128413612357399720704952111039633615850784179713898889651740211497412067378969815405150195102201148004229678336385815433212020073303728379232118874397663657024319793343129744397658007297475960105769867443764395853303458581720990720965844512290737809669843240659223622421420356506820687871196789860175324690417902663383483286733943214477890741720738577755455384786322085448684033409835522808828961309591638892180073390739014008840901570561187205844665799283801143255189697446782882650140869409681171219969799158122571647917999369943847291848374541477733121561946827172186617725258181237746013694094596678404227475777664730081113794413250595297346325524579700678371557019981843009466230530354808093451294313377807750887551420466678160976824279229106759137121928841231136611987074501715464222690861581674176151932153366845535116090113357524799238729262106042844368625038508772206988787930829368004618138500090673330512798459207917781866328229476018385227389679324513016842224040033938195693336720528120844363950057873249613130906287842963346608233402220599548371769871804293412073074965487727824754169624094348268394000017628144671120756180340386943667776180634406490835653633524436236418899088665857059241236703156979830832782832000521701065389407282373949314245503331102598596856672367291308115972106395876102496113496661909559242007098053599018938754826029561183006090209236617097725525747249169524949643144464888146338697459324400272481667526965291955177287581432123393573810674341568395294506918467030640955026315562990525764754521849847331342985066440566794767097996896025966297364914508343404533821680879431992043247551800379084467540819612871623666529404156930592513922881380630504744386676936482894379870141603507176575968324537142654625484912588832772002677158499716995172666554672911618261614114019558320166810365033502123866908714530365472197790124246759590004860845043845568249924734199183761401068746012990505940304296492791154572981647882487596638921324821544513010449899179464038135962161273456387504040480478997484076563735051523293415878651664457793061165808414056693532859477385612747309835702565508275915748216404372172097063114360839364575065723250012973360306303849783640983772250256469662695698023599870242263897978275142469151027575198603509903253750380898617909822476349997497635073606073383820934406846912586417159193070731024742292235454624780889132322802772693026960894191996668009820947748942998311230073289178516104177574628165447952399874438283318723837901450003508819729616713465158362722498007047546078246469968417209937429214729415064764768474589957513557590358355583047855752543474766112994685366158512093773402048871788912648982897902196889291653724716830035879643114761165795025732465319044970291417350486361982233119428132813236714867352479702639239967494131724632420780292013361154347293391981372136529785044580803133980205119532826780520511393886195488457771847709021603841025176459031055518281275061660658696082648209539641028262695005842629852703881546978409125063451474365533453136032877528090970209750911913953704052790105841154779446995922575178492768360743545725687054660776206554637127203625248450326256358151879329788358947277233059746029411168410039891261273997950411870901772867364188311769805391235370094995272239034323783417935639960677806972174559025697732506627169475711305261618049346846282869078852983734878361073175245606087194655482101210698308208047498815015795822379757020471530695455170759055786886008321132108459484142834315586587247428832711637997618370526136425759095894741059365309324674077180884071567303259558936118074449635229905889700225288794064670050405085110255573752784816909980923733369877883032147706690379775457978017822122508469600537486264167763108259209167496617415959375059375186276355282749256906189037161442248671605944653985454032024176437470836990810630272690282716489992761946638151821756218399261016853062086704094034338407856743234831550488134403536841958358289083222770382760011325564323008339096323823653167963057980077345361585248532387349945493933585640744724415591077232645312937867702351787219177566025538862527701441992011415784272745396619347594422406654025946742690841598920951338384048256111835544496714255570840698955289911310985844342037368433341817177105604387255703172350937727023943284031860966577749359009050455691995859423442093164330107701298522941856180527027149173417597103316634388554152267390636781356537717563055936762978133153686584968180533408617793442301685155148659256175296670142676181176049186661908623098927509948735838179293936679565726976585071024493037808050141507110379854602546584872024312391629620724436678302044428474507168921211512909588362968941344991639421049821871529120495401858463314022920808391419803882517587799450411534878613677278996234457637317968821613489532734244336232833617701052971600734571085154248858944953766893132784705552743876722637781136054046617748679975689508281911457900531965734531543956470170651281275857913794871393014680388536677557116713491854025292081675675881847415877695329897908146832040033106709550256696214281508057549124259872208048993921503784664944548704161466402820278478273524593192625971883077747093541442835010888206749017960524839098998899209936675914627342732317485249934354830966820369302143540880299082839817812016564144613049427479611898808446796558893875992190359768147955966064927404197020612143278653302724549431267055378031399102450632002243261103508117030211428974797181618692466448647715620214016189683546209467435526519313565644303055388726680787228686578945989200817653926668956456309606417500548022282091263717487043601597012804780837279656070436289887885004973391492887450650166344456546824993465859987916592783934821137034031425329205754801902187565062063499930645342226559310182492657925266805134852283880878307700639888922532532701697059405421602790968792118838632323650630947973704613289326985490281238494420125048920948031624718896264758186609902918408960465942598104378365309237985943831400419339368818246922439646035244988180514493305097819650141497694907214021997804688603515719515115968542361519943005671790947245927829044256928560084571974646819233088232621976603431014154581051272351680901982586076888695187673871450081980712298982638497864754017089889090228175454436543751433938191292205777631213283156200881545734093334548024937618429949918065800813947029853092098294631742682598073239373295180446855742369651044151572742495383155285951176542832170211144542789297302272564690722064903691446369510098229031546597336070631148378667660153903126648916122464890389081844965495616304588133032252026561064382972135327309434899053559244755835217089057075812849942350849797648180059890030727858429420767742330688406627653218869980112684567926582770856762025048678917122838232633491441966082766068956208654641228503602130018195220215183019927024550411579819098332973002323101509458146967301410943577933763825324370860598493270389758789317073314547006998987574275243045750956027411849959690754401968423875943332583365039075076526160788143687303704179328084081711510673080553125050926021035020415987721848606674910693377191017264605060385818664348154745386234151746365425936760417633689687965011210894898645645799025142588425667989442911629435698375427019296180919409412348517887707484617174930804695012867829781084363425088795884990305544930054742448032990498076672020250598237333353655575321282372455588861492305054285333858366205055109323664524117199013716233701183678460734764232469361177019381410091946810707124236417433666709871217122121108675864538769712617990173092728154339529651840475968117534291317063978806041740869429634710178603210771424972294322322467334387628634406055542925006209748146102377690282566001285677335805685096000582392675472099043105570925891180861305932662723079191232762113005747842631787713624309205150638555220430347523823964347907467466134106591900001277517487112304249702791080082986347302750471713819973094015017874705764272971770426396165072144063924514279662215496777017789284440555055540563603320483459804197250857398708544284744277721781476690031695492109263644439277421443639137594260189457954245583756822517995977968950483064068461574477861668893637156021885121398365069270546850624915985726960394737760036429930283038395798204115218183090627655201325059550504033445121754722321642014461838791075492787069134223197516978836981046714996320547302998969781336892763451777245531378330074152488610683772778862038984598299390985551578900148248550594664665775902700627041370872254233348902044464131745692438346909698170098927550729576557877646201684782497642924623997546738831640932548382816876961403925222731769748303121053368478819377618974216200990506756631858781951858447552925546454608907016820747419875224316516443015115106444933779121593822377176025484531633902179611570394466143177204843418045300541004141875493069851011662542430548229695751327429075812779052315936355064026360139552204467306208730883423687543128082845768658342824843042686783010643537269783774419557905933028938083240708127622666102469880972688727491788029323169608946531512405742086405816809945993262224977249413545480014455320379623643359981906401904730656800596815917939177355263432912194771168013173883549552831553942385383214105643303490709761412585757604117802861117274248744696456340857537859318985529698211912297929669429291872081561520076417850403905208707329799967900066951622818811275186806830573540828268291753020916657064691029560204392209005566971455959240484274731752932354450115062366884297259643126020961402678933767387694128779033617919045740674734721165893796261775102882981146865604931615122365527796809818650166530656465031577781684323437837071808897439454125103565401521956563644738469046806644637041818472307941798627999488005182929473463649437289797388919762938226004126582154815050301676335141573793883837918237531830936511298828792809639804389201045164931309808059650480204686918297685843678411328095066392804775089720736534012822249761778138643804095248613874928274172580703853210637789682632336493916322971775212408237797766693927848827568234514775549447246775111495915865800686709591692086392173843776807937674836280391860361013299114037119778658330196722501665128028135998340304251199337278644950675501964134506356090579131034863573644104705138178076402778926756895288071371384509690985449091812517167911606671577455539367490869677195300617623950949843634016372971696016348944262464437081893218308151279942091048852095622202664292194242047984558423449473819903581072085122885151745310643350883269551660814448462337066611324532092792710853671249193970370468068094752276409140786444829620525346927593720326378251414222763353826604571192820719765427959879203694963795632305246058598685184578726187861581743880304460975502093069481748023841474306263511007989869692965170227739738393997980448047594075662061464493715224035144875935407951133981020395493745389488356285676350823144941218482566713845910900029469628071267439984074880259489159202327107861276951062695664145305862852603975854480794404549987372415600362844294954719277304888814607982951168745456676327741513911992587517802438746856316571956946483687929238547930423271889531435572130930834896943648350804035777454269043130317303616679473009446937453559231965956983715340235162733396588566691743013131531698724132434237506436687829819892252385391151760269678694800412061020610224847057940273341836456902864481438003216336337064566142984462067454592952845721396519372620658131942484269494515820575710972596237001774031764928817459525240410564552423307920220220796127715102376119340952753547050997088334759160002366515739977297322801606769587973357598850565974055761657626170449184344567382091588500732021033846061216503840021316811939293729504044319369565401614409042149757922982564341215112475833055241082125077039880286018180387143572463482643303020479546688603186294763928859665245542163761068408358833192893480012441888829637339251577671198713234492706928670712593903782532710003594146422409391470243028133742148324469734993142228748204737955283772806576424183513942815822963798345598603239263276382084456637161638825836029533628821445033989652949990145553464686989576189964752574060638749374341682980348616442953018028701770549696875876284074792348387396130459731049225918244654087740186466393276765064737172466420112208978615200315006387681142802719064142909296659825088961432376777601493476854349203800231434153716727598084946429195274775938142290969064238414563931771255376066420306961621182791275170699384454205386369593832979012391224067150862723590995662438961206036116419848587293379372113687076164411959640296482054574671999950865691204750020833105225328318312122681298766468250395478177447779108078310498939971570909726161995529298403216538633116812297596377907382018718267649333144329442289004419942356395637667886831297457992478779988516052679256731548921501201346664458134768903665860307704333371250534720759801752264267679911867684465699565903474463928908752744394990185297178765829309756523161394018573034834835062404411234814733907741397258228777366911513141493207503112672978933481319221432950558265555793616040508238857611792294399881644310525825764207571595785577318622147243633227881651892204632909325053392209913757598811479427174945837807107936132187199345908170691766700196772989414914912883587589584868343681773155083363196850871240994491632700494976967864280120142232433463571845944884920386614344300866936822362568511128179032985791614834517925885229665386126104973237574913122663912469414612294517005794909655627232739620966611214849842075206431696554420716077601731696415437334895479910570014705181425508752599877616043355584057815086812418825885451078534907230240758974890607762195467597742262408424141644431647090491137593455265380732152566430386592437298598575457316720913096759862006054451057540024766360816799894235378717436491671155122894728197780183000324743387628933027082419831176465250640983923230224930524564897795734267024151240590895304740815151810176090356194588455984918250870407149116441297319568142592521726907412520539096765560683448967111118566198671030571857156255174467780728727445754944906461347146424281356593925025512104711515473270598950283812088391449465147995879960839267238392951978629107025640754424893113011373908036575223285715074743182167221376325806922421138078342306227759393990378919220758726426770987893819852520988275562907551009977554883272655693570422721558974550468526177691911843215610927044636205510331296862676862719920420713220973315482376756307778748124218460111818476054659843738329748660995100319812293549977000147191767049094730821927009350647659004301399856697565462814407899811801776172251140064261575946444908595069373419165828168393222337980284737882161146184867374069761074764027768139993709194804205951716032549029584512335989951859062951971794086139127749890111141031356389586666459905788968371105129238841047839907737460551633340865465295404173856229129660541524609348873986505197722158086694122612401342084751439517144640397895986749114253179777197322806913291948942390073537290912842171571936753591337965405211392012843800839141038876437148229854767580992859486009945706138000446977437739497461617356212600054885076277698035456983626986639863452762524680673977878919119337153771330183896194405158351681674014548497992436205331379406707801476984388336565807188853359473987442873529866232432242127746882920550480965139798031627136292077383312846529066242602991573427923869635915552790187586360278889165967019864280277904099185484564058159108601817763782159483638069593300099255821462945214213948682762549388683845681301692462228792933818022518844235279937584915839776663782068571068596325813499306516266672335473262057937428155631726959681190625645805007555920045749974414283403861778948234772436552622525010159870479598499972040370818017565900410923978746946849135770641061606178926535210750124495040171114618863420698449267520737061519550680277630095924525079987326144839826375217526617361406801346904985207422643097784486859549439565171630371422048319784865602480927801098890373182066752408337861044506593985692967318161034849730043039592434470461187399879010984860129653777552643829745176922622276160842435824386963114021263311462749170180933344208356682354869076608562025752691533855042232724802766471578213279565888090100445458083097814791653649226556942499907044247466960861431193226720124942587033962802929679500437529106756981141689411922114064016676470582422855077471052879655608448644511748207867902077915897947835662798298289002602608711836515635278682634929493130897499384653388102084114531217321294365466695343716886635537613748560346877552318608604101138164527230679069715754367971212818070701447874689341555270205342314279400872310234329206532573214961152662823295609758441361799046400153150909721060854281401164649299757460502550896041021045350539137414229704643515595284325769815845973575305200174429157781160538349926322918085206218790110067541887491235857086482604554530143635187694892023626896665193195023344151200195378547517226613239156035404460893628413390866158487085808198136444796553229686642935451654982267426474952678087658742393259619015653240681470861951381833599010631655218530694274212385908859999723866293011978027488927792688418629953924792603047441867399641527368501134925001857964243518560048749223745049610528499245388825605987399676613136754383919221281314613232698523577877896745084927565782862139497117357486078105996658052816341192263048670660253211739320913135290848997160106183813445291701155588033223508298952357517011301446069744017725360312807232897478029674996815313290789453356640184741391023380380828311436492844927094789657256808555314986102762592641311594113903246767245995663544987703101149410562891144127422712185428036752348468149834385811049930129426120397920360561846043705324925128248124492858383544234310466188792497354912709539898506923549212656669429355251183925150132411915555405043687364175612806659879508816202772741750660593428057559999679655456213208641400086464356285544013871949100469501163882953937455077989227947163106599675845725767462682056467666271568625393267224454213628238420901691887946068272148300805734881866424026165952916981357965878648232010669122732534813498529702683135657448709481817484430234625038881519564137440477836483195552928476687922120789151198963602222182782785936231770802699863430742000732691142237957574804349152671448714604916463723990613790014549544221375219389346857087801294215492509627295821912657816007613552006821479873569298695346369747539189495675640846432174133460312574579497232949877324828725731423977333760766932584148077752821833901404515617441934205286026155801142513439866541876625476722787489875038113017673421031692668197420818442412354866663083468312676088404260540315881648134355549490904301036942557602374099585554616711841812688583842020096148516970087966684988370892356599222740444959942141892340679612496726230840439793325402844125924360287865444887553911238589731306893287264840385788657294554926313108042517018663104109231615395659713451357344703247634304193331553259795909435221248204172560964064874180570767465603048132673913691497589571588489800228894059930246500691881679713779110791692624671861627507586251161738824044979469367451276207067238709433808351658910108782065956267544951409117101007158828717649334155511275280436757872052978984444210479585731456743465320205838121616525689917352164518626165024070769493043759377157573578425728270347115757258788564016331518403511794648561008993830879477649455979022259229256673971180648030051185974554290874009384090765469643710321952275774882117250436617841068089388826144423280048277369022280539107227369668201082530106652059197027765362878661465825777631817716697300354093643810782563246516297755310936340153620922530010048625037746692671615127355131196730486539316694780109963950033585829813672795542247514943026039097566024976529811809453575940034937498475340292893848091093778794546724694947660111060067086736637783692871296912831910012747708848763298057916600159532378636053316971630106603051602678926077413242364530475350746183700659204073098200853638673340319605992326538230071302372699911202955466986546298836810957491150949235634062646208689531499904660287671893361158308441936476078830291096398763809831003260411723116710346006558185989442687836845503095860111375327544307468166178371832696951844247219902289237038893608297500091508415655624861933740910558679418410127537952135760362998562917185169636762686085044041019026715355131267435940153612132882436936304306871368324780521539826477105891066425341872163918538261223902720099287703943032176140830067669947944503369361387810238248301603101785455408765288087940857602654745723727765166395910909361614213374199896019082952245508077585328562913053947593487029867090045015591361331339506793930707860723290282975940074330135649258214189718439572349972460397923588508981924514112583466468148496076516049273792865776652107629046841427265191918098884796190246788895561467522251027029468772370340716001199706594928903974362745782954399799871752790489962360742158199517719294699785927116855089055077855682976004062947727008426869023383999873608101485034331318753575177861677705567417893682124665606717465088480092242307153965246671858268900819087538120240178358398856498823192015976221921944343471361201228385750886413752843753646569157933857789584065471751065511036087124740883916264536785185834131973263620786049447596427580688462381637154182825545501741016352122305419016420424368326979133235553322533509400793515015159328004792206182491857417143948932020115394511263819991179966873881103143702016038205586420432259652599478941552078540653477711455299647041384786707396636672798901332476710926829504084964726880518850649977613298161466200174975766907285441759849967380488878250647727781876482077648917943523482959978668306561439178520569276165678934451740706917140423946395383984977857492532512059672195581769353311281418257404292164803071116511566058312901854641285070450995797680858761095048405045569165056382077155683666080287582041204991595052688852209329942477459721254171610238567889683774226621711536251524477333401590682202133546646554520016668455871305154244842450731527431442555004703968277930039176367761122673509141937616353173326282562069094511766201951688418889770198777369882678370958376253838929460173928468562526688964608402548604473911784465116046366795802893662265201810727136177853037714192682314539194477364922944941217890774687449480695726748675463896980049078215279814698656141034474398509515762559230096628946766261363068247200727680726959990831645232318557013263322439578595679822633990800601922382316209882048979905694170473221615482433845019009816895124700960895085033694151236177174836810709590486714726235013299229167707962389117883211769269931652531889354062161622186005883367345966703100319160743154446524536184362813323197700427107950117322904754571716536678682470859595743601380625909612131219114491008164115817271363529850261265900208464614429439213518510655982901778962941089795435914240072992241332734587389287148068907462632099795169284357531978237478511120081650624394225707985825812390229323019837316914103057437700416343258242327011052639762269671598859976082962540080402881519055148021947710044433878690641214225029583961684038003889438858978596848884981148545605936710638386846745927450017318209337058782245719508599034856987429535816527459635665412901410000842645398893473522893431444491111211700184805032990054655915340253272163759479733997117557027665812785581800231817441082845215597672540428080299574879017279137921231865390010595657066915797562803958332200711671277977829505848182377646919234691282070335971731864571700652443409382836842097261593456016884203628170129787687986476127893510842252748568566702083442672754325473946172277987378410540875327383374848517027980224261564503716048853623851550384655489944339646497309035829556178682150454321968241117215667928651952126731662621691968107188707706586566455834939934688542039577533799731376704231372521116590755786955319875926228419068277113686308429486774891680803526078861102405148729822616447973251651049699784581886757735944387835515560389266174002320958236213508052807159484322766324591022393065657370733495325056897847454235819124112143645226614946577439820977723250580733896509901139208164919290175016392385892464710303079253823161998495785528200702796611650167248697088745390003023276268054707410285751340273203280788216323673298307498832348756396373216879221042275868102043429318933048490991269373591710560164806107716783011983381548839952756992205859323924490192090713038654090022181170576874770344844502847114656716505002626239580086036010838043670261857942143619898361000149757358460909775913841655728449840597450680647231827659730179894379044122516967287141411735355557000983881622614533211966468994247973770058371932907956735074557343653786127859352851871937901823283287554318514379808404266711278014939669895175263970566801855111186123929056408787135252679986402117362762724443821239520376200237254877312294295880117030947363421844197279614121476248272431332290820419248018070840582490352120255130980783024369988631804867826067357885245294570210145632077742105898679153047868772884817903275057562756804138184703924112458035425738431538278875955674553028801587812937325567126926400857516304706802034200429455858850212384555421802772430027819666026161017168962576419093815964326161999729829994481668623922581877904707927713686230401933139887304126861330776310083920595490318936507659328498944012266210690264369531972162249446879279012948747561092068135784103413901847636568741468420454197321625871772438921195045602543428618808153403561196470106906177566752475024335159203622733568975993313566398650224241403520436801234761203845703081144276303307873783899376196624049468759374076539385946887744280257264031205037141855996291605454723603511711698661384492270944084733413208562404554995616500281984714479945766447135159982608447006012598064049957963365945672449548708364663797866987204272475606020481930958799054357611961178194701709590160146088302082974651130457873991021515395530234612539757776823613994231126207599066144265717064358261858957894894479342317500497368791586345000481111808263155597835343531048710735867731836434038229758627526555582648438907248597390578738526106168070495979459105283623291958400988938972769207420004524902190965582707036519201076919944522094153125354672503600656246923938588173214979948214538515958141893658045880295138732157119656864936506651336794388138770948221840169029287265921652707815129897867501321124790375224599265880294137074262547964997703149072484935988251748434206393083836026776459009164818842236616530114521963727846674287366549554271873624687477811667926031924738068404614099918906001186089280166673898229483400909190995838494341047887144274083654506928885132272599890176580917283525525684463924375198222451675709292388915316990066860019398314509211500630643534782245728215793783352416913605787215461343832471119920420458486531053151603674776088236473905849860961783113482487209937795233048503631862692937688918422400536632259749631304423436632108023426118884963818834412021149700833623799556240053547433740966102523156975080710399517355589048129926321182037966851066232759682236772203409399814697871680074687071828608503868788342511254148267252024192064399415228625743493604614829893009449975473515038255966334286291099679274426879192351538495259776858534538300640060372988703039486031237479441999894585515595970619983830278951778422910514423848428484837519263303418155150826415160200885648028805813493962361887238201977430903448724435952901565409112505557723896866496553080045448408230289645069900728027414575780021858479936843179336321527323007358941510432713196375100876521038634241789935043143247652362173414805862945378326789604095804972008824442512436774078484905265977826535165451060012032005297718186154672552287614951267696042128839364756768358329123306803372458977080385744803570159556500021237830936831603941248212324895644193344151450341814197081628148570140087518971882959540052466895123433158019980986360997861219235231654135908442734385816463588286355712883804702163022515512478091368895532149589077017320428701578721127347713430776195690080736014230244576787423417692841599895020571801667606309888628769816567964591037648680639859616585177647824839531504941303142155155878724083488134115455244062807198367378100408069646252781410905467412005834950118653889610291594013455095070743637990790258446937324123453702510887294302719549233509459547179064485328618883157307045771304787174595640628842557594578337080510363851504775844174344625123512135975440742316792350224118564709563152001972504446268745771424339333559148025821696394198628676700242654081775033473487149786449108261093790580523002765237473394432881497498682914914383586011790738033451111788774346650875582318642241941218593424008012840837379876428555115461940794271884623709863977775405753423525507275004229417189399375171886167900582504800866954452936041111136141546896171225864424317733740649726123068627598896595850265506227545939833475757290625747960476059628554474241995498421454851498874139141885513752696277648229164769675409045880102453752994566880897221730667562102259898924233053363694177367557734623511199875691332421543363340581773724382177684017539550673144333243777674425599251443667919109139271310536005422972951148294371882434683852428220253389487671138249172880361867848320414035006249133855804630488729161137200403096917197269712881403535851627777531717812642156076949451782220959318679984831581320672458464753272561642961969230591660229935348627496760559927769539799195008668798728765243045386879999978486389611678398459728693351961804574463626484097724600259956159245135083685447577618518657248755196562292284454983469849124635495653915067887339765869961069056347344273021083339482801306468970206603473951578404131900758217735626934487557264895964432102382585631912206230123410828910061256808593600307587481433292002993748689402974530876312136554514869603280145979893876422889855625014950090013962212279824034787885140266297184699964244263707153224849624463559929809117517513871083314377211483081108126782105252129461965530241303069564031643482376372529546786018516363161846046458688812821608623145387880869290860223916796903386577067651199099431180745720650955023855366486834341124980386000162960702021323710119296555396687203991121774956624515309435832713133034592200584050559469817173789909476666963278259864852287317760972431651095160267476527342103240204518111957374134556780209271827533361627976891483352320151583247150790807987711210465119471774568693146304726086056613690806389868336292506838103813896056919716195569008263390444118016857041771827101373881929895301889928563347861819461643854171885854356001824140270999532029328066178080697772951614832235586531385158205793151618739951414249902042997488834057139441411403925135951244989138991731087679957782409806527803004776457956646515068043165216304476099942695408766943595376241168550277788863495483748292695981255826282413248340957248394766889769937667567088990444682320058894440751700905392782490026183775332802870505992097405563075873126655622552404008045075079176185901388675356812068392155155862075440844885244008688181069093493633780371398325813527699947299904934441722810198840026603705839332724583044707904891595987400747129140743525157645834615299969632593454174790775275231913907175165492865811714074972236260365139909729841300833869265603788879567877726044375959739617419726014783886387412289605228071678389207485532141555710091397818249781791856640704238997535971874149489568013817042478963367062881469965045354884349971736639716948860065610749386036053128759498694051732731780098250224313997012754508769227070822112060016156896785797999709076713453366441034769152947521109291764677968932438525725468540899699073365917241600113928415467960718504663131629457197095938311195455911537086402675680865997242569182392551381514822808089458819280984813614319293651643695008793390007600871915116855184998483541140683330854528711314902699300739010653969907315488683467847564360419457764755216075835575353747115326390417113967300060209262051690206605022425319802220312320692819972413860129799953553973899971647054539997157942322195092250600365739114878924131690695363754768396999287265197184918138809194793205128156650710951932346413645861441494754157487827010129807369516902121139483108492700158808988809855678920802784514987453216743926425743541159235996566716760696183102114552410161848543616937238679676501530309045998844519698753905643398740493059375109989732917910355316299065485170638245004391152046471282118991008178178220162527913074174590146730218323846026349192986321713785616863161263142337267162518720314028370153962784322257850710368869142578961665945894525126317497501462416287215402539261927141465291421040259567158451417657640375175874356774229210557627512049136858244791860690289007456060530141388748761703261857609597995647904314725349793022279738899302540884626676543692362579466752295384399324716419025708642349139889249830327387513362289855127212645378308453666537558653628402137113007053930075929099095585165931975484851086560955628788851363890260001157971760766320639671301409450994555705820795319403350313647914752520076120358405240282881936699477848342081220150500054980607197750833057877642800453407403190326882078659014906710603646053790190744058392066897266290328489122982795460346342855657117345451262591332516561508914733032524276537480547574661881663874815496228176810194105483482546236079570692343802696054955358839515973365120832958858952819769517575582365781292022511846904877100509383223492689205626586888542371158351681961968633888833034086730690222756041762474189090539766643594361888613164582432840790561801423912467005089466358158199124656640778349962581629242138285841627128428341857749102675509922228855430586061130640261308486980455856493320721609255809264806036836439160843821571480524038007039658934452324244891742174748580817371695816867179839107722195075108875495832531512664408456206159814842751352199686458845955944570608491005331376804379918808332804218714463778852634930332680821869461319604646852873176087445448723033065976693821694948785493390240818789697127091130581501190263297809626212155596616667231508428004355670375783520300588826099846040958432996191515653741391267801388579610949233747664333067326214974367821261774970820778322571506351941003398347210291913750307342497066251497368096465751706951244759265557653279431051128515384056304293783529992081802981016451591870027152865759425550989941888911340482752808625616003472430410304359162610666438968421752466943249505156334990290766605132343688151827260863859943462287247951140961930710155575821851694311667710183919877176368904145451700701071930923312824686472843009529188207057222969440213558319719415000856813991294585638040335947535695801458025274476049961190162575505100239335677275972273343700244419851008504456398594877411214563981477325325219030189219700072051700965051435219172495047828655048358604553256221255551241169694125743189734927642190298459998297023167283124470892389288864857606445623514165923049285243946333985958610491848978133321109948754263141986887998697492730548805183223161899106482682870955467798400017542603815351168837832911253821762960102287067394776281244873346104434161342212703362744072850968261836905906532592440376500213976873732133983388794285585267283884804252407678070764247744010135070741363071283840067508154118651342927528699195999745029982799569274402121346441314281393461816374651470536121087831124393870997886451783080020965247218218396146698601340648634280263661065162046342327074151699726227635243382988881461461520349530738737954265175191400261741827820427215822387393688317107091359894693341771341202608721362476915128108625093589884078705706544703369762996325456212535019105777835242721362537733235598073873472566701311001756746283263759863747106234208859596710234561027585025087052534277815638432270779266478573253021960041364108009586205039722601859142059190258832997404243438609784877787809133661694164518459813535256257616152231226043222813573241041866244269354851512350655299197808273300896843899389135781173798266092209654728838314217051295204565246578838121302728270402913089544254495101942836447325344030003477767330592882876493896925169571841898228120697436364359715675111593639538068931560986985267484013208110393887130198743843426991467999140253432992297974839673604549727024556725993213321965900149104699710321583686612834050142003600596184835788084974185079914442258427808755667344198836835033503358941148450403668778961812355687585563616197402143998983202299990263482174459338517953666699083777734041079541427147755739676377313878467226091802774295906368262150925744856863997946568098036093084880440148680372002014570624027798131544839706642069563435692253803695515919881386144753230620667676806320617385987389289730307147719670062352039794691215268247382156656079468919987173046706084584229086972456031631682820878511539965325538445586061703145812420207709552025962159973222569994370972789610929018098519427596216804433666097684925226425041638533543012306674199677383851675339353651461426442878315464225465767775520012003307091685375837476007684068922976528513230644697128723596705607109809659257877186219306706387564341782024147884618273615390040890431706414741154198437301258136967933517722487269561420967961757532826810022803487560450139317553177037141697978886319325932637942055570006713803329267389399705002227840982010464600088111878858622282853355825495684633118072574421221671149162733633606799148223905397196107322621712312882812579456434779895741133266185813817630712860800415636113272199030843982091805822812163508695101979512992495069611946686540175111244200407082538069840596736720902761437115295305614388822502169374859987642693850856954926179588000375232578730200827151441614274491049813936059630449764793626121838557879159925719783332832178075589911869067595548176066146363762013897832392368986775613054525525711941408260658680626465351425617824388060463882352870249270440088533064725588226697358767279862555189902331040540938439083843877006232382943799913299070276939912295206985439602388575468864362884486293481760725654011889491523933230464861284948854037904721727533694612868344482959198186657969924354415793314551426953310582523891910197600534676895116235548091774031305905671661217542003433818000785635137422891019268674031309507905914961850643127079796796955890355867059661492197363582597225049816728998337180421397186562742957450781785636455258269886107176449481063274461529105075070303038860402690656741692363715742123978815514347121465348262374565102391616625698158144924298726303939585403410972913842349651950286675448284439760088667930127172347626592647638719585837838945319948900659528087089520377009647939647881524984816055516631044272817166361903214101844371396304067580200843748660017618943277701773965339564936486326070501905632340187753596745463183864628022689894163714789016017346504666617105653944425445629513623414244008098430126843780957564217988494734097209568971548881293592673303119728665457667736012006815244273737540179875952423383255348052158844294864821285385825289001174153340979333163754504640262101411057129422489991134606291198973225208003712827947875963423024523575799443961814734900929178887404943205488275878361793078168497392648255184220789304311379910175532133461053590505966582358304697878081174284793632189501863147105454196369763324817436366834373688048367201948642066516830003847578250352363693409663062095830290419014565346421652222031349015966355068917934568071801816369010474460821290609265773041135575727380343946033683026345930354447904257202968451043422064397747141756947595335935599253919632325782273613121953245930326072730019455991416865739092391845080520281878391782607524732353417981437007898286721283576540875727626252302632775984470750522715944682476658287311625461472795501092203119143066178529541415515946831662190264828158748166948511855492917405116180301035537595612107749931233619924366171609966861149252895340810001754527387808508600291779472753255396577969920114931428666587254916230297907505263587435046624145299864814386238998966403879592656241746416045864322800260719128731672939013390438615241001732200966088086129189252715758808397488136260980310460633917451466961482601252684454001681113838559270906166041080827565611475739269985778981729795530841440178410559022646357930046623771183542946241448318973127289908783764860896642448373802024932327774241096083262516188421614971562229022353827234274257691533557381614142523187604965269570857511817249261568025038016621194240285226462363413318439892715342029215861630372141674425915443253554189460629995887252544129178120242657580336380801848729591488864360863133547955795250476471945084854044268024812663880455134083559149115225772189613335316040142784706095189277777902526764262758217498146974261360271439851291221744367558723173746467357741816651218393745675502492935772058326283160338382320923740506906608423222283630205960099048712861057544268143773112635312313815931708205853344814206921137112665048194192925694406045054365188844855545053850084844485453609072972470901205483580480440730769417517747211924972466313091254637041245307803159434336062313812383098091651749011780616361301875360324228854956585490151444352517406942562151741248226658332461983496068128801099114767500437896270363779563347658867118214619915940110304313501266758130051208060899903458193213109621376244522966599464693347766695622752088532009957124203393456740607889602991489873931601720392892249925381180020758892965604006178697103519132503311551638739845086608385627084638860665008300981068874782137204052970437494876270891555159317118801233029058493725821824023461113188653960592561261347886997009979341328375828832554968823819688598364133382874801297205447827111492572428409907111087033373721365591643078745230862907198095934372779911347959564446017922102264831486448285727203488877444267337096939546237605993037119324681204270008858312223103581844078605493096632585175817367000746861117806220396668300071858225851589149053756422035432175053736620114548433095034028155113234366881896780567262227621753402617935741838669964732553539536313759022010879480167483844623288126484499771163905005894578495683830209179772624006121178103978072594888210978474710728676020840677804885475880184758192820591150220356359258830327642544408624901137433587014587400400001567520513262905336105700368569195351654151232135207224262070921794476412493847548628823164994202312687953190313691668479936377265534261690806305251293628841379788741749497598595022368556560360903303695083820698523903817753100854048799064946509906120499123711185783845025877569038811866879627609378699151500113214627836508613704632182920118010447450163746741676011822816770511013502194579723036743732094272584129347832102844439787640555065205260137441272555054113605496433374541475829320990214080701428618215867160465172487166682110369008520747451763298187797716737195142216031377280089013039272172460222148546839223252813951187188660959443948015084273900777658946677935568971254781332163520248701852760251315449123083225838334628570076292631342162557458875780432296961601656552039164701635250783615707565363071765145622559633456479270382328403733052420777845151637847061938364012696425254587131998865489457158434045151769610077289178193091267046942431304430537218116233045519740188818310401480644627221363103662908338056360199208408743717664423148978442332750060266874811296994615870496434590976740357596523987946954208821066687783486045413845863597736201877250131389702349607524394768591997789174211479801085225899694532421906665277735760998747054534483205457476226284673699849108514539071912798944688922548144280811388780445509399226328019275026401059392087689674775512593329912347112131638831216629974898276425744296333048708759200708036929629104718812821723673615528567292565964645364784373504158078337853550736409463560155798375609345688110877542094719251648052622070807036559756657200731496468188328976175995260537978923096656865528694458932009788921689901715491271364717042213496178880649279867585974950767825894219013155007506860229214257397710950933722363098122123400784345298801862471523379133128386748566592914546267670461026952398638137399106532976458798807655802428707290195767072755646433484897739939477677126002170703678443820787922762046163389050836883683924438779057432848220024968788859056997198079537501904026986403990255426653639492834054952069428831464264882810012697417804627175841728816275897160413362381984358592148159449099698304234625110591121924965669051600153967912394026498094039631254123195208791408525134230230880062213928522599670407162128960569354432124995832231732109942684712825417409517667726901422252305520147351345868414956020609718997029125375457832110424658009937631844290862022912602516514638984938961138984187289374218364449292338717524102167673525295473410105339036397731671296648287050208905409211241822462162018755901067683317368026746579769415627998174289254789213590401055092615745346060735336048928543695693557788430403917270432489466401792386715502506227070662487002803470511744507047583933949014022140998387645149258848144814946530798840533124308213232480571707741574773744782926534142723941329228100207065252753981016033243930350064503516248216296955016179776005446521915936261961386009697734034677966149016515196465376997658615809654520707804563275223363662111948523064306022803614923542429030028287962976576553927362946811174993971316480188251711659783264301978525926365496465780484382685110163861756334380643642315889105689568320602892792779433233392421654417415361577005517882900272459269049705521598191885840904670834164637307404121582353884949499699180327189300319795348861232057000695163837334770198089986613919581913201612831914061314463530114819128106736295757575491264577139974943710526601278215157950452881453275363715257212568161605958961874402103088150517462928940221431205842469032975442491163281590872193069878977735167522121958364530404616412006952919087949855874102204808102602295454822770884982689243909659692654377483849031033812514251414220187277180744017003827196586181873046712463693102814171420654827499647973843374173192159631305106178622415320613835079449684105386816019979674747632960082538911369435376077264067471616761024451101586904314120363586085258541003118937643669984810746462375437405730426587574008039913144257217456985237026921777440890317977922263458278878052739428869845961350340707703459637171572050978169324803685732816627748669127367556805716014665093197225099712566921154805580494646525094065083871014933299563999113842601306282162823742788007001440328358302657617191904989007286462940346212724572707977169216129316690682746201102949882695339042050996458841980804646252622787492599818736770296736130606885516126803470741866494332470370786499728145963960606099160526582137272242791129033439237737205150069554442899493324862833154348651642063383474412050320510184208125129618099315351532834539587076293076547463609504882601441526554309050621112363469495644327162648952283320547499558902702158991178240716761986172305850935982927948574705429610430595128945509093815301917951524467383488810458146213746980521839800168025706730202909950690925316727092765359895370515491456443621963872335353061789544040012050802468444331825204320957993361153035065656289904939994678796083469171823431768398008130655511084237958574925926883461394480067683571590967984329657514861633945901728332580809086593010614310674077798659725270680751679369114970759213346241320863923407762923555257825806572867028537167082277286957821743535478312140705301908738078060049684739362583768472799372871797175772011285921595961153845831357893386092883766855527261552900660827555477827816737238934634662580613593000324096904470515138533180645927537402394648871104566023272427911910773338525956884162214339268921196489209047914105692057673432186865177573210711893990674896962821139911722593261561780568029594305184517491330691839695014751614425200093061834352582012086812628251788861621426042334658546207705697043499317964022668046485861558543826059382041511876092737000068203069860446331354184905835841604687642865841040870863110069662314324938379446485994326569750319564049152330066332867292428799331812699680683617944340206568972057708680443565429059342616121119586898745419901401009033495801476684483613618355521380659157500051361775171082470094790095547983560520997579399376347001131279022346706020116313190192356824988627454334634037337292964161577156045946577583539128118955140751252258735524365438805382579005330320268628378902970796601213731066436994678500618728585172804385012875430206397043448811891328363911624316340055969064920950212463778816403767847061321477789594655986546768384811458914883025223523804326003077074768207798676499224614982825051159163436532062155659688656733847400922127346201709398651537025625969763135929975832701081744689540412040346806413910328533882322045283689906134535268529811923186938698069125607315449240796285109174489144283680271816254083997537337041939892576591018011786413517544867863651987484798017585933070939644367842869264793938270532269275044848497697949239552870150629216618619764680360761629825725718020359691382219081878201082253335260582623572803946286459155930820937142663376631406860815525858181746201287235856322414647962120955225147058522575869754573337691741152849192001184329409760110911536039954212655733765302917922874690606203419428486073104758121380813381397915217487265094200791645879768577897169352508432021238447123062380003665292754674483586698134801519654050718560923119587764543402359672319599733968746929477744677438377931485222507565480926944156900276248531451210297889332129853600906074822199782476563958106146114823451272318609523432929465154638609411986562981656272353166785542861915164071554119487289345453263117373009908976583144538788524602379620096628214078009716922643989927488744651926702397767442408174926054021725011711443724804271505590934985871539263059439435414969846519528011043880326554764803387487998020278440780256429861162813218285460866266816266539749730444447070428252611629799489252261288967492442224123502266686308360158938609158430996028750697494628332902030539307266421997011761282536350258007997258291674917352081644840373759297615032416332252968222632939707652271760010745142627992386326007700248862775324215151050391776227867520871592262963273232395152088864708753382686690691554174870032733276591650598247791983629613976023883549870603191512322531192587017561461515674277734819623027319856896281753345446635462711179305196528008165961801689158383268212469998680794356843253730873804517516227144715015253767675063867870286535329927793308050164053250014442975625405719379805953108261214760912248119462738987281962998949703100860515569248402077098384518262986270347382084713264878113531437139613847526011833960556589521357975590667558885308086583605293294192922576830735693209579828106112021992353869352376851888835628472099605712509592585231644386873336122195758765690935669550703146926042087398415086750740139364789698804888636596007389529229414115337659079546423903544832927833423640842250217836811078887052759212844535058952491738077909543654446212092278728728614608613847467863737654306376402084103741854498046019340871775567783268473687048100174352141794873841829152893212120659192281320836441631821246162186895180837375394860178569679764769401275382002911941155115058380962633747552901124816574316008779592300300399751204857958558432695046169381352151878542748405097291584987655288371198027335013043759798593524144314045973290356403716948510299578940146938694015978826121786598633768238621860997076433247449688645585844642828610568213796197391314823120071791658969284770365675931695001507159503636813234873306275883735168970779534281350889211761823640519724697304253736548867366745386635295595756502174690339364217919926007311632016525105284349950973373249569125528712068699608389202889232416887148254835465928255805910394072762946080262566174218476462338418803472138284326647264222867677501628494501403233479674669756800933263611740508758134135488861709227945281335413885416362765439070334140652820146996452793300376858346159875442127235005489294582423943841094415295645420100706210186674966309956980183291819034384146231283655967932496045011349253411865621341710497677494567421114509445629051452278341200837078796323427127878018886928747416697430304953607292258299583992039558706748953051132294352884887807117602026928189758691857958814740339336485675075572521466451522086376205141484649537867694427240335900097842737649341359171944750882235297491385470436656841254313335448398205509727040845688283269543466325224930218540386729934608329119202016997457607222467225066986064173727916517528871704388811632643273330864041446779480389951645859584244056574280777187283857595472003602674687604097847075029343132592893849045027331919529120226860793660045058344490823772558057349199502141591367334906533744274611244403802811694329798037979267539640564394520817801138009813794053093564165033685568839361918356062120071594698586806801600822243535241179313076703283088133857319377332036844578975223096142176293286163675344596592096600377778329136783020286021490763009265523689918360008479802474306097958545000396998629913931574381688922463753217834682753875070136419370665426859419779391269780757123421004152132926342059616520132750806317757717635414092192866175271933552580512391973755904639247476238445687159813893148782009844784637313501263811982290439473413788622903482103838564792623992560140031835650453223396004444829094472326041002191302635465969061431815594183215274837765946118507866236247048278546890273746097560118501598006417196623109514234814608288241897201742048550487850389293382271413511103716168354798429231286061919567825892907486562844856219381067405381975976181295324220177398717817698648727202607692331016743702464838774132004413298552502430318617321937558921372535959288415847668986096152126599674523751699150813052015936636123746710026811282421922346861192314400567686744883488411304856035563405858931207633815065473271340270576405576918845152976158497995420830163055586926329287765184540020617650948842062030591830078166275031900115764737064939178497978913816068547148573723881254406245694389856227733676991637632300383571391043235851833148896928973842816140118167973992455478853915809333646099928151485158805856536212533665902640858703206809638797963096805864594998575236427830062218033113820497126411173606757578675055522669946527435149054362657325879174562297660427657891924315905847965048651277553480899066398718505936108870835817230696653570089808628474446604848176723169418714000810533181623839052818884692833872216495242094123930679678262332053588485157782916812672931915666691606022167878006513753312918977379555748155361095274209500109423846532110052770614992223570238973450427244070052821540953990581069507553352885708035847365999795651751354458682964268215927700835047013457760111377091467251307089502249901994320396433582239123037063345127919310291115623585531305488125366343418946855698801843426935221772239447775231914399617827227494179519098219462767407429778507570908161998056776951253567289816258333186034448761169749491175457534591384565831274163781344218433407334335136581580305388575697649986083629247483656081233025067249316407090201086354578552211111988780583154098648405633581837855188928442434322034881671617743315265310238862046896395811635227911548527287777380049107353778274869793836516373683317485191845573353685797359379274495260536272494241388283336860796798686979856591980908750486756398968709327440338596237919262839991302734438746295414257963038690273278539651676037162128843910922373933331162635127707399689679837772938474943963158667719364278092132452631599215667284990449246132215756976861429728400215751321620464684841735191100092774542018989926195381674143588124718851425314365205091150375665743848835850382315116743406205327787815679000392172490263096602547876750955417505226718645690137220036328797047143365421864410319161723497772037462905808358167071233442348419208939033769703071908566884044748148798059856401849107596652822100769684693787313163604106587889868184559388913795825083963973831469703117037336397959379640135916903290008421466908920443910603827729126473388057395039687833146176336375376430711360790664094163475751882826176138926816166336683081833233335225092835005259120884047890979232585945172743154363967857677162628719923512811594541127366668877500687723469216914310684199509607620183841932789496937255741036840322875622166432511548381396558080770315087699126484756736036371396310591326169884172864241669355601672961742539766014052223775975738044257110437770585787814904732085403862233665743993193152468082933305972421687288128706342847716833719731098155853649477736418555038775278035209344949116341591441003987627935974306706103832135493835737685489247122257769501318763611048592271722689983558622342085419158088774130999712196961994810234792682744315392806172063421935363144243574803767293270440502424689885615158793800679040965336654568323456277865772324113254897501356956716887155287885346889780225129338393341653477755283569194326303790026803160758008362170289619167044497306846057968955042185778893358670922938578504749191686319193223223516482200523589174777178980118365434697360893498319603762662072534286602981470899534154750650930221096061027695911049502949355073474596923799884046003687842585023410030916917086351396740450270339293366339523497371766234731543067496553881097021247574375463032004388502663454066926255263767486381907011795742647693355319911064940388651209085259724644473895728058933925765601554482344097816639469958025885574462940695533616713002823837922019602621506153707641389874049501513022461983122692003242796360307959855090270949085681633581193402700270323156435178782236737950869360850650644023493409254063368904093829812149059606201635906953640981088987235901555735275543102794636401400622840819011854565024746433185554310680812151533482484029220175264832958070979575651398429912297204289199946995905893612348723902364143764797454945551045478815513634141170340012887474080162296932858211286694215593413002661611918595001627600393719460693485321086081385389424938998070572738931003944058990848931722455733814410978552703466226581283828059399068012168319707914161419008780579218422533032197528723472853451880071461853039550394151277081252798805116846131459221376210767708668685394884367961024487950557381365148606952267745513708211133327183177369362841033062292521019036001054617247824714556708260027785640988627505467016382401903921375348674235932694136079590960270730214377606858333967821820305751134683598785108146740681333949825679333299771057245874676994881926399904925086334956173061399661047380312415055272643480295452042189539550591759560301018404446103504032382894171693423448998881746618184209306104868105275216458538028652621114729887259805222847200121368942993959900898209168518557066911541132144083058880465739474597673688134019195319360723076253922523687124650424323158140657015839001641604419317174218752963819798269725460858982872507611356992009025341456151766715655945178824633216402960698014890716756965697554150195638227535266949675714660827841447893222520051743956040603168737075229250960097043887483432711618404877689991072419561626605456012608768865550296237862977976168225841425260432368357238134879350259398499168385501029375181891465450777264671710787134585505959462254023722871738587288887664035342645882506631548577333727998867023101686128054695458421344928284689928680028306064300003831920274403781798039782843550609885498556900907953213967862303222427629677590825464849913549372884000066813256762928018386110636616812408767932536677028993878322540851209293143512198171611243300875812985424640592872985257638230793358169779736753980426537598484391765569183448172220775192768305144121408111430603667369830807106846267818655048309013903976761171641638074789829213983925748886254471479638074228299646178012009609167940822297209499744773061599644717957694397926430484978371075320323335819326705089892693785753992818052322626641536802745696084189662192851546036325052697858900921789264125355170943932801110847353154836952064246325497513176476260269230896878153976925910257004397557576306145786783790219989847606771771346437915638130838817697771879383668145703442481968466641615910689027113762954832759004563550350063210407049085480993700103620293622973548758644767667412831791674169717014084017179887507938895997570165438776948011286329620203276198565396924703007094107484594662617882336596223904600591797151291300541869545226826208635405961675609325023445599958558312690655148683359323106660710100323069018085245416913746431037416136617821171329039466927424060547211992210600771686944358787492155323054987482266715835473346737078598004585400325361687390103866401730843522200772755373057468404752576996211800020208082886629121763754731982024154254749406714788991600057662439891784451539128058180784686655844026696375482531735102089093229124011859840173941828561188594910260684955222717996015590466873612782327621448396155277720365392394241540707444607128476246692008902284692936181039150224960973574714764825351614280070926679367639504829173809080861035953005891791054348768461380227827645504502557113260841511701939735175168660013548161251550757818341032295327124189471511683194020061918727372680145076258885521641584241765169914600443425216830361997817159610090136106865187228526476678603893520573615597279894645752042554096742809085186229612345216366694346291308046278284260281115459552525987242973655799043116652000895042759959708917286479676456051370064645016317358558877364412484958246242184105340316486398012359608216249969701034296862925433224041844739667627599431210404006622349725481929816774665449534916898175150248688241938431981291574449548890904738593127669631075381795190618230978429310933139600283284306242367212773174444622590684507440997609888994114353224796984325928977626587259364875373017439437051643584421339811768225171053011234955312611543285951916803203114872432892577356355069357796016501070492714564381287981271553748511605526136663038704932991724760963278568809005856965907468992549790653960823192133325575537017905026611446188657386268910689297775493972982689905443449251576926721297643275107532083554405535502309962709802936204330456355374127827298739974850227620565154560002067969061081532707976951910198011706679051570221331751498070768497600598925125459841395287578590798321231354702419674063277216214521602648020219143459984262249622646635666635873937054475562963020304426447890100938752535614069435500720597949904932664627664362290622968797309749487551546088339722077303240266267065526703628692335783336561766535226850506520554489603239645963864608035268970340961038844020821873808649611409312221785585425261709169132691749250261290536446903551076367432637327352057597028702060376252651704987127492277760394386215243549868804295816397026751439095706284695942042330200942415968586702932991757226636368656750141671841527073188141738900468425131726664310419550004947657939346588379697745408412092871357135140708486030296222576245490088183335558961480781317549470976706490352657612385378682259950717020497001145771346996289872793197454203308832281424532447726667801700130736108202699203246277705409950095345718394974959424581062589278060530659816104582693661573651755282009527167684020469602948213069254333323485322908766728906816410940947788479471339482491656358968354198359604500828644878579760696536883112446952260605145443606156585513340114412821305120768851506404544688935952180331095544758240334699478754546681062394118794450080242915239098452998720278085296567913439474750767850162571698250809055598482619847643941476429787058923544625939681981006299070455977299393587470620874968580217610047793030768577478848363408570304749520427411736636610778598359070613650572841297032782403459433553684071374600992061110770502721911648087508743853269971065521577603780036292343029540413434077711669098727008354736423656457344930128715559708350956486700272298079197600284957715535944163170350882439106716588518410983515791372586925362675262171038096456107693711693023548607946241709741061183095025213006737851741862393256516576000194660566485735603972960049833230835900068803871628620002308524417815062214246604052663469405335920724451344985890890699227534377927797006169398637320692930698848570353957038349791324000686327208393905477448903098902251432564570119271741364428722998739887061898043672418504489012588631300339201358227337150043974907983576425712921555612821786267397573681039393613304596883797837238091133644518568657879869597171421017426984952626409217684075485778327204408470087836761821316573550110743997473563753889194611194729807943410945464436274987541792371271493002495770621234351923294130259134449910537270803389136724499343114785303494800932177873418427490983716116472607618674079317129509213570424245929070108239778768946283355135248134461504991052602025415782860066923435177283766322934652731321249350538262737870274063801377875934363658873020598512892801933992366459575793290148107856048126382221176825691533465916797118369448244349432779736707875390898300996572111967237347119662258464210899360580924965797870630451160215414889820105776991636307038491100064510320941337673660965696112489228569178152818905794387046189736481157562270759157121922136775031236819403501322472449058311987269836215037756142049824646996845266815401922235158506089579292297723396548230667070901108753088206513524660081344481178021812578251199213146227738267261002269802408609684738460734969598238976458527884742070865109760871666570604756115229860278163643333274637334253262785738282078007927845347072595766674643351661274134847746215021778306534929949824252083232182227958268233413436562831554821862939309290914120533358854899361203796006364987534623038999338970243980905762965082284594858816478407424707875301986778534294926866359481279174345534723596443347552357409944063345112450840926445451616000643230648560574188704751983135676502652377518764718593070020222298725088113965505026582883304702365383443122047250488652102314951065884142519789863858778974671409905587418685662159998728478891746496306278846808356605725850166677717852764652888947420290402736300524655713093705433239166129929236308343732325916957554082334282537779606192440580799961425280355522370841034028518436876820489963802489717343545182005919018802530698565067710878773912186601654196405133480802167137484769533572924196585170676886450236162693885876996324651331153315740133425592700677998944214664677851060448011050318628843025196457220361907999958431126613536415625257360238360468586557180669957649092459784435269259872072037941996088675854568436843701076686423758527500476537500598614652628854392606648347467385550761588689391827938113899899024892510085124226106869792311057538557448373173541493713937523688697682572475039755253343591448803748251177191874118842133563258123689635634046544742081755118372211147958608542810674405527383564035496482806450708084233360818096867164895111043197155120722215978968520709685424554835349912782878935143895508142829153752814678418924177568317669191330088614962326323465157991442415344627365656940794385953488532033290164344548205244773155555115536105471417514550661374634920637417875990598167275950981975914533445062603097695506480253414382929572774880991570055999073042655731495148983720235710959592272197723801344716460015895204500931530240607900395567077584708908407421971848382802029701515324026835755911029009940132495709817189392550709342947269904661038814493230571684104875218977208137110609905957640481508929974858585741112955522118134451090893212728224592317157484734970603012471514860993149285994200690895089424074679174059304224335732855361193151983801761536002338101374290989693202719424963989537253667979860008338885166732790870608337884048938243661438345607063929559506218628632171696693821974709638583033336653894841611911537861439900888240753641989481792470536092155723933820090946738519411184055824463396813296563901848742974779359042348495877940447567474149338688319200311016875300438605238966732006924683400016446246388726870982037649725546428703080033894064706022670869606340210518637677655013495278469118125520832280114362516573758800062786511152846606762858307191755705655686745594731589176030482357638180709699801257227691985520220862277753520596679736094243969476937895020926868194526292792868549720836441075426301740604781776589640994736241088683783738347157826237588746151152996552526564742496188106114792433368336372529328333294810353483844384107436527832854721149489497782964600996166209301101198032881337641992446798581048663041693863661482849770692773089665088923539933486719236884923361509286896878130966285822961042685606891093299051820629433300392742046441224950751762183798592620642453334117284313042524171716346173367252721228458956816975599124211846940976071016873847518424961718886294358266585968097949333899199822546585020627129700536188385955603994556507496580074965317235243785733133792133978640466167354533690755222484364928849205348894626199869810933161051400528718499455759816103282714805280560180673831624538987452485493842460295305870053425051167162318669039039509104903305463307177570306134147293432339001628471215425264679309948312902944607100370536015779883446910652484934483171529496382882930293892885895989082777434791494518321629837379040451398887095844347595826876233941003770978390810609921519039443771086689608428812035920911578930766110869302053886882032447634223061982164692482134608319892854146583339381883244160594494594421430676780872265462733200687948297832878206852831608137935448039822054739265661492359019442119791308217663046068542404140676758459415049192381669845918092952611864267371126434218537713586628323109844001503969076281987059594581127615086123885669569883844336238010871113974480391657271027746562160990340131475017997135285563534754953238472004212991071942687075620102403046624886311482131328951283427218976127273465741848097888290448342546740707073509915458336053314185136381814237740040285309389302584359825122753706120197806140792146004886845392601927504657260088455197770587301725401469794617339059549037243247145009058734036685916405245484285567227668812223693768933279777310670116146571240976038525872848606868754093604334122160336468665669619576753037837882663854182128589464651905112777327433326063299805488039833715395835666879017529792009931011617124200863025267719989631741357249804014236614651417298334003561353880732456481064550792795138243518509943562980615179355408193870490745738421347736508468647817975274977242580894735336055604557120909300007276892713693294261788621946393794320991885489667279555515345240899101172461331243022824286533511427523259403241558885274034192299329460705274963177367700479193734988840108881229706914659973435097802410516058662874297946313567547645524299009816388551112020731739157229689096133794328751539425991501671533298393248321613779117030307323944661538061143086403393314751823966672239901287458050550649663047213384768519163429236538036704169691965471024945036021022029198485152020771744533939607570869243762144455009872984600506855100550823939896849992578426281467586843090654327450222740816010272154111762424597334193704850947427813949010333549306486820280533523821995541763325943814922551960009342930492350108786405522473891486040400403000205649530750999662622324969546090748826364475265637615338596000390065554395160181127409911313610978428185796337010234792094130255932733139214263685202390278083931543829638442657256552459435546950044719729423512039670353164930067272369672471744392439722745909858713455862593619809690555266738152615522745574502388207891538596258422201776154019057280649518704554554523947898907443495618232669203057669610945878119407445790694841279038991695285690721177839671784178181645927348256450689674623168734545200164645104255820419198876764368710713160612670851214716090434937604664773421560397157016875320171787580474787006901355779381683411737055241378035677015794650487825777353133973802038304067239345637925532561909369599847359298151635970207995500696638993283079730889574139592967974287361523894791141991442466148574205649762376440566958675013548855533286934536154800963890881270637558260276894507651979553072388400657306423752601979076409040786601881254837545384170174139821695081830872983759336544759836099096445973403395116539819777471598725281826741935568229135464180131111046354760402051464263918359856098109426143985213579011974715256437423447712051660339185813086530169279205400062054155076859678569850065532516434338255310812490605009926597660578581275249545996561736205786649145724089147930951988833797395756742618851720500124981965931976038891118596620498273080126728189462197273006628000949203714708463231102032379583142369665091835030879910986907158521764663006402179631486379100926152352786124746745145484631843622209807205423705608182094961819211794272371130703661074380423624262117199603593216678746418729254315207002548302918606664231468731010792793980554335009533830876948088928157058791960664398649537901807590809046394166447436591473472569244134313707592358233337397031670077007648817497643392945925320557872083126130925639501416183527250542718237921700472504770054797040503534100083301495757370140093995947505407217426427733664388177521370618865591245555025046643891443510140693500414590307334831404691033270151195451937562561439218533590337868299441099049203112426939454921617523179085773058927135814989145261442410230401370950611972523982578025060403342642759693300782192168885146693274932508542525321680095419262448621245991424765854861731161796540580606159437506565390284791156284762728852753884607201754856126814117366332339296717107260147412049011729732730776958330790538733843218674475036544676753026617401624308534023925379493986815059847719711052677847820576834787516148157688139295701413331922977710322818516293598561025788825612788121272735496799717764361175130635403969774677039426008256342556473940873217116112033695521908607211166343059028950656795732396546430459662580272722650517770159995243956656823692503857236543047290423811023053597912637618354722829379845799958165177361949904363770103879439207455129373964372231920103968714851779669406874094772928595415355354072243861007123941369194371377233879705407391802710803391002997322250344631461211741730954210157857880092317861458668654649308327021559335893702769512482261072247953479179289654763899349197638615619134356421241450396549810528928163723991546930197933398288948857094606331251398356434143379974276487479621958140321717815314689343684037598652005205003233786560541010434625268157672234724792440277063741189175019120107089406489068304131582450296915444845883946821372174392560179993703336647919477547451324224017948004228589916051778387356603379083844450895937555175612921710338235289499997377107974348993169103984811733601659142552653899785172523746789578395950676634759157582658560487549936663139424064601272377538893482556349263936480519582753387297629449941348622585715003956256025579303736230462454927394684633036512455599646763125799866120582567699761005413114242398050085543554592330735365746038583607903812489350758575526517202381291288919166182403453934687624397504479624280071397362991195469818155636932721265999788582638435006729475339400580278334305997790665662150811327580244286327886604062486258232828345996809009222630355317080610066074482789972205860616609572007493896147296196315125431413255288588462118895497416937085890986969346539375923767867174211620634513450880258769473283967751618747401933582919548305461088828378623996408530149812398096254405425197250764103609207997572103947225981435086390485795444793533400654721813211828742204727833307727788420001950358168010272258455953269403418761490524926525837951633044929233464829661077417828532462067764469266954596942680510173765982234805397024917151715805084542657818109767560445481375420043411207526757191576821247567473845175344867720082718978225195520134981754095149952137570645447337437390942399267811948523210970329544620642830514454468453090998606191841992723850115399311839685208023463050222267106918758550878646211092197920992152958593920736995801662857624509777067071250651447319278087578774316141811661699449015954987564101947544246439999512517836307826603159566864462950366978182853302256740132779109101390220713944043227625680129176007577271285423351379235602171262994791325198263109509753224938728433412513659660060221127695573769334784537983793899602133808198643296496159543335274459864281732815972374326188109407913293159519996766190875602982228417338569270092663440079177180595918230983926690016709482343920054281109584612616806374455716761554255357604974620826472353623564568878968251191556287762650500271023675627630490909630325743335630611785021455270548718090830962077623847690866677463321619635149208967831906121051592888607911192011999597715157807879068991061407348307907950428584743744346226077148076806030280077525909218394542992813606386999941674788740716236351817708626081566519898282362094810515463726146636940816865088445348087047759908472672395196081971096886511977982470072855626018545736336766275800734966077485688425752764676530424111710212526028362262305700764414768964925765922268641116473164407131883018739246388129109124290517829903772751087919353705750857210972915525696036918777949674637063608552719932669620887810224442978436732893677183520329598923619013054780911416507259454467655911376166222000190235072452399918338716354622383445638027226673960508554315932572555822069663381593186312365342407161681232340707196863699600819368216667607654469660649339354884345615907721177717560068208811310255747175744770967983193545647053310444777906283255502041327879627303375190609143130730785726810254318248403619293637033682563863595683011575359292511351335698922636998782537259449676281922415085874846592025131785323576970511200059920964942353593537480463176987175918670788294240020109367035798903906362493554594827008856485240682973864617710768524917193515621995523849058523966906317027746699896247502455611646511452605864195470712964597855216535910723245581515096796760691449005115387981438506417223658192229680613479062727819624252891836181914194317049317439444182330476891047951868715525900459628114846444969859723673039653131094143221444249345273622717776152211210449161771964423127640584179671449170954130676368613481288781218470193234603435807046991972614243271343136151536634645959573218252270982344393215330809190473149950255198676760542262303983188020539585547971491105059490190651281510874137687585590088559581359660256274513282772374395185587550394454388931619132074147013656483125427119414087050057335431969895390336675032999233739790466466960410981209153676943788354251234426341393173139426021813468991495471083703018732240293853611225136486614775182170620792756811605369706147309307594950956473716790656347376275225433830546588219617351272412154455132281906305825228361694934131787244838884075632521723425875439356726905915445234765748350301007041401100789875746269979041929725494766518169470818759238669202046556605259828631386306859556245800433857047531756649758272180747625802100715796501506978855429122141250083937679220146833398381737635933140575384615003184487902019550053165081223858605227336411790508771589512411962072226668300647052444972657595488904271941867654462544212101898294956163177384065858634463516280074626755694833637883702200719713695840051657669523774515289664030440281447832668549354011418470078855919506256560386973421727234113558044737362036141728621332423895533707707061114458868771093639257120090058083177049227034949980291195002263263224758791974381758539495120689587432779307729234416031269228949802719176596278026620679185631495411370767861430845235147338077461474126881651363182467272202684611205562933501017244857649911439843805943075596353171928275140483891548525192794893112980190931008405850539048202440872328092052192910267136074461536542410644158382756088187936604472118343567675876534097544888958151462303046559812250922903985058373990510717050686041012532998852186834236607023581948064243738901005265398006851955864991592760634908984888887322224010140729684589196638230869685137606135610886997904548623528724083247362940215666145532513850945907831145638547596134557881807350558511756003415467956758642742507475173581631916431244277269076469261103494022810044924442741194691996238981399772525941846666839235936344588680720082601786195252393478874293600233744255704581438223334122744293911463555851736293015901426433991213649199610603198108482793967546279639199079991900524029977651128316011181425073658896645712144490459783425730888394687873122065134593409090385038973447894694992397711919607115665660115009708191378810265175386582059667824730797844403459420173572376982249802450714041223913554134970120306019150734727368100872946324481287238530838617252941620064998898446399835829558182996112671108098184583978988596500102676726569725751137810005542375520138941090993717583467041526044459323315114738039425786936038476816344266423740755861968589109692093525055608174557746835804486310707131870970155326228080925467715455211831110543133886217437917849483849903963246555931881356498109347878816085175693423189758312167383430133238155187773760740447587441862639779171720144748191761385816351874001870768197989785553313001294251616369832545595020989530247883261715233950571535577085509348454033110265660552862108041529324165694283934674442719583775119788934266632236698292502924217022515574315705251054477285973149107440428956734583339406837106589618069897012065864963518457989181571606979378413989507628398336547662407159213989825215844296355302629958309430394025897388320847448647660914786160126550977524360158637990329265470699625840138750291332732654261817266664047171108229300092529657767358074201177160289631401433818931454303251450771536228006690486110828167447695472513731866114586309603997595228292723648395352043172589241661401856769693318487170692488437304598392247921773569114031975878216068287169718723841778196335405905118681817016500130836119240619759278376815402540310149379028759277700423964706170457964666202465312357180396480960244678998958112608879497170960660525129974932227162445069483797799835895272210861988536118022525343691605464593798654358488271334646064212536554072054144274107370774004208320205720831854936955550890502247334388795712449354650182982360548413637008192352121193290732300465273369700249910880993391803402114166077157492262568637624106738993652458690674235711329378005433602003726645692101766562580029739712486495481790554284017359417938554279949759106447874494762272009394586108867224213732556574721909544485772405312704338244421926751678846241426261126783475440465518128777811319977308650826430011572200284238145659118211824508566254403886798696076994607273047705815965571993260146650972881178487803531466531384793242791081305681648396714584580040373094442697921819224371829181728818142323344268528475050110951444838488789904945782149683331627651517897816503322141064709393803337662675754395612525435851582417980744432533824714500532412674229288197173338960203425968170465909138960502225746456598733908801880267143075581179439353070744149756103362586711461500513014891338130200863682489029271407968171971005576361704074306254424257009276307823489864488611336492279499188431413327939486096642863288847990496282787434330003909838941400565627272028099940614168623659840635773308513472584304066920817636503494499988707664337697914694308325743785044314395607855467037214271723045639399791612828735844219130014355125472831830173037750623579757532897968442380137566423760505874494702010640361746882365861761834738317704835505834253028531678265181834187292278337038674466982594224680015248725543879393994018611906344629469344309944190504630194559864788539187747557586405168041426024067541774957123781774531875077413107340732219571425439892729497164203915530587378999329356482590304863245816773148075706908002241285937065644727482836365844749051384646458032514929334301523740460825667624717414675645231724186765881469019221548700900297673894234405199764107133032505810682562193991067609405531377026002371881032695582342315664131148268745415742737789058662660221778077032463515449836897568546492572209745836614796446458964993623331535661795964585913386945141071979552602201060526611171862190112817961737869870576412437803356938784034802630664200334076347213574414265136308320566812519972075408898112076430098176962361078998659685067393572643601272478140606465486038063129501538131110063955433166100495209314502257567242758002979636581387477874637274008931248366600587245124827531215990664300572817771947079575011691202601947824055823902091168640568414293244211337074639829131732981083909955147135837101885525211070093464359845716016985196814887825836712291115156202304007519996602620976095150951346298656817560586465348195108181548870512811031316889738184566052870025372540636713537248578961423260109964598367880906239314879465852324306409081540512943842478768013739374295870824771662290623918329218905248020207053415626312466641316447724802057416422890985060092421885201403112135675460629493971480828097736127087694929939723353990753873905171298671684262936884986648235595176023286515927928611097405850166030030177106941645901345075757894183488577960713863479509165957717016527503906466118900131548816044944213468057664776149455825627609794057705133415515050956590098542925664929018555003689612387645393095037870112466925691001043193804268064439294538220949120675407489376697364477097317008288972360900336967264326057545552130846540548389125570050164032595970008876852973782515796304419701790847205926998608971836564152502676792612561921596081085886017856220708415124103956289179465681677452805291709771724075930274571592871270611488998922659421278989469304845375400579566054839816308526589345555509623781604334232523456085392517325432166744373677040284514192973317528552889410912115569487462375193152402624338158794845654601339943543874251192459892666609676093036086759584764463314867126165372409427955259261293334465141436543530007679177148047963793309435699182690707652984033083178824764913280924865567201027796508456395535142775180059857539412205924918209899705481042667932760537039101024612493861986520720463986247974181942877372924916405791260726858991848165507566254075017798635381573949272549872146476881780520337482137421087864550796791252256369394458828398648814418639206919363638074091100806311656769233470724813933834604570828114621564619991613831610642839689439431466468382545519865649451234163756392196318695019181063104860974621062957604517322887261862250079843585211086349115871213059764976534822205998949656763219111621644552872639196120816259094585144417402327763230261115557610857000248275219070665718998948468621320864162303175015303269156541888808571740730363063120602978942568739287458210041342574245115035673772672296148962482185711707056414964560725339391501097257449695021390169832039417902097143671961504820449360182636010053391306234116239791038527094161432718071188282325448820025575938187216035265762088383052716311567984331947512455274179585808735904643456424428500782457063341961701214733718005325506712398305237160656581314928262887160009529843075604828843515155886289502199933999049016845036163541750781306971601378866565002890158182212662519839683731983833983754437455610138638976300624760997132105487970979118459502044317642455471108012855901053478551966215528349204183326381252162023592812927635270303179582433642409642582110603640513774135373865130500972060863023978816849549085049729317033311453506654762869052818773576821288024377361828428213038490646217468155967910423503717784841239306694494209155613191570126422373270047609040106445784799000320973360175565150818160723802025706645424474495744497159345031223740850113336128045817162545131736392820800525250244741432681439484924097725553732609116116365998621462142828551887196117483642073716743168469627952498160760815661716151639477082226426823538152007383637861137101235575797716917944197298369539969202064400461409679365797809181189299330100011846786670934343157960818258559402965490471532388039339403104284532432403477779083230331755788240733684338792912594559795272490883789678312931027285683614453526038655862153237305039940367496562863066331387187692348383048841136349235028121678188772104186825901889207890500333553723079913478842535954416661451486249252368865063250695014079480437223239142140955617337000132310331291512733119987825158031258545128323431878264078551490213196663619982243045798891718375143131770186140068341665508252433764117965001921605467205177708339314062378192876317628922197750890102055482173882608341191785279447159007083936467657152252665964176015708655063005263267218530791461151575400180247014986409213334900041488024724082097413018262559332420753175576702291708250053748392011567724582785068500675167639171750018756552347699981351686817014734389207542295888831638059596926034144082773530580697756393190411299423784921873998258639479777133375963693284845082397439691585251138924476826384680492271084065803461625307631965622310856066071220200579021085282302368555842609519837229770549686540485343066475403159491577738657810156058366339078216438372858881218944671166789792465365977145951273642708164603128448704642199316452888990114289222020209375881524826727843323776390073097261314253548183323081892244374387431147846889913849433367659786070729886322565312041992554551353438696500848927125330578802829971410510147811753537966953851774740038935126527475928898451638858843944154625537135714557507775007730285115386789282446626306562171654241758495606497975221539617682088909988115790769677382745140929680210493965554726901248865446976024254770208283207275770449947705467019104309379700524166202878672975277343186488932222490787738750424836191487677841136026454806054586914264487420349598648929347309500208768859262080196049534450681148389649377097979496512930163036036141043178112171068237149193372635848166888740371052547609834163728567936149349198366179144034286527472964362490867691470643141071435276411387512736730912284304854283280643226423923634166741263906356127542444637795515984889999153976411370379027620622069449404540084619721722889752546665943220639405058261494128061855242421185742903139665408951169963542818782494847534799533470190829230056467940077965382231048869748140444789845092755307976868616626871134391040465286840065968336167021797264768647120853750683480089510974207366564750358662066166255305213274386224610774115514374611776874020921492198319046628480767474318649240323594971804194747511790192449697809720772685802928573802622778302874157353948323155318249372956765415542467260557010869907895606508168815139628342932964319220167891373537667453158765095718003010690120271599287353961981430227150358299547816186863707715103965514559514468674960141428573348701850019809259479112531489574976148142657394895728341125920272019272239213469922149201849043524936685472891483821950189664149749578858591078779907672808012572500364549391019691309531651486924253414783615318219225780076476541155811763272736062863187637652212757516920270451150725540055867405134855112342780242379520407498651213387438011248980674106428316112198392614465775686115236102352717045465523584797059275544577473898711955936555026847032254666801592962381013484613235962335895119547185374473577416872004844003422928741500251716322229910082356121270763882977549099164384459033847288303813149827986385431643720507245675256791930026722194193075128581843065541083436717453317085552758399479099474003124049140302366973491227966509496148608450803601430905432981183192359462156881763161808867089322216642319170729045128641342671136099737751328749867100157080206740719371469418451983636047119978098190221133142554714302534857353876824598058466179586363399752849317668849799026139725692576543984895799315834446809918635786610194529259301317282962991758602297914580651737106289477660004176106287170884927614050231227304788536558461099586440177450013802159099088235088856398149135719898240203131108212780415914927777815846256935869572372959741000738749383059647097812616919348169955357256614102576160667056858095577496867135127241589637096194931339460873638716191778420143529503159978904141857056774726833605388652491799370125947250209838260990519136856164884635028219929273918067913677188727635408157054441471357653546617139902788765114209100565427271746555502272182797008105478804907390708746560988528019271959713617470936338436439568432449289802490623024897089815828105569131300448582129833897555017882238220850602753485053291542111272562966376718600272326039771044071207933569180909474370166955933511305076752928375446604478875986794727076744419544768119946364494359787507921531391693559171712099525725118325227395011026189538595056019303598056673672556559816895820352286169123746539448977148490076857373957136813610872412955185252886564973305150508894444022873816544610633211594280074147586975018254002768542339862829372279352372138383343945633920322485248628913969614870242073646003528552828575281801645859286936068224603455958428350347607043629508946551053159690009226109962626143767723794930814580206554275222586718970537137484327302066887813754973001043072852123244616029963349809826244870252682146560727724765256502832945354283507866906367900406074403514888261319220042975634268219727100414251633268723947182458891696594670987867876807187081654979262391166911471515359079232804828882141487984464290256114392221691035010357801934809848517447327834561701211125446060023572850493293995546422370784684874994199848163369163444159835035208296502547185882686581541007590320186873401179603795246316302574078222237822287083813056826920736025843729306121324775317501721789442429707355894919003426762753746764772898048081016591624357621331138019039744927159440045751273556785467239403645703998968916426920415118848376231495709556056135924546679508643688021609906545394397059347112922503341129392015163049787661047504066118337593243450218095750233090346952476476754585069758266076597703168572633037631897173234073478847016051209854572961799754798248584957979495275361178662058165610368087047489803414585283092179236011441681732133622190249071670544187984554907711122409657507794025841510543345873596073528868702389470028950358402560921038941673250477679010295100071771719197055761828535922847462898182437254937145461277427576034345553920604082867017254977428263354927642642955688169579137604353647533152405575872359594439241166830021492918155501463780640205815093469874864145547944237182863771120267280800032800541300994854239737317246585475210146178589111527293375307773648757629700072907457839856513767925173112033064148453458521700204867537297527166075664096996458666106639109937244495572316196904979707892979328537579052879873045940930723483000007953294433603638745479339724863209814100971971044840513917723970560607343380874735564108961305889610426092206988039852081164993124525720925113173204140223408747835907599875060028462610920138891333167276741681935904029158575095530169514652475553359211570715114715522314517813590509229220351938613810275894588086745968522206591224233786197789996071832885702206344496177741759245533287121957626355672919900443415558120658733631485981564880266166939935860233870653810516733296750767237190236689297767490675735028257155573397607733394590083449759098571960191552903004024654454481187000957587398708271038925443360746795099286903227035608114351247274485980057572345295600858407780181798583781532712751415771596355133059623426777086131433980562070787265751142730014138651694787882383570223917524957950066342341026112700717530800645750736725641598514319262902545905012348825218495437898166130932823828898610202174051773253788377368110523371089864233626133608041358302857924692440126325724037344574182001095706942818950553273282289329896562027124579200426313134969909954572263268656414644680431587483783849714885642545857650260596958706444443021210648776905439095349405411391319739671029670967717370778135431682913461969943844407309857999614029502396228516206106498275397885155737536675411647403536227549096753758772350030590187650107161186705389051264565144441961526123118944040924240840754048015999716078877311434381532707648390391815547635390749278115849789715780240520307224655643195026830581508189280383838289118419452489250066484185506183486555696715600128309004474292450029427662217385478041001620717321032219087498610446041729134794253072347823554714818566483210021858447138131056472541580408588775868124194041406825194994025754091081240791844598957832576798125471203110544839453205952230070021021548423288132451674197327587500119080604019286271434567740149918510241812868340326950372495356447109922983336826961571924954059951075349432461494121798371162024255088116838795624369274121554286054615520597131529692660734520446718779094313618413962560550530760838446606998236092422025244507551350861247732219052654953682852392931667607060922786199900436541327383582182683622501624679493941865767412991205369181526337929590880834455817259463273856105487272883266930956311107671654510018174764440037429437332772483873930753492408279112658462962314052443440317706614576094691074580865670667694573808543591245950536285935654653665245675606137253775059208667345524322039052777636772840248113683370687781792559895539866080010272337653707764909581339376975528971568991771860942916582490137505091515713729685123849751538070875948022227772743858270616553926304872742605941807294000133780576080324474789049474058838198652153001223194839730832232691036411358636965489484403719615940368544620397853645560228947333285781832309433606110749429968109459919259868441575833032359427956112973329142888731751643460273401534677826411760713933136809892005472056892801483568547902129495462406028389964966446407153189589817621736925487641255537580673213520125772853234998471511996422126208747573364535989496936894377686666723030392167723957938429429311229521412389219720204197567446117809388122220330763167070153471157975370068024666056678804062111736590128634926320697122203649696817321441087426373492934306284116469368085940797862328650081034090355063172700478117539384876428084027237870339097803027630640443416841052075308076932588540352114046109060425547359071741667592336369107328447665787160617084621741417156688286993437654905521159518453284840236041126891574444849485235493129256425996778594054913937760225178637197931194537069183252157947684934867572015736649884880517138094144228146786148944099339950373163769894837716509706672421564629556343568350363389132556499615290411717189933699283898790887060529242034385653112761850358449065857119220616436915189288908910188649297576230115269474622362629539576460072927680642644548260069885286960677836161642614674168563004106970650762547851915287010231518341454958117622682760390324841490594647136870310612639449249961063713249019936575373675790799269509544545005721147574880321596348813543224445283100248770953138583222055593438831050571017797151037957614392518618586527590744937223672841681349874187850047389918964111222702733409967114525574272726316118717026571671022878918075548549997587226548607509742497095379768090052217772227668909615694966506492866326945416315623993123068403193407875533876153345243209143838368802785366484813738135752164888365572753181021273613451878721406585247602198096470345447668260851480553240740871992878530860981666882654940283169007239351034007843494699686665559583184576337006648406694486763310033142066135622342497982886586063866669825797142649335251215049740821090495035313308237220944156021608304743270299798819371202845264128722909592073295487656418965892709726738950049526711639841233912577410781514779876666769013768755579322262524298989708784904060546980287890019031733655409325118451971433012318501078658030525160687763252453976622351819625328769608820816894872070630747724276114483227447605565392083144220897441035426177829654524365732001898849749751653757521859220012012257544590230092554829574949156078429562018205609101972208754166487666925084589865527382006864097286138818512858894011594387926948789762297816229447676812230572401902057708645118406185614501191757314816535518906703681221461328244505111680464448756876488588061918095576824593596923099691619337983319637528025180489468469421322522960281194168494179271470542791910798358813373421418912368065427247550960418515498917198805816884886835481364940077299884447226390462117713466823131957594662722603357453569729260912887548696531695738291766464848914448859102320331488178596317352287906519448472674937330916891176356399668129799148164459593266961744036359722395255431195571597270677244609731218547531324116134634792321880465014997086790526968633300514801815940356854640541386541622458745447300862838137893846864466896533895824606410836843940645290709170072620299482001327292124881951064562019593754147645117100104165645848737574361230526744683261918567163133564500524818449716008178118833066118342545177927848857007317946211682799758433486971837363715475626139722660983389708937995235818673129128534362104992869911699976514578092060313086928596873947191392175181017989386830692334032348739099629548591141422802570166859085937149606355258398078574827624117824887495146017289720212866026451234895364622878794555734442415793108681893511068325376804735266382864146183717516375032168615878987495092026689579623938388832556103963970609953822539552725334088096565384741629015090426991974949978461890795310921897988119955761501038594822500009350990004487263263276535707075598478483845292871083853340391856322175871212554101203112769228339658197447743145380751545123040242728337380427701255985892268159822105468808475002266773761324397074486268448232233909907138886128372357395643534312717513745599354725794044850055441367304985915451172951862893402227576363349666976440620302462837252001980884726583260309960519354047629286629612552186811363258886389601141078644616728610555991502299812755175607912583109732837402688637182479431353331606582713456882089930055904674865922654640370621357989218981121304154652967852453149115340150249676336365173717649137760715283168120579636310137520009873661401860443603162820655109797457649558960528719693779598626888847577098696158482849743330927128902026044189659875298158043232896127697030589180415214954445902032121681198548561128405234091638361773784979904858369535358871738434857751923954102735375649305326259563462785048176894580270783804585393752106670406281737634830986322768269892605604720563227580130459012145976073620392183464845663817686106912188631540890114764672290756295129878059620070614455624492772232743368125084913144952300784477370285741706482860874643218866119501454549412107618306633022906220268740194597370446979257586799931969304705408173414040670383267634843598875737875753507330811116531136260931004755779259345481184636230101661387514224136161092972663005012545573238126494123892561083089421802813474171102713956273544575216669522779564350681604676824507465440766126997301000437929562645962973748919923274575244968271914580283696791640032634533722627564192571667041670876278848065498120656481382658465193528339945048611438840652700686276636175086168518749084153100768700110436178696195414336546759854493763332295365937759372448039074790582491769589941211582755383753254205876088775796233441069042668443439320905255318825616198881801037756977903546984972786184591354617095903583051771951340736454894102237575596168414173957615554482889666365086926222538581898605803235689659021759898053361943544049016295783395332418581709712868904156279889079714705321258630785479792562233216070944620359892183124464685159776303504861444882357271874778686297958694706742033071160903240498856254156128689515065795782273202193322638667291944376534884183986369029747870947006693862449552516703020077569221563433071557627656080318298632907611331502817212836190729414532522585984380827698879443275225158172679029231933114783900111178812596831597643140669304635313075998998219414873831442014303870596341708005285659819859697311741221407622770945241847507277386629273288892444111457994026359019465155488453058333132718029381010602178497094736749430774420982269329426436254243152462968261895451152926227956454705566183662207835068092300119180226844328204792407979703015534481859922594259431369688947616556681142678388850950449824378782708118538738817790567204740737430604083462342409156404419390626147184372276796579457811211243463556435145224766478636603439936949974055611434028055087309645270778434784557129100884616045378812126034505568094317485598056940077971019997457499496237208688840968929197944988001707740512306363811557080733744938784807910150097881991770625013554343042029008617525818287312189460683040811922259649199549105182722986104474261211217916156616587411145159591287939006283519657141148729222031653742588301961408317754507845478392800240493598392245139791855816617710630315958896983289516464427900463797528674283122620817036017416656268869190895387899200357881644143362900169155989908848943974732128750720159970223909252716461341658620430742826003320978116633514529794948532733738333980856529112754914537240425127783586577496122239759369351996057093869406871685820276099531993298119784916424726674313279504939512836229913797420819929467668471397731507820863899025093212347046174772598063682683583302056022879647346815106133468289157334418996687064050872974772533860666495367584669610246719302537786688382424959932053521288820313365695730206177478077721959890526843649970470826405658368286212476307968808995182578875740656666447194912299494429558008754833189972709603009206184779671036902618408920715691538158767335111037609110993337915143926236985914608785342425471143559543052547705438361052269937611975363617164578765874992391919150901127184871944219321417262927869433303273363510774398848823900724502729151591348922455581286683799182508009038385007270106756490680329278692909148522998847397674405741724316743904018239853587491270259518736033944980593585329828137670725839319835428867294812550061569996688535835526702144015193549007782227346300188260519251276991672212924854671245027456836389065240357631465989333284017193961261723404567404911380040475562577571115854689510341103968012884421068127420221057727562079619971137004387374260531374777358485979276830003412213538293552092265996972527789750029478063846510416379050355796637814386396904831230015621511744910353115861656868330854984649726139154036321599969185437555799231540532443617940775411466320077251819483171879711425017186834740224259837337708899064073555260929939521686755017875123890295000233292390173402106019410769122436020214530719655511256066000464762644595835965483595350588701921556972066811899130048730528332834708591252239828074441020925269309371044752977787811604083094392037531350042457724663685313959999751652028021032726433607952983238737791711012704106709535403681498528113837525735988152602499766401902477025114229195794563824197077968166988918917907159679793206899058464747243637426312544187580755124125113159163255781079017083440177533582547154642555772842300078516376813069948654048615543123192045751078305773223340047301321408334343275513565732484995448542550744793522611170866261958484803442841412683539947551744761589882242598906794006287407896797720476122498790987840079259763524897488374138401859499336726720265913063198158263575305295169294503024905332379517564029663470594722044757573759074734703492470329110960410148720491525008726173459064937260350867602112756176686601609487746111864590727542046310667165635239655203740147744768035666026314240706191814798669786237240216565701641366736597416666252127907723483972881894104348993704532455654615269681694930082772440285028396430156876055563155198892485422813739517718648374811129276505259735430181867135058732158671814757606754540500029863026400870874864083302957319741753609523246269344001519948217264356865343951480243728365264711491735380565138339225618938928620638869173056176493437929651792826718361815549352871230895168776353264767251488345002401975239146173886652649586308278076383275829130972036288338813309254929488141596366656623289342438645578697360020194527172250427070091718359960351064541287155958040856956493180706967742303715499400241288020104665352230028789646503821292814266591019702804205084064109349888167201501859442119825188348554198018356283486548496375479951165549516814124651134279676344584245206486234942304333322996202128266676462621166318434294169064747276623228246977303050276664227302713331138812590959042893588660033056927457672741176585461077072456006167242156697523950620868467528541056582747751317346708400608419322003955181258470394005762513753005793227115921860589920043830849166988160406656380227917402538296114933493566207934655481151956789230097961053808839804015433887337572622706063876705622892264885743723962463360476202213340835891831899596506867927765716497506814478656290122833336935228735708726203507480595964075834843095149296131048644533907770427593337109329681248140397680829037712147416568810008530037458822949080193929267644407016171260722111109752759287871647307837206412114356390517120905024259980568255624342754269313832333821030772434501204182216969244534209533846148610770189631971859531286579135822802765604061545980529640822526540240270741062365359595935659460400184717438181115318669967226944629305440080504419325004167605797775240679565626167350910220072242818264482862194134262268415735717475455906327339279422456659126235574938968396981711802283542317558361507775925870592046083189541332554136664237763248955247795347428825754616611911433431731895537070712364030384574272719911466582332858854130324760294423448629459691480951444481031988922773830816581632049825892427623604390615930132733001371591655225267362284864185022772464013967994480495706088811464543491162795009211624597043244797534363502245987157192708717353466266652046132512127259849641475703940749934131439233565866583173394950635957717353145119934709075491474009152108430225398565544932938273021148481563174171340454653512074937898134052575631921898906875183950612607872276717869932092450880979935230384153005836266697497993403384697648932959689141004535343478357608653355292660710572501948929472066308570184196989036456231625980688181642674100425715478090624152573418788850785762159386328027130511065338632885191643864762575353816702412257045077470489790377342697134437332578348440636832469672971482286433959691895738219648244384958738642522864156416710508816873346179571366619871392950912660053790816943187141897977087941178456715916374005159731322980094671092502081215202290208513987766108883353492452607678302924514188635825738531507182462629676130740087779748873830136836394249007020332952842953905652063520613035006535534191014680578122028411121881984516154079783393628744718961006673755616744368542016361879894728502361571150047746315855519458712943358462836847440470706492787273653129543406587137265240712000645799636473762163653915612571802207582162461178517106237581940502910808688527308283024599214607568652971970036591765857530172524509264286488533037152021570078708829902514653531314750802809785520664338223353722887825311228713485660568788504139367573117994499567651276850330310579256084634236439800582549087223532208512931797826144794972041054524611614444853188868597750351801001936252087375527189486774614611029652429091284388554698421573605912789749618457469012603444074380226781516649701321803161478478654263238179940438639531277143217743079732206331955243319613994054138117627718251489141131582328786462854640559767160532787093866898553207253886529669333920373783494858503432527519672687283121469922388621946982953963120058882955693443620454431448002968019601304794554111698711907230972628358597103717720041020186447919371533939812612480309567190943813667199261144211333641470346748649867838429278687970193055491937404871810472285827074034133716571385910496715291802598654652778798884040969039388927502218726467011982735161987106843228868096394367373384666734658469243341617199207324069146615139757159267486797477033381918750124887033489903046207834113436154129718892372090453517196677115846628939391507314593128093487324804289360737194058700167672148557692135949792662297048267084367216225573758885107675981970293219328351266994731851571455173503111167028767220176271776835080119717662763451059188645142105933751122230823139660324223188400944488200318342528539246026104458533942055929919394091450585909055280142949712025085177817801966722252843775920085824018330776007169247825157588191665545438720787708661097438394145257464194324155031017163895726046174579159185584219161612244825004701491944347708515513955023601641407307613313072077857210483909186449267807319911670182891974085677918654626672923872685939508468385686822432138773227575636252178758914273261397542772523513818161206546053569299496714487144218526937317304402665581413255579402840238580552181015546585139882904282516269447634681458813307179510407901151083389658800918874152804134938481492244007704072654388400913860783320749443938939488301390640323374948780719599672764612397803283605734170139558306369063858799412862068883998117269188322140522505749902189778754213684556856676578241753761807927355313918719161876521434322162535265847586733931980060802258857464628562842942283223777278480072171131994393127648947798203193100130201981861610983393322233377076521270151143438614121182164980054031653585075781883519266591819259890603892767146498349284285576407319440622641806057482329903689491647403074163791460590528939956307615908927721712385592697140076718372103056663321745355545579621016893078050687725002916344503876138786707004921158040364552891362226746574562173958622863996355862383298343681049138289711769723293865059553185191442293016112738114621407693710467042432695629536247737748936382974066827298646265740780147748983707289625580469059655112879954477435199637593872183295186382395501739061887313854180753478721003064220873090688357293659528282305564521623615925272759953101343499648969873289941094035216220611372300750861014593737686486837993459706582956540339547556318410705136778201407750376852597401975979195527287134651081274502899456055323051706885550825862624953742546880266198341130385857428576275042597005127631569349505075929093127732735280220297409224106085504399176210027315143793000675059917204185808239974585524099469849007426620994057866535590344714443664681911633759773118831540337355164169483967439333685693034221986439835313945957491599095130402265173233137323079727690511655223022775489276454853249514664578538399247176315864868970745532314443088880435084001861132828508487990850435772776671184609092984719530661307604325172238918612481603179738712880801681926705781916156823678959234214212926730624523558833057845331460816623780997649210400745888896315732776690992638868009458947193536590695719405768700137279594056279240739903051211217194223707435070077467746878884912688847070709709309996377946757534951437543550721869682191968307614609576870945282804907250274221903074513099526186328036793624948846558427027936408140500181887252286420302054529544178652194029951672981911776476738536881089508755302818974478043359179778500941777850029494546903941169316934976969285313397958508585314385249455594558753320817896112126338511385594094315672397637067527614857493471562563031156666729236162590777171932247470394021056162360383808443321008296198710889157524737925543091816064192449614977344608760651940694593678449299277634370942627888174721626757105154691281826846221900882403797326658224318498313041304449656165488667872732568203292211888993231266496098274486307774180049306186679541759773674371710658340088924945377962319968847191514244999782795429378060361851080823343046834463820874165156291997681868145602631769983967442881305913883850331620993259083346093988941036432966089013914517695035078748934971921295873217851433586551679005853138740504050286350549595587460032257651545519703346651292364769275708857708928803554098850961717705625686495610719491592518299558428370626790182221373440249819756475730160716640770418381962219923179288695083918048233605591011688545320908582715226264925848251837928733970327306150851090615188769293873496652989448175380970163314107883707303760328857956034734314504460645597836047679678433968357687635430687087752832407586924240418628431213689699417729753985504666024594627250849791778857531668855943980775036473550866350087809690377215175424583825457386023827834689328167202448002639360823653677486477924207781722294774208817282553423803618887819866801449428146548948719029919954094137513564610180857267051578031504213396568644582383761983946138906515319877378392592739797006192461507837530179951533334257629272682283816546165490878561756162745864354535944431385328857332619458964668419187700060435837488836710983419435687491019358248082311804411382254632285741958052375670491767996153191079206367067717664155924315801722647956012840610004375893037810645737488450664032123207918016616491431084882858306908054812145430316101188883214974366886931436299011721269001866070208853181910477667690733930992186720621576989295855897504850397483749747431268687543178178066487236608807987767303877070441303209501091887953946442721577153718820342929543274909896730448003267397759484143106649701244045954496427762400468774013004175024314183409178665346942492783844042630779663754242039092394591521662331754974186463763036074805094978907724324982596692950742376195372645117178646698229559003615675209985040296451050198782755959281016168823179506716707760499367865045666366836483740681199613437930588340308290053783458477836713508366752204215416962738537652894253782842797799310971115136125696494701641532216293470083787050403193034990218338703976214981528983980079993149092327731840373355435780445332000189467403900108462824677655698756073313390323394138455607347492883252786462205382411601663023916877352242802059943512174987954624421930279492277160130438505887283473391681051751876945991071859315276836809398013326938240801616997151596677512370485053493832438213838405381545345821903149217492543899034288635458837768539826586061364976837827476480070688078233938724599716559998661356930426786646288301194791142924608750114701868633860488748670050807499156003956620206671935428185880478547201854409587136835863274501709057986567508807186996376872824782040670194879776843108523136315199726572689070110934465833845444269001948589595919137473275068041219810685310864909466508178667811269345479686016168450543831040121002847081279077962080295290544787609439463585363417444671387269787359763515940935265537184120311303004607745121326875844550261049845923059979617606508392652199744291354053279433064619870894031652667052150007525175359419600111348624499152952592807368298960578869500039110314754136011364900777743652043369908242748215436395967245418832652796164433006926639511080971926145318081006042645642726660665991932952648139876871360585744883636161270499862991337605501520303330228315600983761892349751938186301908813848460640169870156125051190481060808393739803827121621087563140316396632491415925906323662831018023146862003878427426112587916259634809744521510369958575893620047809995929513121978602873453046959527478562229503111886853836313144910904724963798469214366530462765220884957064326627690659033803670841394766991980385948861957687789202560197633374651197199834870197411180893933416106477046118801168172614698564568176830365006801598574552953976011067905922787589466383931249309564059909798103350837997334136931689197402049963848484741097008699534733859583867348895952231436555311657192439354553459132251336322493017624410306541555811359966441045124889977991306463772724188402458046618055170582539568782462524487838811730893808339360783315301664148602861889402297166999518121520346716187389955193164967011894810993815026350382340487490130322113124823175881375575514463551661438820492903281970385869163225072675802526866598933388006065075145687056876860303171679685494123942362243813985900466921834433269426178809151376131645638724744777426040815592910471636272319130469935086365385956337656720774491883161047828305790377065079684632072527504322294420208023440428341006746206467330278859399629402197468896782886386710267159498342691409738745750462562667736906741183776942141276690572962093347882210281928555199066141743902560653046444652721431213171091111055517118260680062068141289532582828222111953659498129771422597182376059305268811401253719006619635431035762230722499337392944535695744239264402056748276276840678457112708601678438575858981895935782662160944321217015278634626341957261243054437463445256629934162525604497236598085825810498693398754874208368283743534771247429962915313298294870141875360933021590311406875296034600202091259244804902055314032962933429419798756336341976439180463086159605087609348761289852309648989318831597569475365450243260657980960876319902201749459701165783929979222301673159340445160062375983306163742549652801387862259046429606154776219614349067717772084014126453139647811770288881188659460529805341922082270579306587602719638443614553047119699728049555139260386331190969031115835842670003308445365131882605223721649472849531503175575819643236930286706875940446927844640298241722250061188022532036048114795217299283872097687947322313005684556130344075641236482272471309866716429542296557039264691408389949457596315477882017080716216410825069444269409728382347185598174920809988559232174986977875358707686365653112442570641922466887855051549094886916412857406904572583798606493109653562508648614870262388536190304781092799117232438989926530157492251427944121628739842673514783509408686227307886905584100305074692401776022194477217583062057703492033226144772465951868751558863496709568222158966780285719985715161225895638296767951171470876998817759292541448855003688410306843630330766083765507616396920843848978572720748756999544048381538725891274992588778067803990805501269785840238524735616344746956440373214271299756473230802559156184151498900230537720526584273262779134981066861538226664358721829105088123122506942294228065143337465264568661060654191275501775734055724679413143347343441717035148960838309860825645623300929686949850237925042544960523962194546976850119938299525913396569122393642241235568552570460898483215176887575944809703839752121994296510817261571960668035043400403107601104008207600065689475835847892176842710139387221276613468168251273011213815440305407672057302079824788907030930769841238984766735406108076348701619505596946466486968611004561916123700895456748057830067559108888549080204413119387832830306378422594511936548651112822814965240279129206241879451350013873348845337969531528496606296648198019883984701653694990230417198217367966216688396098380103653034050217864718678370371035767849226958711995387189059612794460792713864707719864260794009708090872103101642205612105340249655015893377389696232817966825189863683644836067044991225114431035112336693407465608099122237472477463462008416610886791131780216240716867256322864942902847150226198339667199807954134523561279460879675426677126821579934052221974121010895008696567380427580908263581702706169502560324183706305850027999009580768781303211328825255896229308251841558787759568333286146617466271880144997801904439729933269949858801345600897669830254114839056216390279970404723341239436643168359353581408686016324581211901211267214793970536609069727902403820275902788096169633271894471186930176512631963779014634586838091936595880604454143711101701565514733997311756801302933795451605301921851807243065358517688762647166896757940849054125254266911648846391711839129734836801851808322187889281370020831793738451467511225421647296188398692454691086835443154060199078349067232761977330939247197280587885598233109561687924188436715067798734665816885185270474603841229472078060287920484863679468413501768336483264525031114466359354451604979745561343002174526925357228935140701212485886882437166075596788601537016271780294526966840130751788570811928677051683928526904563597913607283165506561598119998907913425009726911340850308694597336341270745656955847114618280410420159972726052503757288528381760232669183727606941145366627453685798449774192000200667703545865025864353674140333156377230256363026581353172702989078806606911499274904001770716000572388277197436715006148253644849542670947769321603629577380318057077865453263063503899673393281984438575923656221390961800230370382963445911592853354748543821748514039000500495745789555570562437566580378768972666342005020271907556500360991251166292066553096616799700783392494686273250204589395484265415032289085445715098018981877066363662677761334119690455377874747822766896897418022687981876932222541439012450599516676097587832393205531650247761547017850603936187177620931464497680089701113505316671510339429031599482207923497215414299947832120182543572166003371756227280025818680733969441283769539164522363961166448580576113221271642303793266444357234140268213497566484422686292874402088239624218620137196398157609763721025685791181403210210141634229011898954854934813994439184966790119751124002089144102260041270125198675430420568747739281126319222848352484564002017216649968576783052360068003244659463020867002980461177360616890454852494323180645022213490594757807854325758551613279501900317080774898697377048451602331186839758546589488093500068596274937331895810693651274701885920648570240745830063063261862028504377275495216230857486677025879512896348280428211640426941789946436138619770422154553249822025431529531003981470279952660477909595870840038248965046030950437099734689253047162244219934294046967929652435298773809302905348955861596608753789437510336647656658392155716891108902094639262328798073171411661684498164232863867757717495248835808094947215861114344392563273079821170442621685235952241312663812655165813362988180773459558988151370735785523133382722593145628973152777515605510009665600002606559765835404544639140143619317396697574179946389411439313860892869392129989694658444936128734147163349729773915641558496097670428248565156617555611716532819689986563384837389931123942674236458325343083213342638979161728828291052798620527603294364546332868603291417999235838299882873670767076752000633749601595472562503803715086919332193055890689986923860176562315372352077024630210721507031340199832685369224151391834711410716583842114111287664400018320260981444039858384249828342843450411566262146612749511590378606476822153706430170618963483258266806564279788679302767580225072781347552641780202756916606582059339086375781327789815357355497584659846330740013116291463046513241442738066607308130210683625688242897088036577897799016390012140546815215537765454676177660207881526742107772275117602772780160394480199832491287912819216463912270305137181379578111640053171383471199694309824717815359311791778611211653964691033838085763544544178215007582460901393186113196823269494390464149285121299413724313124900248642007070123190002958700222931757963409603396971840796720428995969051277851093568637761805881871541611316426282738223253252400423521581378802611995962752056305335206747875929884048023749899515980101443480785188231363609966133571630853634217946690439843296968190846646123520008917039467831332786574921273965904397828877670705513446271155265361616814544996775463530737390460608214974771954263216501917113008631833764314237474199530711916054410534387955590007139473525978931381954094495478700527217088605557121855570652337335049824341640425349501755102719025755909753914622053073971265302657046601166290808713081370717145722186140848135542605778727680726284457027053345853491390930360372415065750600367528055007528126928395736351502659415363222427504875675539403667845884040200437757089038133184639170140073674128281298446691730049311842531444795068687031237855958368080953793045789472079236887324293240511118973168781107164304303332064602255651053617288240246631276767830972197034293424255202697730235110364019499665267715975514565407948177889849714421791132591070300271361116239266770946373959140041264555044613180678181446663431320767071249305741745183416575602857521526192145008933722812511835088326135260055974574639044691730530547887881920987869600290962502107323215312794971257025141322713469307698528677548603092487578785543125712801741840994835848159761973884992923136544774295068199100878071445622674350304112665247961035728296065738609961220934293345870337080816491642046082888592567456198300688303507985825915746881351325255174867896934596760608593707110509014601761250632219816093116664108746287026863103515271027016675988923313532106279852121378764811169723835021247442930661666861520595757922661652528660058377049535285878712336437048592541724896014294616693524324990767537576957298477563487603366632777797975960719786558389530293269568819934107855955881297303890199278173704291174921610037231953784580240202300807546579418157823942064084367971173279442327550251420302069944947797983816239306404952938838136199716366471379708709647721766955806799172570865489620547760162339498886155263423886424057935231354472101023354351093893160590413224373639873232272977436549139578864907761155286502343279378894589984467234289177249719836830775041190131742115369872974352327401004163351481398277253596831129874160652966248418423133067907807217689069151665365702751222679207679212847441488877038978100055650287145486809267144774736570679028647141152191430394553401941393965100968627040059622256570684057679353925448231622304151769076326225449378600373747900125284100697551660810431964608543794367484210702959163877102527613582710755785651899796568662484547441774801673867719550136516353660301480588769242228570602964341385848719287346648253516384299383733185498587714470832970238623793623707891849071683986034223667541482276099342829169957807039172285511394671395792179020382253241425536513108414106659760987581623410822332519201879942627340231365333058777502879732238870870218107054069642204026517597247999721851767598066739580499959667235629894977681421210017742940428220030988757936104478824826247323491036266382082407928425289275608979240041537028254841413925055758214395234750376471223789349438631775450215205801969938055437629000385146583262795640741765783257467766160800186679924498724454499337086758357069006646950106593793483426285090990479613680484212212211421913151173201596845359344049025724803352735849955259554884628567923594732187239492235647870448163588842150308485137030424276331404118315496668135159483140910571643118901505695974241866469406380504196795686333782988189244715982754198941772253228306465182724115118513050430400298669277687314452406452808075464509558795757412956067392330188916910043417347887871551905407900152500327706533159203347777272871631031019544577108585163800238923831617535795293172233310457294327640892887367283855798859192446092781030670880426956305300601637603223034975225275074439372213934997501212474582594513689222670655825312366119242866799232572625019991783623235542271765924820702536283219419954237921686152561388469910301496617310792487423357298132419618313594699742780618667096940837473182753331520423563155112621098869027192461009092805178150242642671847842034981114766020404295210497764852443074013366803875279025082240410384116051728425917010505587121622774927249561873400157379922874003676174828613708938798606923997411055040951073647176703749986406385438782276679701889866835675976132481196124104698280509872248816960402989487051596505536363064991491784409445579685891238571934132399224589362728389823507091892952670770639586088176374141438734936377478540420526268513177533627109496525405400388829058699751801562950301626201770270283837922754085011513289103744362326001245428132140673527145517001666615933227069625387458651591966846935384214091561021499734517333660020566493055824682158551362259185988596470662356124950658877236185535103019349728914169583468070912419805194617055858655831906695389223245729354879273070168000072940240017446051974339769804532616760161847425094980377814459043650469890270506272560170611102291909326837684052138400232050782918928248167248640924707658306131646704801971811879470049302982328644710445665575082291243057515611294849084232566489033358824081758751590482050552259987219566475842132757099627186837900222474333245574167025494711374646849836255220069215971494078865435314532277953354442852398535628114043617484965132685450784037052770274246273476191989442346154831628127985426863431092571080993616495910720683108128540374565811296010999828523361453929348706746499812859302324931919893985486277651576099312682117957457686478387432965293139787808966249674087366243622367616881893759016326893754165877782764762948408501053856827122318588943644846420638103315366639873085560444451520724023067548484375424309904042291522701937988078146121197252235519123131224315432125577897060772490927239684525390679264153772075383005704205780854932021709902115512524822935696672562847940424564561827922365273581837016556933064770136101175839636436147687956446610946204127217994386882718383579210707229849484433579623848202388740316987250344087616370945347199699431590194740776906823546518134703961192071511473803064136912732998970074759661049808804156435150017521798989862544056935467494976145619783472656805694679398112916589130508608245247809571026878089555921822718499148986388973961459014068636749865011784102795191305839908999349797311950700605734258274482501021453501294704560119907558318962239947979233569203761094603258666955676932207640840350359768175638304313117591880216762445118935490988644879427656890276113231955518344757226269257456801243264249109047561544565902945550140965585841364173088620455337770611615952186392781346332135780447046956728974394389388106818765886047177355475524509714370259320005895798657498739074616454469780742126123792973941419492365424347103655561001409346801420635842035610848068709367966795315989463840599155120375130841428710934814950507038184258243595713831952569664652871633035997965683708121776682271917684242170972821843380387963931703264489646716622003689854747257843647440106176509831533426989456292662371255456159686849910690707795994889435371548447124437995809960653527552061722946186333217704492276921774327224109736618985608565938550580885076323604021444695226969421983046897230779135615114466691610611560937913920211960469553595376157128594721518980271925899879674333147998901474576601828488064247888481023243376396281057171517634657767616519576510909577380374539093151297777916677671245423664429305212097272346922554525146352177341346308460611891307364653233385892929849006894625405020482313492020977587507104771207265788388005313831845769371825653577483981760904597251167677129356523219531257421960774067239943000630667203543359580641167579552643753638810729903270431963228936512774479582654609780573360100949980146316447264268418814063909581935939815591233270653200412372915174217245191364374082135588273342342920915506902670603372576603058370287432084315454546032516314787987079784430285122188434116646711892405602144190676392052945593490883230021445465034999205572799771163940191809976705098241177876300301623369576383382019525252387243505675295070829079390502270918212000674454724144254911476701406417390314172632105497170472019095822982560740577366350754835117848851219560061263786686368184545767023018298630740367378852038572890225154282721609083168563909336035117071404331314893757231337137630577359708184966841671397292310978187839994733384363222917369945711924582461872480787123755658287630826916847041142559718075848122138258163817367697527115051463776907085436516572941790012942595363044049031849722150789832328959421981635445034440485698268310494366945431064374110051619384372615995601459443601951064414136284619163678251442841624068047102135691407862149284243659947045723216084249466420596179763629138409544781038766516016593126719133039880272510689622521595089471484450566806766058111602573468333787347262840646450542255176747448342601360085154319402653875411848548864793017154314587313314429322454879625305178209922943106254279601801836404849930864114305163823155627585171768754310629212910682813708123803080404167493646598015313683511770357548350752831353926598565320501160801260609820196326484826180510615323244331104725689883004161209741155724031591895475093448325704404106304880141931774343345558726927343953961878992716291999005500459944331524266069190947734834223740128087076890004354719052262473257575640206155100051572373664271466681644959252098124185810034102525492942708796644922108436767206374076596496194388876554484188050474137322303686243396270802039574252465675654740845299908834474629359990054559886313211620765385539341440447598907674284858969676657851922939674157136502680045519151038214189303240062549608403751330330615881766372293209853416694356050708049761916777466932047201434773419744982113695529464057344724200944834594374891568894148580590524916850256614189609785487482663338570559693744616818970809202520130758356986875730423442483724723020855285554810254386386172348612115470394649599033964016697958776241662546561441519808307464156218392837587372629088751243489253454524799094801016109764817537689042956878768400323860308675823711462646144475227677765577586985018802403981064039903460406119403599807235909773159859270629895924610332725265294633380438545664861371651518696552949443327999667837761709352554901227496333450627778142076897176197104676312038343991757841902649526032139023093510502211371375408828515846572865347558301404066865146650741785704853250166993686946260823468959218027603798942660872366403672050933663664963240093885097969819706410171426708743570262992017316667447813305391924138729852645831349017356978733406372430518454866782880423805738201872938807220846094327936255215620089965313766644021050406706685932162866932316220439746627095117430423464709198674393345382819702466801935463627550869885301275725139969884685221974145746137980648631488344501132200465063161044818907186956200056608926553998751914481902634695660632736154976000599201880609656461184794743760248155612731330862308006879313527151327145656679440906441029577464849290173361301921520918133978178903539912917231620744423267210034609834273753328707559651410464191835116757215015018169179198314455840603547738174313733034523133034417751435081842038768274499399340671635044870285145582623619820985643693292295720927955720461082494698925055698851598371621500188702260447120154048046207403344393992916044180352766982686083264751053205606072370249737523446816414906000336537562916299105937775325352159041765366528497156877467635526666424613199305790035727434315836617486133577449211746188492939293084791725468018054547478950527570355492226705111644983339669642559962130348899012640936310231837980772997842664219691081517450331750685906062919979331242209771751727959642830029744679110810374631450190522423049262453141143857280830102123098470429308774361894023447618840091002133170321277317612657610542524151157352125904790297777147271154223635171408494680333911248348184524392077996643296973416571446312991360152678047519801800733400424307218419228617259180285258485413098608339295854993405773838689817237235573355316758244355685951270038687791625613962026430085358385852133808414592247804872095884551389403519417713671165731061063077420465945185342040674276854015109182459616296128141262489540497690373447802600736292202134315145895710600796831612387853513821595901635627010846118867047428099273468428955140965553951760910458926342179576298313221317550744955902762701457963589322291707847020344781249495926468705319486439241926302086554333899079097395302705030794823125602891796725415087418968550941321585950727961683000698853837587199625246832756750018234157876523938395624376737583518780831651641705089151750515200223975844846236677674350515628329506330198498801051729258324336667181192977084365982711325970488853536514483640644627063970897218628120702587978830058280510899741625655371535410717112061206923120930287905974342929081754990253196919680631385801434485529097602479603226688957698386561345444102454480147975737568945620504895250905444863322412416532248941789388077423814219054306884033459764159442911256568323444402572558302116453953537722516831768355494989215316510536060967208131292592741834857131615375790233059643434497353958696167592918648407159431214079685930563256839922783241963511679184392045805768089582431572323604817835100261891188382235090914265322393967091342451722154338696847553265846716168654155730973338466773235447146236583716953174026886660577991885304914452125669463676466531691435871165364875602725283209300384678738584074645392211000247702821188434707220998278256287608056990005467356230028930135974999423720041600151156467760052428983864416784977712906686678780150304502522769049679388904973011125648403369583307236303746275660067483542032975618889213943071947281536286356101626322371179424978997601609315556780790926927270388255982073660497904564364439686323924738095268960531292198384652739553630896860755267281199867436338823213103129888078773119800858493743310387192229646066583455305642220410857369730294850605159340137589835183282523750138187780187551249007330368225396549017425675299920524553467017528926552513421620358423752266149696491791657654687880751359560382501459946616620909829200734493174000075146045564018557729380694284023112015479478023578075223745398513057227470716802441818149122369087802299767092577822442648440674196072018980366981475344330222934592948736500942245749743317509853574663155109495597257731964564064639178488167218217583205992868842411718299534704360042633501871936842175596708817533687628120945569964401014651208022170184383297484253444225602283089943184407557993178850909068274064536420344126566404900311868590459040902190386658556796649699455506208318964774020898208065839467446496130476715166520571682780050680056514896674285845803246561202683938427788201657044840250791359101776112325931221511352232385650434548114212412150109330027057999409951755235359215648225759204648051462576840852369208486880198568825079080521498216720531720346613053539860057513759287395823591084997140051752114362926211937236063150626945893403766600702926388147238881876828878124776860456072806184359945003341687416776479339366009914273331874877884134704983252103663864668255421047092286416500650781876825883121074663954930869159087211952409785916512914600047613509370120415249133746192904746871058671682642296704760468896239986855675899022296721848618281783663855508418805296283300946986594658996158725167345379198623568505824362795796158426924387648328606324372393893946217648137634087645230644798282408745799253776868595742741305751123543563206990947717044553534316914869577365918988405616802873113094128350855444950216987180139070725530541062903630571762795021394718598227057793846390821108999568606860810150599000873877647459013879695095431318400282732720958753686238150973966631078324546407261026480647019997758163320537258102699776787135729088781102985893501293814224293074273966741927233911243490353547484570160978992615155524224951462790896056810649283923133169569488296539851804954731465681145146213570643531464197524049858719684212435376073792608634487819531368268170939390374875193742628016128969495800163696823779733590935261639793089734601715864563455851410876969506906255031355427341772338562774396138200175357422581129385793363219098650018601336133660242607674485296062662646048715394919985705605346252430101204753794991438562346253293838412269387483647600331592001422569087493209641543476269546476706478138402836535353228505250566956507751852081386971818332640362315674738460067142052043040651684688678784171467555387990812918402496176421823695640533578423226216430490759064187025907644003679068632320795511787907122309901805035992982002853367651311374689733603116888717933403962690630841060500200638601423941833038325355037720614149179768391228689962064911634559864384835145370106870094310195480775359498688022646557965411401280331077930768622401550157399914052951498596870854997734768789097023191311363201744792895350383134405234883090354953433407157459027643218059158855399013306597232494944140181118308156077164810694598812115377670635004208928567258659071527318311396039359091845557086680850722288607448023370740892929065138574280581518970119481870934212024919058014711389293732587253021514136344129952042867746479782408241494342341217084928315075814622428472579793315447491958397268330615848632776546793911959905880398212653194911798430116792247680028293641814142350329596523094719236513710705091360316811535472715187587957663259592552166668505559816047419307497768021417141159488559441736746564011462906619097232022591444615172994396280987489256407555712858484626619550811004643470676312275003534313951965571198910197240671055137715095492882389624324139089494831442097368460539220250579863200416479452609127977016391068906824717512381874083682354609626592150784553865205342250622910907276144807491375501089402421839052927686001501790437956373443990071424749591968792951733965253225582714143906417757735046856299476991812890036025093822333252545306273799959809747377692568852783356549200902013226222733612501057358414325971705853146299072813435875334807343170664772373669764368478122322877292338464795865732043374899161289594106150026728767830641827722927747216646207605277146366393647741742912367008992310467370846754618529626688398851304278872096756712534645243537928134707820235383395997834567384500172272610899852426144016698721815982513129568621471566329648131601032388835420889952459105019497098910180947804054980491750877370024683583021746524374553888541050953792523201407006136809170573386176940888964768087217140994304392360123267282099516724797269606591380184823649386569524206602074654905356186704655131342323035258907782271089461304254293422839189278856389696809548766086916324100579041247320513959968138535094176503448860431115375994536629949830949014204446640970299459168803261161367821189106376631742850400248433067559252524578576396210749133870453767098211172841664806007012314808782437801640996925289474896797528154327692748574275947165751904367175657821826760518152456026593074102161512518553087721603284594854920389928413255927101882940896625703031247515807671875305987863934809233748919698129394055842972551685719349295838640838849798641153530009885211111746883056710646720558894356284201889021219305841490854310148745438511788277396103911469047391086286806245312137961491752734299866904864375563828083723659462636169582774447949800470392704882210421571283337152884584688276987678916124003466162017261268206516439009852212212911469885167006507672677861399190410313921817843757318592164008008648139623072221417670231704317263340682230766462602119545642821793970910875330678416548543390442553801880318408719222850287731759703389677317292496052064159227277503681110882526343997908602857466830708623515379051929417918628169499712402918588726006792112609451878995764392396706236003130377262636950326686903474864459051642295938023166819044901746877137650899654056990314772794729852003059351965222985336409534903287325064562740189302820571002424998046423273963478313921063458585723858520791433904128990102623529770817416548341775839622626264547717168614421977847375617556832996815624607085788632504490944845030615748673844280204416979662742645138206863335146943671537763047636992801000118132396362063651019403832195951451154092274558503326002500540013110720961002426577589912090593882111788245828660723235438876275908411860911442605379647514296511463438168369691084466482205155698434012317606506753844961903103238814528247688508477699401338152780854865765696328460394482478105931056822267583398802373436998707444095106704995649840043497424112825770932486985219553832933807705673670919016883856908973348976387885399889775454479309678021778000954154131955469172406917332068888243632889074689640688755211309678170976176048667769151525690803218497805290018342634224773638210050880611670228567474338577175658799183909890901519473859210588244716685169419057488416659024229390218113189399322396839780065393017007377288776189123108832101661529830600885924606726434617443509069621344243051823432976766111953718335145977837861437388777825067387978958098969513324198795689911120320173197729252781476087891115547115182503280538263129810411837017175082536278022442670679650083252045702724875530838551048605597820022236461847596904000427680172804919990503763243994174843722833075763362787428090496691621451764393423884431325074874149421473129881574705067075887083311651911693155315788076341887892798952429325884171044002759747939232471507299391547881946666482797484404131997657777703951687481374145339440198855165497403033754304428868185154370673848304359802223302480690802691001861159920619995336332308150622836932340303382739818040025629660978593211869571445338616367801386755510467358993488006346670944744561237085863554786205190946776807199275899306559218993207374523618086665897167145729568457841064642189291310112668199766451227914885612446323527879702396596266050978990879848293969658134644599542565647598453091346924750816689056243183323227888863057489778203671640004695220749153258316196148626493091218263479120266822476478681360762833695801615026999076495807135865929961888220350533816846065532719399529243319949827313784665450743640684753078517618956361808035981690347562248208960466143295936954946124720420916490245445691451332017458906049874489295699782142652064203277998333820672707318701443008082976812218077911769825246967964613246549446302267970057102480194098501876804804205171303275892813253638066507135485703725784842634450172926130139213803316391147692603886183849878641203491312866755336984833722319648763602095174152605474660307054198796027418849763100817649945835164093850442001866882513286627113458804187177490365208339852381627132075725838269510632778951104622244173265538221132497579684938560169423804472621556205562452927352407077946601170963229372002790344516052038547663683493831968594751390764749986957546302318799493168429649638018817394392893499590661549016918562877543118515657067869491664303332039565787172560902997127529591481738399661383575242144860294919938605498463257369263095319486231043791199297759548475921272172824867171449030072988688774241167397472164772008981031618940110843333109183224849380933730331526744057534831180071759919180356722855764454373699211418829109895315464384848640609939969643469821201082382995891165729051762077723495627631531598371598687372240347118688594458717925597956607906456334326544016874928289774169097825443872420845721415814690127128357239920187347963240648539277286198058181146718870144169285282704879301048265254192469883288609747725267830982631524343970414533350589838908350677710590551674103030038999190520929700198986269579755100796944564733320410986079568810834848220501365024445233581594338987751416402747405734887810341654644009758475563779854510630531811085420768175488904632220349722192837232890611966556487948388174762819589177989802471220082633426825014378484773577125703644664699703124498294603423582680497045697598363619336808381673142054911636098523623927844316913903955762390376931739058585425886422031781466960956647857994150413743496257192406002680297864137704840092924484871804028610318589477765721911281613542495051278225566393871832372577025064219190403663798676793563896061403959446773334618396011621448347409556208564122938643080194686120025440899453852672267368979245600448304492437308869349241413507019609817765668204825564539441463923590690005669452509320086651631786398899670109514121066314657575927112923423966008117593116903271409004586746573211769646618522018402204141504784845631719464111033972920965651519642666356431951168108527948595827184512170985573711323920857823867327308932715593857157358436642825440843413993333709908773532719519938374703786793085034312323854876409300305023090792903486419527125053645100593972339624363636003490064260845294810494048636467760265073527483872562376341162544192365361082939501772199913743725704156841884462628741534799605466979977663968071990819500764574060729415877922455416842632832298738164268579860494998523472449176699045118803761447547814210034490076269225484739670379061536956851339391339228037118043982869550734806299660804039279429885480157022368059455303214801114550448368816665973587942485773401979191313083378230383429424675692845317070058508248022777230757703241089429552128550558746420353144558980144436563985398091188210807839510621066221519309486329854380016252952114927147025044692599020361994287498512179574120328406666616946303451780335166292707280722784099022625702052543568946959765670640627459925384311258102486940690500090526677827934600008231643133600101038787686949281571036356679361525157368426412210723446096412653429547635333103178757719155110513498107425805026548431300224274131440250642914646588122916321180351627379638524124315592099243695967705178348313840583106495914768928954893942995128275747099096928738887994462508341451687657729041975831329426831711612743455910655977781255369337677448856630591552422886786547731668491475012734348655463615662755358212820527541739932597432156271891432929029516204237127426982921882541297638500685888554708869158763194891184873300285896791324263425888437992723598145226519652612537028162432416947247420824640596584591748404146922060275987492613011813826686597748030212138086312920477722345248668969091410859657071296156078495917567711023363891770172597544518010810243797957412521279435184512231135320917170074739556798582850539016490978427101765410060727444238059713048323118620723097062912971280436846249763614948900891458666685967678190167802265207270875944373807940406302038635039027941210435242138611669002475103152595482150018742182839450467597081532603500927837878722353438967431447368711311805973195554816856462871732055393723256869728993989316182619378151715911991214661099274575508635621241013272151471935443329850784225942253808353677316950216927253103299227647195275160537792396583782612413936943042065213078254653747279067294753720253109899354761048027841798064771539302001973154617337652591556175531106587220911270848660093030779119512089062043597690038152542133145791097773725188617091557571822028603983920215324903417774760513606219520604754875872404276246361017492162134416940796572439827699620244168384858234817167861993378469253264772427388672980244197600641868799562758926114612198660369759302109304168835736994431011243722078640048586118405856385493494788073689147763936420390092344782696373700810079225343639720225164210110774041317271739122970539769746100935230882903076434511720732111645968455135360178189838744985419928087917635952682976924676556688760288830315205504921260196922378746574052474061861578386989413350177194654959597679523648878261490041106852207881944477647120055364206807986407517662761664488740176951429602862264793929094875974972233553499387882635215952604684282290388013124668591676098469231634074530533006677757879780553914924110947313434395375875207815623500288615625830807396232802504765991167455067185144984619490478931917565563862915565550051751305768667539025621210813594640213719641490420304699575550577768970623954739173523805203900384012542796636547450019170472876340097251099552181873300184863036408587608648637842443099719879683674766092814941459399444067802732212949370705270710123530252301537275542873719689990024967708798659212639703651455635127006346677975827526581105972466337796013780895915795557701252139309303830776020853655219453798442675582384506824906791343835057374265326616477012277296356026171490014259207288392308270875412196207003340315992654521293520580189885233581691445150895300130731353431330389864682238846119466413434775571660699601052455716090955048867779397946678238464086468259361412625405368243179486766625358979417427154698979418996122976472311202196175990564384365557014934922588668403510299191360216151333516967184631920932087463020926703645645909923607709747531338901842386859662045638208301922926118070722162873082487220397936096862339842258768580603601566409973095253251591098814250506517444497623362030684957326592103897912944131199668296037848078287460140272403645904281302681998711834856742751419216572133878665734779488361686670742203469878622152877370654840035671036732194430618336310998203117264035301472615031277046761713730073796984504878008840492540852524667761648474603832970278729040882935922038471035491195692452282385603761637047838637720575820625211373955558462613153015547460685503129043223384052828947080831974273632328003664891822740749215060711366947197881330268294637710286702367231935090059840824275969381776676239548250463941748483775311091167104693152995107519011867553631052586014100114388967386250023019101667445868103110632569491241100817964819170673004068855294372251622177791867159811286337972848896054095002904312029123363937294345153993297482842348181261798087559103272911080965134437970003897043187553449084076042292993605226209849086445825540745565023292430638480672774155387464598788130893096143171117755908343758444103065435080913281516010514060653791563496956254450739991415890568162698151814139578278832703938035668310618960010897166302065841531360004271994766423947372665839364488648928258476159874364879022781575492975561850577919196292055257649508624010308900953650700565443228335440500411500863939009443744141068282541925470731940022587650106753720912082857649746645807613939593482500260841502667575278257728903373833763787670203141476841762629636304040679768886048075329544476716031790978950650905363148650585448537037601813602868830620899690843568185992894328729542155778645346775264759853056762455168019235854616085882925794494649824968661896131575655116206377915049388979630712758555908479516569135430948309564517049034064255813942028365464951347673474413260153311189832097635107475619079240864788240367208319334530913925650169352958067635423757968684377028469811267746952577199217111410688776199075646781582498283745904149307004318318277387151238865036954719610373225123272095999736387819529727492883013350151492674815324453474354989720664127916782881001019616443138056075968944674578463169190548758416704109245072080300180213208552570073712466222520118344486759704242466636957756233877243288809551272706590694506874585670823459507875556207670594098929076535223290907275470890811144100774171693065338817503109646174177371452821110492737631069679264937322420604607672584827520305602646989817638117416604789324049550106350304682705508851803007431522477645333732451956961816253061593098847609140487132215340347835915517565092583947375474076532048019383381547254251098299724526782066936808886933218960797767616529246922894370481084314399562383425352181128480745169736984463317929634717405453675906016611594495838837011744704773752157189728484632809578937967929693562183497972359648565592686375123237036293727906842005636817477308032082760865041665410187989305930668983179569086389792995782178317823582368023657705560366482722809337856447340550735851297993006880899616208694878713806471998887460719310696166598867605094830888225679775491359613234131233318007174434454034357117987165148145659949936333385745740073086720728233831597625147183598017483040438978870360406268488002785189189938744079200609826178627950970698887497707812175084391708983817533358824315401450876785566441152492753841219951307886766348409502013647616831733840339865437846823565204074262014313941481910852421563528240180930980079103078520370931817764865971543115453940626096049055986134341006861403691571452471341758913195636082163597792249614726035806465494201827180526509464653236823248811054394346499503890602092147053886200795884155450906114924057775091310646147510891036182524490024523856178398319990539525224926127852372445413591029801681145605660674003607603073310373766726018859008223741444011049673774041552498732219516749563444130521226303187149538942395205133902453503198819420120862605407375680797413023068979916895213900067492211481676822614625971185292614239888139540594321352198571549404356614406519169630362890197909289231178883661312574391358142162055165036125433148594432746102693211768469075923955824390795709240144523923627043249107108700754984887324822391817252214621693796883624110071859675826630319315584666354406013397982469693386042817657069572566233141528769408071600700771394893650545945366772016326874288552446510952513193688595406273092349314203048035230769278936139360254524433883901016570549895242444536768549016346678571265449240881548281379587904465511502809727320423308206165681577035154939036031044232686873680488103844612376809557005081288138071910396887442731445891350697072335308552473015333125216675361261057001955252287311656117851573147518332237218236996193635987439352744352651030473271939776021579838237580873154554113712860229577045568277184385695312012120110709631120993605990343486848602846798322622482200956958808806051140472308745500258323793021569329051081249771445630321212873982192523790704103899762368270864461416979369109908776074918387465549888892788210201756974905286674882937956002902129012226466796736920817994802903384274473236928305505530794708315142540982278585155775513418128205420595021072371333022286567385092419223458884489211132470957593835197978292086043962095990446226642225792000463571696285883237645345456490448480003039056518423720840441586646414030980898496368084503503303859117378684642311880597603665459308052698177400976512055008243894390554466933257970176153212760841076968555821259029664043916772832347682013396162691904997564329501709514554676616707655987501239403264393250011758427609095867367200368142317825916379165463979446224699223382502558249524512916892847352447235472359122874168333791041890695000597716533721070079002159631274468964550487679985324296587385814475841090054098692786751255557933530957537157799569445139836932307764174183545598032276639784141523256930507908462600113765273766774580165216854850298871455792955116281261028116436164807700175590080833472127365486901883037343218712946784383634364606939392450248881981173292919610353875483278396529990569827401327111449879609280312803412321237662556934908096480024881149529834712239726829125077312052255312907059328284317798163818751894458336575354071777071082553861015487749051173393311791870181499260620197613485224669732767122408748344872052585758567361015027149302313066404010510610868169022919274265244972185799130930448762664743218045189046252918698796691289822263270155007413998687449591360189472705875293877951865923372775325116161229250631010312493398898524019580334927716854629028743958934026357633223946857118921056542328976846658078076445058197014861143237473310089962884775937452626979818559385511437130999330831225768653968213317593557564760774198178971721891596639158245127967251371299053616039027055057545426648787407372514785577605357407565795379195099876675303896176276077647924250303259568414226171311551971603315582602460198747278370264090351277701544460621545837956902152981043992854531758958099035884747039375360455105504887910757272741449525363373301873825200300058745996189512630029375679305329461316284653107317193833163012092927730860501431864672798827498583925675038402163868244528496376366816769726088662880273148315589424255118517586851383989276810722267253659010370273430803593196720776117940867791661316767167857079043728481037646152598921276459602994637842873760759748853774216918888989452265194497962581932207447225713150644863274675721259544913484041067889867100273403891816719386951214666151749753844132169555291127488569778013186377519216299737541041378782583624056530548495614438313871906196982415367524876595842555062912577587754090621884133279379895877974433554547122667787854611065068634484364110720285665941498688263625520317831380922649726881582795447217182288827481512743196983912579989217436217850873095409267839419313206599783462102730174907759296879280203665781734140836892153176317310138511995735046494719471296693607110674319437251899080550200086632481859796016379426534225235830346712479938396877967612261294724669270217050227050542464953648254830328806866765790984192535567040612954002121565444430360312519688466840830686329245660587619857352927657408795886430332875994129829604104319064785868750948894719033764554123850548389141782011702465505399679162065838594004500434297192168431994467686650583229687361012440563904244769954742223687856037947127098260931151729552736682445945636278793381154430449065936749297180816686365694902991993883987750617020161728127779873063086127829432486477383799745824823282484132377128319282153052130027497783798254030012757880144961947241891006942390932336685732041338984518548143110294146586870927277674302453132112511166103011651802936821344795937162280004473039898760138340776417890858949283154648655250664696403184229528478453576876181117630215262236074912614560163878347807782119251908488003348489139220151909614832973343931706491750952136490771412855230874605673351811598471456486747478870870889223349096337786031469845423036302215038125565195694274430616512101468014257021124931697232307174609265413199842776903204068734661607039094243693235908278121486988936011840188332726021322322557466636465116970749276017656674043801024741917672998449665125513917453484385489768602435152702926398904354137233300220609254355116785885047627834725144316217072520411151426015047892060918617362018481816228552231491277963820611821024351852091756217156735923670054745927004916292891382574643181215517946815137417281628058247491776275712438750287161555033428759159913844568283376743055114852863064559626436454294149892725330506170160054523139172178322878114584209056851836904251586553332864993495151185234169009568972098343043535514724284463614611038312311429680417744149297589986323441094409785790397759391707986836034861053591586794031234955143131493463056543232253593417483301753417406855900193790003620317558555039473499379511798027221161279738446425147581307899810152069912493144534561130142535562575157202528195870685274256554418517987437754348220220525590074830001153126709821416311628509008666126133773194423170744725757655125994860412130650367816154444198535069457001308040297357072704275370927208642310451148118604602779875818937071993679270100026359135144213075630018197269621299762128688170982748516186905572482718719928210177497972140353482561069153122152628984357971085612063013905507767382478403952107577342763634291414007390060695431798434314725782646577821018411918044754873792782517320930347534022644140219351271280495123859819128184006021223948454527809420774712733931179419960202438806223328286529780589685953822912681013226810961196957170548232895915434025067488808627601808384458072589867069529652469203378767729842534895243360720728640187829860126572739873798723310406365229074518227011916903425021593998801560400129389558557803181439768750273093359769012194984185539484169333534109989961251560340758420341653160803063737096006614497698133090767145852522423934974766773369197402922313235451609249475117419885386622723229779206795499255120301066326488571615465310589461267584475259243867893413793295095288383134527836539242704600053379026293135868107621221833536859757111973159761198846541659877731520868645936622698067832053845321167489888033412023916421398660049893103482272841870056516803322141659709737460010641751839720167421842326054771503315571999939418456221227364554064893352911995658173472825737490117151728323684146285581213772626185076538811504928810263970799742206501838347242250019530601273953643145432706960362062745321597831759046499017029657691918288089998041505920446929728959324835027810729610063739630733903335889854682765251886578241323877418855275728106265396300366984561539434146230168523898109359907534727713789326322522843791091863656783050868882561231268019054546118668074762072229128508931373939742025782372819418902595226070987826980858030958461320111215725169115015561474111130893064914878476664609386839641471694478052699921355617542162139835727782139456656292324825133474987489793351281778439894799108357903996543049868734458635305711530335456903936795349192418359140596734821612108221873444199242146525069932217680504134500877133301849485659543826033213076732888483449417062553702529362783097062195484317266154674800482734874234547320960650337948359765739080891053757378554420293944443586133365492894774456021757623692054207149600395338591999048569855345335636145786766238243638882813525143059348247484155633395236986500878433938090330128368403654129311114777109052704079575369349134282102579606129236793720990800202577421598972813753391027898973078816116460730651099773310365105701440550584596910876518013460150560652288419858385689698013979213847431039384049757866059733214477298622768613995875911680682176772859031453826748165710097624280393503874122475823384575791932485553721667898236800287613307298154386348825898851446147538597344138639858425505825050799475961020133026610595344874955709534757862633407665303397518481241530267308400014806740947383192190535044626629401823359195246044726405016451144385920103986535835746488757581075413679638671829331659918709873256846125029104808186039250282222838336817990316959015851352344281224910730250213760586254643533548412370495750662259419677326905248615560892879050673419495850790628313865422617528066334147647679240204684886442290132628817922603228094308794182989276781770379360841610661865436417836135496069077106151227616211439620025614149539776812483189130488158501948537539129014920182827616961639415349674795621596553185237453612945454175711451822659054494557442852477224903292547300999928540578571612244791211448265125830259536153568685372387239967751700624848083563070519152100204115430046531018036385797653710155171999509303263242686297800198182109448162934806919083046465639935228798123603522225036844177030158733244379362032851782125758356496846753845268182128772246702270086418458523275229214318093267204449051421706471799093132465737299941389164538661690728406631188957654688141407310471400923046830550040886721075933684709454035298426375690955630528760707174892591624740959378185517227045427036403701113443949988098687272239609673364327671098008315455371933331277757005424718437241919052541869102264835522929424579965512280703941321469103938434203230503616487000815437890355646328441622817466747632450828872872497524306142944520284061536927196559674147220868296120685552402223234536211391376786336801170109800581020478349857198147069973546171908846916237743961969652069014387086868521309867819611569139931115770560106059660470768335862633293291504606148874023636829885576674113027622775416231311245979036381699331712730334631107011151842497434442274683655175071501923712449797503645521583187126086691617060345473250872123950645201208278930595951631830683772653029002011222186604962217876462655958842001418909672390980979627656479754220278312546881122109288263718283407856813711946376767075142928373512907421039928670799349939068230905764908331976106745194233807819873888001822709656743481385734977176701880831355531033582212671559194397832948480458326809004034731879527274603011294725792311821409036423615630714409779453932967118863781735850706345886209439278372313301799990304540306093936282766889885154488457241065067504914578677791199379350671453713727573058795619280770886802411765525399151775791228380992128492267328519632625796481210029252659374414963386722800118179731614171101388216750632511374427396006335108773833375206875873047169718267924099973458159750720329592091199797278802089441830850030822358644996022854030121729224195440516355328763718058550932137324483003711275085699523267297843803366170368492435395548615337491074946607948113876649840121681678197949422848647639077040840999699407383747034635592451128021924060476024027356821027688343437216088875764152645340567046945759159238597548376129593039400791351358573590233994488476551140610580583458442784114484176534679670840685847868256267149915979965459115611050499962674295614783845273983884554118564756102122128169941742994773470492035606269856263190060569167785649532146568901131475949679174315235877669594599549578816786816778172198823895932245457653426051191375701310473145027613164958315465080916014361991319986597564883302147574026914274308803838325825163276990544472652479482418016927140422336578905753686243895500632132991723157011959197315170049239971734347434893082092518074480550894329821034056052333513953266040321939754572735649285197690348671594821126373552032574596606498148745479434547938495817973392697095918927140831668391122451413742950824665288341805576486491235212342858295059464752245347969709898423095515251180376665965269471410983545933385614604746473399722899351678565198697737091678722657023384771580778205043703689173650991166400286326221862870232775045943429303316517297354502986284072555535622606353845899226059758263908249678802779081379271761376760806869468978448948134476023631912857913168991346931704319713769154415310301880583011519735359012439751929564316294731921311011941753029149477524379324972556793526501900390387277684639811069607975079073114145559766128362302318571176392211612498260293210179700952828520673287822268765858662032540482783372063596365254158497399626572530262545240880813101148601218233133427855917646203970151407862691111939766725218967066196947394948888714469474612816401430153872999312720744909783691727190795893374716394212242138145679919738862472716014716228105573740661232739986114306807645393673871151296349818160793789655909658584086929037836083389401164057440696572442807715025284738478671911325642927996382016212746020706982568979455823614571667067250733608450618471063041050607438219807696266508798059878021076328985091333895897059938604981373767909294148573624545446579056691390615853590054270944850455300086782111471566809964225964873694420088543637428121568575557875994006139043439517248548284122049935455607980811916524090068932043277164789345023549412423323513095544151987232452414621584099058413797665331330438789493709077315161822525987286383967737617291118627674756040942511531147739194737042960047582907484408275752074904547315020466156313634130957899245162211300536853599821433093990909545926654888399608520833957482616956748646319977951885935880842368372912668532807391910132752984581007401476632639580199203973137021984905498390287642293413986373153089477382152028873511533090490677863558135621014726001494480602693421120605856336834047362447280486129831033286914619600194469937067145728329254590313599890460335427916312469107594007524125728353022907294338400549012529793924648367523162473797225630963403814452080801317169049891636108064368283407253774627926316120491880622016715915507301438130319600267052809300783026372734546532995332695487431140808255562374266631748869067100374737740759232457606427325241518591438814988204115506678940498967544892104433922321238756282739812495222794386244350220772252991346927001439759044700881611936989099622884042009321842696159892852164123976538002876171612166811971159426632062213168127843810583608597051707432701989778304600869923865081606822490082997316748913030144522117840427756893522168006298428653259864997854692157029858447091144979996006700153109015965704879170822204985121545489715887969515151724214653202731733948700915162280590959529380683068673778825750124528014105070406717335024325714706822598626416053646628760499139904683733584576287883298796767821896159962362864375244966400440893787659072653452485281893952759456945309203712876266000705790013345179590606092620034310903182375841427291441661493077469156637789046555190951080809201896576399343349481753362615514093050052683688515939730812521006463065807604393587358525756673302996429665692703531232242527066437952332249919733841865839648854991661393469396619851133309515415778991995731698762942873311663483378602266690376652761908140053258402269888999927458907494611409194713108820951946701021030227463281516766412254147578830975968402876047881469365582462855828993391905415783801204320905808733621943554475194089038822835841223213977458260592345268246679306658487916424023491226447392411670081772829251431721412511111159767035095499492440404810141454306898835446433675431792135032003443472786429390796683045511041996336145827657218302577984318486940181452138657426273651445321443181048716392636546401134452623526642551993819684070133225495020134929449278728482145589606309092369534999798868923433608407554774304895122807462107566028745449541384138855030701013357459298592524341468275258867261037810213333524785232537046234729806867910405714980937161655316917224140703811829120085390697142392754701785011719854667527128704313378966904156688583628501189845007684095768442429628001336891409419363650583251090529290536039493618257891910959469957417533288323280664206443082140467731499542348679272161272284134373113879224822505181239179846736624485210952356103199915052000605607141796366115334023245147003353829624257213497742000502567051807117635046404392906837002126286807750253708184628482706082293290490893902436935004688409556819927235159127954215456842096287172223935442843129479283688282899768686795190649656104977568320448297598400370788848977273388091539768866684396214876636443286645837249217147184617473219741849807796326376455635309124916330386509879998825053711224842033149874956024081748471219581947792789686235724168276725864979619229129225674402781889290123202677196753543993288518271366129666822103103066274322008950281004047719145268046955265479987665223286208613159784664134933700451975557098166264824756078979616537849363760704870905632485865401406657716931456738882146732281067789410428690459291157755110709616743645042055485653912767836089911064078943394055809088572495703286603341856421608665876645290768816099607386973045645625014926454329228832578408437694957628077804929894660829218530636903996955423767141768620858728749165308000611956938907429929250985991532046497653682342360591685098171642825540016011292540752628169522644611444730429323517670381088620195749512190837362718738833572841059000289282612474629427539292225620442855505623559998648550204377075448398260858160123399169116071477481611369924384342774789395844399971333985079903026314708901633049184723768453560431593823397707417419147913216981914397938685310977596538053552865699667376091050018180360114288411029626130117510116814169739493202340029903435495098945082928717914019082388804133177535701501185419614548735784739068753176279964320536317116809382137360501412966229314275362609870609366206334764914568022906373315166808958302123040108661488903970875367281699065078943696383891869023916021957420374219195200316132530684754839790965292949657588152075639158924973978724364258296716971740107377982197176434048559083546631300295580751401637211706245492275252834043483697636826339087593442164559160876453989526845738812549033800323772272830562663443925564918315806721179217407402627129170882143542542322861490738471004868430686342736002434378806666262497401602768421407318750135178844349954958648986217951680577947125871146350461188157441120329976545924259843761376435564087072473711120774116146898381140916621780233799433727231335067521213973370425614965846571986720425760459298372414421587403136685722015000768211149456502861047160443218699998526093910515235015666959134295582922921697366212171329152808503704956369017421011983207786117085951096020035741283811196207990400053554334306946588253377168376901443434190443496842620150423125815005301994945206261938414676228354002627415970852744035921494810094933039689267880142395083838671657888230483470084553488200527203276239316963289183859332092104039608760600787456712652543532487613265334747189511794759967553967076441035456930619745605462100483533967589034332806552050973657329544805646581001388470161086683648981485908338062617020770839045785913187471557710984907728317784631395248278463121320368994995063944541750473899579142663957552220961568137450591256283931249125420952747420592705726752370979014288327858245709012170855720189651201782655502946431062270878760310305983106210795288562937509341843080930863646517871173924685364670471568551116555428585096146904053958662872328053638939049515189570738682040635439838964983101496101825033632653993431928725274243321336378002825379351044676124932639583261521221484941658814260884118657168658415582009014752831567705864392333877852953592440276994050396417925062378469043026706660938550294197119307207090583147700094128614675750491952122497934832676158305752517518872347092067597515221682255419885498642126154766720648632909068755630153902896436252326620635481590166279840683999648555260724538796175094058199672869396881268290112400236764517064388444073872768008727329029947506637240745219207330873978275923208850879652772940709017114937499759779170668078284721918231315467567636836986748010648180941863696811542023651511481938185916692176668224444593727184529591862582374387254777680315191342747368003794285797978368566253995344026323800631892687949268795127224998069952199716084314447718342511820023169525524823395453105611781988036805994620878797812171537539022727997462503098067176847575703238913936981740123861094510149783231185022817888414060820920946938588184428614095269552200107777501186701534577095565971669454769647630347290579989102571503000437430466843566881697369009741708441049372273843279079311793621637547554653761187474619334110673976088956845985344892516077190820905253628597482208316273374826284090645290658190128785613922292277884538631747045898233677423349750403686413164021726539809166702643274134121899379755219237515135253605299676429872403142259137432103346539438212858548636535559930463409563216287218068256045199263137662454096518120338613121407414538974526050425571383381961291402275332838682492799661753660715833230935004063676159324196256347817886207499088089179487099153588717849160761002096554436452627288424223963115207978658732478118791386420675261958171562716285295376792361305504753794522569624140334851887577676875733692802703332748056504972586324314087904694551819733153029229178261051459280435625586955546579072415434169706976545050867860486307596206842939846721858350931765283942929110917433186141362467207872996830617016313824211251492010374484418185834268901927817422315406939832796960066475197217505093200289571389427244464883804681857945033054927758820424415563526759153781016430925167244171830548164607746659593056783476469607689561763736063073121384222663632139585758084412858242812129693788804119630664533374047919880063321815512104798261945353672376262966151995676005635580448519900358754166447243774020181901560779927857748434085394864374841873962036843483720990884516862390115462410322245413097209807733322039394642568329938463888784197868013309754974627736431583488735041179731206431002039649412802353020002879313638400618423868742512711560042423143352974123891854463032987370772875851405976969141223417823805898703702034337961058467071922364453270000074503377108091888967041459903050590436232316846455834919185291842523019426334644048071259991347472006827651834263580928896146051954456404733842036075505191929438183331522343516722005045184940817575869128331421590724815303806716707366240783454703418675419511718763018106776219255686730248058934538300303913615248371157750292945162824333178596704301739599713589057831348631078438420510151761091631718912358531371218112724801937474205801141944252370079238526161808178954522629259959007833616362901840523252239648920427462741579728104438581792104194207674292781278188938015552315166341082427181395977049009553967519994752268791783063697529444418516243468145260903042548546755689285979508241461124725102021079755581326911378613221004092461171500427544275641710592862523876786095966733144878568488681428143381985932235015092540916724194349532113580136975321782302768575002643213452258392565849628762768909867740169053386077776795194903779626744574958729239028314213956137976639258050581310615934273079108189095446023491784359015236062789045916611102132387578755568788734022984282067341352294512016232818329295524416919336190966189241150051339900932237929944019470424981405127847296199889995655566961732249043394398998263046001263919956576157939749940719161420281844646243732176549982326103091575214264918158529630995242854011315082730044614602536356611842516509684580662199675627536773786868797967228753704154594472275463037948152327020282363045708749061330226408136254366152306668954310922166326852294264553032919610066263967324405084450269983878754628370735492710427239493473370898115978264050676887568546872754538376196567949654677064656973087122380723617096811945091283208809766789027810367349509905114662353216290370059607473707085095201833039371353716749073159237434063069160776750221253831910575983878509374247006423784681078123115580489347267867038267894100973497365252176569218522487260656516079768490662061990205344833566848751642991945973556429432722616209304703656257374149859971214559635790067727850811415427298082622695932690305781821612505036659337467922178004102923054170581704630439146774376742501001525589235714406286311089449545576928789532050989578394518992975856157400850844332375396294549936683369432535307344501585691687113090953019022177265573473280246286441504939612675624882244093820450012339368488109705961242830517832402265549062146349921660065823060275751345351486148218305927753527085805035039023869928650596570290288268824071939098531627506507744650277665028561918138100891404024325403043369644539864512838361249279905577623810631359511492044773348675107732816200150997132102008778217372731939255398346143587332018677856733158570783433890614439661147782081228763195652406589139013388905205276934600730686746057370986342588862085406211022914797697213411420883806201289717354660482878973909353464982339782990663754719763646264707970944285159333032477397891001013856628113695664719290871728389205045245354258424996067976218785103268623594053296143825345935356595094279181454636598059010502522806345306426740059949488585606445470340052956365074211680633365022898643397069374673908628715901511576387506687284680812273775871629404518100115863055270283757298524823399236991489686727822229893379797563067962687522297382956916217167685464215798687296028789663799653662756933596807192979265285049775760536184159736524774338395490503457494097931869152867031768607496378429548396200944511336648787836141789303571860723060846999913286576260910331812523243484999966674081485102506039255611017739695793120268891477196396621781217805819117946731224869293742016094556794508340489149412205209271214080110999270167120307562561361174119608724186747040980830871273999073943619826822915020116280261260823482574709734554738933068073189826772289590983950715413146549656562066526153912010647017553804339957390209582095102405812182992271799011465156101480058743036705315864491460214004822276538380740554282925616848892944057041861245913299647533403608645903641385211681295644893562091658588996593818096201016925627215582110284537780584645893741316275106178048428878514402886552914375654574168140902635229851580670540715623352314354356697075819142879103144327021769942810777329109673214428447131961551401414414308019644517370870887304253918495485115202915642522119681968834650941427013234904828644550267297606226906031914345191886232357473846960749356016055043966049028704232495781975773409965160855380825122352282311995945785270651102365654537972211666343052344877545223163317756220325439378281657022928077492631732041912919093048585350389149976286580759229353548389947123773418403709949560583630414647748835564028273195672223187788032873648955543192800824969282631090071871103198454260961540525571130030166476975275484538195629443645224406534614144442840025781195004376705635570358427200880599886003164048933617515229614014142245516853279305316454365829418199202394394281151461474445733184964877658696515670203783751494529563884315061234099076525496526225833171676957475850440752909827706634150077903609379597942489892553016909043079724855862929179699944138482558351510681531450081496591911175545819542131123686660960086544807802714969321813021542011867663161992054910255115199984074642962830604784317600245937231293370587127925236589049678394316045117803617547167016162500212570278468179870120940739679345166761081719415246362200422321479470654670191789445101747151614522235035052254386386139122641853018361401399097631962771824031242822664857561936977545195665471199619124668641212093491499997606264250977498268270926642287575235228947445094151303099034623096453760397710995603159687178283983118828527920466303781874897883277225796702783418308682585788548797271031739553738265435258089714368916847960099518083807450719278809191333091769395005777922181115420029934126259876963850300163012363186411040811354853505599584480113132511148682830720779179461562089319527658446103697455683686161369789856900729009211667649257984365653238267475406932830545268144761041624189714165830286282545619224459210590385692921932175427625785570180187445511600543923064712812812807880080549444643534028465774907692313545454305977715018697085268891956299580763843144863364822929298137201535848295680411569814994071168750997378597716877488499613449176273511064514078867273739539413909814924424733175806495197592266088872211393981951135371002537502886563500113982350258462990556750822529447848649738562327007161781261954265660648315151477857262919164498897166674616750624944322941978762515580152829322340793418689158494501252892442031268873117135916415444257900434254709251585421230963042050498547985287609074219243025708230586567210748661538114917472340171807872764724120298830159961787146107681215938044232423494618809403387475199728013461261385615488167011638768317751020686735232334183213208314959663842808286190890674768778662180146490811229698298427159614366176483056412085122630336893854409237166348225901419299184939185092123974238332699280990840721789185949153066005140744169012484308830344236293194076286444240061940629924098895250739526920611861719676701469239572783999250015794498408482911006659094430067676905095371149905522218006962802992951769725627555274300395986517924240300902921624463902773642193198310006257863797254634961481315793618152768376948104467141914836989963453780469277275284173181409934014096815541121466131155238583406856122051578015819137269527853986780195562125072991666321418151255690353663327268209582636488380269954162726587436766746394553191206154365337374548140480020442256505106555370655997719986236516173810401721655543501115380387145714924234556691746557944943627106942290210557346707324250292573973085833786760135684961453460660225138395000972476714669682289321550036553872436656231883367562249853944860867375262729439954041506506042859266069259168874770648593124844295713978333650119852674115358017586578801567741110963349904069968941780616665964009802042607137565608114484470069421363973947199681655920320811025373304938348955580118370397314537729551371226497941525781087321853258172083382691349754366097749649340790937304987024639759101162992185836548375928765433635301783925076308434338596112838661608010874072264971653517131185388999007370753191207445101961257311052885577670483325723361067744614681154412676743786460553399439728842974015715280123992404582928052519915271166278352053837233983785885029315769959515837536922964144257535877070551389279940915201779996226712209394128027835187390826749424285249789291320029995119855872835298672291228860899674337691478230428738223397043824423342388600607228313436378037086999994631981230013358959681386418096505376669768994683779576401984293808600217166745485202578255495901077250424867644927893214313201626766999654160537877215155137368664307443212862964110379842160169219265181827920263527195394048928410697307995114872926906533138472775681662074419546557141530542345290599653680338476386035212101228299688668713943861807884823140949737623009845230076645324383886994372922842726090159802669651467282751088533888017313045628667976062382695075847419582677438128031681916714284342847855914504304143885408192590613204435395011177401657146913133261925193725468158678159407663635121484142266147367455378434720989845447063991641058919406545164493535790840975332080331194350401022622412897283091243041262020863438768507019069095726791494773147585171598983335697522896586402924882947812895938771074235506010115157182872252179171817177613444870111865095704367620571228256563499384856274258966536518237611436674208726616694137433187423362816572705516892281681511035744068457427291229107106640374478234854922301366581000558042838404480209806080866552231187852892190698098984759026804167810366707373998240165364075733922598616012636280634656271392732439703480661483683661420242575402244390098380267110725186267174039580705032038031282471559949582111130630502521320798214491390346327472241686151977474572472578136312966856846023392171064628630681662645496528296770972860599670799994059755587844023231516754221416397810855249722953006667491682650625763987069197354205807807579216713624420781133694791496922608549305443840889606019823033657775890638246527986065878502342375749416496661687926996263262440162517603200900674297336595444541434257526922425008074274909591704873616586500436508561959034702324760759433840425495035969585703254604102468501765822909629409744883715299004023569761158276988316142730031483536071938840031239697969975962254886547864223646377504542596897933271582923887959913502914107143602835497192367013148052851312861083183759367705738141851904105578756739071636131495976583952387557242346222913375174367007819810716026392202069629513843324301901867346471756680960328518943226035264111309361447482092045062012164972240416923233107977911299264445199154462682848205802058776681097745120283000839333405421559318599808243819965076551419314435497894444487950915904314264057411843529710105598786361019098943068724443358099596154751617053191633192681578136811376758234721516397276946603275776348285178308432713232583813565463418243907937735974649074794690960541663046612302391878919864450802602921099670371946468389937976840729510001739449421094864145318654645099866480099837019227010337213301331918758772857012657606440431543244467971181438118157602517984704248233028374681504010607530919530125668376333607348701999903077654994343247761359180532907231809361934463122248822869402708162536994517463752630070775012397818489830612762157698096654078920119320462404640784483914109400732959447124550825210084328804500465167370797272162524961375890814196993081578786583798719371605614017178647073231228370226368840174639071756577833262925505207320208664738571805465978779255661363152946013845516328731693583309766055972314434520213875816715100237525865170425950608438523687836044677726754234655602706489690841455997188224581380459252241848763453484150942593769320181364079242328572672856918957336148567291627867363259706146928070129080753679962028431947290225628814672307009267735524433969926946433627135640187123795346677510951526194807815285669586703989090335822263099687923541780346356416361416910949070366271231496217333042273979230086838636194306161800507949466288046021314000500628558534281829675405372574576190606375157957239184782000700936125044939788698738052994471890867069945518990619511281979008954033332929384283810355209303944770319157541812420325390727519159141207772990918051801681363530080964746469166774499057655068321966399383831980616324320176723666132789793240845222450411372201369839629296633562862673196209477606737387511309475133545455415758158485787415161632242810578397163792011003984111442549160960767857997738028747257136897015387022715599777472683677444727036793145749425194506870832841483622872429228380050309990895868744607957252341913225251067952141482875294893585167222716147415789463049989702425119547223355137672680375664729572201116911194846460031599228629542263964934908783322463222687808428624086563477896521593229985279373305490999962100686468742699077841069120987271902605960379915952354208738446357382951440052990209113827658345000618056317573501570040529733727378889097101306850603452560231882891449701220780850688460430289087118664398274641590972830831410573990128596583898622379981822039434012390727264568238257483668160925637172456189815491348559112119939616500585170902923760362817984048697164995552751141395242990088471363479465418187810723531410877314466830281674168465561170285355325923515963101751229898819841463776868767316322491485698909707089256607511706841048403088200364875175384097594666116417935840398914513900732701845578559408693607731627614317468523376560134008904378267841800771015726376131939573431772934847980485456764934441426975027922668909457760472662918108360921303307359435353115337703671252355652541294982687248152007896970536594805221294353909580246564471961824823402812619981112986246535523650729560074797704022525909613287862887321800651996137131093099420923022189021988503814360813928248790201923040076630651340777390507349523531883570739285404465551849876438111007169494732478318115789618173745145427901494137170860702647092923135084062500914845650378113447146796379853349613494188207561118237974097435502034137513763923632605211290040479467513822137720134645321013157308235910131446470042762835029423042959992764974615713671755178582493649104391604716914320419180386648218450492688972796619214519781035871228315118223122511929260582061930542034815568693725274453398489011594718378925446175184389632169530976594214527843401195961454161990096012011433469341734869682474335892578123943602901297253736652343781080367551819279813799803823047552797808081649555629353284912051277642183600950959223249378042491714319752405857343471517065580752928677000825438041287417457130766706035173013646024679046527351732177188323415521841592681926555567323704025373272653558134932916324137219459918527970350188993182000401287834928374451192486887538914152567313922751510279580074776487497358400848032913681141016893208583921666589231499580550674686299274396992799262994051506398251668615486366988657587541293903282155783388054797293441324298086760364633989717660947924804825380505179075378772387286566132970828380630051231400091334198543645653209556436482719131268666905327819059515971355140360903088384275745759201084484731112145709038588985129299888943960210432818671489648101134618405913973078531338713759383127810841999241913282514843438524618470002183826468200142409727526878397983502841354367201181968720931956637220112662361717886883765979425969251674564529953980757107160254935659258417953774434191596675045426285514017901262574397919782969554219729725574467659701797603084942015953254041001774100990813271032942879217570251690686420017256974315755086850042793778727000333071488365201663135277686558657137333355569669393214353078190192505408718536945859861672505637999473602893650259972902970969211443673180252749920616051118997975027798633524257818719649523035697464544129381389977923581570724994124643437526408224639953935878268370647303108711255110715679222192205301748483564493225009471166289846070678566697737207329253288215589998821234862414932839887145793497336681382509223468897383776988787228087793926227646328668372668179299970711649431897348040253146478148290899671585010592111652466285785741262662141208784241629913182200569357335424088563141471756535371356147643982185407881754494971108276140425014360811051730980116666686251810763930466027326307604414864113162053187273869382712700455404367518033751097680013132304151398702502204747299486662346521046173055593276987055777794324437595724993957291387407420146220481619260541808048156417951595487907489927086738251324455671033243899593231630958146670888912835793919443778378954339410560605566417732012599363570808596547989098818780725707681842697665648290950289058241526357514435988581663849909301057713020701835217029187762434313900579603050999275799112254907257820998679574676245579788739175953315407290508904326946274353194879703894352976233469434075633036853764057332226164925744208701023172384499713134226319367685545596852135278592555598736377893596327917236408707682153496510737219624823442839202729081126685196883605037277433163872042103181790095040637089667078221883460070546853004404007817232826923491515204058015172258002779685940170960798822953848127463694208333972647961573218471575403276004039069341658299302401719188909705125466536835533631073811227623912278544495631583908960361099719216652241162503009993113804799608804371915329543752486021677044175324288736433991410257472815990922387557254615183726436573871739877181085587006623342201719408580074914691701271101549882191605327534083936649817679326181241667887890506311940423980372169914015348476904494145931441204581358979099375228182145802556362337639441672514882515570883993998782292278983050300383818844269510150459351924168922116014292555479749905944159058507274104366948290604789015861181216913856249519391495648137522280785781738769887004169085240379231520012451601417266783427418107023823650467538375268299449253974039741308830238473036469253582158393316287268031758961062959580502201402737318443448274426485025560449424965770515821101192056443062250732299103801474115087635678855365173485564539259909665115703162630511783460986990961383624878158343266216840229862438892143523381366571236629845010579076556976382740966242538752847562959131164015550902411103961307916111548951563928979411776927307929272632556538149027745362933274263558663556308813559334570346628300111858002795652956086065570121899447464712195080008165112682336374337464234430073415279314540306186005248174953991168427758837905624692871657476505409631763829415140125494396860092087474240127968156598622795218786336030960181819140810019287704037865108863700066001222176161010477475377161627706952694040809037373687506151095859851082673963695848867336736185786105950274072420561884599769968729262682063979232381839280320365499153903039867757917055648568139258621139869687836460263372264325399695593786630426032675334241017820022348191037376469030809584516351564160908049200957868949463120848247044994905798570872751184522479610757630951259871509741710887436158274606002175590567269994648364263032850335800180373558883996590876747956337523204341683721341165178393976777072289127459870193968572148011031033628480519462227132649688574053233449469325356610725652238235967637126448233591621735695425279377185776382036083713191120309024864154686047663314043131058374284668217277682773486831964267983947029690923455260498483567221833824888371865905082764410729416297338371597860357572289020954336580765535288081615934749706125513268095338678309459008095199906841372464973570582865939864392006806002027580133223544080886853899672843204694444756054785400625417052452207698939293712390807017340933833931283438289283510551080244291433743761199211559609565023557499465980344746508695974925396910800242178435239313685128730767343103739810931955212929789282835134553679217100425944914626668901733636906310946791293140650116857662942221637960740790255058110312417321169394462656670031120276332752569254205025020549283528655603390941385301959456182640455416932460082445878958872094730584787762481022539381806107791006121209753350952070555279436083460342558993313028290316479527326013875969750954143388115236615014983485323570879119344352300612355630329866342273475782117522425286358069309106542153536684939249911826278135397502055019023731794295231247840130292648002363294905704489790731688650642578902758575509146955131407939231047419886499173891246295652367463841077814395197603634321334574889534484108497072317754332641518300663861521233385511096660750993384039487563577697115809610501242933863087454144424372537140907957678609907543573633792266866525679336259438559345872755379309560117624041979371353821349068255865267964085057507596817842416114508701064273615881292998381432045672213853498547478045755122581850220962225117457358886500311646436615583745210625048773498877820876494443629749358100328540965667000008889362144397630940502992065878823252923249630676190978249438210607186753890688857997344724767029035151428569384030177532817477708327532943128473978121997355043108956238320074954619395533876923654426221890961669478815430763155216502519827498798028847791991062911276177568311603199887922434402283610614092414714556121323828301232057114569837121268105322677129857971663976402495796597465461593691099669397075015549514064959469825817238623954358751191998128100196922375349972035235782367362181218174199867591721856478749930611065824591166137538010416950089787398560492181021029454057804349198250955316708666836856671138453603155901199616418824474632239115252116874068755318211631246561771525451974591392977368878398839144677741751491525823602480458058698061563259942461970479738895098690104017560041773602836360397800488161224727805762045704239807444618525226220551900089929096120144141333462506766896426890074876133711495652118445327529357995018297831379468483775387803022965357790901322732029092149718157778019315041410632289118645406027838557075917444895952929495889001398280366399790249814740754615648857079499890024314406511333218240922057330205517949648744152627255623712417467706893739275895580517819106821929489204890179741137185192308196491505814216838918882909853062009085383013639540993670042628821670720102466136765503615070885677918124229775909858345228483783740471402934103957108175734175914045563373663396200190482844844806510303138155339048412154517200902471014811740918840854664074804064111292689615939039233394394608150579198990571303270171838271237666026022689035908532289103725940284503613536667646453389129907282500266136259405953655175594851600542182757035382992033344418493820417569092821463951657035205794924687024791491119140044105952856378608404872879835888442027489675332680324164207616390987376549285357453725043398731365319302196137893559117200958567388907421649828169885211830245129424812769068989611147575205455661506913860203071372746229177026316836393597114908897175224109052017307047554541683011508007886211400569212975054940543711305677797759024338735829732133950430168091536697753662237431902124392530357720799808001919042961192297573999160219776155263288885330864404028290601521902633736680486336822450295918427251765500471924399468445512451016002609474805021817020779892537421858105970970440893811697950320003048269168207146561620562816438339296109781578692079701799675240069208352075955157367825713995310312122010670865277872572304527904972390092608807076188972828719643297445188723175384251548421483011360801398166817133490151190182147195586311129660307927947271648557278789648293750182453009125857305817941151809896816005823369063388402757110116840057702510386057514617321805229329390114926361931836564431193598416365417504578286308551980658482662314280104907205718922017422623985940275718912361190960973532626347781422761148105843888923306901994365438028292798153560115775179925228848914950791080308583438713875769732272304966253062955589980614293573199185063303646526705717884851080414124614255912325607985953607605504520641199341594831319211204976285763183468067373324027969831828734340008957870274676508597081846090196622182423059443995267572024092113499381980327129420981024803104117269826722801579856805367048958412339725467525136439178146950629377059203872739451391322072660678646737276558878868906849361952787790209110513300860234427750210579322993356961132113091498088415974156855661395933992116062915318275588708539204666282558858205332334459634933856426706487864560987802931341439480501539517522488605765046355153247379688159692122461612181370712614728490039455905885522305150374183216641359862269050973469886714602157523898649032970272373440108223932835080006327378933706957749430846380707813013513939715542435887698105164670245961166484998963678716384978129405660350568138631136213796992438128839975861981811998832848006587951596926944739453038606249623188254696543716340956806904198957445475817650414994461668770321673681267179335319290851581074549384384698551730522263905199211276639640040146394409991524854577143889394112122125942750077045653125965412733825784894645988932169225196102087362833344664448604344729106131595531989045850183540274792142186654337871314375771057548738143754894176124234395948736686618059888138166879545865396463807676293760422460636248268169448580745045678403237115774213740387923109304090100080970732645033742617973973707218682745430142325447238877779913486026084363541370968044295443277178132491002802876584531366227186482396783467192555483144928449991096785343591827258222311200585286917563323585799286582458167850577930817683102775285040197552499584526588210287717620728432006685375075020141588249204095089005922505648612320162689783872672782527599445477349869267939101532776849077908245454169119230169268272040635130720080991883391744394452607421765852346609159601480798971856594311048491932120937960488372588956412868024450222583826678746670034828883865240129213382208780920362490576394687839731102231951826355440379288258122958706416404680508350081969378055450426852265856377683914647843433860121103976502000745961835931660590389926701116316269063254294934998825023015963477995099809644182707499014941751935012145760516598292702619937632659540542372489732476432026547974825409159763047627488850093344788767158512609094734232222457388587007549827890835256098017836224182724442825576491666054963140897627593488088127600225211047043958430248707679643728279366330178110167096346438296049404850280821419737116673884082090560852759455815058206686093711837976926759576398021340592497521591270624030320029680029627143847420315516006155340595098053627933798604679668020046568080513049055734781566714023936242582357439851566450738946258477898092646204712161239941033067687315314675137799020466568634982348682694653104086339381455413770486668993843055401553037263253246286863596255390197326405435790762678223859480219360483905191245198593918851776789026248633583307343526701050218934298322337830174626046497650108016208901913976846044261797545179161460654983426178260830786170587037751145731786031064419602618515051821936563262957793414322188111866503887951604209062269741407771951225369546871477735945510278681116987803733382149021516166396864392588404466910690538741501379002080748681634864784141810385264769322172917945605818129803291634430130017696153013334144519821973172708614734503914122425377910600614994572767799643528364730327531889623673733988963036786437859906221320494877138929490398621533483966657198173602882144553344497461202962843223127861039183488394904501873188903182218744331044681745506992793348734037372881156471879885505529613256395687482180165224925583061708936999525967457741465760120653288890420399867083277274968079419876467202374814276249844538509348037058033629510853704771315573092078512596624301039731309229516290024646691717650501488698945626234555764667993795541054702015804433992109339031423778657520541534729047188866631047126851022435728238687088574070268291519918504632145524162655492450819115177293372911547625639456776738363241958015342731296668606417779883380682109949117418039228989994670863774200265213231270392707701927178565683448411912973380749964734252373487323162887847956173028400530936700058293277991644898008741177983691157305311776647609965754973573479587928552652452594628469167976752783138969626185727245879836350219758995584846237332920453909578919674712816613271312818065045635117260193931547304812791575422282395028402322447120906786151907928483986595815435681119594038567319383045707138881823436172200591087858961241986820437236595733111864038056275860254964669727285904707066506689833432156140625487539381330974695428901241476529833735566773200653900637598927070278586478409300269380811136237221344957266227564317378644582475052028300889661935823103993088990642892042269743602619994998448958759467250584499653481265181526476469399794074302448084748344959252095575054791335840630353709820741031190293434994524250155562558157877786744861851833303532649950461386068691583247090271643224204042090602413568040590798808055339225811217257615109392276724284943820794860140822994392258001783801012058297879228603072463860491588778478170263519050134747713448332798203997963482966331871337697470817177170194989270132946214461623391622971568515997827442016711886333703906480448628010485721494189921724795172228550392047802799022798322071143283906075341549561302141184797653610047056921386192852225361551311768644100693589166187086985286493453934943419368824275966079530440113363973844599104296962288476984278618785060268693984968388500144552658932641882191250677509979865635639512402702240899220567939025935328695659056566657978077545777805293881567297011814741398944615080514378705001824060677721013040678276707175101186473091719628614670052502013380463911556311827475059324619039354832801966392628881200640522848249827466575580472902873768328686806640665077826004506249886451632736718520330382758266608083092747631069044171376031940568235492903292479523730739483140111501140382200592899872514386196547255030742401530301895654210823919132595412676433573073203272635380464648840974847641816702448767502057107403066652265485946072325454510686819004613667500718553817371204980340689748405624970276943267043089364242386748632833190879209542940949043312895124520479189301515732748478408405838324528503105663287030134246919840387910058801628680185863909156046713431211509616069372286545592550911623198954575411193810681008405207269013088340186406985408755877291700065673999024501659987524174014380716569251026670502213060002373988535729910248215322867723624376197122096834147904085791240256289277709400407952924153190736582516146217784471995380567675413317909035049569936684618731343830524248454421473286718997441832984839271970460934366290256684358998177347867044961438359765049379824751231184897109056400653313430920331450532884298935642639737211657045680059172960315510635678444469712831416067164137021188079802866700193892054152132777455259172465268636451719594372244645573525665509055875287477150409578855084504103581307234380814629721659488419184128830382091216511563012159508283727686759135937301372897845985399222799795979382369059919819829811638391171210125338124854519360797914738219518630389742099327730047512454477698961447245057367258739654099986535323927471087701532058573027761751522313906123848521041244029876374902093877522624873339742440062448031024396132591619904643218710351103782982738447910345161987638992712739102086094589685411693673222804209994298466971159378969610538284727243403455167512586414317215476810671639456371703268632233448718476616404340924269895316711760371801625419896906771266274096268616144947308834429819253823986944732853769119824761756619424156892270262159225955781043000848670194607573536474170545233286535646124396608531373717817988302295194395451411805683731591451579902356047867909838794844319313197579695521224901475187832555813523276748759276703697231437269154583784395658406864920074936508265281430941994405461099947452284105032948376748393287680814308559880451970854277599133809102427311537935969341004207169217526797712662268932141344237344804862755249009559089539638036012790624518756353313493994627637186496262937138068264347580217739779826591059216502771297802340277058128136524700157272748598652216169200345921945760365120571773328403809156046182734209066290015020609957247702709639588518724924941054461528872047738069654824591372717917263199687614083770116592344052386123811527159839820290201892206676518830840910715049022242671587096359334694733785557530826043651713948488334986169057450777109701906751190746920709303991269950526042023031021227737157913928227637345674222128542073542082106089343360353265613338429375290689902820682632526672271820090403701185757254984580106591155077296004868227617907130014238900771460484337536442951695731809307013259373017264541262549588867248441765775319435328669638066388295549594669527849964037497250939156824956421993242976642558419177177862961115136329128386546947633112325045507692166056127781035298455171988049205080423564959923077612264044962610637619654031596665716719634672468514239099939832000742122357188364737803864091984174938458263998030380665518931988033131108864084446509668966506878466015272664868724890989359292659417514581711696115816750653961729072349743864840686808275375146343267562335856465484523019315704886625948142529845501614675025289188836871923034737837940274744659963281478823401145164313327862167738973256733448192982479294807000064303948701573258087540847100074180619884881351719608062747839506667372316265641016153498868479563324585943825160773943033678956750233568494763938441537027507561326726786455903791731261443079419126017204420244142232390838853160150122736872909591260682546144441491078342537968775575844724858818022260726367761527371575554721921492952313796769703227106767136790690813961844829577356068561980676771639451419524590657023702143279723291178220839474087862923208247734796009416244502048825072199723675678073907270108109440036700428860259341865439333657050686699736265486053488273386865311166836346143409647070528576153146949987735479214066307180950979615799108091721286953814805199518681037259460181459547258425284158280875760476911349782477793768935892196945129205728620127520078540422699968061968015588736189259205066619742676359848151404601455727345292860571425703502718456446711499947226241125775327355707087671981387855944502657139243886121959746654713917897157537221903116831875814564926598873060803818740825018599772251003788118532427152317281826059359465641247928945105297270608953868635953154910429640273143370531029024932791064353619098624814972911687446556692447260879099897468466210764160132205044081488306592712942573937508102803991990415675577339185963067057803601657558637030278098892839518427205179754522679937636167409505944162402225761377270609098902611334604779025288887202798441646570260854743875998217836417831228362117680527942958701217479481992499193590946526973044270896529780093629372220848218485307365165618274145987524688749430199668601813443855237161717287102507450447879914553269832416711249695297791054263263615405721308948385099863510266053300627259303002751254036776656496310835265816561140795197467365889362645327297277699359108753876107792151515495171422700326191064915681768867607392825689286785863538130981196979874709055648747795019624921618584413674188187837742170746346220996697718247761953062000654068724354628588035570168566158648337913651001304792220918420923806631950703016699373309588610391687121833101115208441247592670379326792767466239287464583669518683308471506258594476082477051661157154549728451489935649471835783358144871581911248357685424381154787119943536763336075936856209042278272442984518631154577735698657133630062031850861253081015696790368201215141076528972118217099616078910829078898892534170487790735691731252534313925665205817294159278692046658898271155706618327381165643623704173957301901924085216954750371313519457902820219656065362267299857721346533387264517879485691483055515867671962898422668881322170020548058426207950399458801920253719737785707870043772736523677046060227300326550411762596582173345319840874484910110389128266714831366741513796588608288661447635199513791735533038834901349320166944401925201984791900582036043293429895032119162069144118238906839479258523315748110811591820453625968312343521715053587644348783755845218157333333984720790503376373004226713552947842940035870404151458415936854107244021301078994043789908772274964985659153642307663767221439125550486545411953145557335039970606098615592437349611729788260303445079757166516905216243943214214261301107748732172552881379318220516255643972927263655851650867555079261866501934492923562156699306559011931016210256657361813896276586962093317133203227425406757905759005604789803045004227679635934866793214300443801022934152389404331933934088274128198559267859709895443726542292541527802955596200165193733937719277215317094827325515238196680390226033261668756111701451357414368774454377194040400863148659164945915620813359949416074318685461603501832145640359934902244158137069087752161926791043895923383562353231106944359056027548646788961998509352896632994748503957977976493510438198789084046539378986411876090727225208145630030820174370844017206924202892914000203441640970802214435375714511135688275169038010698892482710084411243555140264965720288764930494233277939204325083302024844616835391412295925078021500995496627500537938713620591352206685432718491855506392916817220069105803021481535363776105338947715352582434699778465131401786150185706130696205760304714696526426985639131285011737244867335215734639606575117380253977868347445538183163616494675970281040803391705054423083980404162439632209025075267330150921710394620345608172335141541693651410513895016410712121256518274674470117059224249335515085369290992349746387471384480653943533118146687148004969146512093923558881931220253646805648486851674437523328475822751848074196715326298323706303529890089726286590340948117076905935438116923310532746895767381104648645820312913808137726490411743004435931881227317347987915405083879393931047676971299426341722659512625582645815124553166737696908468604071570569412417266191909622882830509709229669452811033206170076487176472823208684724747335121405922547679475110127294285701588236889998572627947150273524456964676733137565251081666837825563273345205082009139030154630105917446742196806029146043479720428943134644595003829971776959677765345303228544753660889320450306941725637462432759707679853434978017744715860483446065543545622677884930177433453488744821043041446745288910666945482652077102849603482206289387746898476868602575739786318338871415959895751941462622724043845592497149779508025825990250769050866136979039915433792166522994578762747736273914798182815842694243195180381144455619270128677106772265316239409157542357473152252427001780376991338557031980405911771340836699595613461913135474430943478951466325785098147183478150432555015911416219343208464264268658084553529104339661579595272902994006890858328563840643609051144491095448377628957478743525555301459198784323661029497170606151524223673697460077927818522985302071813996694196535388919648925037270895235678048060949277063775677313421107851464576070025315606341788538577544780720439734695242773212078670166849846251828926279148718006849622324097066870296376818036308236354704741030975498170766026902502661177369198172296343765716412913030875420495668065569668840912850131331044697868346033055333161129598030413008936993018944935453824713047072921067066842100585497469062513654384041387431834035317017890635568230035349467417604128758796613047880263958825893150051167116139290332911613481640010057583994540906864694002624060887292663361169646549574624252046119583872717712611144610021175867816917921566810071739541742129218824249264920123687696026793423325025828923656586485979954676493281757467061929397267840410708399073463185934435714905495386933527639037405761269102167712221745703188076178768276687791245312746021615076721072046816209205878664762829626657524261156465498944064340431381133048238995377925976674898109984362448922767057482190802914523539505376672462548679537149022363065567243972161840953059433718363474454496515495015787817368001925825885219817028274683244669141605718171191870705221563580073272990459245843317769307527561506667319563426899358656237248316827362425246734948264244020582521126859718641464995461693397722654664785862760579248943709672091942851897075763097713274535481260284011621428063158268981212623694626719756352418168011268445100685318394644800597838522627583554758268829089303701917273908376122613824334819982086563296489152839159861576488180091704868353182887928877944949135218320704260753620220474483848402364404021261234455630550848091700560280748919673898595553820031550113809129600133519844693341657303655776831165565907218092658126093091168724140422739795791546827210659180136382736733295100229495629380091409991883641470645218859769328398288105051524392102571605893491360254730796297379724912178969427378906887519448176851100395530926528932096680866053268236060210827754013239499303585683985633823814983716510230639031930201955704897565065741017116026125537657765050815852787376065674214385250682282432194523948366821029452216627988081497099777741402606287987387764812527529821214192187184078376435844386796253636527743633340829541702216846287622602527022889696978454067173435546316624875753615332713085116699632126043601281399409569714601187135870054753380500101950276258863928443428332197829060810178442890203490640332743671878755571299904908651800927460747700551779185127130180667337347205872041615923428120903089368186722932028054231037733969795889862371673169884538843610484716372460453149435193674124502873178193720434862596540801685932738091352733631665677943561543244920816455277442250733652147977696108804920317818498805600611482428816859131703865063416333001509809729098015544484510001990804376213250321207871673776776972027093391196700960284110159106327396117673141911123200215067408212952374787717861219977667579176531522004101155355359956083534818574957054835393784454326914422800702558354175495515866323975064382979807842351817632498631434558406217418347618405680130210008230741406555896643073521988755491151243303842843655248091849902551375787848766093235433426881373269179249947115346033579213076468628290348843038167675969309240569239445015802945104454087800161507684124814381609208418919709162224128365972839401612925255305189470013850098824769187647154975116301650491775289081984844869389574414879189891898439054357455196826258756266911295938981304880840551943564399999347069872991432038788252446604001644699210744264517871477415233186681032180888002500532375947538363168541122339502823470411811329939419671529399475869384756253194498068056661368097438517701967219902858531146270724395884921600100632635086683314608038033438856377614629364791887906243173780453609410711341099016120425480491039893414999963429344203846265968874279377277072223541220786189866949584756228497626472520246461668468795279941296763876951664255382775561709870804387814284552259010302251240350915117873924507004776244829328527780266908920409994580504856086645153790549306608392294080470522379840868660223820340601643257072180247616413647907261046301664054903864865566900493564746388273741488884575875241267661480240403282327995502147658759798307463408310083702505990504717204365415573902997658962631633933162900699406310436731899658672230706752633447984263175959930825269983678229280863810233620496293011376565030390543818057314630265092032016211785453229306079022197376854214878881558742482570502923933663724120011136056000655589272510083953168155024820487505213270594063145063873805718653463344641004279097826042499728213801888072657372341457531646442161210520370490971809715834850706102590110921503155893381995177793319941546288867773521010570227536123230928427391575383595905542695862371315411967106249301669063832836597542880416344687227941493265417600188813591592504048993335720946580358709791573290608505013092539613879058800872148884102131640483796222592503688692610475256349036425447448994640202474344708837688874040411992307025535549005258358663725908700481583506475916985684311927925215692831437924879572196871368230069841395308648819203958527826523796946698388904242592076036035337358145047931325207492121439453672654591601243953153072817995209635572226828078317026789459298670321570434116400827956340076818196740745030450972270775846209377798951094726064839039709416778588904861982046132892233651394751188508128955982474202710725073534972120706801636628806740377861026394002882714981736669286356901519322822165999671523937896049093961558460227762242270611279380060654897251127877377772191913142245383227424816526261438258080635503080929038823331197403122104076470642365775970610905939371526591987968613606217967987984099384516957659565097929330952601148588384859093593843752551238729035136700722557915228754744802666190452188241851620244964156183731377842172779029267497119847487948141089877086943398873573287581455794120580167603958624178075352073468994769481189471499680364809088879845226771569379910694268170960585709920026464470118530173728718503098153865622686960203101216459916473074168079723757127721579229814159241938759554809712424377862983325107549685884002342080721431517882192267244727333574751855297033134511087104621625918943962742636316734390476370323025698765413628362754445423994890032277269565016527237637454912551322043181405645871703340267855918906235630704489064418698993739581856240199402875030487078243985679155698338916818206310891107974754473749425046846295764076213861509120904924478107104250876879721575246858686560547956016123976835085586795442977819441394929097912137051825890781136530037763974805305746410509739564980977868318927108532444772588980364148919146663879591871523539767288728323318836376192593688106905175228259453329205842365579755034087343751382524191795541917852195958457084438107310156928640807178752973306819559165955390581278292352601352911279944980947670729382210922243546969450926633981603963458195417202590375409768085597985262617930750858531837370028926906315292000513943067020417042700219095532066283804542893096981665597849548728164341160140998363271316626538625950406725363067293663904356022394982949211037870940573411479651452617670422403482510742401689817823477609932009309958216432772270062835708905965622871573401975794431519174829117400417930543577313553670740754747513891011458398842923350469792492531729408017116954864836750651597757454059364688774821203983634196056789215484445513427112753658560406375528784688332917352997633943754222993226347434507955481217457094340284057546422407030050042343817869316999600689226171194618375757189338144081249808928463177212256962731372207287691245225467542434876880652803490150946884494239747479564131211031071917213270763853818031403814226608280278307249919762487823369236412579155343159514133676270019598826649679400216673380328773540944161139134225979763838030187187244010101960409987505382579964556823881809820798142181612973894853839119788494579103325724913343234368351149721671913679656185432703628309743823941707890156036371120977887371751912899835276998588672196727795429477739042365215793420698049580443329767411552879814746095931945735762931524026169939182314600215731590825241818854998956263652335689969365985593766502583478365517195505681969292432064925806819958908840760009663269083631115611877758808780309183761934665870284171311239699940096092048916800449916610533591011430262363996816819125123648825969915924524597466673096753644219082664541060159445683343277273723100549830432018387570182810350801790002282815775519015709447931125724114072707443061715125404723290167280782978492681712434033672423839762833865223897976249670647539758480177800799718547997270020727569466649588124526956522526402011138321923163615122746516734003569080322880662261654326548387149042030103415678420623634005944216897285210351774645720342577894419800211186623036263715498619992419577024527388708989665673153012003508595813223090692378147397990136429324343678195182580411217004771911584596121038520796071661332999682488710107586332190001088360749469828524766793928618160311849474890522364319191113042977566898038664720692933794104813291755508251339015541371003688483934254954546213310261185272810638521315528334626971532404060362326585954192495276803016510523984061298387371645651180863565718250825896289320551893498174062478187178212171771135560920377749805807677867500997416651072859051233814625086401836631613938591797004670124123809530715444178070496842213458453499656034354652809360121677422388142908684683806282958683849620058377139130204293164824381814974780474109309534850557352366059551180633064237975670237346632601003125745557305787294481863191590805562857427451550690920764435675913874292519291759949956241712192799301102068730490421843954066634926338812701285246696208994210327293199311823646770827073131027085729946535707589515877456962889653511300870924024292986426620683984633205514857759511101793398947389716331814567983435615093896142645812227073966598779839305817315441368541479611913637814134216974525269440615392545419678540743343784849428212730181298195506339120201396989565009867799555404371045807382204552174290015268605580141526946099157468386706081059929299380419403715829339157722217269063189598414968429245555440460690876598296199910364273181711931846678141387911611064807748974356855274773554672603104250417917572483061794345444676283807111084925864916483509120830186965783053875162985112351630431816224370199199765060412295006416301027284530850255357080383230320546815108335815780077741135736791552520228730650626316279250978575129357792344460308362861931478013603903026757036060643665183987887099599164317575455957728660923602926500910942567931463018350804961175139434145198046583296262405115473706580326510940849123857579719351903016742396451003348369934671757341978324378877983673476091535301489459830452612349851696575081140412475310404063132070957577840543824772557328227971583236883396921513483725872039233655889413379707408728170207266876728828171735587860933475831508294486954344079471996029191942608674150437160619028810438027528342810780494942375930053019471897861852514125110170907888626085201015499897750480307451798692193105574614838925745958997637920027740596025849205118195923970491135961725453046561162890671623499741198876088884563552653469943913894128715563233075005861763294692813701754926887939149583033270397284549110954298482432014299536742237739474810728689360919479496371517062001973237037835255807422766292832749300096117834834650723971590034168839400692176253420500887804618558179294058005331916523407121046840154364361731239907848619855751441303107648817181230621760613120352323292262692382062989614420490328282181984053057727072761391211585850664728829815202447735021370033141404568154262564428034163943139574461740990110003938879715389760431602173624303966831709787263973498823350835160220029577149333034458230206686821128837100044701455535510606334040597752416214660348310853689018217207510290267675168312761428152326522612994567670917972162744000463604593822758977942496174124535156317798058356888338149002495375111513776153696752817370677251866638318558539149898508874690488317447643931437132394368596124615796296718185269369007544536916493974913497141272669773399055870685743635450729577105438378237604601633449430702342842467851084879610695595290483989487623311345588731386709530744196976771997146682222710631597248621896052421286925880301561606786046000854449628102705595952630667979221324456813290630230515186500028714847858337103677163446069308346961981001934479519599502669166913888930017891978169545086463147209253880069312126414149820391281161749519115402443597327705698924283531179965492511006927272328254203448257098641790924183753395125509550099981043455061711150710340584518829994566526585613935597773906984740944049470027532513719593903751191680277722007254640662714266418897234041006090702058164104354125739212586720714382956459239398891271413925289411175266337070029038869949331115617742891846081619362525827573025346562413986956836626025018031629084606047511253691817997797670469996262650981409925270156929942692607476537202491529073273928420892020064463881467059607576396117887935729744389744803661739511648682125438098687654382240369163472152466903966552084317795306193288534756776816298601921649899801161543766083819700332869668413453642678190343481065915757019836319545478596333671015850528467228770736852244981411687236962478360810865489531360200615996557675710883045176678289101175812551706154573392506898393392003142619491506237386992391387890908958365547631663683925157951995157902478186034179635183545288859521729733979671366401722210518566657564258432444290461503577242263101440404360962768792980564604259510306621743398746082911113672679396052215570348335029845893305809669515383775621797829420212345175138003369596371184950677461577013130628267847097757675635554129439726551755154952663644965984546780384616660248982147616766508068358181301154608575693207591630155037088499226228169543014279233066326726313140806110133645329609603908087220000193093150860824238660440569967897348501399708395889648527666073751339206194284908937975162981090919133149102086084287980860900919957729851577855472857843680182149164977925718286205306829423254152613584522806816371734445858511882150664907231853207483699050432425685788996140571477856246104622363524553249851057245336493766591830383397481239042603369800291007110651875513147393465640735275550836721649488682381936699398344252044579516512767524552003244635268238126069214801388807098825680121314597109831976515964304454182361973636937290525209441032261290995783065698464168779913659120295253341716304006446350657726293123577068208479533147871799385423716135115459390544258921386544678266605640635039708164103886115304721068350014684497557081388108322855263430543309693181978814935023776951711565624504697054895356317302773687590537721987542785060381032233324721137965951418245844094477762595730159471228662542440822397109769444750496366717916717341095077989151675612390323336561860176910193417727372290783387835828788800423404667704186702227725389968576851701399459405214449200449761991838641990854339068489664834431259156889099575610254121437422588652271476802765103613701584950704807881066928994988915640546875632506713984306274132856598644676485021952773857386547067695085216995603052426592949441421823698203127992155270749525531288896214583050679407157294135210861813528503494305557683962001374325589140243142490497296615847340889012391203675112878069910743291680548931246841832359337742166406028190277898374426269966134489257584361164593264437132899481394934766765876124936388759165179557554543238696820329441897072561756228405004326940223110072079157939621671452272886821973037984942207332141554807775024695199491003548448778400984294471549829098609806185591139556142045423331820855353699504413390583113548855695573198432141044198446542947812035223676273160113763982462147438977051070075536114059608635020750551330974584193820298614701868477152219334523026012892559657859037761033623336223083771440098813315872501987659004935644873116651829068000637165065652342780573359907475347555076131234219128760925847015965119144273623433285382408718693896543463930676622930598136015772028736970394367370013509978248134299419385636216774710982771304465975585213064199479873117933908851109630694774260541586755479471802095920843547413163228312602013654700187113692476152623340245010390970493474869470419263977672731786810985817512047017842603013130139329126886357712541460482548737643215811740502635037277513948168839930456586294664385456810706892922180431387683605455253120994195285630835867717638321775683793591289609122465262318179605167560088722186741322787664569468383920592780832569730014742571653821665471049272178742693917112708864535766533025204583229360156234600769140886769403629971734152710013856043809317381456526710872831709762173321913608529160642517895716138946771806765319628132927413376122708647774464682322182739049295586240536202088945509098780220982245880427163699698779016404171570516787989067094007936693450045029367690466858306248124390527775626804895774090248911295208085586180714343326129610233645896740832262221301542526988599210204080059980969338052980425399680740870130929002821459180864110427960377175745846138873278985588091451443857555954551062070532913381224386865890805098652069059391042801001722656198294506313172606784049848176228463576308152907849175719892270471534060411679499537736812672296100811557400405728451711965360523131617983122244632511556538607868254498452493437811094371331589812529006216710115388402370208834887693113036848839236872118753391710538702707523615710541685297112399967903760407360239613099631212040852861374530029246768022650321197652194866152050714334924079768449359618987065438321018424151643791285845516495970818062716109621054002843830305487254079017582865973426397001264656430472595047052551656955204622935555938540793966912372624808220007792712765275261019719738053122618553526181846927875695460182290585508886366003531289696601650746842495922814287539038895754547509403692652098545029927378801526099826739403493305989844951587099398200542311997121950205744123631710121532858453875802710624974582839934950139550264001485544662006692642368933280175845454497637198262619494145758863172119366959240683437892813055190892630782678568843914324421023966321267926264231561878495180299158911001943884039874631319871347445408455437037452946317960508143441009909271242260114968599070853899039641256398906242181929338497856080343086439774069488030712863727951697489069601260963294405576898161229404675912161986314673278701979190739855270950337995933206769641729316526880531036734952334242117243930725027685317099146481770149801803023718462063488608769731684509625521676370203515038105089196324902245863225170514819990399344335213136470905216659766572365517807650043483024559188010878594876652067193194594230760519929664272000703917411702129093580810250197343272606557612041307139102130737188911406555564183728525788847357235826279735853771307785516093775522954053424158771027771196963013067120173771375633813779866472162782545200279044555286993248354550267110943409968173055122075698927025663492766664873847334577923918538089770321407763780440204659655724972272546305989512396614962433189059541268868621582098228162890816559299264574347100047724488975575296011689034575472196975677062161744496893116444741308464204932600769092065679563646350518426845428641977860036218706214907943441769059371040472241506616981733636009694123391789359954274720304240493987278133985254692626470493761078689667737683691145556782058491687737038794762384941946094599342085347176775315132747868608603468142404643869018484646839150643840577309141300275512441321387107134733922104119909535724514623101593296264203127661566920939951414006672568015555118194410089908932428317840529308362168207204965080945763403102867364700523211463302642710462947721265742546549699217225304198628160660920446938068783492470019312025051357259982895810768462152836226806096359707095153507140063528267435349286993460940791128368384372380138844154943376601819817578871472022983368007258229826503322006413334023570750827304542492780303373371011083709888240595518958222527588239054264423166505644629698307998251771034953700281757702819411858664306731977734983497161006679246635905423425181622612895681417835108741165234858585075694965504874850795377797404184649847330723901731465868884846254370962151535147090703396324858508091765031780656548450269601815180546201965015780535598916128008787525501187143066669291775282227059392875507664236906675974623953825267949576201574031934430609958480757896011380193807857893448344498947424939109342970344993406805667906386109920812321630229892656369140326233494817049014826105669837956012537887306667519327059208015830015698548643274710127560332953333043299871696872255017214033156477455443955036149423133431596430065086976558217603610567006293383133468725585667981817140806620145036551573761104443625302560692134895984251172031979160697136833760632850015850647035267623711922952809197997664576282009260278120280260204705890858357158629856123323727021615103492020936057622481672950673365077581339512363066900937112946455057798271554052053301407748406056287734598866299186962076691950081727124892983364685807308232500242337615077566954461800154788434800184346828645891392492096358428003591098895706725568613172398821786424342633704609992334947093152275304111527865224709922522609970910312007171678667533688492051859570417029772512378011712965723412549781180926376825931881218762481448042319922649160233609209655284369683337372451561782822650185935771697679621239016155900657269902730928344434027316467361171953673088936160713954131844707804751205327850971093907569864839016968777303157993602952202650323874420189849206629546331721183650834910910964503695171978351027509730931153714506320118473798606567567427981687268072869295810597495506310500471441945748435326298513426572903686884733613618622711903326072363310120775161567733595956536944023857335578284058428303632925273565947365587656671896117191936079021807705551275368700194798492328236874828805905405649926563314737052380016795429218274321358132449016604978501487371681178768917496877743986277757899784587563407494627108504095980957954011690854944233611871673812139274990464643095602386303567907913102755264179330750071123136226913371433470404186238163721902337136175665229417577352096700813805587613214765496712100730885149914416056934659409794539758240044070771989865767384188196982467305396343703310753753256420717154418458005212550001330326640155011526920275706846317183157927167614222113424184716094561399301122639019374343027139832141831319825560190545921653447936353100884554899171036053545142300773475429683621054563131020505685419852365006981293282212472583681134998830087747811043123653805773906567222751367421835048096181084330710521521535526449108803086650808276259578329246126492287527214096701967902414227558254167676838351310922244013587559402639033816380426540633789503429480917743566557697060843471341756201891882674666617918340195442402492904113171798538169792960623808043672791481184983870807862270540508062260443349785596093518181481406596438100907395514920565206203827015680963285417894640523264237881443562845102156131604808725537792943906317574668056149378055839059586303589349318015022314738202347216029155556943036779655392913050388952851340690966332585370670443389901925383553319563932453605540736937267232529822239650316344704331418886402788291243608394159876232340996692052758302390355506448082210112868784482163062473289930981388788269600749917056312418920236768336442131889524496579226937636462211141230588219270774586876198768210935436514285742559407673975553850139702769807704805610778723062860979621503858063125097375288046018532844727458027986456801683173275583729135773778536700343195768784813465862071836979090292264621748385403497243858208755880998831896380416503642734139292316466351843135060829139342059070144348272494004339334028199048195970970681851793963517503622793299373624492234826715784735574282025190353377449773922737609307284401484440557906054276309112533042610045044906613403428104624072386001582304739901887370419644678340709937156026582830435668955587734338050167494573807695118581005541697164530945284422317591673185922171422222695790172227200707266070841460674441570915655922481293363113142271668546506720587563448839923012816995692455719293830863917480996794483653901795375200519509433970306830896572279848810347847455895639528819341508492366592018876269958346351255370716793180086096590031606548943092474828426666285020789635930175390646431715344045095116633759499383968551977623835052758425686454884985338709210371626630978012053982368052990557247442352866669081800366186881387729462933984495586819563785594672740964129711610000634923631180645463537972146230958192410545230539361628666582122401126905790319022688181607356015640455753282339921555344193735177764620040556095300065105772557535261947790742734500154535472425336836694575759713095315606881426808498653854131481162255699875798081985348388869424667114347005929126600351405240951063011369679199546827974566008866998224682716284536883050766315833787242293698672992465616213894628467691864331417460719751892757954866025263041946053284834778167275028670888745175774627594546736418393855461216547660026279991330973862370706284174003190440411089362360153226594994121255788336038108543512733960508801098773548955741923888555062418571912298441152880006277403282447839396644364092255744067536639268150326089398205183598393971787433656871426731483244588589980200511535706577572008514928725091002624710693180061778033033639376811126476106337967977826301588363052843471382676897479214346831259838837711060168223833951684679724108304860360483179467680457056174543034883951706782494633177149529288542414274288248102934227933632687915870683570193743162578893625192311418842266326730695196237995560201160246027378465412223918898136209770413811902481681152802779122826748944063476659307650412692043538305488371039870422679672171822287208525665856944930017018292577122250267272914650669519088037335210236237216424266659452780460724498256517514801266039169292101989528135217819211454197310943909843172338933929130697349607339905343013438524318877964097011160391393613126659773252528508441592434487678706863388685495795921821616656311252043222926257607181449177448883223496390460818733695100939593993172442122274949180010770950029584253106195201003165489647899966726084429620160954480971427827847586747577650982158556264573508958229259605807961148984294804321313513926760268883937233371892780244372173406459204484722951389315545818475113031056459153999522114194237154647759081546492420501623566311627183591771904726210441280769387679122534289847044281742188038492556813464384033195301429079538205426789017181089572775734843611498278244434157543664906058724077011070659766650106222734713047916265031690925149795121887240748174059204430900094553876079633920944025588285149351761626507497532846644021968630320960883123317146235741721396728967484904615103014811045175901567627338129493131393269676051417643256113408604196054469116183655162791813475813315831993636353149164079754887484045174851387129742613766375705034472249744740977665504706909082250853232998427558388722432744064820864274288431438108329898745040748191416416079086687670000251475316148956951324739534218361765298319011550159778035321390505901075481656031066332272278629554482101810635995842472862980614549285398917696597100700821277959092643361552167370137096208473435508269785026040370569854460541399215362347213694293893453840951557172806235439119015088904704124921080322935476819456863880109932640308341643787010391250457547624493793417891863607204749647486894096606150639671733048958030648910883701005061128223977724150105378392519415020336781856647095703333157136662109255865702440770518826792143377060984666126366852399513435166775697097901132455659451882057771044952041428165103581434223413259763752686461917956544200677815799275692793271225703995052724855226933180567093570237919998729161595142856464917221185242614612566648143573477947708769722679347940436465882788885459869374925890297321786173449152793552010352287816998089485414677942491144360845927691591933759265744688762676630368362845885754246570947662745676789255216375453320659292548144755847355416810690154318208437350844863351689981309089418120114318973307490279606689936091121789464887372872585165723414376591251811402763903293337532245079145377744742911172856838888812359100703548921438499825535867362259399698798665777468037021422064469044294917213155383006082183144357159682755807603671471660460168679731935170810904431635294175512976374194366808173286244575143637697509756129857787005043228480692203151981428069172838813258007177757602991870499403308553329003088077586961991414680855335495600264471501433741108672793195739146834550280878911528849073929601877844957300521724642194940111022706577964228530454922809363236342384126131244923870628906644193292096188366398630906377117321511007006071510523094632782276463543897572931590112767699469847643626800594416471333896385626800485162886711621258470900364986792450063268316266565636144196126797892090154901553054014650678382822917215286460982268252061158543283109040170693725947522188663816579875938647257147504600421025349266230833244649215871595851715904261520737178236252999809128622549717618810699957005446216681967006960842944034867938576279401992506503046402772036514694521787917071571451564331476612093898788911081244686397924924619906855961002512891042773928435296546742301025540715354873941865380724464671321929430571451871469097943649732115928361033488330722343842488301927822916369056314682280642041822345652264770925005152918820517750684773267742367640158147235522524649592082306171636269760704031620717831909291530355379558160235287573281131029202163721675350241569925891893484006719946140214777249018219281540798186638683135091893560834596401478925138762327655113970426668861304998865156468768611330895504155788103637280918036032780231660028557336953357005814625540428473121679900023412386952473636159939774156848467491124337753161777471321521469696890761008548116423767528819859726157359511379854363975784182489253883224303268421623529543917784251961372754888080198730644064379590751159790239267206403107462664741364446153612715767259320756528286040929193447530384287139363250897953520613882256630207279057698947729102110645557877048354543064790918028247061477490137613431317234743622053548703147588653588210677558336398961210723448724559646127902672747976839790171113913653663534079821281545076343919589904259760413102743465978978290807896635065852270336645012954024307516408176441482573676403598855115908019752586093707692392419557841610570201564290382637411553110178572437327545396123320512325965656405058245566382738557088340239153892195110843919204566185322782788396900092136369434226499958956984959743828358694165254390367323330569360636147926236163240216730803887250617255946476311899545771132784497260679590107887979719536007043361725319031856681664557598771550780323678161538075386556078038554718229949609073943171365254055189877212845241025652969152084159936369119114970299992946822828341561651322004366122204764076993905760390794883103580131887159032777697470777689013093474874670585005241672135630529723961220989481696633314200745106231637489865558172606082188009342437713597587625962058245202761584123338288792321875622992844295225380260737724284056019239154543197004637991788318481141402181615918276093536564081232060467572926905530265365325852360300557576892792807433321407530864209757643128280765442162479637866263565063475527192886342164534430671575323173349955011797630697566081839595787230255557915694435495627385798258648951983561465106504297737866548504933881005620274766299201265404515508830594919056775073141764908968111417241964976385507903248315267917518510864370543023101436982284388447449253732222532569402754288777665113189283361546899493661797744150122724098279563549769705524234662792625514418109321329855674977851628127449546842020732233570871978244812625591865668188994494840935242044318417239505548438300481379330336305819608618731308823738411696785948667720357299459308663840699847630418794951351926217667082113286203269408815447942345514087592961648122817967336384191597261458476828669197746803673331066278936606526240729012632152998756949664941176456327738473136910942395599801177897499690353752596043527325958239308253451853983687254309822039307536302858768633528133325576639796962597932161915461947979063107572954863470425553566885109111947012622629684162101418323356943126556912900400988906262780167844582988648955509956226103924122360284926328776866863018382064377533144487736425146201959361804998578484264738851604772017717566229626927027647803098050956082508743114910200963622246982001880793400974120168659942415745151207699136095575544348150142667087520605527380414603779049966796010822278151495683016314177574422777158517501736986775870168021615823317604455070694675374651757322842979399892696589041414134545296836635021281968446685312699633687845249941923845133631030803627402888408206463473951438839730413617485571698952705621071262947972851872446524852365723738927142809013911902967492217277884185148371179871528501345262786529759415144645178740360975518154935881327783356801673286393127981443067899380223924400961278121727461572993278070351560640517711950190466582991444537855180411990896354217627375747059599574947631585571412194778147219559073287061932992488801604912837200557366770032932681838945776881927092084063727975681884601816457773021036652695627459612148425824434065964307499400217715463580232519155139284702566509037961723918477790246420183276805988115807589224951048621036583936183022995323365407139565686815040353425999638012758645049281065852442449961190881516387467540855472643686445051671596594587430671448199077467672202823760847631526994536246906098042343313941787075621120090835684019511967986920095835298275290076903381782925140646291691838621586523862260150472306678492417789286852996563854406755182898202442035434491538190996628242012682511008291129791693375807918649529539088028131164976045995469195154425932853568638174900242239783943220711436838168970885689545191731468856060705591699288713958035907323984753810618076317737779079552687048703933712984644575918400657097869752210092987625135349785864588058892642781137968282263350280248249568037308496150342020070533246843546655750186057559746298952273764311176391781544127354738568322921404933250585303241028760326956251835907269778345963294259522433494639024293894779781206319654220713799784516480686746578974534094945365615179841349387651481962192491967855028586183015341282461938750706080706553378908771613387159464413095195604493767598034643403023130951289624530775726849671690917767317006574881908197462013334965062654821525071669020585453531614252241844087134385447218172097993255173063834190712246432981165347968153093899295798926574021382680337802002252611846787277381465053486412148627517266167141772118741980981120567197423158510253635297025006124614610949481167319637664983262521241826754875370611211954184560525960285143762317698775695989327816361148631823461915878302229619398677732206398316457042402721277318329232854570994828423741509970894872171367037624597091264190877939517186731889587672615311967068974415625300743782924880924885819916479801089417695695099723177510768641090871714336100288860896279761294169291710756835598114254808384658011667463245678323419577035765747728343262377713495822878837052452524491137218165406864121889114573512455655956705541655570552541576814116984633716190753293499405546021771516825106343392786323512746498468688440128768201367377017325124260022203419835175837430811439496310627434752565857346366283430192077979969626803480701256789871964131845718296410810818486170935598969318297666791153312313032947693800417881053052525331188787707075233792254130294560131308574481361219347107825836243890771598833780018603884855967286574853894362900293899890859211572991827979207695753778254961607268132449744602954893066325017294033245128274488749049062225240139214369576872422074855763411317462526600655646199555765118027848212906031148070066446970027906981186539810686740760638656082612661510440146118385544252654196884502214641252719817927919206157874027486528221682864588980377908505854681673961107293577866241687860012018112138520423892084953662334676480897973651834488798807652479297854608280715033835370348298873055502981952015164780046260740508728102181814458323518574125546729073216878028983357388595054420931985971306430735930862263595161278082137575954756899204321063732648297322769279431076809059028095435055692853291018335876808466040252970770411773120814816377449828779610748410383836340254291484139826082905305702507329943101339940004248850466522012905944460950490064627551930800748608916534187844698020575871934311778819921339971572148939058302639783579882642101688529550123774358161405619553667393905878580529366817406189003116243703572908236753290050779234301731440335349391801551055735085444268000377655374658686440512035512193080416526013722681296087381965922142332634278894524047947877036248211945682439019273807496930467665335355039230828711723359672601520723734961886249265789813340753140043799483650647267992753789113984665016908871288163963904474220377712207087431072038233945897329352367534967329603758696419348553914706952826894899263411697583464775801430049209120827727605982540339820517966636651251975483625717241758034358474393082578680661585673646056107593303236779444699673771449062808091594289122694969643631134316203486619986562040212493570558037333963246636315488119977447439430789540867234424955349752950479352258238739064980909090604982333878064863391918572865004286849507028678334839006297517850168484419609663713169647713214755004051492106774725446335305645682459391187728432747916519979224637529837852375143055135582758639248449522070056473019472696421169558172781045347547909948454426963123494123218298146168906492820512150501083061478894069769758319686449986916518863898602536096626789233804666339188148143540107735474504104378343985089000392801128463053677934981348014457162792539935284100885359241804263532787215215648696804428148679292728009904354030930345852415340649177639392315804570238845964280084738666227122776791624557750571095286321390094714406140702408350873981433638319760689664303398274511945447101685494714005584173474310311453279226214445869583313412216653440295124423689039949764005309736917614979529838767042562952219465836980286184824630138823006498249957760821034612788506114767103196926372796614418824955868153195230497350124435207155913700950472804802546589415585415589290968399712409279421973196492854164786230705722998977719373366795933284589766830858128794805480443143932843604359404426699614968287872265471732515096189255595366726984426127705341513004144880982737076285962381900787460753740577744536275346568095714149507131019314756996139742618099500357396587518635327256734703585725852385267691134297756578593761073740990618856218039301727704286698554679259398348981801859631415501492879175812137564340809883885215983683938583299415358044142607125861245457291728718327288133093063466677913742831717516478133964176938669227863028331108635338448220313124759464612834029112310239019026686270241392619325177766703793169200668809644221208282822904646172505932564955741411670977273288264453415336189820715043270581767888596714868688757069910281748020563788928543788585965581858909522932285095729697122129764509533940782015681540523279466700760812655231082920017236501290622409599379481088321880274228987071660291854969889316420484202511963373731896498359885614053882032852936619149669178503562430543945753169174539797373058749946717968784742125674934339639907258490115943615670536462202925911575721501108727084409455861546665945417477617321771944500712275998686170351906490244621786366358301617750084497335850161952821644045510476697567832086854321356591337614368680048849570332949177155118417076157787863944948880584696592122282930882285170570257062310826425385323311924351921768576409534452391959062984756882963618256457887501642600276048682997321866564303708731809736030382883776978160526442307037627369753498205919987890268527088742077594235812791169936785979182219561584569252672628728297045376972228614364202597232574891212153110652408224954148446920781150178627797983616775392004667149808878094956209372886034290519482474159234002204710180970210916436370106874811514550253739446774425199370626138139172821956956542235035841333688909956924583915550253565752256516500823107949897538554325947626683478758153915225986018985541366687713748747640424218644486440074124521800123141024617779402612791239219837615138452010635987059049739709424470359085357044592882582245652378827129865252206014856835200003138486301507970987603536690518872536963297597635794235230757147419762464667108925303865328814064915460418724272730755613831826059606480156666938455815787662731282851492311281391957885621257256309589665142885724862986748802837399954328373483416987433642270207125284481362710027854702543230563366253001329664621973063024089432857547411663906519132224136093422488545266157380066269703622343693038071606169083393697665391566209960917403331218073894177741227434165351766179861255377983953565099194555183882805896511424690851759550872150815001350647808380332207444581249968933977535054134530663277146716247155083724992561631768794133076290357750360901294158896572515747560987073206999386461224434913657291758883987350571650731802202952290855826395770226667864148677958052167132774074007672721654859658773160214692114170618798567260557813928475046990906923599834005609919418940051895726517355812685901343411231097924460604261049885430834500571005628769857598916689878226750777658811736116903895302417519279905997339061220795124441053826660129784717880667954431465360814653277779231377514751179464478566475195931072106959809764065314364105409347720593894959217148592418830316039638004072245646819408724132948169646991751202267034818986894626991155835410740542058711072244146966871165925528182247640544599899702642304784446898305072722436942185326388239154330454673176633305073803423253875563402816088884159680355122998661902331832911675337327640135932682055429272975349873344746422340544870606014446686360129646235281563294206140325465703508074193069389894603656315800303622585421251896852207630477964786761078589983828596539070060437307348567245495387876022294701672457183799074333017170133842075813312515201992386734496861237109584864164700835111012189595177847295263537162763247016720263310170325322174480319683480596875802346028888848234371111852999761667712323985470671721930436407358739561089138126574794337932517803724833672709898109600900388599021647827380741534821411678340657933252962293124446803606013014884701612398288354065731770433081018727867441537547909278155520693697536066578183232036737669243620520298526270749690716234058796136317580708368298123283275774428678623793634173277348446561886066768166543127399398396787228037039845357295248350510589802743593297417816287655481200357140036234334567866045478075016120682780995991592292498206444186778296765314156947866194176509113725592603134710199537206465689459986318186213547983106141200876732958996193365209047934381026827716740341310884569030297965764813459977796642323854207526915188778379030957375262762165161871966175422252270362523162816845212328712462510040861656723508078524503678897592017777587458434446732972467247054090187758174029927826620222970360428287428868790721304746648788506436832365937445801069441577525712035687214037306413499262390051790465635897297064463426714216142323099507244257545555465333520289513763640964149197239721437253615945213753376022814450062944871500145840615840733954556586227325286246412255727809821699394717146651061969501729632473249466302155203529458043794198500962704451491055121115489367038476849498538462185139705701575079273398842091139834076643101877837844386531968621932608564782669335549535834964898071999858882795995180224453343111281039380176379286891680268945172196705616478759812263946971578928203429691439099970576877112959706755830125633385385732872177972350534135509899684602265734616358711567872661555384416158732996606434161961684581250484636064374532066254794532569415995741128304004537578812983030245394928935142917153211528400308350725147016559715741474275398589600382960182077396930532233450880265467618184928905701916523698579019442506696858971334161434958488771940080720507111674589416986022370532600398194548187173297572610333493662662030850856178244899393283143841026317478396521487319125526788578079094805391694162170221585768879115386003202136927452455981716539484242870613791143510123513995670664607260358188574504979202360196260151282317705469893453669921693811424091745476318843180795906607329484014646624944061735394843485929974580682231295576407679889145133704739930754235658037750582814480583289639305990828656871936416605248146650163506529080928716688475673495834258874177887058033587269120398455891653163272097169160923195050865072037326856643788641395354131492990343708753711173580923741672508207500908616391678329810219910349667220657998859001528347527295721843000349088949254835951635470921206543907794481900326566093466318723911033300338796744948119146063050213437458412820946416513186551392866156537301150155543162814498629979421297857796857674827280758471588582170177576837589516695568657160392877718348237639189250809117449241587808873596401377670168194870006273049216289384060013113424653646942862779833383605231111952125225709358916562262202875604704573975653160449020408837652957724142044173052644190837436387491531108622915408570679388962370442049065697494866692609974613741701137992414760788281042887850908147420644632558218945952029822941591463726779953814144271872417601950862945902074069577314999260379480651559752472661085111840033190525770699607357332167398674248989995079667364170312899189701200522131476540141086736914072373899126623404369735486354576296031767902954952987767849039252941282412641238805836608782853457329610821709728999971687558717174646423908579023722649611313596451501328837490263606735670278756518008686669307891445606385901652210457508350303554094664737261556149588571969086722537837739035305058066678929159478062121997002308135528866727343647011747397909771577330927289946832268276618258453884953543399458025237585086685040837345634136150030539936479225269553186145404155687507766542731634974021443511773282263223427358175652481233493026667680612271592094509655150726181667154485934198802835526725126844519043591287716018676949725010108157389352164386849136776548780818357450866452829531672952708949263053489163565563304371719188878609494938799153493448842100949551683054948353266902736820596512544001017137174825675113121356236964512183535201451852413367038878781741457878751823305543091447133386377669671053541513086035590585309185470137649651161586341193634508166823038635206691615669243603692074793691230185904937077791635496669676044293606617222421283190300385109579013283665046662166069156695674630309499312580548632464964787928071772264172489373471633291178957836540310815747619538837624774236784423998047177207243624470249268628061166493275139896672672106722996227591961469411329794262497070845349805134215778825027488797946281236350074591081920728323136423711047368297346871653180400255051544653731436205967634440579008624016428458628481160241314738843600597265114607128537250934484945762632241893376535736775421295678934212417048286262808153749069295033568111605127411746672344232880206137643268587948436924571194365643034745443790329964592002686916265685950149096962371979871805614348710890901586911578225708507074103041293958056208428666218852953163828635645769226311141985189437753117745089506609865811593335624598698448052722482642605470117220565305539176299813679468362823671997539495444304118462181028997551810150376743620196459611227986981721992045884637251006821845556185600595869048308867443987980996291647274266569967061840134657900733396941457250530025323392421891089907221610557306668968003766476277965275730776392574082315259691199574577884611881014305871477011610196293510581613107493691463516341347706007401598247377039083473494885697416125241857993292331759213003059258926995499208126354362659989281785639660675479060982601186109111253205882557848610835805381711848981398627753661550312432142994866136058135881130745571774056642473700136305386620791882373023555791069718004307472418140027338071220144321287528185398447168091475017620567239614853750817705145012580154795610948085439854133619002854292982985945030421348868881738054450566236506935400263468958739339014586426823898235816016753410732152962765706277158303397958786436992385984534932305136235531849254579584292601807512814477841137320300755154905305014591545935310530423723029337535494302618969893943378693775827910194000886300099305278406959182338461532139574087300403735968739935924313992805590124458960998819916350957298744315380754612279468056534864112286133336385596087192623896312020428204900074981090987251041553967093454222461352290446394910554132231124062122907890029141101675192558708108505580354448557024094952407101716669382898573660776515854491487412712960002308818933852121031283345762915379417500854435542267837068601646141032837120534964713013090212954785557979926136088261776559810056245105282725768070755124379888604307046961073919438714383991566137194278734870086872153426207869440636628722827384984298871425406392784991402185516783155342853307641787355066866824507017984863087497781179902396135303610322718959032142698602122839256785235787325647461629072935585678892971752624514239069202183765861850624019579068345576445339714612508487232895578959243033187622898955573076726283060350648787699579764148350538380817866823079034037991896562885972095126579795579654128221465749918582616574566308866815273176808977198995780034887966332748361252590026078127954906719250685098445071537406570683081471846697681417268384676445371200566573190377588657064035916659138308987378202711389551213351089737515216017379786948557830688639043215787782669948920493427270081649607764682048686979308095841726740561690391252956828341976140596444201412950758244127027653051954930489166009317203847053095978666679713980835606940716649026392786047535223525567270888416643651702624565071752177141043090304215968363926297537617067822914691871297176268685106095026204745522097048823704031644620040882350042440971204455147990019847335760332220975400359862393848969120263403706716344051563454793045326801944644151188964145040152693721308404392304800185385106091076472694592870402401655773512646166474047771484007841683847383321008904201196975703296263928209652464639460584225184030669447291923620372372821689808871907108577845765835147396102446167015183564904031109323480395379373042831368060622138805466809059479945096356304438240010748077783909303088889599129756773015185129433743691827952401863320747562031902877877056999908793548285204407494213935596403426477330190828969890256849809110438513333600638427242821794482787631466566826947833535304298906616430059926370263116618730754047075618185431106427886736515260297172933973881440938883336527985786006942764345825883154771730213648233024928718735720505380630600822371123423184009922740781481575150149441385394961243477983142853456713799779807360584433498031942225977357446215205155293295292219075202386355968849218607579882482159976247684467459846089997074391230634414912148565890866375836407020305589788132932180633407039841383085030605458090545106579771316455718693707188472385284867389236404727763083368542626785391979500239325622399231856825226209850418514505840134200368198078054465286166870249401116023531164664721530437067712275199248928898077127672840499234269084131724332448320398448919109516218869133711309234248492937443758884116517380965754062259002789807840783983063562329265944918562497529049024233835994591715279533187555104937289337044929243940657990765400232355126787797629103058133991350452784076227607062428782392570440329991949299856944133735157570535350636665643454167927254044711271306863852078849991910225411513128555197235995921116454021973337540810998872515375703326733051897360717774777104967005100743152060536615067950808128481326579790088317689267406430568747893461370670021366620846573682545884852470024585126217679939247805270451827242557149223002794233085357134977263691523158326190108506881279008618540920148637279977395802155906138041723242862277084637353569970035862774024350431797072030605178638667753900912977931519160352724683169011474901645388031710957767546994156585515752719783914216447152679342881348620804290024542974557271227781735713031242608914443648953313947535200079387147634409407033447595286743501238378280779326350740041138008315758807045450645734016917814515467522738879560399616472795871368215397573544588408437159107712223157271588660078531432484140999262674980391750856034358839693997040364799718393121516966651480671472198384666471048772500578498811502929128971854527428493649646108745938885714589264685615471722143939626096996298536769990907876864788633133784240628838620958362899274517478304204086880125995586863735189415137216843225642821393844154989670791724440356596674939091010441681126580388365890721076146446924764827633441114490649432942950492448833175054605009082483943383896910920635792158988945083259034893896359633054969089188783217681254602385806064304349265904791445056714453442790219595758160482169552265261395439606799091512448903507343414787502280149113353642735575426965293929095139070926293525867512364661151559506213658710560997270723316557480584051158702186505246924761238962338521984174924016317118462411148830899840063188708468878140868349473590703758820815337570668818957036677583846230087928034103203249709911984296250157733825917357682451724770668779126061749559823809701822635452956425444690851230534666094049445635939984132101213512370315294548604132879775674327670115937734995627570403921082523165620950274734049939670846059577172248917487772180952552021788123906654188802260124754329391939093655009358504554760455222981249934847094551376965522380721223792740000214630913928448116273074223535158775310544307397003803884282607478666105537449668305193506682060959804816908919507165367192707898162388610987893945104745627958242915235202155508732331841291112873221317715832906023177404359083555906157710474486826679332741353124537364607922661914141575675203795791309959671664607252382223112057132160464670519625047549527414473610410131391271136655799493719363626111898648186634318401529671403927866190688238668050641699308750613531350795313477694270702696733158241458577865589379130577175542247185135059544393602079506878808501230110219941107955422481848106121067898220044737709684616163977802055894422163714593471346341623387860603346456975584188466384473977130192933610383912553681980899071036998643893490068821068400361040516519239414605453078723412585576193662392118729384149879401784226605400377658465541387601921900585534917023971099734051885193819590765960091287076474418377410411048326362338740679769663807823248870291817326300165452020153729815228894276665376244761761537499431085100715946584894683446296376987268351876544785714652719352933471718483035110400455996863224607115856148560910611406316584836793066650017254016635135707710948452953567247598124373618437344971174272457361631900793073049519882200908429124505231216498257828453012782748577055720192311557362639691633696741873114918333437291963479443205535068150861761599321143838636275224358768916198718146217407495802550754638966705390067550884302121056016132718765901270862221632717886536216596554533424021702485950818444314543630519346984592094831427937089290832710298470944621706563259024428181570245793481324941809062364442366709950979335769924428707758647268445382915550849051188142099332197993777354952790127717669117278723910539895783050886009767768045140643343914220863926099397610052763507390091744712455998686110924232198014577948978249470820634937988132168103059142746821246735395059602793318770613366134494615408549546336808874075314245032982455130957222977514523226895810988997851678151826956311334284651014468394914586032101539735314781908359121652552867000462008189438587732857420339567901954461337851814765478840879165788272206336336418740955157635950188613354214864506579816137538627117757875382812527112400913632802540853221920434190764365923591301595675694495217299978022044541209735791515304789605601966084133294078762818296417649718410635927017173072609219126105867617466248739788590329680560913168669463422293643530058803085678689655504731919013898693524673156563002957506679097731146369434250568259817236700733134049616627849186696487054044509610772337204446952978566374219085647891040824867333952218218211870490787902040576802570551346561761168168640061539600795971895292223260616687154649428207369058525420445942520136531715527219017111726627948108995335585792624610801835531874055604891173112530012134760848328390433394059898800835121875180056574518117798563603253392567278940238247662905882697312205380664517386084163813491192041325487076475125931996843411519749374976411693683477265240988969599124261177962540922097763733582174170282559591113389710943727617191197740148242277422473197746085555829107081471339755744299201313799696152966068800762902520890669003523215175810108670582670650180156733544141285563826920098638325883809329803582261650536466856892576328406888850314755545450936845617522646385835214149236701637738025527668943989530948472712896430427041810973298782207962497622496867152115658364934384787525479944688376076259167350215137404217882031057081484067683138550077138820592876321941767206996857173530102314334374586428446432953200660413309801909563672633135530344292629772917189422466501626650413101318415725604759328726644563633285343464893442058905957045981623319401462506185701085769571476155411868165330628835692911808179334130832885960608302017946041950703998896833822883720683012468492401359520187777035401780766495866181788071931311620290822561664801132517765002353018595093223380133329029333633545674777212990307209927943071287918892890625709919517752618510307948791458198495457934405488675747748443766395721764867260332990442417352359442870496248096599253400383788538007509119052442453362728019200006415409724259445235991574964446184689664864480090347133962180310073480941018918884573188267607474350028817309792910821196412477015987273095179789676031018280651471423311923804335691000913632583259178604006447435600144304894941617942699252045096510585163537196107840320612388834774138415356469670530143701510992289453748917606952474400736449223462371850305287009190397780907203108950844760951423605051868545072550364807235758297539521981658247611610375616013335469139284445570790333773919926957716923534672164912651823016519257267236302644263741543604165444551530543150981928586638126200984493929062665691835070549883265029178131142784361616219063774133515234866624456096335908547087283800709793303489769168816981883558374354253984448584770456159570424494029644485073099020448527353865867514244892093175065662611736978324640644205109524639597212997807528385379266977588841240416892624524127922553639628232275082857114423544792690531760216375334009224912695211175686058000009263420048078528329973664729635739674202650984114709828309195869129949156941106863806397254531950662935641735005769005881401651793304336137523516836285292267876439250259697854438518752812288734163104457718648099299201965019452794813672193026905815051725147014348162826995708508496020566724866421547436388001624220733614151225410648275089126604060048882150148317605231194211117921205264706245440456253696391155314263856238237211043580959102347686696611337529851826669859571544853909870078410014684714828903798388387130847996001909995909174157951553812460073599167897054404280340528330157276023864887013558275156433688753078232027413420238848123433482077600561393315131914017766567547692094043271805390450480540440502966462797340940967995981023011414277965827049480628892225212616171014398715717643263803256723131162856921093279403522665968751529146338812720015279246937959717111630593386008113187913854327559358782056920889369003976933853974082001108485953288805861713522218341245421082716599112563088971217217604060450378488950856437114015446065396382915015148088247811181907513804105770378544746289900872719834842186590275713161380530489246538132605841544186065029407707155678918146130713494969474655908994082513184157248400010069556210978403760950624635715773835418754540594123742790784814352731635913052392677894307809058698741607872899362888214571210873711771954920033310374968369378245541392220466733015284309252209895728697566557805896892618291533655031997163836411612551045616616355780335964588877309711792637147170731333431872171235516953767628370167541160845368410417111068572887581918723016890041216129430806545263166750575560693953729277395821611756737544575410650075425900218180115724259358817308487329491402756777806059439966085572481428699540277165353061614466154302255628400425967826265145002884777680253218006949527079647208026542330269498721528996292054512491675950399921032500921319654777800396740193885535432099034026395420281170374348249598845507865842344467786275476539380632085750829196749276934690718919202022051512471899154462332414359938242082444446373978629054089357028757673179566621758992858563509561582767703983523909979978241514967656254572462410589537892221626007323889334987844307085427776797930268145084176450364747774762966072440181227390508195682018782297677774102099881354194062971385700046690962661820912094863488773945864115667717704574296270201183462210166647468950316810238789656515021274901294452906246662684718789691084260409670453748951158975889277204139777255644806463444225068985665564348517822657560041646931844175965288975530707895326947538699776560799045597654928392792720527945311102867028831006164440432911541360562629622212043956442679336301441329927476053983629398696994443500865232037402174973870776529627872613989347940428122466596000795860076025831373719190927310836747912399711411628275436922349980813040203390296477370922875671886397497473706324533847965530972474369820873875291628321480697169938511339450785241417960811060482798054235422190984195556392845128800375192802300574477401869860235369604945264608209971731751752949343880743082189674164984418710400180711785835700997367810780848885014791616961420855572115311169029705545745521689067336127176763558900140671766679413945751207384199804273240769422844482799385049263717715312976125852830088775469132681642386690217401830594933521814033854722021798235663518187305276168959705489134507167269695029276079408670107619519902071940410392962437352922081670931684258838875474577827443090293713598785441830380805123690561671930178738524746397382116124119398330079131632836255255103436790045263731092752811353938826754269756583038061005826092442442065739350249852077256918905262019140242346659150275136764424591199814313589385222347110547393242369456826087052846285152716012978226943664853459506968084543841368441845922198325707520076054017575718135801187050148293517403021708790813651036889082463197167941778360939763580354849147421451711599644987306600743272559608606300387663828909304361578014957547021842309633143595676875931320477219190419856215138170731373991558536508882121711238487685281531312980081651052197644155097244704488699292380325197107543633007641782390640100532926205292603815573391542591063635404063785610034093069403313017326195063571702591675592043090946982266737710528806568595728335777558170978886354370561707834372713136732566756507265581154048205492758502137808619949975100423666510359449713431953970606993032587614801373426648501868025980794174873140134560928166969248008710484471223463051736208522751618232684150601385899635184299636107183105431897329014887771506181446435984949426840520812394839050906633253536946933096098646690754583434586884177823554369587342000868476180217079794828500757096217849472472957450624199853140023306971979991068131682117421533911176247920478071612419134527481382120147828383674276367421929946454062718689041384856427550710433337118751171041812722318343565905578575610048996641603164974563372547172522660310305234652153983476351342155049841938333484077060939926616266910082217278094130069195959323343037020512897962656119333206383662364908191751205366272812555806763048971632766247295138341793314625383808761136024273048134223674177533653790782045700890259439411939686251261961582949341898802267974722233726257937486121883508570489954080242384755570907446113679601048365609051637011794031706067742154508795504126941280479683278411468493413998706855979821940031882995140105577105397507924562718883899967339790376105176095031512313869379406381502704560787409753471887040886095543552310500829293126114245455386118287272464667759282520691131176474535648311950698718099329132891007820806343711245121785322790165696648777108675040682476308945629210929116991347402040568415732521844410871714484993382951889707825185577866051345831339690159428067319408436488290333915592139856657413717265824598417436441292263840637472203015556685187698211333245551009900377246625304380453878604924232459636335989455511157271196432860268094830499030252461901862650979104367134465012032378291046541516106741822792211101366934312364768370577623785934860107693909367773841824715687157246265211639155362223091675565693216704669864818413593779295212844778102898289203926210638869948674498481023376435148818846663848274572583918624353700654000658828048409859493161821622222835251508030036281475625417916800540689140794510116106024381762501887422939433499432466946115903557894736005350154167107936357662623369241989043268290007338010600975749098012495692191122030968937688993989110748588312237777245128838400872057682715924503834532301843778899681626068927591299262899339816102385315809183260103845198013740551141917120203578723909371156021725193529690841032677160383189654456042476230120133842530685805014834309634577578351208974826915562092196757787229189892791888669724507440379406857360321388414254074847907366078530208267870114847097712002844129008350994486973714581728126459573694089475151191199666450607167203755315630172751454512314348920708133850962893736220474636619657084396945262189000371969538128088843792603342819218941602400065843115535791778487975486060043015638056197092990621245163597358963486466127603325787226456040054858561263752263842398232133293244688487461138764689902940358636400766320537534188513481674878708898549441402009977622466161705248456020150451582478443261750578270685573944950603952860893826169888219672248061535031326375928745207098880990283078775930265833008587019919232739401060045013620863684602224083432881408427402532562935422455552896279070244207176971663897740516366227132837072790038761854729122588433219872655114750827983512632352696973969422484702396364445759752754544397992908746582906331693957972601517978543289325719379139618287848757577192682028361751495396027640690082360185985537705070767538543391035794470828728258125019078713658677130939709182669510342667327690362503010896371565859481690929607895946950153373333667435988689772551561596433954494515010873020655767417974884486143093763024902213760952691128990468869958606489587362836961953503995722482440970255919705884657315916311922248160989201613336124803795570432138129784913719203276085103771471207492772602075820734009909021158291895669465489705511412293794201258843620585477081495284167011336666317977160755322514678544000495364867748392573745111399984223662224965141064300184201111891040975614255300438935827701498982282439513937829366687424659720990853973051619967235730630183226754024873909778045471482806763344000932485115012510513040048643128489970675278684825044866019624722571551354779734467410037303979691505918014220388998665035851512314499728015477112492234289435334926877699981660976909192399977115242891914294527739847636808923057718558564577014896424140560696750554072493902212511547755166133167467198561920960558740595138190071899749857180448476163462834870159388769595379752150164898688836254597901636037766401812568169609962998597356741566312465073991632982124830830191145744111707382682551571518209319708541010997242723377222195715964991395529921929563308818384427487399132084651499766055965377121363648281157696359212290419043817759562496300379287772292200494008590456741726812573316965450443016146471969323692733514244740543785219070333688172079687270093903671837933906716969694908810885310440220405938294440380227928798377088841890499608185258108605165834164980456835711772747663932844786726314404707003468526582298432205944941976610548988647149568583824322759895542252235413523172644830596766014737687168081012472711912730576311363113237750988051042798412060299137354235321186073312603000135410241397748689688073482750081525321165443618110986192243781837512947928097906076836995073168988924769079318498047589801083574597729274082644835108388595337812406132799169277862035009906991156871789959941563285198602743935262787803004024026143063492958862753809327816861723365559296072725665232640467831554052034324940672034462685684267505906578411154072291114879744563281390567234374772696729340528439732535705960366219130427879973885280285369437114505601448465887913202025679913255732096718712821558350898885403687645162200738123978233841363441791193438700611533102778267754673351279477501760124834736805506539793496670041998186982494356163527671317078030287675670885542279593934865636084256862477478417551588214630793739415862248028369937626932782699675314060821487841766434515337542195807445284732949505922398131033654261301709967371285226743997861018030644427338363577187751683335616793264974228676013508288720400755560403543142248892545528329032631285809176543781204907638442874925117508961348969360989935023714940213534884534739324905629232050679470910333375328921308995416705649329688364633641523807322632188683824025894445546784791207678922464038618952111045581074766081929602817844302769214754690657471415665748862722447544847598074945894437522979422613682422369208995144155879222467666844504347792489279689202402708400670202458800542510801897270345873221822225874989207651203002795915883188238295882415695332446188155087319919696115466580179995124568373829214034553168535045485058457765117854426754924377121066016652497118551543700149346953469455263707593219666770727385092806345759355284695380955309887390376858833550855277948529297868576112302661596847336678119474782116411410591506114262588995860650286418829580958151683037194688867305436344166508912518432651821100898838174117746099363417281275740772873170109439959084743814384800803736637977346485095009007751413169675461758777969233424321019413117547493565136458504697173554526813909264337749024542773514299126409458869786112076097657317812314808204109866663727582389519561099953379376843785097993453503178718771099186527804100627840701805863306331473586207449240334237492512903632658715097642770471081764178442225414294468734955423317120118270124785921973350743506691911372492595781341078854541076345933275958574612034842946060424787485705019238095762464710916219278641392039069649539452144894964915104035715639931126981909264418395827418852530441101784345950452631172426198758518484398711067881771942840662068770072977801677316878516159295020568171366553158988405034171788069071007208967421858401190474215925023480196705742864879599684722095726892835424539708310528277588049388630980212088797251715260560913804127797200641407345275441879159204587349920839967771978981375268604454349691313883259882162883844697554753454981460967243655757746579896752195141187988153716970770912775133454108159650615743152575078758714352463160444608699648478441847951008588854490899396718274994287040993994444479707107024473006255999446194050321513279128861456554080681650570720631862763068249500468416524614673636008465480262095281746958802447273379419279049459387960791582008115089167537335354596422340824676447465103400029091781953247450837576931373990807686060039550674030225418837503382105489621596577676932831126797388456801151704796648862504411562473402674533416541046535233825721255082405215101952528424032553749316618313658540558532958015016283435386564130223409121205631513011499088769560240699422265813051789472258306078458194328377883806717880818194921168595905005629743955667660370661594262897012923809592642843233545670276164132056327912502834020060676806842501315398833090371036754943976091971025260793654658095038246042395875032148682807995734236975783744418841770755006755032105327299963108486509629160103571940136407131086713056613591440767702562548397903444460817342268360259730595818847875721018513061706501205878913517966641946366270126854752729665276274436055145930812732704695953731643435531408183612106939541660420921962406090210427509649910983804655150317687862952950399102385464517967194319064094718867583893302496463854110984917012878807860990295351526670164225015904987228179860967745817809004020032138937617912037033420501339025516673373071699981959764093389432390629839431653233922172169078512306567899113540088039259824090923386813402789724750368561328611061077676010159273662009319944512334123919885447291148492012328689412494345223897450728984424542853302900989732054095739743160999322670002109979731520233941584849688695165234054343278300357714505359180838347114860810695338415613494685800303980524012917381451921961995678764274533687210570813831167780467925442900775972062413097825473270376804476568928483202540860281103734901195138759315783169027623392753520739354791508627248883322494664335727476819447685204202128666610857482779303855942023231355427659147976468270154922391879915573933560645344049624649782928100076349094231462879676102122544330642910813772671001372927305663703103945501609578887588519611068181632749479924720560598024683702972299232427022102070398437904520371531765747364529775959732284695198808602219718611376485153350743100303944599095250362702069811667217497216532073924039226763287980251669435901880725735116393607866900939992392810854265360221582378845050363390679236183064245726198612961866070121652363753824659192687677656982902625393266968810187238070801662576773943594598579535792823607229983927171820682501665552921635408357699393787859666408965359895234477119390864413580832811505927061215197771023997103249302955737752391464332781322252930810807757432008987898090855654993897654780037657641465394465722330550600227213344280206310413681986779035138519638383585387802778518255382133021324373167824111218789128402218847070951305368502350853864383323953712263552168964226944116687767087802689445661806262210880086046191503162703656832429094338426366370402455714533174008323281366297661073557791840122351062904459627723950632211022277930178439708919057264244258806810064119214229743434416151184982511690468436170670290499582592442282017860159092965295587362214948101594042452304649360309780141160842873089648528303325264087778698544279505288584916876156807602839855200140017559772554184794577279216443791956878840668481944798749268284010182124251304611170268890009138869273518597159617993869646579505176688547825474499755322318613435367520104414798862004800512129491659289003596217052188011067542440024300465458370372634211366081049102391121841141531451348203815711555245930476349994348340258318227763514084293345289540771897584343844106777549041382435055860433271255159257491832540848491726304912886792096753244488382725321621187720502408898724830939204182137369159223851758775290469612682949298250893346963404518115971840744832116469015356125119503950421874605273835137823509785376657556158602495330460839197992870867647934117753541733226149633045308816432902858374036754316522721519257954487022040031610647604148637885911285485127221600307520433546280158803919988722468588112219334070092502585425213074008836336845463753635045674489458406470002315668147250435502393083165720019026038288465129610658729117616066535391264611566608764831282089268899831487182936515427732784896931010662816243517814195964895057498439905660446854375067133171735740844403437805593843468801347303550637845599672860856410990382239645888907003496667385087413004959649068251151132786900816532111211018619725971474539017971041094603099797588490179079997539194349744302982614406112274294404758088074256890199954203572695520230816152613542288711965704919863724688740874891517511238489308623757518961573797828266062754886784245816218191080856629325926905774743039420623427584486051111993370304136944284476549606470439602538905439293390145179937803634179116020162480628979599241318553449150092402716588474801762077107945596150996251277173936458852168442561688657845405227398677999314906142517914881116278874503979109592378583816527597825778082920134827956294594891077636280440238897400411194982011580047791769396497999697031057857611841874014192946174343272476506471958096585666985439825492803059790700571792782010500910063056647754118687621537650956250484953105832399704686534955489443617594185438254428610149841789334629986890542801032236895453360343093682325089521449829840525459437867848944577185807040161938209778163968988218393690664395934919154574817186725422101614557521909233671334419886885473496210253809550756969290086165569903715882857060543117751986393692531405959895079951553619057947546469300071956466668877397879598075764333611098597457821746601724981154496971539671409671801210842402919511709842632750212879208542719334775570686123902133234833454581537599158606683900190569215128297414750361183344249127630174248693183376705179994466077863481254205624607930058555613677904987652759318810883155695754902142317524945928544366479366274784233379897428055638273339162612494236024462127001774139527216597434539375856359269642449511229217362747044548217051781667593298493043776534161180345605312386057766056599479675078993927753478187755342560334632818206871560229001396607484148062278465601477542733476196224443479924922511913887944637764057117227477035362724276419471212683871381677771739915937779901400892442632257899994395930758716983000506512573892786745300192702637109084569833930149090167155335798478245513726215492364285897261261191190468066248495334864090561416954020425783919336494484702198935476804833015803228005177479189401253085875287056078146793285359514911392344685639364258110761512800609745745741998699032050938614719491129693921841732215539499192397719815893323737415247841945338970330077395259848955797100287336034472290455410652340936360499007328478486496648807891015282791118137726187490086140441575258151248169285517164622933166745404828914755605838074181581107282976712868065363153190406134291746147006580637158227803346867931876168361885526657123321957592449853306321174099977901964736238670937303033400999828135530373023733136631116241959235387752309335824153686612090686762217322584688558500232395921108046905562251236570403733200577200801226231117144203038092338520268595770863596606023602531849946950758469684281913030766835433821215464937144380874298234020456547026729387506421419030156584253513223009670261098284186310340082246025509354408217865735414101237619919873074628814026878242433893738455399625904769168216976995124478520650439704865271714190803343771057757486366989297562427876838671440847627769892493991229780522477809690305795426087594980707751040859213656691859127588107225103708565705289110101378303768197393944110584712045993242549323884340084485654385335830399631364934547245824001792020547906464219871869315702893425527142175212323317026205444270800093878620277121653494385226581545837410104908298831739154262322028877450105996114875245829065487416080884927384726762538341427788458998760703427411047570035750463104406550362660877120477377667779469762544180038335798513023100108125439113282468704832507478818024980505084326615862275678307836040124431115402024529380674178661030457618673116035667969520880846327208582226581491846249852561699038177648822686257367960223065583242430921381151953663018937656067300098266744724760250952818828677474982176970038289652975207758449614360033647981928856316080797004238641812834839462679289642108353031271212159877204360635796576642029089444839053158266965287996778569359605086710836233992091181818348456510454724320266067155621576051011867079919029405837565514156232375525373234517975612228037066308750237412324662638027787494831948557418120885568480453324039176013378287746944256939463249517809658425169447513569859676839797410170984546846132857705187559790645368156486027484657090612570378209149211854989271414254301622904386746515716265628048305205274441826376119934858405537955209456916017217285640143516957810975261526358032691169717908972344315405911795177768802777410080045542780177143287567965834961224555001856304248416347537331627573309620194631370083318014116844230632890431726796467995370732369576967218217559126053995671830066091312222219255222812070060335106731205654690294964708665350824324920581338023625101160225139834308616341802547681919493767665703385546369465936390996250946526904271503094657303037815782581851393932020557552367295528915963199482292789527248515787723946391054383277445902970038366213005823894918136331967046382178033038294793480720827025530302661280964624977671902548682447575275488510766146415905210009082128540855280871258956330535772919606649565155836909849009098614980305414101251776108986290937669073520133032726385213956207933274147489295038293420185315795919461430817533904864091490280774781116088829186769802107577467675182532371433808401991514614173770652302264901349159005900791100614241165493376790149781370574112267833060700280932528269214653339271197825137700303737685143522172877023192949818164331127055676277453614962848987368083357612346306779498700470275668503727849963026474486998024833882434699168305042080453205199660111207351640559891003876468126455454461969649889300050909537657817428046686572141249289108399783543254603352162158025486925632848513546493856355343787512330120355958077716213373025976101289087243997747736911941369009540791380352975802531311392222635578298564519649061245870676720050255105364116152869368172857561105555911997673471902873739392766087325219605179428905119658489903612403607836304281015527168881052291201678979758249726181299883729551093022167205866352420198012754167118465338668934907154902633542154295581499633682438601997714315454330113558361674184670473289049096726987326781469275663898353408486007510771291258022411004495251659372361175643796002417015283515190390221162605905446995711466877523017924216063971017091006404424922806767533147173807810056778006820859998922176040155342763320886649372275878297088631349304337756448846977322882496319878126115401479593650569418287128327108354693838433041869463258317525697342357115655373681614685137087284995214090984034771831949304690728789790602602565522313906486434029122308427899529135688661562627430611688374184548883590529861225691043215085043144940832334065689030637913851482679947754020392417122328242505746968571145826659835095863969689201075871492331768946605213578970062999107839400841048561028819186513234891828803403874247060574398019405838546319319607788916180998266157124875905206453744189843985863125964599815444991455549051069302124974530707004395816862205415308852740435760807770490600670534002527357163176493296731883890023167567013252754719407377483182674212618582498699476357649337182103365239502553939764278302225244860368965834777821552627569511954295542102145250590820994140446245549683883091881530061620189072465679177132003127046253284554087798905812476171370082400955710261069280430764200904413133679785844005186831314900529881204564002238458821782517229105537006817720193355683709999402082163833822082320667655861134595657510437515981724968765340649148178449278319773290854034322808775740670169377002709147061225350559572106596691094884953640770949821863442508664532804389271651653899272533407276230374477910601402367065112493500374926254949583616884003021861009294764575136739921855779023522172997590863992294270930751933546443523460280395920651254747355516645018579113401200516049379348609577885132829220950789045461764465820417420678278368193508557325014003906834080716832924904915833820708676018364389897730582281794747229880278886596755681958838817455522142201706354013930272883508551617364399818485985979511350600733650400241981875143395932832690039805674567226228221991237980105348876365705453908378075088807906674631268716303786975835685499533443583400971434295284251662307627515380269665924638475887544324992636477361844729421941023729697363315285419693236092728234098415453689546969034835674976464735658109543698555145234726223641174261671100515297427921752724398062066435521238871479352417739995108228110216283037327677787008053173927599635162804612858022265588055608404841749565150030214257799026567605509202373265882351473892540637045343961479348047586356700589142599775387616878438496139982561426733500367062866662855229266075157584752288766307405574173179707138978597975966073720795140312004100201677126264074689042256687501359911126399519270629688440532881088313878941754378406852189383865625880126653144570819865455170383019861352872780278075641979238657552012635261712787609165280752710858445654614187861846839043841317616523849440608584166423022688161179796651596060654633199784845259635040734682025531371436167923006522822152936305086447243811933174285303040215128367899419998592697090709645700270938647401822209065055264995201154547367868725700692145714635033523602519735565306191337210419899901632246667326935411224015340286372236333577369657232891172974902318020964520453606018323717481200512803791901992991295319757400769985900518808532819656358679696885029703572879090925493198365359473260272827416748775934764937667928122439611146703254233006362385692206243203122188863981300847170862347093778703076132092753569181539373543557462918707322580692813401504779306906415605381423772658533919566123360628831443453761607711644828092900492470075064533867276509504587164112948443867383735334761299855415450704264303362646892606351641566947461852645636631525226816866995865550713411822569925273598652246439575608935830559364047091322056406283576632483632603196962517588044094737075979246499791951187526267401840946734865539841955532007039659128507641703958331499694719655344009617557140463237950802525902511825536468758798826669116880612954160691835348087063200963675853600231324830729105916346805795832553915112863083481942803493463767971466493365242132607424666942999993395540094397168402373551248947250305684687941404753153081007594649544969551638906421767217134987829595862580435839893844025237769159369650697961319910075633747709211328417241908230693291106108259845933690486771188220686183826931675145741606472909626942168164598081824444891048537515419671185270583823701072824248166949832768748928894781216240947286359606523548746306924183361162559632364433959057688437635464837500757393107945187890043065889537621239155842794671976686183085949817305328996725411816057690956540335865325582298638633135811331100926637169598799321815509706478679493771062099002464040659264488372424652191257088605616482219532653230515983449537204770019509961610666907540195661426460683679689179538829648016471725338388727205493362907379983571708349118816359410715416125638238175459496582291639814611498932761264939364525456202836821094165438725542264514459000200323874116683497344634305605202561647291542615310179509536828165782759869125732237106954627866817298443709233378937080804058527878718420177292104592829065406107191013595533873920427820900682372446402455672149959843826992378132790076056372009988507325814418193470794884463179599728043161490006707985212238886118845627865647152612060648049768707765533131280738967809667062885103899004913890201510316768845192969519144703207243460656017297509047252370501731297385397453980221614584112070851470913939901089818841846982148658558597026986230650712696046606772521951432908917288239767286631736287785098562532633700728544153587675625681506238162855352710011040134164965393703788896915031371344071464779066982564191158850524577191578326053762531944816136459411044690818782636866658415554686442731181624136095321670493093542741180407440454158240820835312666377226241410389886332509120920666806467588761766077380227800730388976637999873274921913263494878962415424908561983964207970333789417409693663906078160031847184556078517961475163033161914258182318876885868101478400665674512049710306223772018351132546421793704908469557565198178182975351156619418991438830532686642699669421663185729533594993549025186253248362742238483327895236017157352137958108284477398833234593045186998565334511830604554791664704596383772533362894539833946521739442117821221048946633129584321629891595596654364191363818793203096491537274381442340126306155265243134050283403019178221214120248663003038273930101516686267039331108410338176608519809962032382724687301622854676557038639350129396841717785682494477818725208837786460736437495075704324658025962299566663030460607887684106162591623923414215887852829212018841665060484412238885328825480141355840934048859299301706177666076336879567453740828060546509612718196459147269436100984675011269588743200384451947136476448709512528721643642031726591680405555971500484289911983981979289711480854924374850778150862736200010713155222373604672971835514165746195011213847602301233923378267657749941970334027364438451494082152750309635833005915755039820239957096291626577711758502049214688983395124688121686491469810063851844164223915926477399915301979967965361453086017553589361968727874323956232103317163155929140761849199124907717632924326913775918877471523534268546375016994959239158286072500748330494562142870639675114795818629992112456299031379799893836198966835308440324613838193774959441696678582492523195583752527808708741030235741667210549775630685657067084001369742012132017201262962797231223622730720912729299488463904014110542068635617089820715875860240863160618005191519648246279997848346097074668943227927318389816159566656452001276322293271514245308323266052645464198038882143554125641647422629883531182344061322613196398941049588666993161297248459909583908296579563896775902123534954523470377965719039633620842771969620524393735059286225782371301734916448374886153416692929925083134698809575077622358484961298366291994660147780585396812394874378124695177682858087631050351187138562888500447197999089955305654146416309478880408017427451803991972946510807626111623105290020147137591180918164921081491958573370004202446693610276902780116687798169985332455804058170057837825349001963328075151281270060273885164560650472537496410402929057703381393642057960883131662165545082441103659043223703159653918081013720060198285724813877932371738579875855889381295139936775653438623440331243279637313686971075477020947365980724021153234759764670302243951335984008555368707166674694685175645155312540702489287654205556147254200878488881192652665079871986826043499989887650927723333722521976505928936004866093926148697216086329182834655466398430383394045292158794336593359805795485468408936058653746851851436764557226657841277880946960896879926602322324537829389751786697649877893690494516143390370664035934960327018960140886887983562299982612666790747314483846461473905365554274230012500316399707571203780659589780633725514772042397042269414893031804235459269093893454595155420907381002297982102429403210327561079535501355478343096263732869357006399528008090393913641985038857519969684083335239991031270188320864908231340635017865065007162571559698579852041871493688358035989832347163993029112243735123491447174157173558056247617354029760246675213928425686919056725957060086610232972462475780705144586261078396748470270846630439895967158435753136796737107680172764648181342786573239597580282862666123830063421537034317467730530239026651009963472584757017334465675435355643206219326503341999290919891746004754404597151351510527028713925506769994350792565676194501031343615212798912333214589108492602693372643883899016737783879203870688063851188274640995584473962347452696809575389415368527817327698101295448303846682304353886458864944468326187785819418985589854771554985332560070301917059090549552661463997701338327114495109701248870118672453589633205118747255631328572342846326186848435297978576672993489830143666455605656070149330354977469419249631042789272129167636372295857827650193453446810162900447721563049634291668086165583298227590943303724899825544523384029432430014268854521250834084394167866565493343107719457689033924132027842618294307491747257807349027170761165685840169511183867870331539254669842119949885008980494689965660123655879190757999033383138646786746860765809697037073990026409012452484964354271056609365240668730929999660385489682659533364467935549531171699834570128940465009784245083044423787194752327733439180584565991472514994929338293352745112982734817347139446989785207347054044374279184059061150280109251870416864486082711519689935155016922579840188358967653052347649372078180052895328900635749282398138658227086466492993749564479144973360378199904565478262461249854165733035143730086670889293484145575524738792198113462987454437412505382786584629751845757768372431416869151066305136314416967696961202725640064838313983075519810658741543518981303327325856639373701824303442609383038238084792409615512380549136565009568901251002520837593708279553209922368616030950127013346502018351537341342830178616837316185088158929882149243169871773539835652229052613139145437133215661859462233834556034827390680850705092674240871048737056023964254364212629034716756708522789637900737382923279446698086019226978274583574281632206137960270492083785916141061542399373864210870243792081038981110300079901516249896287480249444419604747142607269793384819777895061035684143897770090880645921941771364490916078243934962718630431633499596972718828322817991620717339926579353603604531296036527977561733187645218837081197511089141767484295358017268079811151510773538935657204113916236564888447461192516409088570226880348863606043009497522432242671420004114061173706270848587221157029624613409570714602658259525707041324937817209299008015074229669725795729614648017017673641409896978080898818972571861385410677832507581284128463689475257657859839358118867147487805737364260764949264203371622699201001036923903421346045789859046182766845298316070775801555793974178947985174822015150264626815335903325235440432586170015882448201368980735327989088130125320635508197890921700438302675818055848443697865332741236322248421518163806399011993529698484770273413762461127252580974239691535984048921551795184495525569049538748780562738316601133797752498034877773749740596476568165144703954586181276019641521044225949363723563499311886981817475736097203889341715878637949761913886215225960471724080765800987798877448764531959003573694423710875517021805200553797092442759046075097242728316887701310070525295976106790365808786697440833647820427957034494174246153489275055754897354952698445434993359627267985070180349218177767467048414504157980021860705885067313843912232551859846243903418109073453081724889631179345037336285419941194116542548875435808226045295369158362610020256127140920740658193769632284963979488773180944952433559299674724696228099342741397656972527888831690000223839742628843566758076228691555566722229358520465230846906822751324444020105404367318138814997424855758689107479358334156103651283664714445908865343844719487570022676146953512914571558246672677649838702663679006277848842794222979631073737054604300679730089632788680715353099988373903180578724013121529605128229853303350114437098912438473938357706598504683588449239807808393578185042306756171726456333531091957686643634502992584185076928815908961483993375297925728719454054851812191787951096529416542958960688037162153134559203350561256074363445259854441615828248146785568914732323406954642563165283236218873669209326481299359067636088651680789051610984525681275642640130003676740638009729774254030382653853766238967056943877649336235152159350239613216243705186760708990696770180510224789344851752158864235315508253422580503872739220601096209649265973265151926126600524963555860010080842725622859893782708043151069381664755486054775788823041027318299444593904163715700155400498674039269768699822856552259903171493158433019789621954487398729283460800039538132913930587831399799072071221339809096445586501814960312153596346360001584183733069673371131081440033336894761944908739796417241887217227435927926314876374368972645795896310019441652635809649163726565982402858945988285370292422620254900695897833822450620872982016041013388015960951583466400368511939789670154400503422359610952303522217492424950341629355583947496392828937410059923172088394468462650619802099032361004360249001633281855015628149927232688245729806257540377754760858644584500624150594807755807706452342127360142739758044971362166857052920343132967535945124324420320746143009566766289624149344646055659518346537441464806911027238702255097681839774403749727703675897029988959143368189811676977250375646572738479449676428106799972179162717902652368801007678444618691667160941800430843754766331185431044956144554314193876871983221644204142110549425549941708427481282557412674870825538217515491576814069089877552618596587977033084593440503486999787261068637637922502355121077257358847143731159138463886423835287866815370068351814178328081445719022270246550991289433747865448061854278288710912091739394157738446839290388531087326719786803446372256934176891968025868819084924114677399968461850252337225791541513604741727780147860207152231713544689940399123616983605604978297650617006782637020110460947722208709262418082396442715118358726944697966953572247083505971756962963226089943492675273298656111221458717766690045169283031153096175315260514071308108801265077541642960641849142427316098533747134796437033303748362167011068136149115360020121368775060809889073154420916482975823506110500914276282734157274711963957223001420904367026313074352721269187638965073018189743370876184592985852034007440172564465079073120127788980147628056967090069522120364786308226775462604629312273748188515050594052728395488147201598424522614502722101469696394314720540238939650656632588273481226380547188963934491659085135837468492716263126479540477885027864761058111066605986078364610373188996972277505742485698594087187380747657383842395601652234719127375333840441777057398614555882473357065422841622452277532271018540610722238761851886772627301933583856365520692274167424449252842869233600893838427863771201629419723655021669487722973151050683135927754166829797291762979410420921560207544286074315959969762325140846683611218240257914390165750877992643970325145975480251526475165172852939953762563573108365048619537182863968302922778409112640113242382452528078065697221001935977466955197660333454048254032109027975462831993248816940810310971160412593893743324616408498339331841214339694981531502023309851434554554450824393792325669072987590224225017295146191789130795189184951294004996899732782587850621102479109859142011671082533286563353871651421789990997047167407338887040495787699610979864637174598723018413994518819757155452732259126851058387640457540850195784572882414759776079771387098307883349322704559055465670310777429656431630780906739017359392549593209946324446921423470067449548411943162036376222871510829333605678458294322636372244282343875909817357858390539664469668689809179046757450767523044965622565601551125173777675925612692895751240282553855693856992162509933530295534406930915534238984997658787098312118802176980932503471542972181395801083561933750609337781943449739099548358205042454434256861471549519392158780566739583327010791937331020896519540460333413939132471199416313906381334658763526806480176733364519706512911494078610099248285367780562352122302371273952339269521047628788696673829002625162101422957537737756327682514372159264513302693240008050911499693104759718118647389281530961968405026675226947426118995635757560441789603443865880221668794566704562867431378986830140582465345605999614825156023532212695812911483725801517610578407458454742130290964776936155279104192417511891426508049416964628675460392187768423181497988101483312173857886004890680859601787487080006583027874250958405895481331729456691689854870520710029426746477812841809952797822975244485605925015802210172716516453592514857666707594748449980734571846770058250530563296081761250499395730501032534144117198825012515656524196842050690995994829995802204529579412659109249747909159657431032041597673087631366659816184297255952231978874250002680540296098786475757532276454798692384420633146690535986765642108281402108221729950767596821650991226184483182249311719376426984380408549899553554794205100205695775834219076168146177844683998121827512122402299841639075580892557013035789764174228772970976800027252077432432428114010107886240381126417574599409063113234802862567425419196715645494985139131888051689840776874210501908984971134468265719520222657154477788145323633167520513763136745612859162337691810686077752436732968740052393508821536639681176599625386379730313724829534373504400922426188874266438099471546281640514369528855677078606162213588066957647458911987997571199289747007501995424659839791165861415398859561835225049998562255113941821972077467364015669927507575508653079897485069197934988729025844723635145860775084990532402695462800908841033420741058222384546020726318853935434136087142033581299049216708674001633767243170138947676089029582556968123899483684654826489894570614837128812381726906053403376111719892471462887115767549959575583752107863334067250091220303593117022244164291138892666882039895622233898766371143051725095306790517004613018714618834494902723417161126102643429500955552088503673925493761045629565192146195781994222912959947941727041530435764676509822601242135082689765420394433471112661117534159443328151336424841249631370985878083654909406276963513545080644257002783301769507117403384755747652923287692755554660931224162267293322787563797654360263506062130397279793161885121632707496556471009551887128109417802473336831040206660348099525300464478693452871678370984455557639619510783448065563386558269818435326045355437815938273705304938511406391573074735908480059879795445450128731509836870510297314976029852104601752211783038836407163698150151042141382717384754851241419583933504361433807153681308276526415669247523205843375771719837861775554857339454967302927607390890240156592573881370622664445572032542076381964791271417871444805979184437000485906987426088417822773606102424651369454775801993572249971139035053033360488308156974406549608583736515707307950350536662821502161407156030181750162996144247811693140895376851772143348069512355051819080605930979969457321954987568950801490027573048554544406153327629262172107408954023560238995389721343931595962616815837360038997919832468053799739895873285542003877769745918015153419965041301290290200262305342140796448533611556056790895240467763223469078542564184041052760786079622990045315016653017178079023763647774129329159053818200454753221116723631095759445787923700820253041785126035901577255191933944404304768970035277897858401459345799062231915561583933897445031019479083638472304691012595034373850218590059914417103085157603597325236878993744536165489157868886222883195659606475499414896038487714137278639059731521644796564181967192361666331967686534976407493499218668146217547644376673889755812082855479022734423424021886148788478457086828910487884260157829826823498154140713004970034740369192385834296369066857043377911525929456094356622779544743681554543600497551477157745134065303461579881789054461027192423797579082941734278763863634937452266776151802386511995612580592742565485571734286650483101434622654639899678816829572555796041790749349313156262128210948026996734696305004199696079385156574387923679061239744436339423594590732190300009247595036735892187126571320182207795555717011407090449332360076484099372799364928880905149081529541897584161771065162666713209291164032391857310194703308895285886981508371845285551437267929834505842821596324172162216626265254301424833071807185213965386969929922557734968539330617582400397301474311140042800382263767035338368342972463572821516417112476999511851575023979274776433931584440566443510399029787269923197621790647962230484915291269374006336964038771178831152109313548423417950329446206658583455352203963246235625142556678676588462831052175096989990705734265334943910566079707893529448749483429169253141585005734002299474090914033883095658957648682689944937203651887913820077885004242733010346094452787989290645442600396132902324820541485711241577904412054712886123755560711224479797833665460570673748401412450502256675888737923884776985182539295207416345862334580286508316986830433474227322813466576457129041014105488701556223660755840976918366788930511218118808319522305895550888238535669114980276484060807990676252473063345933231654319264048020053456215504082353393936762614530886604795169573270268415851824344835941874747118322032104639834852559800602558467428324545884426313129520937118190545237780926976371454170983316718623827249930571826300449984832133271914762510213895934681517949947015101493715539440298761726580741608009718676491541690354825595769087684604213973717719209949416516615900942712594137042528795050323567959077401864243456261380795577080461039230469705854103312261130133038626331137374355646390232702530856595846619583722466527011374508110828889712756663796051168139498221282660899074360800606968731705102526722927018344802446945493907115388730403585961997595307437214076978908207899468202055105085518241003810390159286859502949911964644100984114194380740289970974161864293143445210864488211860535313466012898267509415466006903864522546651151544326313656241838916438262263687651113367980465349701292654368785300578745724463242436136161908611388338406380085508343052045320577571307481690247923361623382673921510294542811814266656988204372462322883940305489991739667311959046669630548593382235277121671983353674646863286931415822468355992096427874381977487672834119622112342639597018176953712482185248055867656642496155365346207722543261132703090325378553790557359223012095201821946654389285259233232781274305874099346426509463449043084579575142630946959456948155732210227145378279887459908856051818133255749741066496328430348977307824854666140274512968685034410004934238492612473235076351032077783805008076129762738365709875599508772756246958146888981310804255787807922413754975503019956433456546168662434564616536126150994482200807285910805737776176242963921165045967984357379853025802384362823569408271768847539007637979241932399165874359693948136382638699062889093809771716142075745677896255834294190451391705122968848988402007169165670647277764839116019430968831869778143957696857448033627261140704935966658610127694704218196571965253857138314465523837356347553956238415058607504522740471597587500622492304154580630792219348400710921746798559929652263606196797351372886430420892909933471761347089018960002838755227087434369970116729083377101694560126622396081752999096662018828203438328248232866330618529544621942543148284209335830840806775567935558364757502243087684765941177731659857056508193861704733227215362765763260486225917671699230249862396664462874457692759777571951102817076576302092429748311957987402821063493998292002234401614463011210567825612904436790407438094193811113053846121531287163457003586449085597451948471054570016145007107150243748832447088226968514359566948225705831308445760958826684544073310191474905699194945142278898393850379855753578646913599951887643461763874584395426199314498928787871917070882621966308356174336391459750879263890064489187833429322165780806970111760648574701010226109885423757375909715144430638044432004517914911984431101232186897261228722551220944351434454231605704092965988243544835415018700467657121416134162785481298452002163678368111530508825491090571556765837277213406021308480515421581683488028800750616434646106289307407845441107316985639554339633389794107111514168723488402024661857403076576188923406997596947883707658125092821476692668742258616884096395988318451536144686838118561019199167545103252255048773626274010267404813226817537099252585405765092941460163400274295826295439778708937519055973432649642190194783334139072059774962102547016145940837534181997095365275510905413825516558226517175581579397329454334750104679062077078879604066024801330024197189328945527282724710753037075599761805041098960338335502513528098294787102741029032054887269945872174534485315480690107408508502368275791612619461027130904517507001384194891954446052943260915546857079366707301759801939152428670988008026653077483850723609512786596533519185257724145531563235715374148436456442035772042098534672758933920257265173384834296386422115124612385031701781162527139187785192831810038538648193990418514304765396277423748514619482403261127775839027761603994455631484650031647061432654684681696953727545842607526553489739888549874703103362723265442083417981998400110647125847924785034623051532497884979742788182246122856544869595321815074142474335502150720252665925230380645456602695283712791557764565378227453203199957262297812769733228781023045500351269852387095415672651566539232114634109070117640770853650364893202029013892928641023404972515899176286281893696555159912442326026953370100383862697212938191778714419279965938289506351686601405445914729744275119800327574327060312341707816224114483986085734340712175415108023743718008661742300230432361699439896705529408291188110023599373282426176622659845215211789115581842277921477173450280345736212772955401944808426919221446171051159535797128001303977360323816135488114065181937497481938654411733743211209711305355361540385552048203858376204777896966492739311497649133916293315169570849068992878038810149740409200090148633184307040510790825597028699870067030519872904909674946141425722083312419847411393476780734155691369830649946651828335268096025522423873777102383508424157225676648914858964144315326024898670437879349302761760162093922928309525241785489129362856669061861410825611022167253438874333805305493594894565202989562027547336706062168322347247597841125537289898874205407574698263426250911298710317054516929648319606228837999186566118961019741537839749484366177148371231409874106096631738302190259420726915958792291021384940999928741954469027068911102211292295785673932859689977044661908803800358961939054350009348962821209620113937925894125950080356171516280868827250021645102069820101128315307982737601626917623138690601163525572328478755631878518289265979510651837198592556678856240632037726680282443786315904001092934564012216180392137353744532627963172688570419842100422303346161379486391531521842468216644468014091327354904496517107756258182259825999092759149806388212452461933836826826188924543269590314642081275753337750305887741712060338765071861049231120505913539401480727218819118190999991776592907767474357454550243271746670154696044047018853792733560058264816374032649994946878475558456882456872100699031811413192221228242754441291991260406160142862849475659421347278152787718387071096097663376010727396344537276824553242926091162762045407460132645127052779893133399898491019572732472105393240476852831766684259918328075338292510437230912065948825792308913465730981021422009916868923660095207117160274198000600786367013194720704777651670601623889499119807865277736904638815662782346552592903775326986877859398089043005508826466773222361576544024905843170032586389425586941699296716336651790907792464417770697509837617629987240180811214208553586675684762754216396294402093545219448556095222383378661913586745635521750141129530296802533017299766202580299822096490756489820853247688586572669441584540154916635801843147515870555509966976792427199772503977130710676472319653159316684885350789741447627978941509979018281759257477904158421141048479740392188617360968190271327607514498514383273158748796163921184554205029053636745785483236760572303654115890701891081677699825766122223965930635244097882234851982392614507322507404301280855354839425650463767402289175079585241567199793736645525548345021435327669353487681467489859059326630631786881656896011802507132467708047996980436261275201631349410191591536552667069646884104690444127671995533718658685402528360141586799342965889027910053533845386290148665204698060684293089633219480402521118890419655457188215632639052790205037764637531240122937090421620248608725244658744875821785201903234713236181244716879643547195958757431330630059441367623768825924343290130409044255097133495543178135293692536651105395311957561892102458923755868233650776546996910054880248485052195235267358360286547737063468535880585566652697149962324689471398863545264608248039689674850580776075455893984603479003652164151140003990929262125190138089921344142503957992417673134021967377046263779454600271797248849347386752917777235804363423494098768412470196796219236038290632917520234069491493601251771080702392639475251113986175374048298376532596683129696042890998580204462254108241937418739618353597161863967903953950176559025743539892693413714878101409335124077631993639353488549397304691706454892197532735693782221561891826136894287238716664800800755326281882604187605082784185370494082734670180706168294808064278301294410502674252211920588715130315653625812896178197179048372441561715367356998054538001242257922589044282391971166793058421337557179931552933009826552336152601678698491880043497134112466861519974070742145026165172159177564088593670672235996069193780680576306028475023673106207543742145266568271122793383426354435944738223273619209189123557889257385773346463590149661925293490028413071349102055784211687177671519809442244398015677398779524568283220492842302692786212829232878627117433297625835292351870290704957195701953441998981904008053454670248896516981735239265870767835892939821117356073001084209737032283012982210315602271295987052384499647252854144075590042321754124508754947188545376531319949697956412109608669268756900486001172368822546851488425830692764102122389917984753141110437761204821984639192655126952364634906745440875403354190479093285234443220219683705512944396609916638298358143061379189027647835457995665266586051012426640601887123126354040347971136540653141268594845052268634955674727284940284539897797140088686381179184789762721672763583794118142410274872582960956472189659548389568260208103410368491454630982339860316615371260949524756076414989222106449534106765508713631306583120346120764014778679693144746529652207870704011948057159314938711172180146202282503070338975498585334145833219475621466318146519025217833065810631445853251094833197805920683476202737438717556191417502149497462897391351708779804241840045328985384060688945588380572214142014030659149272332236024594185535649528392124811434860612543025183545795439090513430625419392051689891859061468874044748101322950428365972564414594585769600456543087014919603463179376686579692526477970389546130181920857545836787269411090788739383083951065226149485182512429409912094713063856947982841813872398855330270988585628878273815675391923124255156815365610469550077036400450461452090524618417056872782433515642266590792126066285749057109069365716773782847797639725011695195170460890517505421390359189772383623327025006874056091673005339554180030678861662851287321310724636234808658017237947505504675281076643547809402612240458668182638749704639416392576762498883958576676276386514235958327674659111236680133423884450255629087970976873890515871562738698343804557784341129254637335539654960704543523416424339284039062011235617160747500364641481613425911779815977673620881309970959705396188195641265629344531005443872197856427150927873896872936635198445218210744727911731050600143492367542652739280503605631171211801999225841575228051282586854319693489151319707269099641187819000754143624897198526397688548997705847158087786423938119691529651467287751308617702188676006900875391069936223176916044350507553867712615300819198559203845411433504179114582877584874817618716329648259505016363892362567867932231495789638766165819623082431462032545606135402823670295113427719201432000216268156450284983758616408998466443739586662417430976848909998413664251286540747107495161002614549279146126674800273378468446123378729250687915880980467696529540842736808609617992984393106943787907401051410170533714022195018050593289996185268471197939483742596286955481587144051550557028369114245551958611541852424897545517834825710793072056191659437586492820785998048562569837065421452549908839872914510191522199223728012244540168140959121399870649967347858317857341273561395605483508674200329684048152373275799897144148920921249372855571392241587049309016425742879751211734003626205852508936993412313892740014926021630752851722842282870866948744041006233677483395324947102965678088006997077815811092862424579695485485460024280341483422955623669259413024945779248299000735075599620454489564566119844013451817285515500457218558084344113173656754136710395284206190095861019154507043863189064716772746311234009023097301816139303342338303224879645859432687865546806534405920196880071080628888089896320482509515663253360587059620993314092558759939072585166184557862377932270480597251430537887574234775694267830490316902207088147091653203536585598220709920223419827953190857704600467920351404755685129732280496670918507215102303741698316919164291890388834311242203569457898269082092103368987286052081250268689197745799728337391045065396444577145112495040424793240163490688901753972554274754423000022119674247847527481747979610297283435261691552284305685979245998134738262946935254540190262328719182547658648929645105766869475897795212311983273072646196279466944319281041227178373489551512005728891713029610992263290236687506979642799244674611017790419656499496324828461335897678680899459528773912916345261063503032402626231794038424334039214933794239671803371546417055221461766907709941837780843090980385173978227685039203043871056054181762159670398397222977986698923881969783752867657763233608059163572904759617171605595916538943610193450112815299864271415726477526339637283551837595226931497220246161750223636123233051075235328609670451337767327870578706747567695882624685889234468201255578172041144936431878389462080041315780031056876602412049655766142771497832727375019473693983358914450570189513991667941268622269079211333924470505130196884152502989082614281891564916830137971591816406850620247297903578558549655235487754491785281564852307993128152702117965430909173704830866098987525558868890842496581234718638610321216881871354252827495982382152152851370874216485625156478395209124859666567444452430914522122222581154681513167811046532975702408013928259025189988014354734977176730442672171508227560789008935310312044650168364444294187785380036708829629710590214117561436582699378367713521813207908053877801340592591885695357433917982722276576470695580601270535557033060150774868129862378350193043901642168324873951209463401391895481452480067041368915038413116802014437467513903690705588211815705062271774153800292022407546357490467459377239437693862896798511229728688695393756135108216108540763536158402301766599771697929928440893848907941684112514243910931483846774465825160100725971969080017719670306959873118899828549588728140945887786290932090594038403805771564199047097238571763561008049600205602226007595774153711743669528671465325310913668906480570444043936643847433578194035971105464787153722295881154690806189907782963150198287338407793536108693935445576148133068323658309419754700946764224528439950201756758033009574312207346110991122199053477020388370887191186553212253019475116474805395350721689977451189680429989517836085328180059014109460929400039123808513106788946159081160931942392124249692563460710273514185506349868501898013807661859539900203692855303217457182942007748248774311623323936925530794618748097910207454563991110018149755685017433851340229967584616784256113600623089112557890973503929383075668284928490995187969577717305619215061524049543963353718360986705900420661354220513438752467233186307466418984839320202088548291154477167849318112492365435591369140296431284267592450584407478717651841368823285731048916702406993676960740723975468600706348224739467138303019259973761821982800373238907866438217426705848536879727656780230035771186093742863711949917268782539362145656069264521104490305612242698055969763299856782414306939606797590713568102891162689714690267749943710827002617192587234044126074384541361248545635274749712752063144598082825351491160183664269432332770425314312348635041386975866834365449738392475038485376653547411213109702470023054550844451854997381100554038638521318617258746614665708532551598637024166623989362310259019408154618442614007889278554686778728064629710161383015959427887421965846588622602744362024688592572722706409853975843460773591775011035683910734365503512470407823783250389936858764299173702589761494918719352360337897665731016084895293168762337154925410707220940742085661039959098854953717229386134346388106481530840598876416963222603860984337127340860957103754374333273129674016059903515610192112770780482856680867349676353459513360426318892939336273113148009781581187436786548277978829629810698984531237108097438621900305378225176543118077359306796510572644027619568321422710821973479720427118084593189700171620885287588349809817911672520221939273929691315578543536929621830284345327265815461667638229902354318949035585623385136156076031539317724183703402288206304093770136268804723801931494121300710296506366439698257816795307970884318877089564141450489100156956171536154725641692455417201237820143736139416003670174615918947587216194753923252417237141661139409224959492579903434467039931657013973133814665868447115041992981873802852063655832858941618662041586947691450473995605234667346000942247167988774509297351950316933908215153277916964658901896357613478549290739659745027419410425905786671385445014848085275919087236984087251534295612665797484059592437543215993826561111531061483206351400315544755525179510453920732228087107196570527314263662641607434840531196524780010978419692324363508434779272025398238296149711645554956982892278576928640497176567124895334538375584677347065223220062079763834587300047717180350620032737430098522458336524615968450471070706438178550118244447209285624677644902710453672982532017647535789785098938782020617439553974158406470272182334477595415247216691823967015230905914530202479876038129656740359918736863038646128892288590565456216846917872355748397176935232384162645857785688719074989411986272448039947810704345393386234504371325534341444562423125794253742058334916211527058436965184559776046903400999937154191181454060549243210647394402261041418951893552334165068100620151760725273322070198669984638597799705798744196527288145614121833414454495740346452622160466736589240686361769650593924839057282066641551964483222583567579650147802730320668802010797507811275844759476028896276769994152961276102890957208150147387604894076808981163584951242503540930385409307734034776425327979422109160123739946184554191618893740382672911367576188503168782962359848923559796020116007804385797841079912274210649160191196809860787197137268012318249701438899510679992626501362367345376583798317991100471135182332897053554590789626463687677783609290233774300745690740151689609858825650069721174739973641861925231048909055379923971564396907524543059427123847425820789416086862349325002209976559805478282968914375423388956177918764613254829129042292970785957156097398839967612552955820754284281210022330257705908931147866130270548372418235534536960559280007420492859067491874950649880971164259043151839783247555402408343907563967402055667138765330652078134247227971606532431330572199975070536328113542743460092592087606790617891203081057938049755312750549016588029867593403463899779564854573139247183667150017243841417445351917135462092215197817299153757985667709274078995274355578386576806857553766389428455682599359641519741013989508069247291282862344005534914394040018650357069030140399615151214709192420226925646757599173459706091584729358366905295969892718127975295728261374304265725200912999003578227080183307664389633291410791602443514955768033271631429766127381161149989249626405489451149521977637930501029416741038821611895230225771310094779606090758939796112431382535834432937115501554766320391385177345719747727113596007637255110118620264394145410249482420583234025409557358922349318519187804675479925413011874989879034272049882602582241801126569455019898839013444640105619201264644233224525184237708513166146011739281163443428991758940389913486991134219908986066829380090878456077336351169656241792269059760476629324075277444210116214660136393043362403717579960386898312881237196780290352408331704559037948918337399749719719236373730442324467995109407840846635435152945837553789318653483629295040992975349059213065064467258929236748226914604631457846549539550360034854479245577479456004242233608567879344573612844322948586324324608140166770183139272496865019793650109960877557622941199743561577269143770402056678784938977993579272757422012346926458365742771122210287762686796921420845398951448267849554938456511342440658513520820565172317172337556681029419194325176715931147582888331745034930083106703953339066694850468568640437548791718370142439134410813822785888851217860565205473343730837524260251325591678328504363086967405335168661011604305251166187996863456514415297023234875259880754958444214981025187292845468806303221591377875556317368150205366915594968691613406066501768717536041906286049551599782297665060855239186902342823814414980150505136906280772612540930266694210292852151369834086475572335511878415554452852288215805707043798485808446535482571693242638609352141549907332741087073058665871201774770204174046106797270416360478871333507407350901056178865964958630142725826170287489516996085206828053421826284775163658263694922981359158948729397163338538892988324680677728589223369817269550336049438543728110997180024852652019657289087579114750344970516676547227879824408723533128093900256723681481028964996205981038050347809183197643573216558806368373119634668330396757150575630336604029936040381358359991025250977259079554456616767906809168829674289639110622574463149706008206082070702668130735794548838343069199511874721807926020285628313467761347124194222378378968027926616047122099091005393392042559690360145827610458088365828782802287931290949790513075369254458255600882134864147402483253666521828400255822090143412947289501413573589936212681569180610312808257674553953671301933595940103342617903613539195227714513621836686888256253012644436151352394867275496593372296204595144873891042409212007652468536121343654804076227969270678499274954162561508393157940226139194209641763677028692689002240843894455633140352314227775316581970690617289431072012174378410694221843764872072869192423277108758205135109469533174398038812108645752016171963116981265468315484586525827758520988356887834744778661430009705382185066586557775071767117295320692032900397491032529083697750013486944914770110501575713827257353079945576678323203049754086211787032430431801224250298023022296901099821840875405446984367176306406382068956555583747231084320153416276764509714378539590267481597836910498835356455707392343795693932526615254034639435452216437203618966795842000791534433120610115947213993232888786476397212605038597408148178286831062787853386887192402648301053921559966661798629080006003119447911519837402971887130875217834899590491834889713515837664233582326896054087430230150564933982707990232784814698519927171217605849889514093869751804956108690022927803026997092899774804984861283758822864977886751180350791677526330775650046684335595307570875661121879692095535662624451593692970794444056507538170320312770325347594654082526181523127013076835099301490137844246386803329604984574849933316354224217595663195567838434033001069096720920034398311684221393315107498831871358412391799911747626638498899680506674918710526314323981290448127653444649106387365075708441894202327872060241638772290279650448635770878202033509201527005973011015915289648660939010321503472645537322725489052549480715034026286245330228904126040505609951790517672720169976083601317982388641251427680120543745034026837931424791023997866029829266802157530377693102237717103228097350211005384365621506593841595096032548129720945009312467196917069813631426181766477799269278127534942504863491976936613794231469184120459763764287762520817938775061300738080937173686403653250749526594618444551772656673606720721673280261143416601572426515991277533701734040274297743218253589876523816884871632467894887126724382529212763481660548926340468868352179090038524635490215292255827419511372316362046561374892132402127013035338285830636254295720868411901109606306608313042479483890213519607904318895365637335039225096164230993936257246284584762260149868033401499694491122641941178578695447111723003005503648178903328365919079680327178425026501905075744416250222693243800099802531401343803906539020181247172161062779596286321019721365756302101155846875876413235082566326283893236714753322457654026007683579519528264110989315678496819129648243958473973077993496250305312736315281449951733255173768695845845840372800732689134284119648090314838792874966455555459567263699859433711356301556764459252766450566249875016559864504027380545483565184520784817817017757848204365250183037227078755782479711746391798737128873783254967607685265343040170699522910526069308251863202193056849733044553621373500092433868023968488654093069734330995938009334867097418732484764719394249663522247931598490290021453975186739024668077872710077994885374281787230369987932919466414972188091951805165321359132596996311787078403509724214184186315765201398353913857809096200070364243428957879822155114162601973819901841563547449593725119432018129156018252399061371523829793914028465374417893891586479437869028484116274409292009359062571673534346370308476942336151627024853486920663055208970430350920474034855467601032353660722522120392039083367888404137265555360702728561031987385672912535419556778416171525207098363556573100183004963845204334371991265959263693349384695313298703248951821188749332759847480450865821378625283107954746799891035668104952797072961195866980266516539723140699186046893107016660153205121072217689527198401063761867937696077774273093038460200719738378100312637773397154389660645121979452527901628694965764779476379912152649593976337978742882142665706760836746381085205050591173109244070383872913965849556877883215757953243194903136851572931132178113626039335741346185833168305008700116178841430667482158011423990006907543053022035917455728938437871992807984023737006334540991395485760625017925080344956267932341075410679858660696708541026231022336587206123195332034021934041743372977455519109237500021060528380411622827502696712549991514470851978327223504328720414166496239655433574217157735638061994431294448418899786231663670132768887821190422864318083465016033682588756778715364320469276865295578455149678462367455533048830159590399279542146106502986709416689430090030904519679280377305389092459115237969312072119782445783216353658090485302998473908762966983718894855253614397966370133870115788635036125711391462622028299211933679758208495231957674707376722414945623853974343978204445287422256973275129075882246188592915032726173462659635426945352922330985958376881932919768372247693660957088710550083649697393162978051186426770084370566538115297054594197694005237977091208571375187766998253337891264055706209899302842249111515174554634979143716448391830431713740388060123805036851349829980078071597271411498422089290353991650215393592281851267315152891807308273792123571748937513947674114683174144284157338414752267063234986300224941281875101079203997926660583608147505828433507830131681036897211443399945780854034985992601228637511934501264854871539500967838272210918542943261882476331248311143130158013210302147672961502300966888801363446282899279255964184608248040178359735803914522262290530918895651944661223987679649327287252033012180097738410507608031544045422813005158572660204541354628855588455944418141025263662442715348385883668698129017529291499090628516624321876378715830295498098014395178856467315792826249781882529054715004720268045964756400157124260575033502288016705528451306628714303598331445084473597568157891329378892227390963443356780264261600523898130163639246826818127166619702167886510324441987015416056838712210098735144515896074215944498415319910844226278205975333819559710965386794132142640246397537747316689925277189637704663341489742304152176791489146563204865017491500048184836007019929999122263659135539274897300297043825239090305993654998950645692395557509988038232927367302051183409550162462079788692069269625156229192463620164390364864247179957230597611536714130603669553504654464843555241451199698745464962265397032661104462417375273245968566773773798718448132828413190413262820915783264620497249807568151032159015363406600833206066670515806272055983158312548078720515616312386709578163467023334413641928411969136383582492479264037462812537075797107514596911931488751954271864520363531931634018266986707813598812133005367326547473265566390721998649302719501733131834185714363950628742955799821972649996115101971207365824012965895174955089290185255245871115287145078204695564331539080123876091299546886753079954022544880572005978474408293752199320953457846831284608227467251967950500510402571843933352590640257233976148643957970075491366252302660018165532516969117958568996374065727472814441173668538241010100860769829747002567263227155441870773738343091593975018130259516775739154519348981049546291753989638374420310878266429709276883262747856411750259048198268558000280359412669860180310788019292286528904300932607310885470189718759157240349387717699941899123676677203143580305298803210217424863990163285131299856774328770864384114376218724777927337249931242322760310779333838592792497307197577728105420717950416135185472129072971627932986330117302348302632687811788249457589681534880475175094108643262388833135256003836050284097163659239135639188805547959410485115872484575659585242600166777158625580019900389125973994081170882250681364802334202838651562423628838398892517684119991804891936083643639269209454165140106672964186959828658588549955481393794424671892563747774196083028459921524855656556125870378389524770064398661403875043115908578471406383867648760515849020391462204519795630804233353264079582342983026940621025375573899618098493231055778825455084693511974434907542681605942818410962979791991860580237700824331007000591290085805720995335027260215721438138099261328452861794709561524135496568528935378859908934661317842400931183588620335412806876183438769563614359297462362351147288622246376845913913909943598940790130950586523194223622023578827275959538359636279076398800544772940762005193089458342370168981951756927221404737334056723008432448046508759277665475020581500702101409398644883471059131160283805972586474485007524060621535466465241086200247859226738006973636830196113307540538917159347619639543716738564471236740123794106131205343051204810461920341580108143100547702448322843425194472156810458578731081457233559806277221975894829906318570699277071173490921818748151873276810113328411867192964771377281535080940412147275154323803888325189868968293003669611415801311503576568284424188881089474267096742384309230752800242331706281715927403167997833800560414253734963543007899286253686921753675008017394474740310592069677407646681317009793026026377403979445689025691828846966285401132697081671683074869732015020201195293155646769675267471025850559885388889771871283752451347274618452922355635595367640825129741488985578280125863733463706223155332504892610075360506583001373258522883418779563268354702831270452332924773626895469586081586049370125302689289023640633800840261964465657048107165914862413117214149619712390115447679915757610225728171815215664240143959148850424130544578795964557806226329418758323362877202236162833464480077756431258764487804297267367647357928855286899242986515906136003653546088317890686686146322724765006979731580543549575312343472358173638670110659896822092792415585920544664871040209480200313347103175492167090328029147856955228113269833894152773491356921041767125319252894471608718515838482753854475466331518233356594318405082256190173162288701337293878267365804549444565897722483836445611954438488599550708792842124966665384137781904226681537564166765414667192872021347413510561362383346754577839824380449145417983991479184021220451848797251010573296691507618153636931633455850448101616257207467590396992299329170763198676226892585887200730092900924358632612169331644020155242369398827643279964858878033989004885124798948502662822811795910890450761998811880559509450508855651418394402896047867751621239086854106758947002301303533973568071835308744228434774340383976094129574428576289131615159071675917341934136748921335819777240731825976877325025779833754125161646904197445819989985169684464965646395214533631261137305479906662721193109541584588835113728800800026706547024035155384689987984931663590717431164511712734377164765926719567329626785562428292460939623946349358655879460651757312527599076040356914580978500461879082139459389983529727396407672408692367735514886873289655067576082379420465218100591813165054170912235400437775166767969893832986240396561742853822067922765759366138614604550138064250434418123571625467230093232937894688018819670238679645914460427528147295544917877122264652109527965360187929440099498876108833880289107737241817393754800628924096423889407222212105651590230450934731605082298631607039588811324889154068828687278927803955023225029681011121686328528006317786138738873518605359725841117049432608197384807217472075433972233330953016993859343357177520132761710159392080738752111959334303016582460264020825332053617478402965266916874548713082226663416853296902990859425701470846359749354989915572144816769112793145130641448511503443897066332119735697932738789985578350400116852316377593404578365652366119672253748962586441095751939065387183469423121654237130474762247232021163249899127650321708965948400238251946450987296538767386133210183160603749461387054065487404993007432938663960777757848490811274036012067032631761143925214615772299050085076547124626455351560029632776409466036337915183134149140185580219260757029715567635026118331744490434706689561045801059883973043351586229577201217056125954733063485416302582657090917377581197966450592959852612254492364108754556145414793359299483264481646083334322287070094411203664482225779657986326811075882719601249116265755664857305485688280563795171460725046698095232464903069892050521072361901578640801294941894863492086927811959453961681959158671057971745606437209466584687468811143600930614579012756540957941371565622139230640588156548763863743096381349920756656213664446865918435906533285042712795463119516897110509397254365854411587356327842019683548631229236584013906440346747472955701723013466576434673727613591728983124360167999104369534335409053936317833869367819350756179973867385995997758691233085174368545851119522861733906286315331886003479361225897155059527193227190609806191796700810107819454455534034089227787769777509442630351251142099494654690744298814648310666070111399913835428685155085709883101353305788480385268352606101142835833548214726567457584665850034940772491261457200381768110191017517929189470990983754811446401822995238682778142156830302328580466148396723442266623676325311909468557623297065661613055893619882682076477391295248712077536665030570638454437774120808663772002020420066519137704360027704278304469631833322624356883894836696043599971810014705752321735306278622629448421655907162186115232569645531488492003785630733789440165354629223423124049395328712634236048917497180282202942114581382430990334969253688925976961291075154199318285881893742337134325173919951317886549863327688207267600704223605011942884494740342880723827131677261531852394575249599732492500921790522954496181495664452485763043933992758212911317167159832851389309300246814247012369795093158111365040650228649265345230739693570761568263074206033599336509187304874027664433328965688128269866619680738396589444030284100047559760294295954509229971418405153167569487333153348386223876298689521295416750711056755967608536217434458702736271070892881053024366604580696974929316235564634620677311181294039863472095071369073688169363408161111021422190750911425406262974064350356438457129865455345464260542718931811812176380480150783750582113731591538584966533711146738753625878585643988065183782283247436998946365919067756977800755037986967575062493788895875344012468130664101223469437460640401145901176530444301174062863401678028308462270814620747488119803886175849909144214457571563838385573657503945277363263601177531528103247849352725819311508351919163160253438862198189875826077397512627823543439392275270868412157481162461287534869365334693848523711920186072372368720872966972429572303632378502469128249611866396232180047591069742389790529469251148284054902111482363479233540492792880048183902841473835380151378027016868089393514571776739931138461597320445914012329299627630119552937736559861664020536501629821767493709076201519657332731830169248952369758838364915123060249172598965305821643848738777311860143570592047522368197320395935682737303075054724281782366002925875441944497356932380277400112848794773024451210279688797162336705806568753387969087961773643070176687377080205299704444418467006172235688456784740171277416910647235502655198861774475999509844593494698318124816669280635359747312244048716408141543370093038108443948985908965680467886082876525168914632135096232527766963849000049017763570088191705794712589517878844000574729717725071898755315164348788183868609705407152868288358879967645861433616908246617118162857642257307947080978264829377399075069572094752674150150354208424996095104853764090701346469787395514846961333247092102536838693515915552889483367446113230465484429435027976417069250885960445658042698899766249481350256280992466433314892334508470620982776336819951521685097373557984560735383680640634857461596234425955315317878824539790827135244497895651509426282872362406752744748732526801163267064228696488282484727201657373992067258552119827139524025579779324244029759698356449714038562298028501356541730138252856721994999061372930142341926677004015053352350439906156482409770602062195892589300734963593900080923105491510941054650910422889881517041484736834590986800157077545411829175997206894361732738903745615516143399060841522898730629962989382088579472624057681465300510850722887944554937070198531367405771493634237632948284790971177063919953920815171214731340843651708159348771279687118957627494998265067733808222022610695218290531075731265886989793746933529485948848968013966091032142600742716046738417962168380208606733477664869034433750113730616620697641883657926887013570971799910946106521863547815576923992557704403337625251162529483723135377532299059922148390684252973831138134646278795202211207043056330024088373186697518719534183176767221268838462258498975848129501015851761166968678919673193741620877866316725636920421496279993314941094410032755505483876071032325292827876149026718054736012838622605778567504238117508601290087163297237960060964813007283794043724351838620653360591538634731080532444873401386219996453993609153377615104133491555548727047131362596206198254221438314640720586305477286694388155520945572000681953769688388810445988217781978459641633003836034320772996495528110808511582380792144620149002198429780868332581847975980310584015624019722562413035830686207292126773397457695273678069186677774008835006423839158256434405650512497803139306919984537815114106835782852769554774741110103920703572066348944321603978338290383939703218356250005389688457920423298864993669341369533960275375163945778791268579413572676408877451396298552014584206346909482094047464644730966332457176569228150484152218436438205183892731220693508393889881923008521638669729310479006513505331769318122106897691816827123991329574896730680752215919681204080524246274279671172484801179815493491666733927892815123902984283673531776560603831170504057918386259347028723318141454846751575663646918322873967729397282530418587528764190300744947652599051248323214312059793646527106845591531347882103332527660700492809741426610849926145798339252937864059111294707628750420583711132298654032694109237761757602348680922258521625096061524394830589438989811252921882735359858455471998869780249313195512171850943397986855323962705212969820640704547230749576763554943785674334037704120615218329260128322860329274052101020062869359993796752474596682956229312653530671405790639968729283398686236570484189238864114928675098558367065168898604084464051207250872761453311548219706139565477291265855717177936180196609264178178780961209189024788130544281732168548534390004496678668440037582549008422031178334319120208681810427043230091314573531008162870522009039749517041929342807603668963503459120729798954561820519730230397775554905650762397903358620727966427189185837712411788217761670508591506309986960431751710150046176899415054856642425458123235459641308312041987643988158588233127645420075881541860355457320950759473399894910014538198923613621688378763124349531927883231754648241784645386606319183941937946255624206059800375886159421067274900335371613236875403170443651560356821490939467021170933831386468555362500493569529298034909445067579047337359276731612264409822972814803838695238476017655040645320506778703159097356668361004899838140648178537462024114341957960582892369662539178594388726021985646532771076048540233424846743125216575402855384063488641342589810192146112284789839496624327768092473108294722090416094082932946858840546870378651034106123834176484619420259458754883178797620274027036108892467674508545552659134847177911535734954524789075957846433246181090283029207805818358745734781535468017949963890928665627155147681888847909526503504803605782820862877346283987523902933455501219516507248580614368448351498640646072125414111221324767916409009359578986715830852353742744578586517523762433458444254873348130543946999451657270249171714001372590774635095683860582818720114879091015280322617984681784596794634504075002041523132797543358887631358367702958019545138514929741882241759830987871270002559842403181487577114873073471516927477896801216564184484047381689168279407445813454982545439864208420588622272515331333265219084640864752066362098891100025314607328457879094535337433185393627575470120909068796478603126253130048554180150125545697548052819880978496173008569847759627999684979512787443949502076862620071672137475691870392172859523019859184424887274615691458775215543502384916162499679748685915182082043923012081930257353963889432952862383665952329299789109030503279124101681885417551844687726338934962955950296848099960401201589094927691691405336747236375267263160500667961851296262372042506314582707385224283519634548211856842866763328418657158858934166667922408539566465315652709523760938906136812075436274343954896560499307320406362872364080859807768577869550290842320788591035108320949464958078229335035967600327145495746727117818942302809814150382176800934965431363675147712277412569864273771852942919603347566740050469700109055156524622048168456037965782255306006013638869517999004031843390395466632469441803142812458956872463452534358806084559223553270909318766204126285402557893514905671394909620325126290159282016806322670201410581366793617687270948381297932567783671977206106186954064314144802466388115852525031591843301719516421399731967593427471231226882667878648812334076160258212567539798854819706886555506506238829093846467441948434947061773570422772416139449465962068449972632430902376297835643429880222803531351539377570594174930659089669292283904792857054804782886679337419220226359567165234933769458356171950763855389666291475216392122938324057227514927942044624409052280901944944360617343110647588756075793017603631831670964454112011583219982840302439755859003106254186635119419138986705876153782540575636960961114765288836069340929228473201881546954483833797365567791848395805557347129473137363063160586019700024554194667328768810548635507578621583312381224716609626567409882966182783202101221028518479445829662364107202418185119631851759233195685219614053143079795403785047342190134702405337044398622626238412423547435891043265844852296736341357148207793529033417500578481948508321758824742492147113338502607541844583896152630210921841338467826828757697163942046540085533593804061978484672104861334695569420413399952035408761611599172839872244223184506470552855269869534171534053207773002745846869247314367670026543638461389242599063873105434290511289283751644595678738723782493992381575926460096351467364177428871301860864051045947627985519116086467322477501813963831454415138742509230988846049132043783374807733730194238188510466912831066802330529878401309881172124960795346760036342871346559779152917567812309653741213878363952950509012593949378334145167464879013563143323218039252127200528593489479252066899292654123475393306058211103391775764132682084355882278957764164885586107662387695951088658910403788213760143074528917296961319732786334990762346305658526145470807555600958326425556678025801707863582757311364813918588584890620685734148671641110123202971143397288922072815837313607101962502444493663842903369817670576904064607553334636378357904346269538062131572314511118547764955754406086801490179511801703243585188648620134236549500280147518780628854944400356502121616278383360940635107026709984474098814746911584047667598321635687697429617040954661936806139438713557508835344194685896724163564841320788569627991561870446236629265328012050893204616090971523196763313575674263881062260455002785192795910139852964896802264468852034601045911069035545780068457461794872199812493810084417458092402332295912124505726637850310142448237294289235748284355487080427597839006807383226972943241717965851697213107913560988758937213553906851157761482363805467807035170112104878072440932070220705837950073275317423572594480392096565135693712887349916109037746512165849888654266718931784054728662341571538028823705894953224176007950937856871003487322505045736976330132838609671757310990819056847253318640039877849785525372032517778460858322712416695364439396152176220350927162758257400983160834431065781236087201646010087648415345553999625659569450729840750676830297706575902735121339464553917835899777026515814533701131964999486733970516738111951847551623678816264996099577779303311767688392170971278062894411617483179510494727235604288591984325203063929186096009013863356141117046122816029133461041806791050629889939219862384721463105370749297185971016082643099521404723383791294307555451230376589224306501041692986277141853878152125562755161317190541057557235036646971897679530402887620413452525569023503542367840914387881792471420046067998286178595794381422661504178523399796219899305184099083172670794061306502918873570710437486512749200423810567184660680898145292398811027647383783609552173721804625048762853964723281076818850586707563628793799345387664740327087013882809594464095280862691716045987979861451680119823793915708101334381304648087612375623690529106794010521828091911196908292067211624560916141079425931922151859202950765954178955135178775593969102956789138444282020240370447044288923969448867726524298221895769535100321800968534771628423148643386247107520800412724408206495314762637286375520135650662452905569089221809151206352926470570924170404936187042985075131224505729276913644851154463095773042671036803130010803229188256266883004502347327597112096163576935774808857197663387237442215412564831657983222172289866165251961945300594567006456127769769777970436260390405294248800958065136818472755346508374263956632750908683909512299805570921580847214984710348150612708503679625308472401176860775638718469954382737418651744346659348001074637011007005841933188532116891235224747863209708992686432944241209849299997559592010551788199220582210855260953285749858906722976892354759367429748570249156451303753953360092837434751080158685068650053912681914939391831199177260616226117267575986979000563137552893910256746505925807707582918459084521301585104167024984344679076265363325393236251770583210375243226134657285906669272144108025556880583798609433125569274584795556904390926832911456708332105020355933642709095680424556486880264380746916353022232930321318363155887440982699445696988876122885998808751001710805013900500528217109474208682167876785255368531707445746256865124686302197656142210395247630179542792970097041369078339361177055398655280073248376149993142084057936809225756849075244476412937796681094939686756289697114731047923455437474106640028250312503465471676694119500346226969873355537931746354056091407057685939926835541218893417403511859532166496578672898724851881760813117659332191194951994860011239003793365747272069829141578036895493746973970924439761376456345368719202334005749932577976466692116540515639975813409825945994043215263710591637164956936370797975086896297273434104899872455270825053602008679598448717666006678154065022239797235660090490801480283436951984283065002543074993643770174769013930312140695411017121469230014859714674692958392678973789426616043518149978574645744467913253876822579170507239948100332221618855963517922764678694272837388303728023365028188850384831939225586364343963732227326646476252825738838945490336387246207849211026987051644195250131688850069067304114281436061426473330103287742844744244016362546103564610237679732174931734550652631669986653093023452897592403227929122724118705717695563634436168087004368501105426759220098345559948646864576081872612479771251655293630478186150415916548925453273158131571733107041551669308472000294686977116722036212684981724549469264133008070401540062725908896904764250607897417773855399803303708957388782378826148565299230496128165603464224596955117523370047256784121662373428769793374330632104442577163821226755304087140653494928266493894536864664997838409713142212159312804553326418613937060278071994104316050491615105677133691614317171366403599443883279273559962199550129985659815174602982752439438983798852400433495472002416048160961010663898192401910434519794199508526841682335469383798714285750208853572507326585377105860808151370275138226962662821854987137285908965965472032017854045531403308677416284985118139889882057354454565427781462699749501527618071942606019130590760918134500506746885240206373287522223837497734333234296677798610459055977743062790283947974950368952081274885184585366837721249335741581320755456008858328080358613834958425600712119111501356817234258771137157357269710696651266295429885470109972805861705272241630938462000586675038191334950779583160166980853162510836005072037054122327043945020557435856768401881320469563511167276991593995664270173464466510354294130831673816767196024904657815144404970494210925684473093004783229457757922601765283690086892940066707352913066737731354508076968284574742310410481884576516381683464470670093734564559899681323022198538986672327752528599653721513602425615346655362726241608900771762457211274103927952022553010671246056900091362139663791298006497477551798464908062034983483718714455841614701147442121588081240947579420774038255584393759313924494772062340673785518679665611332485827552723133711905130539944627048215344301378605727535544779533751634939997360211954414145645137472049305799113797028840710537648812351671362002895640156376763601378175125318754607233984852766753612850189379937855407788832163935349066084699673640464804997487031984548889111300221538714666708875118859172559255018790726712141637217918952737463305693861395825578007373872064100273900986439475584904226100775418256380320261427492807373563984826977945096910170803792874895450771616135152203142081264193023650979823144951063512910401428605636114315974497936402462165426659547193991524491015547718174797880371098909456746184729463994127748022450278490800347007130860224165536505352998258658724158913297330942564508922432995442698324777159394233948531974964152292687879854448299688838031052622440808314152804413620430824280361700666368428232767376771346183897282164032016180907088647677066198884588506655559510172125026039633741328526003243942250252985688361149957717134561147525828689408509108227897391255841319721196568239439585430842589269442618871083238255007232834420900310955634748886240732215707778219278847906214393567003733535367185407894694734898831557968010533882489490877273416881280508496385942703888887831074421620526271193493297877745913897731633559980662202414029096076109022749077163629486754935815742659428338718823851852643604326804600384306341928429394119631135253413388510431872204742377558608024049597761666328695212405050232796695569659636295521640276665228877038439132283800478071218426196178532895977240655410606152808744908247014915674428182774629261927509473924560046278693832851815257304297303165340247565455511890608121414397311689192064140909464905402732953253048972291639271455533099251914333906416603848869059438621367719184350222900997513081299517105525678785783407744834952655073944236005191912777459252536001981301745434818726389031347920911861998820871276747120775773560852815633056466477019150587105693849989334322188857667008845927588594745297434455513754804719636017915001767431092275974962367796610498285949024678279682672741592164759164561466694669091457881032856145011101406747829760127866068246599158352296989568537288203760521833801832587883512725882327595298286338148251805826701984313745161382269171665338983180540145512626372102339351733388020625062678965301152214205996560924553703173110981576303064895726676742397317216965003862945676816555948536777066647866148904413077908089496510389521143524218050712951323329777629794712515809537967139752875107259263378856660116845859320778784325041555978159358000580992608824666743071228108721077964445675600904059411188491959574392529494994085458013178107022564109863261433885479999606976144482560712054085324936967727192885178993276665830363803202387181421218745828137486211390177389601943343084680239339813634842527320959382755670728481892057804304110550933403054274254950734203722985244645058482304101798228903697023505837356289217194954609225545087939982481243281498300975560499908474250606311657536759259570086396728893989855306800804639605973472075889513810789454075544102367189022810729178680241179232160938034441411315335696512616146901121472175607229984905971589075701229604652295624344472889782368245480800336843299006747380495814033280669110461157969496007419647417043222159189688582702631137216559620292341059582221740238116575998758511895751895991186059296428302601502348463110108205087789611668271670535802793891600143767654612576242496356802915305086183963315087885745896818470097811716804951599858789337740673623066397521684164986530340403497461269077696434643115734429792608317349706565723919445451905942909244000066968913087060659474420940193096004555356341450770806039954772088179268741163487291971834533538788356731365584396382511405959084245156944954412459935408074391105203468277734531142482444116482446101987918695133594764418413212608098677532093462296640997590162679045762177071430808916157071685058810283743901222001137688087853130769179661436003028337807977293901438174724168823082925031219631379106829664257054958956841370452471623778846984312125030946260633992020036407211639969426201853333838233965518482266879146326029616745330999031234147547909084595647828524156539303117555185766651959203751655402841325652456351983925800886331051055312217328778431983575085001787145723922892633591630987536521385111882828847105012581842542943868807745776998329687502462920594386498483849981465189469338698507847717117083980446373532321526158047541207347249687368677263094552911770704979103570978645040173109496313727731752210800810627502117855493384495389056449678025628028506799181379993924948759144344757845750032538589909471808890843269793691846344023372249233611324530952400486917118461144892421253984014733061588990554639591969682174634465180779755724391232667559011162454048104861323223870999951861486957583668375902512478600609733633918931338853617166004123102527491831565112523843872124879829149963892049021852183533370428944850133331772251953944452904875387538456843371382016004782272523078358144667424855978045273072871937698324677622715525030079859782391206916295513519279212144102389707717735698591611924307703363009795571120251414509378682020639376420382651522556778451662886312958450132893037485694787817386142047591353829205088395792987047754749579965937422989842182447163819015538863953247973462345892257326834720679950968725508942326716903562040387432143190492143066837983106629994122702306153440349922428064029454283861470306480595991821460415668144443753522506532751377213670189112134706287235072280134598565361757544065838985507988161058582982067771531889895063203010656206463131196614205359798153078011095617715160444328822758258720675667227481243300243538076385422289510139941860591985765020769561961508838024371373890031212869043102014668285313773282577195417340965127380966249024121419094506084739847846646384974195009168117950841017191087326713129685671658828926018616131203487659547926323781969114490545743882621304072384823864260850898900826005371014880851129450117588013614239931872133987915385609427593766824655526309208308839470805419483516875122969916327394836826015688279693347524852332705701455909146177505737189768459057566474566608098639227650386320060305159090461267486873200785629724026844998075927973295107689965619797183123796429201763488670968247360840849921873004269482102729187046658306465229579399747994506724536560936328637968147808252394855713245809938888053607132941149333450595061592053598125643334812814579506262833753331060172379305010432550432395223257437115719749869661236276640883975843163323267078543350551068833012609303265762538913254138525751656692108467572247710118318853451673939300108320856427516975779269159932752804670608250318548030020374002745578999244707694588675383105287805837313078655959559166820301671117025454392618236878105641398156433221994993977442613774713023808378030366436848041316940637414205243096542597136568536705921382417340475992910013661036813067418827315192307331657371707468751500156607085200157060852573267838112199252767188800127287798903579131759664691094311516023456574473340208593008989892651756854022215224773823773323988824497136222928052643232984969505810044968759780883780366931770055407997415063908703892922966903556978045618540232883980322238241640175970060776679356931352642137634216358031691182415226527300320635270672281513351120731592350889317430335862297232175886381076357101700960077851677430223691609864323365199416313716470103814061704101475691825638921898567942681861328407875284890075206932846405346455182811604891676916595589233563315502118232206850462033190490012959900087114139000583623861446479121524388522325744322503426618032373691171512758095006875101119487964651059338806457999243956489864883235113620317113978283413104770341201693116760952499096609057012640592956546197927772842889300635430931065990122436683519585833237957841915871757644498875720331345637892214784466205812451103923690294540842462777895741679842636396949070704213403964416964445136670593118788484291885687135968136727408123319421475698755153035730067267288746345160928559075546005265586496884234632610490885842834485179507185706554532411644295737837306842060177102924188395968262095870941403123427842010278814310316453775376897348971530959493399304235564922296009999631672010321126219939629366692940488466561661242343372380993369673922302101517632730258947070928465485360012071436439026695416476620458489209453619211759226490252958920644523915868925885649978880305631305217314967664622969000097811498358888599164249017414113804171230508316581237473989709995815544077931904777804087525631256182813180977632771522983678321115495201187262151072317331947327525614162111740385947957371099986848239509758767405798111043898476949861064660190719452052869108956844033798972125173589524482630653413001968617648230659507376065618884948288420559327068271138737667430997329471534011683715958864317406260520603245743533879334413612605854831822496931833189642119266058838482679963422501923505035536456282737859291437795105083462729043437284632955818393407814906062833339388840181941639114770251220191685464239504318428162726988469047190145891928914129155871800833198232776752559648622440296104128355969328332304343635631606696448402933203079622553163785737914090157895066767306329372841892436247725846700637222784876154984142170914398198689459242359397685344939110274199011680463467082233806703231667458661886585610594999282105426811609617245805697041638396826261471926465217168181116631925621512168364054895895935789601468424316112354034382662371248038848279859492841055591586919457010599930007718281356461658513931810953968845794204037105425427666976882609298601695055847382217385097618163531735440924400812704509717913790458421562832244564146139291010691817029042048057316373594271634973278119744211072720528277499163868519057144639062243682461480720749892012889059743525216380569700809994871078481837583992235142450091575203978144946991673579894907970498884811827286237292669895491338027513207567804250577583370182586562842303704667053148187442535285553277564668069033641860034434059376670972170886784766474668828862729103718299407774997194858505630819953580516895954924378889314290649628474936158001614057719477255788561068297972674177592469553695908420410945804820766139250773478168647883954406703826334202256712887709775302728873914683278363769057774756059381400170816139619743243480897537042829859867010025685770104073602196158752424759978297468663185282732622276581383083666638700230653555758910726196077621256012790265568313582651066262498133464180610189919882539119539013400165632706574110682811273160467041382307615811176704988724964015258461174555430916216234198826576970719944087944618930657574827245194685536122412629241528777305636722042363870834934944667207242457329740863475022527687134101542990710181748128930134486130362538232867102251551343926398934114244976229604728329129991548797345099863145435388795227885856890275605613083455887705968690963348245123018358110647180043249446399347967340268549249369485878047337033778011783324604092546987808168921207678031773916205044002574660996212002677375850378461290153189761973024748896918708577078521429647017919558026082805887031175456363337485452103293336337974273578778421929413108039958331730950650994599977308622064848979896807442735656069287659413850282221877392806822901511076811221964483789291532181005630116526435731339156732684593950034006794466926032281832688621624915388314167395739067856980939832794995031598382780654148337900449453771528857765971903829964090183450508248810582678614644405612035265748126076580642161287658554015346228983735437660804646501042875396092486524442430278266781756057661272916989124245218630873633473776217103833591041604280913234691435377760922231423873647848716612322182164501880383329305462290899743636146348757651404614289087897933663374196931772007085285242922023270860594829646492356481035478738987308494152235377424824260190958276343094716436076740712018406252154073892949103242423015525823106796443901269152801664586306957496178311379426955968815320754695684657983324371049245887509535421669650068882907326977930526316487055074987051720472109831812833371095362034359304205719943326450310733748462876754740638319948638347344719984259196823065443870813767486763821596442008526471978301919376685909166724127321749534211084832140437475985463078480123788017238962495821431612157764363494128889475364192046099013160656796119293486269828406403173801110655447856165096241652209265087690555238122343190052589619834342863911641647119878718037608350730376577398958643690001095899162868961938936017878777896140486320887649035059949286115139258337809721326933905400786842926526404846524872706970296460411665646231734069281005138274495581060144188429621044033585189089870385671608022286783661440805131660363886927135523677265453223623124372665403130551252264452248795951175940996713446915152353235610923842237176662599561985615360001620629820824533108378562798044484965928484928978031557567466596974428545681413275068743945335854610682277126447918426164472618576300238453094751031124512099879822185389521014021530823614891687335387759160311949589195545853601444610459727179447353787267182219336217631995125076470324742205813227213995888539606820350998158981078499518795709795157037995173300110730546353504021210419100922215212865147106869197599058576808713251486648528911402812007361473951591788504920889893954787927529103681632212760734657442390134032987817880666426337982153516874569978427625555036704782674618117740821867897436552506617267138314111101190398782225477627140101586799247808965866433438515371923706739511050779227710388722039797407057709480359568354378568510344780618673737199456038347538478866243731439040105342247486039399299747476653819522567930289109177604812875023680227484787955781602063616569350604631158384641018200436898101365565998431345189514687251650349144972555934244485513931890240556003299379420898223610748351368093555753427007477843353232015256554291391502262077225550466033864668550782077966781330960923522688644795653236193328788519410463125330416854658667653575007891015448479076050560518324964068939909906505800815592888909231716488883406382743601528752767020161711337865424817688771736163392209971718154879218857425404980662061970897732059277007890945177939383023590058955075055054206583636765683123002780303560240036875238525323219203614776698547125436994863671094056937221746665537554252795541594113476606657939195996619641113156330910882998821247344427198945895439157646726718371580362072359713800918082158100110965855802652510479052201599858120938238846900914314251154304399665627664804043865849579353601290163593665819667744389534645222073906113244117984249837306418788197467040602695979139466076109571512212510912415139892192169459883602858884388555851976711935746680345438594882862654802020623733440323155412575160493558744127490495302069536074853995733904346432424164928518378424045549027601379957968575002825939450037020154575269242077508901112902209044206153524237891833065458429993784964556556177998874299683207122389827208714453562638360616865526042427521197965705244588631856735743218021432638425560733129703491715900470233620894061917074339492520700726610173191724936176222752353404341222413273457531142048230914176075730876430126676462866568740742398216804173838047170438769202468076507052932092797154688138139629448523566798664096116018806049348201137484634793771817604162457875950245544662614509882311027734649962908646911951175118457593648991393343860342328830620415252509196318025821151743211896067151167934465475782497896334091649199922260674772340451928354107053601466627303251945691574026662044156425566314102898282164018346651749387760522083976804427364977310581508021930897034649750930706212752877231747957298782182146806303104633335681105967481157269716748529800051935449723155525101284737495031913650790511104437134742517624323390584267363195338288238700036107210958150618452015006594704913744281251475417923998082608865265505604885142541147254669477891201485189163797142726977269519534564562431911383630735560297016580233147554148278791813433178223046407436419648857954888107681693382863198600094706668536605201000614892262677048648120768580004872922545426134778950835399156455184262270623956620341924098160181525425857599193119112087724946170958962325780505999781616124494345175348276453087364952749703779312602055263778064919071194180852361980121707817641002496493042005875543082281388812831329246591405684651599821365155885809697293941641688670305824243613866737675048119108443547183632501031991386472440325846950800976301278070423151597476786988892707583100584517879694777612720148326479715128454776576941406940406167286693405462870178852880426762279552530626309265697811520552354621435822790450061703716539474653641784651642889217685284261572183303328481610434241634420886439830790848061886516669031834393575325132301388520990791209913553976859757387859124227181754953588879060024887281215248798981898676525217142042836457903022717921311808618069700365438782404278200880096941253216396004037447744895412020108932128761224301134598874980163417794362958595662253443685611277582972951570462115572404013056305719381567881271128049078073334351493469803491877783600658582702930294235046963792817189572384834779523942477769790650039687218529000402016131887691100340332861430232610514647261310550369129140808950165973676458864004993918415656858328398449244965783456609595662482043657866534513055553184808495885256352307992577996512778938803556037545357696938264067335887033654989008753781009084370661797072167698879088320562216468477984345260223088711258551973827436280700350697627920464450415129602287426378941095270923276262279481884364568039677397075021157432896761626634271384203923966471558934742778331621239110078347319008201972705815901796915786825172321455781004413575713810633432440814578922155132092770268329102129751027103118771414100020307138250783756713820548074755057491210169095005175372022619104726097438440858106263810210578461465959073874593832783808145814328327926402753421808204364199963841464305306878858954493942426671908419625764722907280361704428104377256534483287096822532966469804458995081983484730271072505095466728779869396364966312218296354184251257509833463304867589207074000266862501663222944624844355680037903640600603668721509412634855543987054893699923763704440269790111793501385986579407745150366180595713604565675851571239761511027175435246761587529559462918668500056507262895078379603094557431892087469001606033428992926045819618561984853540119685727850343558578772950356113024804301587109260832726822691559265197644365992672857031772090429784690712250405304400545730938947003377982003754479042200345854295668311697181488172515674372898333940626697739776517772427190848186208806435442805477323835256851517097085504807550943364357056442628196053351718634603884838549060220611019203874621992170665548049934319210615744785087431027495325558591444639100071291289831681487791314685851760701757886486783716436458008738223341372090382629061691579917717058063003131825196525408782778251310001533221244905617861162805059787378921574177259387053493215108373701390838701001233534648986324953798806398213561529437322696189071077591660888011909826334396033901845020127043101163351660018343209475133355164286367139318093864869558193616128114951110279144475211262151406725571527804690494387786089426840155375779164739170441035791941335298057633813362776000537122194904183706139292087407546102512476589682312047125676322463556053867120216924567690060214359057918024648313776768449906316927129612311324420263613551298033453997747038418026560800244848296842614164088369438562031604617796032159240096632507928767063773245835988717347658184992058283720800838494725966526182382543735484771072480301997015600673003523490363857612684621201030538115446013860447983115897443133761659890961147244258823839251205800012447409714726178561133708266086617016020685727895681988350726147440403408672485932429051572248130621916847006676351288475878578824565462288779285532287885855152507414747893856452976051467104499827352185250947332020972002936168349838203013230789673036085441771688517858922970017097093510525868384535922534225431563957062437474038814532443909917841304480916240483371709751301658952305203663897494935508152414860330686273809694912841887731785907677052921811019955348999381087269222947714003186490751688672037832405890317692934595365749458169645316743543628705522066008961957680652317996841340945102134544124057656617035612144953558807298237624257865401108289292262044866302224514652977394307370274182278124443713582883624659787820680249661507540052060412655727303387400805009413271359938915475045471678799588887061284705318541004834362166240512007679473182102350161892934514681840873989330658495510219485856693248434396779577335376266962017470703233749222150333657577007959244679569041826172873171052232811894884342078632680157903446230600338794778502327908690499407265932880503086951362531210632217609714730910699732003392686258009588825109070625930261367309019251618604960207008782116841589672933329372588265711577250308134575491027441177670706203325647760689537192106932662921829541389235725518293440063980029727360656007285968098568853848878376359276263581979443278842288603333500823636697591655753892500232652873372370916901672953095645142365023163994124061463218917143913308657392337396394915770780831259622311321364752412193824970445566786592344153288770565022016090061192008704493790090182485187378233982228197268274540831932663642196555405410263004174122565208874961429372446126328108602593010596014117219497981265781165468829431618756147524271203005729735753239250489314657078995416584846341798677591114579077549762746962797286307716343160039234702953273406388848226663834584955208539995616330488337694725782676918838478576782228818065114520914187800163975061550925314159075509668643271015341020098815908224567573201215542832002991004229678988484552836338760811625539933943412340058945589562242741429997066697126322975268759243305760453894344252224611966786206054784739930752498486624664987540117935111297703236890473831133930795505367471342688193701516441805381909792064764278931108391613067685705866261002858427238287828578217669105112415778414773338661026729368527262640137820741835664872755879372365917355456798912486104977212308910526440809714165289135019239849168070701719510795993331445298370024365690111546878038425535758024799931612491765188633619221692334835609947887902255383585903736587270170017008082590859988355339710075178342508751595107548342850346186755894489878438259118634109722066523673370226954781847023728265131375781042854504808248476722877178969396288641230986611041321883850495166373925733812063131357167035013230622138489698573994603107801052902941472370887252305091863722041619692909439133117284136052581219348549379776954887411769347465164069731060344638171240721039751602085082601050723901836786350312715287747268508709236176090359418236181490677788017537624985263746178754044245531893422506653826594647066606459913581174405624055524525753975549371268327357830275205125221698979599021267587372011373741885222962629237143127498278611609063354754351951215156230022049968391556106676132916767922446880236371221356266787475467774481207378942087441937818064542536473983289364091539202527942574299252411245121511765337104551661344204343293021979410729206099426561662314569258223605855483481244476028112223612375902445550491955904876756989594057671501029289369427266301239386566673042069229511405396366055471790718165570884947544351928552406577397509368990886354048317675286921448771982220904980572343099568577001704269030012615165863992907869066537395425681083786469568803410556939268576114574323766310839253845750224691906409244994256049688364618233492316361034971526747423059655502292457857409331270524272015304364592855588904056938716996489713784450563781779246789975113464008570891699254382273209926756921513949313455008982208536852553552332984473003303411720956475692139017083271195151721154898984744879853840395328648682448744359734353096668892604524233486125604501464196807487291064943062620029631520801155265193835623938084497309020903698584517856181605185723421216038526979307258228324629215226513752647089086593384886241470319181834554093902549737398117202095625383253749242269873630639618878521313389028831199121039896473917586637849235377767353123463912590138054881351232039379246060550212283116909353288331622889186126263321043719307705496067800794068042604885042126277128022612656315285466424560242975363106561951318667800153352349554213099331911626213928789576750349579918871654388603905297940890111688835933762630891393398601220376152511947208993901944881383382423990360590865218480451633601796056381154366185248099157988328239349619282354579707036242905788147200862960775103397712271581724167725469100711098652912004384940907561273871294724167526192732593344965354480833844481664684021102087753064003309935567102292232046552925754958864146593370477165489170550971896568043257751542964690949590499054811536802518513972483744195311218234056953336078150417758803961279532529942022069851007257333227578489917633464742493012509259207464912406032515104596786990332488946990489586304752964103654942819454746142597524299601439672163917461798917319988451550691026196539195712209774823663165319303181735143860953052767657566686261197749703248713701541911544394966356891209779012250717252076205461123452636279401207521910917373300701583563154348097072425955583876493709600517236464220180897090471956897144931369447083925764340883080114586519850037105223289319854156737415588935826490389083407853133227396321082895282602412883418636093734401997614300001043145796156283629858889910366998739071429767852569161918071465508425496470591309547685935887414985463127571482324366966295121122632117871186292055907784763954961481778446114189981425116078890179793514464897588704594336164775584070568075638577139530841484106464664072567040942688709484337536311377051501245246023856623030643399306135235272606223259597515295518894464244065713914630240900515599016780244796138339929795396840832086847529242714120079532131337748421875280825067721263317376301149052791920651600192411444225457159910605066237970082556047543832122272590758554269340973358095995877628125239683409334965153046855585330210765421018617478413441864439367744739700166544665853733565451775624144146864573417365257122328883233596729604751963674328635810728868981696839669237071114166821392366566953579951879341576949895805032156401091746526551812862673999600957863394208567662432940711283327483700494322107710514671664869422820465299261077494567636785762509167297580192672523902007590592231655255440887338374151449304555534637531180383749689213235784460346861523506304979923787220777660418496615737293486008428379606772193489556214537832449238513606162778366408253317141153315435184570037515036484963190737642749391607795384294048848179568159931708473606917655965495077228322758441340005343711793128462390520402432793738679010748572375665007864975521237464600436666184456335495998355219104907202442134644832075021961024350050535980547697089619499109653484180813376823467885685490352849308816112760930326822237938282019819558241627482952383071107361591473483382715415197079037696857394248110419032777986805473343501066860310990597301865032390524847298701284337283404484990096372926166660456227637072382277779457340080863776826594131215870784144585308693743483490482141931638671559319860017864656433214456344888220649792165989158695038176233585767337897857171186388076622477985918995249768138420966776931279114520214665060430197210177386867013218815924675333161105001659162688158515470793579419840716029562559741269609188462892163622635852062273303696146334560762231413422288907860511185158356189261039287612646092795510154124355963303284945566775175204516556563405592633044726479086226340190549039622842479277575691565704110236899116413092167080110914094148833945328972159526700645806255040011103897976142487530094904903775703635174097223666167339762129475344009224292958127200360021131910875032915253023736213573125935450437128271470752953442674134369966957868140433222307924356705893180198817034684643433501061331136608381899496026230582119060426795656626443499381757889630208338114209800820913986492375898992788924161979899413663399300876234809648512609965127591680343733824443989661717150385602654008046885395089280188002109411170116874627176231905336179449577440413727828921960751608018801641551753279961205834686719470115249802651324381773861902784393384940767558917740957950365710991439770140961446710496958060890145740084515601846732026851062611394808645708378578160353414620063920402988081810856145914032180756134865338207838357391130457217073080545073612386787068601742068060770840678155438596762003395337771794806463751649677701440380298782350902006565662546279496721985468370572966636868153531641089131757372269679396096858218289849543343353410815448431948836355921185503951101284539830724150133451170475796649507051244856561703764835307446688694976843332854441761165614696055972874398708980103693189445768459106938054892103328331388038965637618301763616944173985902531959425647328521090233639661286459572293678287755863301586527423029415278114348142779491411625772549371628093919627233526574487257019695568744013695135767500525848915024987345875423724402457286686280885380643875421565348733958192284194918317273537327925753379081288256233575179812265329737770719579256051007017985023947118155333373177481539915508498510708584297944270861602022438305349477238193207270262339496678948771381929253856918166051007404445511414010140993022843915876721690089847796871243743031474089552367145855484101796293303368798480838541577733762352607601407497943021250634533307356416947336996235818840895111894705688741610296453715831327667708941490234608642798729289053559632336261085005395753845837900464593698029238753922437596834673347194533135151437268716996930436676556159600337892026157724919878069059957589054865141500295818109415057050800848046059941548331780554824998916385715864333340537671352549223856937172052306091402289438725658629155591735288889213053984200235253797135424738928807929625606546004611539373085613110129799759936871027924955934377231526767044435096109501183615443294373716836071913985690043829559704925995747531599814056304609217309884808693099629069149797888315149184186614819219546004943307795338503935820786892769189268412527411404326041375451951074538925316273091936450447548807228294338905931959675580948896271021156867760920793306563465058248625603085494860973106889560350685018029173681876983572654299592262211495821627506207961784979141191259352604627799931582909044826562331681028190444278370813767314943197053182185468825683196451809782820449667805306450978359404714796807507560760503805970036466761630414034729731506020082988816910730565815483878338234318319209901889183169971574670951009848478101309425227150918885660804838973005747160605872408981759372378414206492147745581073895342280585773997286224968989177922005180543936332456986117363613547892352488905292803858420506044158214571739661059205809708906983810118028474836188736993570231002769741871600354136890783109177574674259024978105527038789288222940335574489537970663643870952413790969621721827725166305577885071526513333824558562757559214371085961995529547084091740134555222967503687148728269608168956246283654584829123516561646377724682458878957986281958953892176336962599103879942677904358938570158640641189250161574582630868164301672546961491138910047932341662908745634096102899521205690426568459437871530952969757850045930341727488499595357119060087671166581375434095948244838452873940362503634295692889205622723413390923700405462404186493304485187356934405978279688683740636137698372992915980874402345149656222239216176565995571162821864989622347590890659113602246959209427990465784985056522510498246030887651662128816878204687786390264847831267829307963989551618867259780409479156454762975002746346388894282856483147737936108830915226280875115726270332630722188587655696616276435663117392311632898128664908024418283254195853341160320499729135754123649654512321561512248688341577997728318072114342240109580584074297553834077631950138990201144945055054986688661433179943600473071541638867275476401018040397799684852288496020621064508038165451962111678352478086261465235493006800166206491188103472048488250732303934481291347944066979622110570247279631687701921237427822643233713796543165440534054789410597448480117027021604888317767834719305709027888324373906392232094105111788751730921586208756061672220646654845961013878019641082738990646668093625060209746835042757474598453417671473784468431879924828711178769181258430599818906072688398551825461281797476366434130147216314726501393383682945123869650221841809403471680457664855232167760941190833147061302708144936259851457881000720626966312866123723375544178278157592749219756213437368761028936685294251235054237839095920780521686396909511999950963481483144540368208531258404376840638720996832895635025077473982750568331009150728122004399876836438970833684779025134598915149107390938869993341169900540605255676138159573343147228191695221788361735008917052916561391750320836789274773837021763080233429245543212545578764605677872200497230593474238468132169857333343823694182271366631693224509529016691165716260801005381417213056738718398391875168142808260597688745294535627761822446405596142151317092750302130642383019540606914887032677349021379407250846341518877581426988647377556967707637405705015657380827585283915058117354059249503161613228229180225483403344601170849535025828954185811378572478312268143654463948525252202226057443017612485794105241216630585990612962476249497204885455385782533768447493769834811241573209743375083675966677802702726225374495963845679357884474209368472754168937036551109411320528236544684097024435874226980018671621068221780797736070518147439348895242942191625116770038846853837893513770141987980274723808324883519934338943192594892949720719749262886402110282876343701689795124340920210134063531323977044216694136016620381320877970251760658036442256849470732423565548198441236908435561431469166942076647538302706230144143011053543904030360225037204915169482452763033498820511079249504138102047102906453768684463911170797026459920184618279500066860544297360693671329605114814896436322445250802032449791557091196939458477409928721467232970928415505955847118708787235211046038120820911166432231786768020811244535157902044859469487875401298931482489960495286576495314754103431148904434733678134429032062659894592635491513010477662133266916042297357814049213990489150414155841676418256108111953493232152676514512106370524572739965424086577486261972317066093251633860649086538052077081500795481313539893241078040205610316425110500179323538285999385493918895848227381310762626079861102635247184176791487234271876430704885830830032302651740807992850564001436328877251132655777463323275575823024278011191451109011817262796293329005623534216204778078145049928710799608597037295663887964448538695183410557768227822392626639093194152329901824400052856258542232692540390311402606488709229251172640341318856855117707527878552154668985371232220531887645071535987435625759503197511459727837677040517598221891718887899908894954534582420149324196195471089064947202852728739830484268964150208977559445844408698107158568950092867210008791462960412211438467264474423100448758364571325168150535383740517016674948566538829001103427218039148428567617654453937193842789737529892342563842037311520344760640351786012897582795444390424140480005419554635224665042562833947427963709927809838291758588092667710836695246987361651887865534758675455359603397390661752795233210498495099946609810301235576638791136469135445656164198693803072881618695454090095692800841793738815937529979229555926854193824937010559192980504803456802475118561097664287437841964087613460555794605778174654930862089020999232722470208534093754127529562709712870580682085328642079403502587308039694224980933117635953870737947453425421708292249642910658909023964400353340651064053142840062706368589747006511164448145602006831081364253685134820499151892782294022741622323925879014726410141020935059742062961688751847450000993717213098967104133390850379560067620191602083911878009996349181133999841823441306303499676251359513634064434730357786470445561279526775585134447780285541828961486535536978447786310314596113738865107128864926220383702513736814594734962341786448338867718456925367175609165129969184166309935590716037503683622180885936606687196071803181862818330873586474343895650723471445172131000622102394127397628405172886221843096483809768064588810134673188571620900956247610867039221569937319992151155015729569690635403821961495626614708686735473133877279036006439174330544036718859117051676781584369784661757212685371679931921786398399960241572138926197531817203213905758745059452880203728895895914329950455888725820487372651140067815577447444754251568998744074318067804613215346927068558009779065070106470911511879130996895605187380347197397417444517781241537908928490340545329535917497123214751831640187115418604605709827061930946550477596434076787561018341188055143704995218843765994767754241231502512495564270488323115830444388428751847925661753397676323044484848255511476205100642628719911866760791766336439254032903005061001594980607382083622093441035445761460522407110789951612365237971765932222148481315615583964453541992484300535523147676604119583641333314149342163106044898206615863619016262394162022417059003017327344170239614552040886856946316183409553355735152395539430567379909511381236059378897207429748585825522795321821757333072597555390098482286039999785910487525433542513210203644004734938888447765481413246727551773197732943175939679543248881592457966211322653765429660321070200524678122418317351758418084354458135459003079916256620414863939996616845020969232084933153661840878008793965205547785792527081701162301127799469997560217398271107972069405475049681514340805699491771232434653595920503290638361626766886566433964033927401117796592570955517040616545528792941197629005171800527728877668285639587106050051471675401766859337998007864745151511301909511264960261301938714272204734812185465600993668466627766279828849122984979289336913155749776360302275703481108498662294217053764055550705741613926893550950872619562836340651941868188464678194916833788522633380585584322257448086009808344728446722370805610724261939921983243600856660297130626334047498651311922336270434434425910557395868842086692505022498512084813893839945006610559789178240648096110561551400537343779145491803866737326121489576921135100347241793329363685230112568899559772418357763900826688276310973025363718344435599071601592240154852762803020262223355506312082621618563787694929053305511609859930116674222530959478832774894732815859089711973506075463364426888069849829384698720073002775023632414035146927289072945098773205457499915346349946979779313429782082717184942089801945002468184051524555360377136049224465111232026266770497735703897566892613421895469778704637111776541275844680496708165021907966724574960074806149543089458395666807796041174691299435645906940293693262952568898577001298282348793004288794885080304636357816515003316614076500837198547446822433795696820784467647623547708370440691402338603497185139315837849767095791690661136409627385179521394776493240583817593428853248257623809864731970631049625551968498262776337607309354849854214198780244639981967962304819526171202747237364967912086591015430036910597445241390858479440960803862006372167781001356442402476810044259908478545285105959332502873806522944394011127162916108436665953279397088261665355640731609944021240047625311996062496013998277872232366302394808816979248575394586510339051130210622132023672908288028159609837395501836103090671991059819476340015002695382286307536572172445951496037856215742165207684307885380359659553793802992274786027189734315488604203182105326334141019607103321209721072279050928888958889006699102898442920787870274926113618790850440284390833339850458956763092763970137050142552685574173916608825766555454982448694881035171478497877120790378802175232367541764253365450371369202626269996511789365547700504535449641846818736291397496353445196729450885133927104485962175694348312692187311207013060613169237914282305525615730567351681261164910984658600560604568253811067926338951979474318485522639194996595815468084620437849367190692383777772859285876127334715221932979452950544451073342661822457716662998413054060585996620192719247609153718667525578742749581637401768774218791178299707323105435391470197584979071590877420656128450638307649309412819552899188056284079291534776451480504147209330668873128627623065039426683160479029899002296827957889488846486866542094571499177008179801021521578710422446147487258389849275631714948070051950637648592303826896894978150162257298042987678310183383699678071430601644722718491116000774011867683551642804405593782632337480041898551379687651264280844318831835225656806832195335028168531910594435686578095019785804610922294901150510550255816923055712987894693124827468380394822619921739056799632808633977827592538920941818616727377151022487455327850344835726494016950383421924033179748286519217639149612885614813994844016978766140021325520872759721575384313602879894564635697646246867590729148726741329589429408605342568972047480748932253714196805911524389483731623210516593395665643744010255222251520902403797843966758004991944826614475388365102333785749447040612505731483842566723526368247725887122930037735168090822522975277697811497896103359615777898688389015928303133133629756967865050755055642030317827123890326615214303577737168063018301217926819165966199934823880976123344020913459865021924407539190988663855797644155320305946297837815230550845681908274017188996955887213274006353778370810928821647814573386221278439322700018298673211918923798388305488979117530095678213126185859607380590941463848170437238732339306898311837092284847952441069795649513503680547613502355375400568288916053753804619150952764826185134461117157140887000068611591156670810513196805673392988387496081963956793605700712989853590918691058125992417408357542742782257228452279380388945611968844109507203334967197795876908563555837423050483862373844228138030982830340379014976004216206902771318011032982992703302846239234694576219872843995435478865903145530890417755891550686533761781605364902213917890463262743613604727826220608337711503429044068875910612450177959938122354040310273235348609150515944909555711613150189340578362405528464364385323900026456637669360319355479626756886040340081898468355609074779630804058936062400097303439358598745266481883367398110713397315159302558633732596457603379863123068091225067917450243324093121058555075292192685253925367543889480365014705396200389018175466622000577684074202946999917169166492887125183516957861183458191716845080597881167690244875934165059950677198396202353632381212129925573447251645380009660912851257003420432334340857317995041717956625870958722960510682694119850092787694950398925084480424455552518214187379053289755395181230266437527540898906269753966388180473235976714437628037227257784633368487001828373828003502238016219708679184369787027053179237159780085971639448526382834987823439178544097323063752330675296401581944438821566928747188372721418439101725996812614638469886460481970617961551134310870898177695307901387445318755756576296929167241423703299315971790806546879505274455492117373535006799218084693280651780840709098715081772485422824163720935558086772522620805508270030468292648374749975202840733610042094770051966212202985037868994396531698466901204434344718759171753036016369484665958094214406268875627222049810305803661126893054407043095646031587638885045441951228266819160773395067770390868831239879189152425664929297042717684522264679898420810862373810708420830508158868272326002399273972252781407285065879781645380101235715931949496282684471089578833029226279956980280098364078890279769106801841264647803248636243412975436435552238984167421956160739760826966651203271799152774389200356288560237787944132179148666021474110484462073627382180289626188535441040506795126997208079690118516576338721952339455587722095740755639666422946347457931058629481815530446904086325623603699394498867443296918653728758925681785752594217681010702592351528283726222420508294367117372601206418499161326493558098898212370814010725523368824631257321762448105013017390350997194590973237644499976251521575877527277518502976983331660664405568316276071774557984967632207174374755033541328387715802345256059334644471323519767558090006177556838049635820591402642265848180880114564768025805912156095599774215971181742186415501633584626212810866245509127199502515323824396193065649279738079260381147629063811688774994568257456550843908000681085335042884449317238500605437146547157800853286669246997175775122230344772207080196000534977397204905245619336836041240613150487348322211594591071925341170521017365768313221472628070870140524404404266646896596765509176852091602766731061560699443465354135895393708490394658229967326510244273855202410812769132155961653196411536664582708018688505033893275214707217466657608378037614756124236764806294954471886466082299021605382534459112978749199880070328055728519366187215699356186106875702609296545922590689654899308731324735721849414843008673524165277551108901227104308228702676346590706632258570178838772076130314039674240316419455004028216156163316030022894886632178193657353912108206426836235342641754114405789040295989027731180104298817005940542530588993949829978091109088087040860318622463780686654227791348386672595142472832322872901990133842803918097895266529621342181908035259283953356876543165209774162211654511863451111129410675685182292001648383558092619894123526145206365628528887768957025913889229106104992865445783865267563332237778281236878531459444034605307922707055378211507084857539170692372428282498704733481121933183728817145842567010388378935044156127176802994403642654505852128959927123002541649744504302937512009274545242641634463425462491362817524169829422013617844077939426778456310801243879639271133630539632779256937334753486301589262052490458299757908536063513009535855174292683734617227592619472109670953028459909540617284232767791042365426061575979445476794329484238721910682105036556387120972515627607987724394014870848109560785973309394904229809914911884406606172282731069857543235728233299908012495938599493100264861020040975382056434871970741477732485260635905043197382772054375333652325488337140351786857331557066565198054653243923562620511724617524223383434570196234969676289926969495900492326229225821596207303683339675307729516070353881307446289915029664465542566441930089181714356398761846713821906144443685640788264300344166099060786472456980322346324270347289779734051603963610560997874304365406203013069293506798435227415207821655522330427603985740657328691947424856757022625899371127641687150279461043744277445273805606723361851882426193904316299853828400963859182946794684934321588594472447870821370410376410011091983716849072020101060386401849187084711164952089325293918897990590706402544145915211682346100744263043817481890920157230120144878278221007957697424191731450113477606944557379396348143673609087046393603839859210259653368776123612822830757766285396138637064853233744722570848602000126764854939954534870851515549065984254407267551152286711452341854003299527231728073862385367683795750304303011034317986990805955864268958534939255241022337500055662054290956314575565253966371236164739392533782677303405906860201673425621932146074660419874702305629919871257067482294657011977302988164450106490575781891707103036390980048587050100890688801058052998858419532711225394019807941002459741375387582008159985034580019742636752133733321679321709184960968631627105408653332082892407099089631557055692263848066288641089205917242073352241200095669327071792804787957122918351669966527385073351133347608069008257414346328084602252724738316907701948624037411411126001917699358118921783259930491960734929013620326203602379312627105893213392201151422094006411430677220879858578431240203037591235070974133824307457600318475374530227929653406117590241967159930972203628236137887939557679598417066415323104556476881633198140002732018082234721916743932316311797514408237715921407208276971600245814208329130742068455988499721410622304588715160181490059777551496977284516558499016945468087445730726618781165373502977726793057797429434576374736121369721224626697950444106305500277125491944877358213518119323992296400159475420160048347113824686391257198247368758373770867067585812923951734604403461275029928803548687156613115076606226925700223379412333437091717131845036938697708831956516803851810656439078555902981935957593582745942967757294377232716533267913638496702879852828614692688603834412115574036101066286705803826044800428231818368950329307392856026967031358075748269314071627809280779680613743639626835770713999435375827010942155136764129643872084237458702377403557347053308236746684918146124269439072246351605307138226115814219404537070855727329195596155546321921061625649061598463853271832150240116711944128212296801753074992321439277174448673619656532395799012534289972148767181664281031283863459628294834050494259125992485217465123063416868281040779954289931125476751238698865541157736157234170917431167142183585733142736453036326719189875250836382667498501277056598711689154919530501469342355081711753951317336771186487251378101467079242288252410099632365011840654197937284455464451495636893334745356486306361895668186659088672287847257525299287845174661746403992139652030935139355751926085260463028533466887216139520849435554974824655606554645686928517438997497533679227956615889094081987272103246140125854711499373064428435317559190804242002155484983528492214261403066722552848940745208795234206331937332658333843192374382348538814403990472946947187228130825482299800324503070357792885321059449523906067097965765123505899671187264136976712549113521411563348694640075697278603298354993107345833967038485880705030126867705122094638638202908823558782422773446953712369364953783551392159215067867161683372647212820538719784310224888547442157809507905713980309300342908022855465778236624563784524301454454670299223834590739586796967313527347800609386784521055048198969279454161195652841194523291616157277003484183736700338106016402874107389890316556758231680065033493576112935319354350725863428532298314276056801025834797852211230836991716067745860542728957275619651558189598555341298061077726373677696856442956129616688013105877726768460986439543564497212525597118807989723127969795199921975300603709131690272131431431736302131841655575718221295300115944679235012052306069707521735545571773132555064951763392900256116580983250566014581098044732636632879836881793551430553755007821614000875088438845651176338092350852849996856826777821149310072255509828863565113978050604884128068834784061208714014375845928326239501594739399967949466414989019942026375234203824399063576594468375628204060620340684460950051986741510507819886366906015627369411699031364696359855188407346010657679935417646583508448284261134083334261129121905516411371749046522716224701322686313308334029364661405000879700117202921770478996327909682049353524108619226839970272520054588762504644295197495162583070542314697372376049744019325252568015615568651589993722727000006956896197154140663890786906283121034818750356198009823823072319566585485879077127072310093387633100505239446847178670433888830421840009390405632858378979182592853896046430337182577633306558161747978881861548565104233628874845274177369006254011540535492890525051673142177112787775185012047719150404511433078402036168965008849697778843576023096337322119696147900521374003131519308945061595056945977328748164278704829843415294459380819922744724034394143024018074647458806261549798714210958514631043169171386199206548562355774274998457240916432717074895741641994807210758731194708552974662722726362033408787680489034516896865900300670653131105320272014347870515695091012070569414983614879725920512694225291348271120986653515123355304476778428530317338447508559614226076523276541304347286129089790902180505567795942268249060603742164950136795986501155246477058378087743229789028045666745167400786946540223951314251746994522450758612725072254367487141396901402240469062261491903619722005640165670690047223071504217103724619054499296748615582168672139516179505946272780074750551331660648171710840017694213018028852323067768012472979714612865533781447915715282422504801367620905462980860017328177858456673097429665287712168386403947948113073198377937732594946852683158029467302126305128006093036108085223455487474001710802646982760098802560766240219812084183655324896627968936261747998878161845889111806287741639924687844029096965989979180171806537889300784476729974337336645166672471920825458305292410932342533483576791914470639142777930609825699900480872117290265157956317815514603939553224894480799329389470333108650735697344073669128949954994749628440375303902987251563353613484005993553712339180099433185960456149394525217006811215507985770430955386400501485669503838705854520807897775241755120775196212107639932858949018825784667803063042581441298705900749097581746768682368357842573045290113968107254333602117166280650511328790345331684256976627333383073973275118074892266104105618813649967779049530150055892356294377453910851782600975998834767626191163078795351479943930052333763844667382872211523280107066618146671996088467547778209819851669678047169945056349881876463021917115015570481316644964209253303769556241130460775387359313766507587947824276955424473697225030637519136221009407443857948818592725427190897025404991176073837570147094446691386601479483021878012972732966173888323621711851920663090991634474304772040459359354617907546588562834371077227620341915435872232598152686937944359649120203216214942728905270263327364323714274113528237702377803532739082615567570272223131735512860136239445175896333359360417164795894813819375751429641626389555874404784198522670585277406994365319545917577891369056089161090441638582369366220017555760919423803167664729706673415377269129012040210572794612861516271624070979425415956171378883618691205240048596144228965553240955354032629844483385213327087918044219735583894892649064072707061502913174198236285755331662097440111321358749110866622953932590276498667004703557074329381911346560498147408991915878764238249258455459590014399613030687885447449682153815861258005096069309663867180763348313642131072634378191366684959830564543403845348947381521978471978761746478704477534760472423902750302426811092453925335242770797270665199827262474902093368956381288353509789253736616670034672976342510560847755367742473931944302894002844601615895325051719326189531104368824768525739369117261592635102491108463733586759324560610138220030810163274995854772433867129487830212723712554464143801940711499626820138917538277451392663057556999940863446329824200999445988741222817747657679932668174547605224035687133826246806901878592866181080225879589744676238810692506899622062161451928203830367217731423000403007705366286906053636886641346825482758423037757483438790639150270700370902408540325524954239465652864587535972220359422047176357305810155961316692244994340977495407381086914199305481653033465338960002325905725384648812950055421799664318835660518033507384400668770787218565477137080072817488919267290862993406661243553241572856674735274496442810912548232240002728455894930530287446686032498312150261438938584461307301543729872631848890386509527140485185322881383883376697158629132051921247583584999359894191841666079237448069560369257660167753000598053599016998048260308769945469349707337348860168202583996691829994047039694895447043395291061436056259657131699278415074790081462563619633865070656960967936839651344874288846121977368345385594462682894881319488346117830935277433950230337593785780891180441947296606946732864298887656841286491968150856968943907056451702190556477697652028043238940767493978408859020588982566301310226056920332948426634163136594215922137169783803908928973118457337591934214571797618828238830640172979269156968809056860173758745677267823857428260398144743464972249695194082219617042584881174600084261150496621375578055111570468778595445587381210949356161486983334218817942432069001258653335628150534965059140594747917105922611629820326670764728782171285277750909006426263100090130159209610174192736283225086355716178743755884478225097744209469626012058944202395505879262625169824063482025269687448428893141182341974474138693479785248448699420925624187401092181337012412730737639071818326395219332767991986703503946133439401815285361005776442203231925142461565927047745311324169787231624479572950939297032415263417536521870199462294753647241285105170749829616620906556019820163966958051318957387085131460941629207252060570026086499374184247937239144650060722391311432196234801362245696907832982753036229725034503903623505823184798868066860231684965173214739057618371198019756635996755650796470159567929174338534741181401297390075150012496256135868571882419952577255629815703540722210705570808881894934441441263905499133824655540067110028739197696836623913674986592739235282207214726578086804164596368179649023862663712038184609709778590192184452206115555216763452521155195841194665230300769714059511751428508312110907487372714764059562425769731436096030474586649946769030922866387073201724029776539760141426634435503295210301374837506710269785168497696238523990622939139593727157302241945069427610839780120476824888266664588159944842424388244136704951515697018353287939334162638307272157219565260194919697583320050316724080827668982405190278959387309327913362938682060769794741333099222648866754931082179621755621757062778535586840740579192113778729377870928135417144985486047366472790667521278618424516614091596387802353417939440288932408455514941453680637541148359527185310114783236319358247247430427113411323714363958913702117522263774654431865145204489479784284199084239363821980274752370949122161596197915471796252783517636058452355848291159644621600594661371135016959832729415813333733237301045528194149301549882846278026594564620210281098442415598580044303051001320208036200900363873334506307266878408113745937694885646179666571300902936179607489566198590323124951315878674202818269676292334360486506344566468427873246508951558689485069217375633826107217917775567896744030060081988758964368821542753481976335789696763111286973471756028897997094540753523957572302536933591097261815026698810873202461101479147099358441481125007115604022268390712329635045824462761890319882270282550420969353258007385008824306330557230899832342725620581917440593346692031126700191069424010697691100237592576633377752563332843539221772799563568515870119378104158697817169404459846816904828390069259273632873758087820095192790746159555791341420913199769367842010878300371737283612249862730946363210014329630851617143955939954631506363581573520336117181580786392092880323709969037434842877650206966665841146178632746720667601784036681310346335570005684535997069522023104857286901767833578889872017666615047067461763876536487424128170239311780155729168496824143138995130108407789456314624307703457138559698264627942073203890727716783136037353479043392035576803329304702918405080159145107639567815747003159511545144279855432303626315375539352361917532952611683421120695158673759464089499606323040934143338052026310504069321641982114265519403133625479539756836646107865543387331891776320546887852679385784558345394494898051582448634506248330079649082240788953056824939484032743335307530101122487820122159038003440329216083314149783679799984293616296488104301695450005696197044420885735245939345759675245806331033427647526922031230675983211684995748776899810413612199979198543638246744110009327308842850790880874743084272735258293080109468737742905545658726580729733906518585900477070642783989564786188711162995065770325452002580672614344206899136900019380583889192821111739342163470460128059025392901549657734134951426203210584552716012090626740934022680396656711853929500270729982487924604678870645200015509383656294039208433528609334522045875821846422581509053496176619633093717286764890873013851078715608097017403204145802297600440374165919792729214802066098475802729181160067954837192493602323075991054737876523385635311057651973158072421979736271156191651602639316723424738397060842058791785597291821738168166252271786963887148315995566661662337936187223933297002441901286040386163044369146727389743488694764603601262250092308281526959541848313757653751070157694115770556333656174342952143192275697786043376250937676920917668449622562124263447835447641411864106911045910476082664735263731365018787838091606065180025710238690069835734285232277443645128696247498499601113411430596208339314025667539080217248898884289819444611320271121276809028087077372798248190383411446067153925627270521023204277657336724234223441133775979518043307258161408599701774071592437688345567659073299059297604316960416313869723205747287000107340830189177895660776444453322338368478297148105985045179507527401624439868309177007691809571895885169624183957268527849048514672189885386766038668011191653573836831719618857935598004801305903300797359942441176350089493337749002705992397108009445410684903236223513780235703295318965630579441268458185889576013404029598489689536979815533275190562001536135643013436538325968913970681997488660435258327509619927179222135486801367985309462196681932151090498442103137698260590194112863889027601347466235676361706537577532599722628623925586990018053396773433134638949202852010382044833525445226387355194838878435231849127049614488398031798610469430225057648381103126212521275554542598969709846629119779406238251896617136396599526919423681237418803910481371808066027734023560612440055944909731812335319190686970777287364807140169230007390103674449078098763067294883881266064548938854843633162534970989169978429156315551292813495211080082896489741748385012698724154646614200836977311147577910156742764958010093303777323446734587593942973577067734990653764276557704397003847389335122531521632732120017968073981667275766271423621804528784789941596248117452609086372537920508556788140189957418450375185039772958463787680051702124579074479528409826427731978353929423872789071412728724437951273426584554759716421688529400111025460024592519608611223290418574599966778181778161969120340032781002337228847128381149059068690652088283556067790365593205873745610169911316387361256974407872495642234345447346345980312268303754996914550586098546673210458318664282186875409259279815418009922951137893597690545008150428452050522572241993527629973992483472444711925511658309332833672285777351920782759681600645702803948430518885925067015008888005470041873080661041028539086075885978344681580119859677040590474978380264238415035879763232712185792270031423919004976394130832415879698936923469317901426778646369863407380481294170286339594178587631265754249927707891108011124452232799007709970216910515787228101949502796660429686192794706336413556360493960218557855238520887653002468548420250029038103428050153490536903957849400294909517327877165694573184791995500691812457528918513687544002984449184325808751786393866928031640272054262598169635668250373202789971539146974212162076706502186463026115803501633918604017766310266229331146734113772838724723398355794136192998214545762198060907283153753106128965038717176590808045960166706233686467059695642345855981042392545303259135449824623546369386092092896645760440522107627447618300809823803943539591614090408978614325689121433644391677595707750135473350673803971380136316593501342511033247622529678581145979218846398802436706289196048105918242659703932190537455421675548755057902288746310133712089876470613945485268781757111569052969130840300576931930156280381575841838322079167874597167231440235626957811221179846283805427283850090328962048200945418025752670488088241516243758713795224512219214151565221366802194354775077876726321925962882859651716390156184602635543979742864251341446309545164402054928147382893034369948630003954747295525295931816863937314826685028357990786567081757222797545994450652867082385062514406449972903927515186038665458300393163997850144157511520231372878437752236583484959213824401782008954690818718134120823802205446032058363709491281269157758342421410503852043001778982106712408972274598381453401851517260288357106977881838566464518954854908595600966740324224920753127028635205797759384384803750766299596211308372331104841521806126798501016605358244008851061000674634076195718068262619457235125214373366303641522938406636432502718433953222993742357097648386339265549101129344377367389105887422340437418811377622002657985279711990431748452538147048475046931148288521254749815519752606243500724149639620872188284144331578679249585580825975816326680631906253754177373658397609023011427791669839373400692480045596407967548450853639958987530222937685395726023449501900982937935983330496132615827514899560109848226998030003209228963890283777993172627625817009260344511263316814385737753368769170964447441782575024616396888314230777014431216700334418279488195866485935335924733332032902327111783402825855825420874102877129386334153231567676113907642653095813273420285219961555571477939456577371805848545905628113691933060473647648580581624593429400060968544803713704235327494587171030164918671957262676706328579606666444877852384592041220887745940247252935440067840202001368955088337841422171074460607496301339156931059724847422207057298570422431638856149784541581469490418337550721834422464990536803031447418204513272708242618436901379092597291423447821065744571450432337179242070485491322640842824446616027064428473851401468860163571924045811565334748697515173635759241952294630876733480617372127340763006078770416347455918056416342163059915346574447270590632141874895642733251160226483731353735310293946300602064901323356113224531728598125649085236327740388361446947557297704796417058094006306797778197457424898187198546682121825511723317873353887198813514058569326373443834245745230219477156604238058326281908349273015662004065862481376542431490308108990723406240646906375306518307694898216865694157599824116711340555441784955743457317258856460118943354809547162885436758602414007030094391151522279660157704402680330622142854384409852255965294346098266161095025976659522972997473548394266058743652178371982048138848006948537252198212350793948558523249320118141615963788167997133158460081253115072270159077355863036827315875393701946873379440776981075960416609762156128702882456759704752501126634646945177278466270970470238763739491457195354927472828257796521487724550231802742099933637500166180360568176603790770882784218401364300245218586527977004110703037595125490953370110243159808648107112650526340976669250308785892456045544926720014815636609838036441753038876841497242831215947769422351935618764052038254997649655968586840995851374168941636862087945085991232323168887817705788728013183683650526746943109046198973457150722881931582665023648205186428928878310576276524561673344804176775454433739037547686485854386707789092976151734562393671884455692177710427009585877235583139975685585002753268075199143903598905850028275901938237274641767764175294186889339548952437668700800459273269724980239708958771814823120078649649005577688723564854462492983455198386812974432860317471507202346206941715754946324032916657322302876277972739311088684765134217798508695385461806650284035645962682538980096368420151713602501625966628339011141751527628597634586297556136781911052095817852450965954768425852058436858258140223066349891286930288850596099895036801554448200563514769888043606287912851716912904152879681964172861847325518001263642521212848399142007295514272468323053217516377739645751398476522430662952771936199664991831768084031471778484011061500210101779551541252749454827549223886656771891899541467266851915874827089194033206802210790642535549210404857030220359308536094653035338516285428062944860957872010504786252966288615912177538067951312014078663774212078008545859605038424536262838175437805455427431823389075625505438821280248052252495766255644376905683828992810531122018402224564422163825019012996929753361854869819615557836994875124196852457745195230020469393241355013294999674216625358873799986238949792987182388798116964021461211551262400237308261443878548234109057468805427209068896947493075134890131519995089309869414105663767928998593492337823612942646469093197786998355945436639982532030905235874069940035283131834716329657127950820496800823781626094768565787970866987625754642242733494257115205139790355997347564410032063172195157786562549762312271494793665459849912805006845624985246111464867146689688037387944208523585541341602191625829189227284689915517629901708904763134729167951011870601652373597680142316153925622156185439613672106567680703499316910327023836742947184571219577692585760071804111121375984958379449031842546808268529048514263640994064435577312770359209379456255178181355458305283975759353442028552838830728377840527084065819486094586844924289909949539960221715393332360802654722870682050863887811616737484540660236540854683244098838159417531321952226333902170931643388031349993716661690443381383147989448040576988978495924481978918907827785112129596802377875796742503515594179853304991473299821455323273502708555388728396637727334558838591145188097544618251598100365189899205053325937914292118186587163177393333135038384482363135390323471798321527251139669430120482443726594953440451259189328069756654521137635581492113738910420059180096084967423000080348340710989323806976354480937020395690679209402205829771175561396230664558870937852488699903857126007295476391284036551057444276187099560881423687971059711340132995593498178055343002129201927212465612725346682687780370081864671090476862190400754964114213396348983332617537235630226517279723897637351425766277826454939129956254756200122887079444304013741986058448626231038303836239972663622272345445982354115904938821777156537564312445588307029053237001832252171234048663143134171325816428178447792822311363842001977746792101472959610461641182151991817000584757731262507380354734618761834360087492414957592627468649235973444533961424991303844317563893536252602809407860335858758886713720814595370746852557341398541787646114925979758317564723550959975210867253719000014334130313506295800647922524304598072453376785131413929870813114252714125795322234699976847813925526915401920402391982976058205018245330153831650497016979144784929840919418275874472658062258581131416495148912799110963688666421357595331341948288547868230288597704562931305197606787482230310919835464657772384812276174966396433860606456846200353888249821010322912792816707063623320723315972377455552477165670904362468025495652789416645509697019108801151219279749879860294460929312130891347836097544929984586123201042529214055242572328363720587063415154589544566617996675200247700729617988711769598466264105943238911532455175321168867766926658302521473962513169981458273458215060663331926348853164890228580072295186484184465636045969661379145068087246889130050985776038456635095092505830748128593044232027362857904251514327722913096390867185582606114083014602872177352324089343312973979361091105939639491500706802379045692975480800578730409359736457631447712279996766935852247461215467800541418614159841844778516823194603477498053570190680962681701214483171479191767788694395662868598541941564301069538078527783687347298758932569986441304850208753128634814985340790101548808959675790231311531633425644371306596412314022529921802519445110695874183148364996143716210031205514146112298229980927620095792847898038517275091072897609549504604005957089501780334050755112568892705992341111132481826940485585115673646049154100199133634852331951656070277218693128591770953991413178354173278110511183494681667993717802551530466468776626899103491260309153323736218306096614587379472692128456909060779237771567211003622802792751353463659036588549171076412454981912150758278393083871633999246220982290118387963596172549195224673273575614593641513932229064462216134016365121585189174377126892037718354314562779323552966839642529603834676728634624404535741648404662508442883024061245721735170792720123898009446571037977768705408620067762354843737231814333029216216877861673988254008176836245148306659871613077568941841870206648227030630699009363725620233142886186916703689452394228234133770128410856384820203103033072620343532955552646170638168203741892767651483224281743478733460845889422085421940832228780798149340669515397621749228854598723548966867037390792588972226225989293999931937112437444694213019686443770323952425042780316541309135290348289918539032170332882940370430265344272826248939546039908930382637293540526290671204256547293458704872665766855745399430798550914064875610028438762716577816981991294644279420469660571731208135483737228053635558975897703348406030539982068075307479868930707324951459011587874455102379841596912110731812781645335548058950152822176618633377059472385291526401962659926466224226775086503581015603184658043532636385430481097714308876176741964422867546032497884036838850470437867099945720702897026068697740942400166642545643746298737211216341509274988362409331933347255098765434760970796154062724459230174488163308611900837914734991311430637940367551351571371323958516437023248133007299746548020800745669286085837082628229717848319947985914272500863400358050122213171551392428655661825246024934848384837831977280674773017745628614231257194971942557763667710686716472320326847709481046049863807226873842943973358513583522549274122871555160481084639237010703456916705251669827163464556377391620082448397125542142347365587506548406159229547859047427050870612921499732396614477980804488742192494933339453929489149250718024197802510697455501394019065942304937322812280801466327377017209187097021198103496845569790737682068907536337129276513213250617552461720653046674861948607794467530030309772756576690882167223938871546849183806283920071476372928338033648631582553412126889580924081128112963542558214723098894884674243189791034369200764291059243101052779877323284814753355715690117181839686704370076874856200021273419041155675751072537733102566062004920716824656304038663225606253222220391663990483219121204386966192589003210694619023169105686204599859438576265650738549390755940304306911088544508481355917554837395653976472719852655367518606832381251318809026003910319295429884681384703628162065806824285964445893846974536614017449573162354503313266264278840770420540468066394707345346898922876752921285841492000492752093505802897991206633807706862342158866772960605562196441864703008382271562716911734253370580904536116777551187017998313309503399156471675457851033921608842411429617193077282319702760661748581181814319992122553171803728795327859623892122919013272775228969131463479630488615243067205146319800082770236314551430144815000349961554263888503714564436914518703172549785010192253375477317521092322403036721505718800963551872138311693170973693805044692222365938045260608223996243497693390351636691185649131669218344151929809872530799623365073478241086776237605134847457285899544051194352670283957484419036545367795503513595215179761140364790074272395243204055623186029403471407540965356331077844077288863925376169869378136613468742169626013021435236726303949960968978321705212622072472062819954785261939840936492053326875426830898623940517862597094563169457511350557782653603766357637053073249980614207458199937223090552393689370765627497776732728661807978889647732871478089541979741879321609352065730619264570355817042985317924224588838879374361365304458120202616989433873816048067202034099032123176060953721497486591127913239051906863623331861818968821681262676306104687701388498205964182065158305409349755835610534787506913005086680031850252585089385076746519439908337710768180245773983074161026577010958028740583024561153887277000719688841288391426746460325119322716111389010129479294232767710739584617577644161658241927035880928202499411181799215929665717923694768866328635026587211992917750396316566355699620372513111281511337877606935861108191458045259833178960563364562082666991877378147280084315634876009605142740886918055876400105679500513375971318603967480119925587793251281742497038970323829673127583980305865404857255572563081798020091149819042942587538509537168094350945211169362344053942950489075479155220496419948046398837774111841654621162455709316625996404176885900649907869392200532809858495431454169478082459986079377876699612353714685877116842671879677963952058192142065653856941093187461439991257618065919784126567982830569304504169421298204575256115278952688634018147627104239699091111649237354392523361968298554750940583528966490691833035825380065845914031729082126752223445535899643235072509103029330999777305823574653459085711872030509306968261143333488308075707145036924870292923290009976859979244352227679787649407056560297070058131457058649753564807120274452608199234312139233084139837102874167615333104249088027863475695358627215147464081287757785623299155289695297199697955683719880248159146050405849096036839519175634053409537734368302490480619637732761307170552397264457292314864609653191518309060781376850083041806206033944966273405104616561618368350470246592422866641798333060026067042587103438248355033058797304289669055105201412452005895757397165034796305174128247773986506099256323394303899341430191819417150503324104122027386422218826012355427344922171035862369742933203963795236707115251056363060709269423594081183317638983602367755499363340941909827495316301775516051665624628181268858457806541697562033531656317202628497179383404364110394395398469118411136025061978924298532223211765705083644659258854369173049190214835748991695236550177467701504069965709914506255915862996614872318143373837565642660245982546428308037637194475248347634934179606479212787128779794970985830684605122051148503271314437540661130136628842062378889355823104735599705068580913686309339330161246438229774001587942398735863432109702069175607064595512292630815899465624871980236009866882596467712239498248695981953705031128302159790747166725442631780645408240635000571926776240961998771872070431407670551277432923991191374270743595412285906658181598688688309418255371195716195806982478059762716128770740286232894227168534541099116118802823286951136695844001228292560260206242265531874532570576837715267752038952340994267358482293567413732632725601804735719219759799002421992832492640994800503253417865758108650252713418603359748833023042772154155234708929015804289211637894386612326962623061175625556598167872720300088496366938767074669244392539505944427660068967242068862975760909480286338529957667596388476955337522008798583355544129365843568231271049319428312414241847425720147113026196464387506705246440773808731456426184389341326079265648151099962449558362425341483916417617191699787184198289421877323705856175910003909792741158589308854100089993985097422551373257159081195236265301992101614365992529567999165830312281647896402059249995674341233996451257264685709145268836712456252319799488165303715997357827975656364247152001749945675618856665335380518260996149327179956686014847280700216287552647135205331986754682242048188402658013211750800431629521464173912557964002716560268007416507644863697922315047312377217511008488782903678946759686637053647817812534921593179491796543154534635271547701517147331700263991447047794746578138707305044813067589890587806302198521113123336765826066334205434263629042622861597257306654846969655893746584864545658836717249887195254269977455226810632860824373315516251646729329846917823821489860766048546752440678847291286519090359703393856823207048813448733892622200278229525414819493980486589367750243648389009928756677379132518892396530825614530276523912447023512112932962613311874905854908425361831482347822996441428009142419613429860685424437628384403577017802794682183177296305013728300165411028720127962547626010055188077037064533521983206418105047392918985468375753047988062317880092312852836942508464789358897898646577767493670948135140580923098797875007785149173474494226727475509346442825965013979792482143683461759226379803605958190404659174467479537469941886476451224698298597209284781098114528928891493335252924087097906801658221308137178827852041586088163257978524507833981149352577915100386020373460183524271486453748673685547841552548198977106948613107498593110185391883469976885066361980419888648458109568376943721852827732197274124414337206153725834196731210031914710317678903537468066227890471796334754174674093993893208898639958738176751921072683730906567179508419681115121091996666212222190776061946211417038899784184231266111268882725490810961300205971888801102528531405511459559861351386889802608682141404105804073697013418525667939342427327104085498835140462030861847166062167966570868637206749229095274169888253069338314479036825395494543029303680050876619600218630216449724574602126545244287588368256429226362500895670052966459470055072119910670411288062253869592620192465239805279897457312305525562842544716233824166388523506302242371366443009893275709648042410170186063092715262358786761325265797105801292287698596129379030867805137142772016546279642588534738010095432327349067650959589604388083799211582474497473572602319720948922672089991874666589465703482302710091523271357491292057011741496874745236240588407872249733960653369913291702200525209165487550530229876916137405665351669781063411091441597817625843385695212821572332408257648759979181761771954919750788088016425833192508354202648248064693621831168522164173011771433958432597242315541679876697856577461380368699511573874099120982564811963390001564180371998885815256788968482257039605965323875768086386896182596339710051778380894847337385097209162504728269001768859800060376830623842225554326197650380531334597765744269120310775192386701557158158255895776999662011305384906068461110221121835626626979221997298591035367883807309537855595667052504957931736276719027425248171326670015578878395446391173827318686244315120597042540414047351939993997214050047780724466086781312164915182277681125200639527925111917183072592873225452208231426950718237417769090183935532633661464383891784558707346504489720333931555044300590343799023958499715067394248810640607234555020299072695100472510849667238164126416211534374630908552133319975541862939825554297884292311178879012525065438962012302776999755638529064335882145830197661013704929953057698679586677440554653562768384048474605779423871301840931560597825805220211869769627594142595631695249480297020402138531591800075425180283829282689453131983575991475038724132749468499477683152319037506624991181194424607433523718131647138104878396912746926922363568863121027129805356485835860575351481028081291241138414110398639003193644805440753771649104275307535006156574821443028926153472127176789071044576257776334775153492497142784442398298975482485400641224014256674574252368075400676685482804499585037739415213760376861832994406418385721016652657398566378947117707016215769129915566572085317362361770054401439461913356404425273401854697264798908947478878573098548570701693917750065392712159461894629742806457067199971275030064090847775091018843773738285038712320095482487597262566604594143707994799537028774842951962263008672260416107366601045257447540243923308793213569884851450080957132620370656194966216384053083267040454457404941052603107470189145292665089383609041490032032359191714803025286154896774728375511027043404255488188786258310954366300576805088890114783796388105456881675027509926404502744424846863365180139355894028788975058795907224716345533739541841530025347185564042374624640234512417411963306332646199648510425759721636336542918094132735891897300582917679120684792977269197331756072525194725782479117150087546864804387588295932157701546168445230241094092425086272131871620146658036800102838276075191669798284546502934694758493609020026319388897531595232277247235533566669974324798912891685816325993787049855911521354298129892114087272829363436891419337958876669618286931979082623882471940437242172078659131656971278621860821284414796709254414524453898954905268010720577633593189183904280343302266304030344116080652590011799545687429172124361370056105316435513621423980334676642234167127824805909512290541276138516010796314940844421224905857622730514459301136152397024065928452497915593040212618652058291211548889497433832264175935933523648818399818791472769873751544447273505578839704327678264648139318049201153126709969915083479521087815392412655033246649130566015008814844381457946526814138932806527127496860997606701342839629167383047090890983947447568934636774775630686622517422188927967737945782773524582149903708950945788530021784602474657204814936271677106701352484315608932859743490466450583735412198803224834108638310653703426782612387725389805368362762156982705318549593277500750899377636770764565283403909540203701224163208963388893093096814379922920322337823301588350462818060164923584941350218189952451243571417866001657873093897199683362548874460173573942608170135085223218516979723035470002030458319779069256051732727542751778790492038813727813395140555263513120348716149586856427947695339559408735566582685477933756636067810741233467570769035876944035957856654060357425974901499575467633315752602331085658905226550299576209807789258530369967962862368856684194467320617318537277220464875875733101588823654568651309059515998386255556160085677146287227657794369447829477133189985943469769736099302831698584509639923362430486318927051870949205826984677281635468118763998241629520759870950464339136189100710753599950044649861529057655328753476876639135430732042750661185882155579275390290452401975461693715580365122462645005727661468288100925489292927824538384014453717432642120108838512203569871474753280425516180400317456941460212350036251848635305937316078784279735499963609273269199270906014859853858782946983126270719796148227127615067035285927444417701531181368551553751750569807816372060728329136493266390977016236895081208849940541916944732320180928736578580482811385948541591971442327720919598282441550633665666432657162641679477499378221957858928626010755123534021827530395042622461603852749263124663539106399648905533330437255307822332435419837499704328998214454324433533070143537030346184507890324543718278386039269770318172703332569579335610233182517928071375919390108156978418154881559647057892372261697143400380894871765338888024408950009311876136012625035056023383530761876296489824621747122149825044616346463498798563831867821043854321593359108141468757304416265261099193648539346879811494973097925434131997422065460107737454816209277531072758873243682952234271226061247456204674258427731910850108812565567247344354951858207735850113132922720994763520420459546374748601901818229069791007139265810071066972066317889332164758101663003039419000620407872134816338922473838501004910971913826599680636373684949501826199848755744956078637530986731726933967465244397285731422206842659584542149778942074303292695681988477842121946867017848726199715542233490379692430092267293096704737564308075502548730199344644463770765360242753159809396499915577180973587947599876875778779032053390029077972968119888641560557052033400446779056818957827644959482838324354827951120181755224221765681438733631874789913977141970486142425003588323350327264550712191738622068992109476785342987139530477857166662755567433321864339125361273396954657573919154366574040668876460231030752179747003702033960847695194647742200375931376111719485333289354862763086595525211468822249617992260202519993380713010839101912175406106076939565123469729844907962598721833000985406363343419442408138886105980329938697836553268424733816227670849864347616653176641270409037664713220033983931056156634638468554412119401884733512556428352761105257446299634619072116593133846119401401613411135372299827544271957720458480270462080956353834862347924307886497732075512953320840401720622302831084890904068348028747323306913472551095763039139478578637619753759468706715867064532747030987323986117622167420044587647236405801014544807279379101545323502610694150805590127074667317242917256932686466996974791630800038545156324401139703175550471650783477042028903534895477360561014700265077336265013440040610330832230630315983866530020231244480130810944127914230345901968527512245033732253049302251685120886443929460930169417421398103703512431607410602532697083189922394534768107154081745774907992415972281968406886281723203740624267677316076153196877988009660237615657288501154597342725359092547021581994662394869323944439886570684388792698407333005624348835908899178544107363791444479569476098208152974424653943166654805222813127824987502832870399221653847751197574257107748551787212808654053718800759355528571653512313684528576747028452585964706953772085276329797728298154058974152077664479729850680443432453319162755541638804336945242722254828886953988035384839820452691319371579311081034166987209609519887166876035550237408906185358068071851744012680378504638522591915877297003683032652868419420403756415586829898536253152288238501765874618125688009889616963629705002030793870478663873061461635207123981449245836995898126965293346564629292897702811257843978012916649697335814258319650405348232482239847169613565150647025554883972906941615452165147521081821645791037077618297631301413010625934571132816943750863814463194694398718181181279667875948163448703892582767874758704251229808910105571450053726614972892989975997357229343013131578391093895491916084351455154427910240891310513853187139338170202200554520363433494387364252613344101812585191857521357667177967935739604646624557463147538677740635891289306433393238406949227470089467005958914615917624375514875987361391877020432246205183517120953067901044559856556602233512840023476217369930799122175266375506934920554890084509448700132541145215704083589747753568039904329950328620141334064643526781926561762727815346901512907404076796503399914103699564969121843876480732903285056857278911503925352792740401206298084748010378099160450540966490153434715612571330498295752567549514539276440140439146109045324427223620015183165772645999560331707432329914135963047317860011856773985607873107131601579822656797294710369867406740325624255054994435927871184693734664833542044694842673519182204967773289908056036480705080934079457047345029303349892096132026204274761773603852372542015576048898632747840691579982570995676672930379517381817153516597924879382297882505507995136187282257869819001950762627974693022058219343081858738950450717065471158634305730420550181269792650113638102482499901884198025974922408981726044386120459261274094540549230206952250608427337293096399412169812975081228961767784080678542382586787032855177411174035610010395148925444355078279693434511345513104083325423419010934104430916310021624848327483296829548220682784933041772948295503482207101159034488462471327388119505513765484037859964945805210121337931240275921871688532454605426241823840479483667246428085155133862023273919517341622993789133103019399969217855646721208228589800790684233800767310499592468006949053985086740983467776389291564367158455373299617374907515261337308533855947252304148337151369137055497921057792723133674316878749009000881227404226261374115878376429406732951608588792290589683736621464861466650464405350357038059257294476547545651371800537278454956193107018792796276896791316950757500611474305870410134746828869020224261090967708687098902426470376688091083844682852116221068284578213348259212637653490634739783665563019847622055935117489054651978526341811363761982859495022682186930221602989910760533222261001712284858984602072693455926372563277234989667951504199981561854116476698597259364192414350639420092776305117610067119343490298546456155484339426697040458419911792743933116302740249690359683394926114128309085160418584540013885705392668547104064590384153579824454899703574140860768136771527895249961497955877623103920058517107416780367386197837116139393075864127941471382882419752540028138218803898910764984297561497366398677785184548867133040258896950642108375225192696616930935331411920595073760886233502018427898841976840387756113880078327702626850221970151701895942853660386971064349806456475844237107125811796968093863855907106229152779291808959364749274408744914819981432300592608119938863062669611995914328828703333375852198733192061020052756099481636521717615142486635937499741610498837484634248773444404653160923000845784908367454713714477103412453616831177602952153857342945032201053212284958436158836601124841773404597946550829153785857135351247161013779058793260284046735057188560270851820393926311840915287649889997899728115760280234216160556168608469582164326348154946458964986536337514220279449921201797207600848183789655782429195101879277420120740266151948410671284860481343475053883443221483940686749362765528914450830334671583650585992398689938677289551140628668503510371210921081478998278937304090927375742207846348868192080746600054447345334348001533541347904799679615811385258246666692786665843773234994260314184614164166971675241948823879017157274327605148371893788396840849008681469983281880106478804781835286148181882648436985264058842058946974223970841179348637240656478075134899141495384942584387019721230397242670174900179749511297561433240290181839492550974800121923612965753757965799566583559650772047067331160454807303270442014560119961166869979358102141763435423109304483487836990824717815421570846834661791479383097831649043939819944098930558074933275589280555295990313256813077031200077907173332339816351139669252553401270396426075951960088142375240939959810287358793392272868011873741270092525884237502234083853133796823216482758852272865917295985091351384037367976019935077736612521543274795363702145463737276646092830402495340397307031241990161083353270916562811244570171779915686037460032527696605616617731105504837022437653288090440752967747087357937630977685399935217970929484950441094090588711317702173343760443364190942118426661098634583336729977850739811116785698651302759669016533387811985762814607734536208049967307027863071841174039833977733167944879560092616029131157181591269935215245586743683656952701831790382352974912896436940377286065759010572582933724282467649030606275472013608010649937990771016163139975299144464762570838485557070388295844349803552776709709225634129916797121110557541792108603083637346026841003992785390075748376590654101873666857198202680525001832936435011601166218956119852831254061155720454715270473524124441426746523661886357827195338371618713475532487030268117292489692906308629192058691434255589677406362263873950709284338789425346768726713621477167931114510988105778341478720187369518655504591444208155470653171888217941749480037649067199041446723838140299332956664125874257755555200596411252725102541149226269101817274879285343490252743488187466335955680425030536777972400673615581728713909137158506361496171057533320064707845521112680142458345447294937091739279396604042402866576404646791801644910367464491743984458605056452110155065213718423968414402470998924355489746385395160381466276421073952074453691854416188964441854959178934352322924634778323191511255260739539782069308002358351314562539651013755620883573380698529472367310404090762713417717784900310655274589640038643971480718173019048826315072121184495734795585757674229038507303465407470731547414172273891095163938955426731039589846826341885102633986801240338610924585190800431720691187789128741610352137586449105429329812685495320707972489830259174960892107751553461911844531528121647569940086302611192851023095767269414950306557216747650722227073664435334806488900762859056862686981668493233889695587178817300221331228889554855180417276382669850670398183339452540183588632171457966984720363172262218420642697207187475363642450623511033015414016998166848860875779679438712607453936278358698620957915423456329212955172106880718608517921167527054508346714332412888664266611763395108708640097161905574467580439139803481562186356669332370237975604696657063065386825083546607834013203068834024113183680323526272524795044984451369071335960614623460307441047411693891784256154084299330745132792386445172924965061780165558973770916296402264582925964006089561827148031119849083569662745323365532881393138613233295745858865307959240709451639050948546750920017746944206145988548248453113291044446437840397201232653015291935890770815291350189058886919358209608593802632904335334307963291407770110173760611656114842490984645483317356459199058694925745924187027977827733641269482195105708646728037009748192031696305750244594710856202188878313502894746435871085736576493103416972106409714372094289573120566102533754713262794307932814148116336830841065701356942537504783515357499576902439190617915486851169104434529537181549817279453953836403664185228521105408086901206263165444640893732213564213765331259767009511137096616579149444934952379969891797180674856159396632530170752452160123802644405940119447017963369985009854941841145338027339066340116269834393266414073618881625705387914972649859792813361338007760037094733887764885517169909917796851109828465490659331377602058099863548745933612416371548987683509516952122734255896603045709470688373618907137721410674031349975588250704908128473903199863712777238123219087460748844746535802746766972921601279232157142526659101658519644936870393368901995439043115565413013865196172344218154503001812646949643573378607724927679739192347545895001630982738050037144489999878968554079214829384988371691914608250823639259332714061523124622537124762409918329075300277184180471249298477470589070611227267986917336888821455837655279605607707122099039947184989824017307227635201305361905814202053235219114586125167721571882440696372611637957970263832594101072758134334144034517264888730059828931428184219891662636678667529016189291917641882987225351272932188894776858313640491359995978016250199527066092598694470584854365593553363177240518319108990473821015635523895754079500603094026203520380249503620184662884469785903944894290584579795769776926963988846771004902222892982636130063756844459195283844528640157866531134498240356267463358242004148687126988267707048447722948210917807469150367199976162651707461504072809130403130364858461824973101932960784807686040234456063105685314676171047991488383566012989475453759595804218499924974684312835403206532427658286519502461297006002774184407190044904216176052386220774227300557082093300927879455294420372834674254579495697943127173650989828188617443621934127360118984711864906116120931532290840950271678497821200887946146849091074160285723003064683195789871951310219486728318905466461462958209955877188912847779216582264119987773952296230426145265184747803672221733170809887137703780796457779420649942035672320668071373596622233317907011261208502738854570688530396230524485563901132415788438437458523075747249726167562334701603513504915086490820179613371400187840063263065676045577496334862252004852119750374696067852844340082130915435072502533483982939087820218034278309836671747235320533907005992991737362574710413946519623925594065751260250124463936111429169355813882647683807553233313911335130433557094772392406331812323564748112053777849601930247123517965932391334691818591523330361056759366254169467599922842884357665528555879217765638864923439307668218771473245888799689835570067890837152507546092364705341325989164172113165854256134046201789780076434518242955003380505807466748192372327515479750408288680681053558167202236002501469999037259329980408460399857768067171040661290613453102646649926664585549271745480835492037311724427232343751920172926270358287838303297647384876568218056653989721742101583173018554017895651576639598728002502651092205560984792027329779855698747368161124891291716310756440407384261518138439340565273091056094478466878947204846945159132518026367695945144975075719653962030809646964655829273938464964547912294164742124416287807219291682466932958166202517898165664761856873714878251809688135680008114436113865469497838149302659994250242164298104361972643956478613868022660216311338916924835025264170265788463000143381691269040459235077007769530893355557836540022777412281252922385262471466600200188671408687270419888924429845355008840457872633060797543043734714073545634900028316322062015806852166157873791953693479876680215613096797539080826579769932213507279902819717463973635623342013270309101975004050137026602226256500435151126611736437510637638606684263341299957297998752167564893236844145887237013673784177242791820889557868725016448035123383942808256883923954546570189318225306618202810023546519441575178206734453458629448688056425785432308994456015158136875810781838953870960510013439477502345188271501871652978917746248254311525201367486451933218376111882801774656884627718989190784831874857915973610591036713403557689215612117434644711450511524463683823893392303109275890176218362237119396296226636090100529501745188088714351867337484545271853757558520328373799392188791532250049305789396991796381156937033082755316132875960511414745840388880545072576310804706250098230643114882773782260861306702200368628362298644787735034939665495465798120200693577497825669778311520762877156517224404218108999776929225359018124780148914518109001979180549273447946699161074499778677487101032159368446120036523174445101727356716345605677404659682252834686752692201940417887931056673716996986967585324852564106283083541679133551066514679112038608071413124489747931615939933835196179038695172800391217496783508458693280465601038539283675844484740894025969118414600803164280880550883529885144498091847848002391240083308192497390728063858217874717168971381985250584121098871282456294826634674321923371545304841215537188917742742950258773663898510415367046771351255749316034270739675628119415337842821567798662409216327489498603300830565408289775492568346319254820421534516885528113559696879825096444116566556249989572704388334565878386980752267346051023788601276010524655719458294218634402427081851957214000497200447088506319459740336497607578176451021244755309027470476269507698514531585738628728745672055360951622109126480612990306485522006089243435561850359024628685574009112369496815416302857551424504815019815577616978110692744839614211089585469009149374202105030237134420208893748771814322737421157128240020767031852774172135915938969533765523364925737776841739827177901390631289137303663412312160958427146205987607740902554404238622859893635174545150971809683287833909291903778419882793465650813549149161484885551623708813844702255006261617823574924583981914158473574997720140468960130395743611718878611680039826194432938495145192948761254667035410588938098358808388104823823058040199377793920932358646787310774743891441689643605184895262433784865718900680287917873756501131953124883286967041324994041029641200140375943559837355154801179630256648223384989355794071854748574563948879204421516673320094157402611601240469546367933035246066464426246452351723244505529783748200656952228716228482118019605784061448099386652098477883183685120395429984252796920889886356300086373377182101846439383052440691772969231414029846268448219497603664322075174271675860628021146238612891391901836032976364256465439889920521141268416136303201513975317361937645288003152689267585531570565252232220537083171928740398028090531108871501987985846101522357653402865611267551938217135515497641570993812904366544358692034226422850313176436716163923316042219219948790479002430989122950965764486592395107940518092151682841133616319341022115819111389329447006358244185677621797592895718842553919162758106779133453945983523219259517924139726565822399819838432778037187253336295908522977923060276249503566379854529747658758688867610609089379469085790419910530260009486253341579175927811105376890948687611251444103608369642111604226626958882893642754369932496720939987469482890619056824484957168427210829629737469959311253429845873770381270190204969849919467681415424384132365765356424738628467027575065514026600725052095335707165719136131693175707320665885304623359383843599879995346461926563911389509059153686178698337134422064556897333404614758457363253492596551837823582894732673557191127359742245089532657348683520089435455063557023103421917146790252595795159099572178790818004096481631050160513595435064307567185025715496409837378691025739480802528257243057344156920909002187851108278327846756868573537492058476214129242097967491216684992465078873026315673893896702501696698791040352510207545081008344791869563431645014542105581729503799380674428143691411199982651735119516994000878287301423641229282819284542004423798225148579895723478208169889181025893736858042034182638632591847647252148332155607024608374210901211983349763783595665598766470767697815003626832515486403754421548957003887997910283688663944116196777275803011934786804229983401727544657635527756323729619839369640470795567902304556081637532986178669600366494384513536896525239140924466344961809632977615250483867115026934190969777978993957104383912663426551895622016002956216476421516317297139835777465262396560213435168399019151393343911030015054781654488483415218769751749552966299470623000609671831521599954359495328073658279454857729330735257206703128835963666902449139724589490380881451055727335918825919597034877653869222000817586026395225794325031785725033274155853290909179071112431146169897997709794491289016804985426887220812935562005476234451922162335813599761296958809175561682788615941668880674805638112654086676891130715284003585711298620501399877179906799376268765108152968486573586815102474243734315643409324974870162959783211030309966457094843274603968841178352188841375763563390222309467698816966701245556552946892410144041408351027787954693728688839759316510239792603673852462658061704173970066238285346308989226301494336786564124138681118476801515235706261018726587143202802723385889802092103500262320107277137275181335157232260067809497316171457216641694826344229602723594695476445733083012460558123819002490374173942521411950192935777245477967973760766987512924968617718380511360152828664768403734980879308657357656041349856701753156287263001037254913195931284751718159866087924264344884102594511928444811736976644243012185079112149950660708588372833539438408677199829750104129109629489387044683639268528924953705507599031989861430869223589108683583296995917287571788440959968070125868581592715586096515610544710558187294376656744386533139409208890127740406842911080152983380086502502386327827486438821979474219173963621032564405838035936124846050654422393176322509666889816616092834110575992321502233634357992602188433772901304799911775374659115558257572509406293600524101556862980946669779042430544108265327938401748315914398618892020213814321251956662305693237438566491489178499085246792559469753472177380323941656142687194224041013752834109345707042851566618624516760422948032989300041980704630592552022068797773756390935598013281871880270729900939296981288950033473171357356057355328854820966718781151074187493545452562290218000874584535851143139680046699584408403073722476417944817026671734898308842444865511923829977000633464210301079869256808807454556769805818184140117873227670758109614246120870036295819705489172372901142201328928584088284774591840644924319713146398099314762354410690123546740094138632602660259905408906960394244884463427104812387332823069529468648161022271835684802311349890343736210089617089183525011145536531406243578298504523715644399276504953300099331022194298657918009338079314921216338308363430619487247013021074725944365886252898175448132048025132860921475493602055190031929489922985407110257788730336738021687653810845934912670521435021881985874619088548027718806752586858299893949678748409778927270440238599906740652964608922867882530927323332188069706954079567760370114142211557530928431481866405845590585004715499511436681539302436762126124208670316110355757598925954982784818891509780208418922870621231997631661588502781677118782203117721185634414228504772667963559601896923742356042112025507415875058436655713000345692587038729723962855767912081474493758024444957743287258444620468568376546256528134848558381578997761773715507315781697426174287687268423951109845328073982317278397716786659024286221751551972579432707601810652726369839185721161563552866313263133922821558351653495605402534740252091247106791758225160174688527074899245195192021957216043655478076096118718119656693574203099467268010043778687334905536042345937238501478259885918999490422353473392325022531550026843186237749893194889844283763307465355330160817193802571611392304912083716891911419943593967927891882208212698704312363515586750733699566002679111526114588991556275994291330693662033295799486826858634375037273858404240806834965055658019360516161108836978933718080943470741173801502414988831049884100152589895272302966810091085665921134856914737743730641482287156431148364655580777659817759425960551815358903130975073963099508880451583958967929591064299682618073116945316695810485767047113470645862245273027940405120570946670909099037094678008733362140681829019666118002682265306643603063640130698284859492619750116153299350028725354096202300542185087794306040706334481916350300395421454662883137983129647258947153388389782594472858308072069331765615078405030356257077613889197810560010577907434030598093446586464149630773088720227948021444349405087803337856849035490054471528055463812090677637387681858487774365871360728443604250941230441320298584454051766140914914491633559643738090364140607198293658175421025559863208251379557436957242323939066909134879785555831765940093744649139692628204868239832258776057681628917183218372841791789751955534625624712600513666649677780258942886747272446708297177226485297719727209589797222754999845735443274324922614764083375853044866943465457904845336402784226305522042727281257059407366376793628476276010070661584359392525929950013564052542526866639117640826740208533107457612232813385463064136176416912124435965224918909814964263846585216306236569214638490329917867784508644569267813938847283268635632841113322497448113756779317950242634494935682971354232454630143155539798190783533231319419467160785890359412371216453198064173841788813715386639588049117392030848420686672535976821699723709284389063338301090630757881639794533944854565038000651057350222869457190985791717287087864525510317449018222541788125509599733473493154322504235566817642516022360548669328922019440140366936112617709642625293971208950949789522336202736877835681643752484706751385287424492646598687206079688295661239698581426468800755343626997285665311100996821820427264994969034070179822879993005208406041619227048314157351343186965592797175156814345394839890745016483257904237054731073217778309150854616273025558193526840688025093982984705850890698205152206748121740144003952427811058928839440884425156424304027990477110634544420733236629218437642449047394040060149867267086921499268024705094367694242535765380930620454939585193896054685490417027967906036065532117933939825353224191834872296602750595073756255678912800493233651598542218141061566243382321203505840972843554127852014989711044396741604822099319124018891070207040827608052314254888661438965729458401878311475571220736565750471870938511580618757304105694128254747981777314141165200520743553987201226015648149409808643439188140150577554728719652657575446984495770263264906629445518784297647780116662921821176198104151018812355842922722038849865628378123549577694611635385025218681876024629032145965824771061130384706091106331467641906726994968091082306474515389717562845944898875033641462226006367732233094147153098670420265625954687775698572252195996280533110785687514795848015993066157271981941288843295685027021043356350082498294742073780188333692651627388318388310909047631798165575526325045203814591280436061224543894820798348068480812652144057134554250579453372147653609707260446063946050050420084126862429869395785161703801481434913584155252406053025515888090977056655909740403794271476245266777447598901658269145058602269449576092152199010933080037485043301154012553630049754935952995903428940371419558437984052803661526407705930135495505962559602601500376388430854965347683691717079048261173307345465094612418081038958757238905054393761049407018768071831225107480607426203614101664393755329526183157708797274789773835305759682721256957601719357113532961863244994427434502358627324745582183209231034789522189452572651502766738257291061685487176703381690613501473410861200647886406993372571113661782487269166063659707727485242604469944566634500836742800484240071817854477547648597095929409500242631213211115589937710367826275336827379535784259457404056638159292839747411335928938157670111344150502297525788134386600530412793281544381844845998991888785774268612302972381133433380489194156231236566457098435841912423064850885349305056475923915146871132589233186525807103434531769436719312660787688563971439376878046144513225412642690105862072066757960605903451618829542762666534384781676070428476696934235265624299177086975591865357598348146628950651918123880243684469851892279565511317259198708919137808046560917455907322211085976249879537592204310506345955438885993854172311671429428127485734522507204303989607495544466328227314629160666256558057015178999147584471370424882281636002750732699272539444894173815984801057860602773379215799682571216532816538237767388192892281885028915595951788904937937805191953318656438069900132250547596559743806417890392083674096944464879895456365616903761120143874761758616633961522467258703240430434450282265046062435882936637222157991128609900634891823886149530155189426539116868020027974982060248069069230905259819746768091070257244437854403548019739137473930875836948338610448038616354034231055677693488962167313705710000963529979357986402319621370777773725644692346217745131853223713986553744260714206690979872621569064381116259229901351830811956959856941728658205286623905024353826022639562094615269634981682350164676247003896012481715020443112094313032458611356386495733894204030881980707549943476743352822208186972175172831293101428728867186306185334200629384035722547207309268608079221888975283595257104349051981440606126615310266789294083901719701390039548670752725839630248836043091938793735483369710386213527791969804978115402610627710444059595454377519604812819497421157223438774436563379181012571278527840635246665501849732031562498436715473163653347565748748881415423180164025115323472528632013709720292790072556971079940851275627256154642272316341705596122829571793355174427433424945314487746200823554132399491250443220685383891128132835526353755185734295721881746989679467156188740910290990754745756536942664341722364503097769573403851734469665867022504980264446974472115049096677927519097805541072666064758110821043010722818997322192875486481677835646625226702087270493974306894865808141907555689077506953963728666734569514495036633840375417471849917526245049916737149112714289254117020731698599595436280800274346998938218249073370408440581957666248118686334980824375671759642739786444956164927613635235129669852136186603006878355860648962827829398737287121996995594962584319033240330906194714950052862813524299175803642248948380422239276727806568557521929955982480527283986926017697330374348938155644997981239741985334127595145778115919737407178361260880846725795786382973239852733322803411747415239313805515881526028116254809866833215522144752634448514446583014917172096206464760177287135266190418481255009368397601670117373507264858940905603146769111042140177955694033272319636358884456106216503808608045404419614185067258501608191903350160586507175047096959974558189777600987936098707308281191531802448285927468069346378235811429437605328717624509877572879607535206381115245453390224262117476224017916383809617631746620740407285539071845256693143808479287240234473395629471700737841752901203440437948618216250245699688945656053901525004547018228016551274865131229671196382460224155347827283718007521082706937255660042871586710471109445744031647267445240639216942245527043357344484194385302898483568164434462262007597211864485129278420506007917733526822408583395361550548234196360518346344847185109296263947550742770519366656293038441548091969384826341385287005702938875595660807628872341259383499035546469324759759109796659955452334566123743681425976396482631508848407978730948561839195901687027976392495749662595291973245357761421454616019480517611054085624914581368561758964281092763207959976087723397668608526795273737269957218277756230427018933673924420689835069686338533857583506124867969737324782559811428349595304994663376364581913153845129282537716853344538756394629788598908717514602911009309043770452077041308655422269948947026154683842548066665694232946152102547389345918958016536094312655391113105382463284726873634616287592630636875489990942319887549583719084059229866374287653560800121965139961208216166610218282401497125500107890128066979796068350379118424336985269705692296573797286107061911637078858684140316716388809638163523194114408649593624400990335555814067710916783498304474477360306425719582597868854125897273894233052010669189842783197333949815912347190654597071760535176277081305508975911647997538162951448167050479225626523479783861780026405436541419231559242126849510656219606420174082041710291402158099616348967934966489162057345398287262276807909537376157100473856923253444516432395660522337548514518837156738796489399878426893390609918006798186669941226357702073175297127689586880122300109358180199591161392620889009038000942192504945490363833583635450254743503862468631736500851472274140969399879386213837358529239527956747747131487853311843880689003679814827902881116476920061527954276137642622887899457355969513860001072935882329066545776704727634423814232720555930521979074745955150343694781538287959294404563735346304371620482406383563853016747355413178043075809740137565904719885852699128899412002000371294180285859847452741355198574916961318931451575391510149451119067200578317991809615319034516184385645269452880427896604589052630894247143491454269238032024972546255777612253175587552541800214325475568752686798789483242638305818256839905834511647069391498395766098528276115927162251143402548502784769610417046670101172855718013901005476045580532145689136900077084382512165903304318693161230278151069933467918298254345457605539094125681583939077924927934686713695208640759112884055332194938038778879962791174131615125945017862227880479615741941796737166646242078880119964894881700394664890421090021870040653894952312321474459611828502578173980667232647647753559259092401377567714955845788140757797962558797108909349953914605694751873499003265114782205034163090800631482170904915963933050212301103087209985354042617059185633252380809603672024779511397510410209640470261518608418682166189292618787981014774968100040649390729649922842823976538846422455321074305151460744347481142548798439925671984900996316984131365916207279838035918509008820520676563883143426556052190357715479447658370745602267790171782736696810819248788407359277104860890463974332618009687225218363447389521424736128286952423643653579879554280515534876508216540599579565981231821981905051330547472672314690797008479206255250821511477877458250760314355305663160788398811422949983325506730554548085024567463584359083076565761064974827120552282520326892405255170859351687819762003191178716021566544487724027966490149169484855985795178299323918803623310114493146472735263303777438427008928670745325880601818300406953731300200206916371592622321766127141597063104495756849806240156628344797627559725458096614749274945674011962079664853559289987256978151258717306800916492628094978269973723840197230809134761119339255808167694610449210180236312192940422429692445520798599361966906710347841178871293388197510517536543628018511607384424902430596909084362252968276304807298585688238827079718644360525133534711881416717675276216440456485806542222968580366625436270720181444393969890227312973436747087208799095050760312284072311639813087007417951835604825664915972740614068533217245897954530105913243552069065709182358011804832331681587803672508926562603358719338199024239614941849296743286100803360086406250005453076623196681932913390534130991320531015071961545150388540189545729597259707107182446660179264940819167999886133673907769028756783513224805467500919975129414453149948887531914213578355623491728848348763030259735239587616590712742070056251229331081968788646650914521487805755608472536126511366939929680416019412681752690732322656304198765733721748366155348834836249085893806669881046029469535046814071265325274712727506078943318348096982928371652194723566907498438608645059867836572377900511740167726444988268795027449997194263396355580507149720939724937988265200096385465690237424216837497376319385880386494303414217379863928472223781869255532388212669155566805920491761130502968369808107834049574235714431127687685685076950789196685127140816973371013391848266698162144237933374318213348423091333699906605869021433365566896975651991060529100969464309369001081099295876161240833861883033764645476362220635179576876677955776589236099977597068445173900084981444492322473253437013852990369239376767562196506499063384375732586131812762580631686891022313038564541399946537951807244351458449425034259427187648723754886997800986630810756730511026767063759736588245501371047616324430879768468411992560603505271397988930109692528056676330158967141278003746622491809374025685888754508904354464368553655900475363757987665624639991300107839612760878191926580753384518291456611095010650558458939566400644452718886705843909978692326434880661714021407185810172648312893489116134544200786562312576337742128664945374594602916466414690788616186865049159710498519200013979148442316893917064286932101300279640426497176716436519396327841312116585512264366243384145510763949589912045948540800181102118382647438865542652232591813242610827040504731551658022758153997744250017856976296175495980278226979964379589428055936014795486748116898241848961413437276660477584839347033567374587782815125615227920690024815865323314326698206124932359733820803739798204522476135768036052179849475118059029395358682007037863239797920157119938459810723019459898777206211688601092912419383567228714224862674992767370830255479688729114178836149628838029553675763710733196614803733562110168466852900243693598902597070099033767896765395565531779349732121453541536327860843610280824686373855490825858242314606108779408082592559213294238495295578689602536841777391723725339552829997325113388726469040577340857433467569976753392864018957269561661117084956114271751402162797219938489261402618126147688476113269560614229051451635304904461323141526345418943673116178697898178945236594345874919747320423331175413587670882106056202844287160490703318718297458692200170495388494493062966869005385228311740959157787122478888344576563572059189550735310755835916473458824467210734279405174625418271666282352712774866904412749765445126294270683431549200099321798207374938821626311186090785650901138229064062677380921909139605025564240740154091336967586396853845033180483210881131748965139386160126992828365957690859943111589483500468916288012957997010058571777132238082381890764286065302547511632284866849551635316260161083551444432364851605408893686609314350618284347332736922261419460499808476145209116986020280917693108407098533606933855192556201983625383102515358682002892081437262304035276972866037866500159780298437351943629631948981946293364762402782471870278656605642300976887044253870308860048721317413433469877936479803475831828650378565872159406660742475365739449688798451415007971413368899546308266043856093225838092739173526085327960001714269688762548494900883428425706514958675401281521143963672039720568516583710866290182224877664102565395639736346798778583204994392310764232801658315734884887705967632608606180806577983282376969314259069490025088792756107783052563946800577598737211480641492345504774433992716793808492822149992140590120270160713994322422619080094003681100975421864991034542104524770604259058481912706926410512860350381370157682929623526627898937640082662571543686611945968852264969389002970301317016586092402301279789989091885482678195809160695464472658313927118406739844407913007475556867973838545670728735516526170244222389839517963677178157001107636802151187383788762597596964556948118498215156888110504953358202256938667447861865544988497267507627701294081873873079768144766345877250380583682723799493901903606037131487340565243686126823768246330592466657661912845929680421183112881978040277208484924466775942862709270844956252641850934176892958937059422777192717327097689718761012772602332236977341064848112791347616213729607961421962982251813539938831664639798293424303622394116632491367074811751223398441633143786146419894583216552460717574413784056333215997178635472076542779464228928178611577330664471602927515143293286604021906928995619549533617191483475512382583485317301539859509124798511375311938793621425816707170117831796551345112315257485542436142574495708376235865162559023044890063851326331541960954217180155235918625879731628037989724692914471879008084194780869271850878128912481641901762904263218331579603797547066786452514584011548048991923653190404847453141376166985824894587628233940382973807670051275477485360252834608792291675310834636454887536019078531031340089379085624552489317209075419172526395977008496889187886228092546306893383578090071113129382684927461754703405002765909816888530621473026702599755835651917299291774542998870102930743846739914032544719721254801597746295875020466009993322279907613801191934999480404686300718125680452872179138056798985407463419507995106385525022214145877143616366836014771168916492668674583679246629813983996747493658930792404713727837259694569943925170188386087593131701824693157505247302991008992624707060385906127609702891939807614621022881135613396808256478706957920681788473136549239504058298539544356254506525463795899846317246871232926830826353296443158257133477954773953486718527538712665754355810750200421045194998814581078460972711379382902616327170955963191129916996224001813007354191336268163682812589130616265647851316622850584302111008128272470283385060485627052142314510945477461837924758959089842809640624011076612390049830861600193245413888897621157426126951538756789688909070445985400569539833776821446353158967806537302244166742342684452383921333167307166302288306800784151436871018749019083224321953436071783554073605457916402711148955981133884600889401726309412849273873253808155714834540655316468261339161666002892133305404718499269316026648687539553029777337754998226252223252503729899110336452094706679715751042921581693046208211821141363513125966015592541704008523461033411945953730154366835378308663671946933865877798850895902719758778630874103622289195849077212833427820684336397900210241543531782727274203902145719172710723623138032342743649568637593280582849802560632153118159763114018064326918363954260000996967471200118090473747080435176819053958924807797335984664993681557788958246607278886426834054309774558150212425190834844415978092189984454472987367524488676427875913246823156017939676762362012075202397102409902530544971777125898514455166756235214756599718928615043070244476183802490338335668953592483160463307805813234535076795252237367897164946201087521068876095402891910315445455473055608915914761877233435496294790256048644267845932632282256085734601462466311064395000767488452693253564528060008834888107989833871537003398137465291048551414032827713821570607896849968190930234575834465215016587393504882718839199687655342123093175234839004133176575690819935784216291254829173062807250456527718600492792559931562230613393387507311442638714215399055768325152153591023072543308607449110646178753318410334231806513147880512019903447103829582178570224569104835637767263574611924181836374848472302483252628947358297867589184953762349116596119668455848596177540153597526361697266698859911257691145295205314536425531023407118142810234533032616907767932423562424653668395540781526888185233067302021322288963405983300152379760544460480696892913762624951677448318329974732262520130142017852159417504493155581437838523649723493077004941585738944454987405019593651340327916862698073025449838381211308490706540441091951016775257690307988139542071603258248906872975018850273380525650804938530587307848620505963971513644193867216079022643456439829377250796352952903186072612188150216247036659996761824245639186725017371805312587290052009489839919571308955322685212582477015835298159003558142081697645297433065140011597410368858301732800806962260714771572080954261556470349200046766006980244659670779124087754018663991489380683050514744822038827414782682210334048510707869438242211639642425873813285028533222577902274110284053905760111688014541971696932281608888061946334423622761235676801946823702474214801304448971866188147401509112321437455259316152783857438518726878834168118756971703206333273368851040613969000832074911079064890229329459458257218743936869097798600682496156352905034527197968502414785036642760254280458739311054679649258128954686078869082229581084491374731225050722946859903918910570819087303646263626859246774380171248270042540157997603426438339264562895097124360119221052153869222721930481828556965176275729307161100255942181726189606175729714085293122768737042322071455468966758070790016151547830648082344825795248189609747428845031503996143483180851733642080446829309177613670086194714399663543980166133636237370854080223907700567201952757127440893188008938474920873440405796705237271391726139072746077627900881160632909650625550015968481990965056352812411937584491643786207978923666824123996036450025554737945000889639716190530388156815433282224315290055867690245324000055845872175792350910673060289867110134475477102495185155493984191916647416241034047060309536971132185888576725840779401408805662940065156549495302001800001055428446814895770128619732355829118775183731452699767676858872851161113877016452594863803703104738069889174018052391396276911991500873219081372444218004651201501101108297794812573319087175753548362603357158809050333303821765676994826470890271278342582478393268839490642117528243771002319647574337357661474870150600215027325980682307253317000909897237083722399149459247887351234110925617098072465822773267849772813155266094680934831763396610939200945843159655269949182624714262748544346823380043201962636205925286753793173891496390105905053342834089507567611754167052922143694967380439688265093168152319327698757113187474245878745294492089750666367654908860146664428589289199246175687496697378464036000385946654905638191109863682741767937629154894714041692094591024843699729742524649739708674414015210704269497224833640708773532231654357119022212976990820058223076680165398184767078057123056207961418531227183103792902692465695662899627800152078013101288267862253950091307850402875776966992826949839614212094330744779819175853736040431626130191289044233693368306343629354213139635777275454899582063967340528466958517971076448290321716853368890685413480386662684143572790421841654934489663362850818456269118869188597886657433133787532373495854318641390910812677348455244208034677342363185940095895011632709970698480437411711677133931012465865003190304736269364897212620172303618890298323697587333751786686051106698428234046556928843587854337960622562113456605067722669225701920016375064020827553350653543971983781153062669748855570453707798784606539349201728700732846908257578052112935389258993155035254199151484386815975978024271673953475181807581145283836245502331792308143835951225347020511116224743871082418936801793262567776361055596777293978115849680028462529391387876201016982589400418657684730191666009853639283154485709274731103865957992156047288060445823287702742753322245831401828790210351498483908800024689278078846427299441921943511272278212626563958470687152036173409227120422949452464034538931524039790834319017877022165773091230152730408899205001741192293265172294626446003764766018315231743050552552239303095885697071020611150128845027898946523502805092529094144696557765892739781586946617946850277831989094879238615983317825119069431089879402653034761219583280044908691797912017428183984726086373917209174485109391090567187548039136532909888943087761891168604740880125915815657347943352801065433572146145691734997395701429202429878617246768169914729805614201700526002087682220993395138079385448140775123508074155605339288669003390138158395547669735357841749632983652969708125332890126750966198847094344706798812643272317969285304162771960407301142990656010721768824756232098020175816229706782561471861593382023564829461862012828330298742314943027295412112401921248841029106332498368628468488719341228688610142421503067249907841369455441135134508504069367998673183263877289946375512629839910266765439106321914868504082871373289477461519184734845229468175180642543318152223969907384397872825054286405164002622011794295375404641113764212375517614286928794460960755720840079474398834051692813400895388845330427404996779685580687325909872828008845175819722062442608879932074554387572250385726241739324463653599985148320049634209830734841660309098919447064880405394049534228357629312377417980620019076340982510375223615512250838371505874230476001877777915986981550299938066019017865711116595628548015448031873695371381672101125927988417299990495802903556160651621587652227734393603921012885582164972734304830779215402295566304084681038641523808467472890549749233984498660160616435885002430718961992392293418623930481091831968603457463925691771062063222094878598140735552375780532167459546573986312911807694940378092153855474352024959416614501028915524880672082116509269838806307077522540127387163277278856093901585378293533056781433689689910222653241882280611446077173845509015395718242310446381871758842914212109830568794554380966903418761238004070516378102336826378673668355294797618108882922341455434732212386041837592684048826470718238718845594689523787775881946585087849636240032549701988382235679978719108466311883274217226713303700969491687381242407346934170504955724913650985402305409711159503493012798867457012133860374764738543901897941768865327614499847068578102444376251766668891116234222576155015021218341846444297529484497387175112308633218540437500492365814754357799317503881518910524536202774359024525156790784326018593050323214256243203571229188569997194853794160027684034895015788817907275717517084826088850996078260907031825288927869805940484034293686242156408915674112693718970451494872267268948344865601358287779108441643550808650994739579139882817756108588691168635734106424588110916884162433692425261594237983467229426075359495131003419934993025378843033452805349983976417196517558078069634910873446778994140242412443196573783285028362111095740083317800624327177701373332724082582253294803427727291677152894352677210293409745587665127783707256780194789596768264026315145799596814268158538817485489984256578947597881558851067015311990090760078230455465006254075678617293239956645029173701036655478342514733926987269083119730679681711171212839697430376570594179282692268610961575416083825490121912820482407797825939424789899456253710354921789768049404934287804590384282513046275091463397179643738577876147186820959634335206951080798607861206083794317392144672615289891997611042098232271070783608024482948733897547221047065761617741610005383755860756239053078540216697000149126773891738165454311787446782244592605981241342426321505512852991016369196215727841975055763520197483323165443743095341700359202947239783148139926426197229632327366110470196758867466049709692089634732292725953380389407361972356193527650379190793708965216698557528194623349708197837546678531925197833678099683055754983532508667367976411488851473611999921897606605009399490908210142331482070104476894812994316710723091394746217220754962909018178205365933771349723400125102076608034560335041295193339671027082345499415030900358689230777151686171306321719481291488298690464687463665560792680564780800953679140055529778476378126447853367195310885469443781757187609512675598174502722245028834916157112224757741083895518226820023269805682153251705967288755131130408860086871200872889304244532836404886111192081260891358760979610443021072897852164545533905822837616442278231784466879234565343111854425879032846044590946898873637170057415042029718386286133396063839537136270841483394760904770798316257924948906566836225612209147372596706261348631294164285139691288098386928942513145068862257884664641538346048128260728367441671383794556735656648582802403019933338618085655054920918292489577053944543035780937569134247705088523988918431437544720241639634187278249185677305232667031555374000217698986410557318118385198911194072145610158312987199641410547375880680783030995997887510250130867486725369802219322907542794418938550883852305734789030996067848712914385055533931370254007367641681041012800271703439013010682640911408386049528009782105548368494793416846495306998354507471011688066949626870179060547807481739684550215204893166123719344043515250924745934578450801897701991582587273061267780677556933075787710881843087889316440967420527860009613185981282459490041702231723556440518520340188578959053239746498139123198465272652903031474155215405032517224003700321288088479797721535600008195636906322409379319567033117697689521233674000264797553774149817626225255325840834677231451880757457937697320377012987952684472035922395377388729203870755750153810222569299466433153707616399709703410476984357963971917760038516854361927675351435005832349014607447777594224327656756744184526051419134708814144087292352130641426939271923957764655207431813285534825028649162871480543697507702772801662406764571280964674438878705802912951341158249388849840095055149311308715010611634438192594014650909864838180210436124742976893951331704198000361703606313139412393507933762082074609561126402164781922542335000593304377794453185173877057139793535026588296536887315608342503615289057634133342913652466174629450265645118789443208292973542297089830510896796841413375676747069452680762284747214526686986906111334570908438972848389752486679909358999331383254598980711414476010900065929980748782103185211242289344019406633958420454457629352788205413127600174552765537753880491687502695246288068978305288285407861897285995103620815203300328331476163720112663713810724206310345104166919741261264167062323733274908045903811887648893004857959244045078574263022934036922645331466630002945016506317296684264935560422546768845520429552988361702221911103097859793045695679622353912743472283239291382767626938979866195508738024834003455535808958882661622631091192956425363739678389907936220554103669377462551400339915301344824832144632284759491523727676944351110249699120081610884364023606050123167338169989170529199910325824253378712485284320059330210633015793904594341510954318031697637161804909967976163067253963169190179544771805057883099849083791605354267177613265629111183212946056596402552551419612230588466122731912126076945521949512017605124141978404530137132617552237078183628495581485158245308311461294862366964009391072740394820112943173985383671251790184512893534191821856410324754014641911613483649235345727513308526504020555329655144495369979899965799889720925407605254326993840661646132329595084379043563656437064737696311337106632648915483681715432663192050543022480279333706798674532530769831393739498114283910777135510597117967617437461243926740224271382424467148605850906429193237868741077786521438383169690115100919526329080270120310262029545410023813497104221122787276300056917048723473765160140548398489722373078940778995524280941332728284015476572733982716152342628669926607594487716391489586390314978335721538392782225256096262989451547366849833946303874742383044315552240785804583266908159074040279094316954382453353715932049642541883471538775828818717913766061352923621381566056208687918157744408560938380296849242655151036483584297948813401925839759085425690278789241516779313796702850775463841981369958978921397702407993464172328860246086706694446980677400906218095470001376420377986281615506888149036902927974297868726914756758285753121560551195955593541195103550449837193378403688130223677797723364761460764936641178951299261958670808306001057447591118104951007400069466924337363060116627482806741176285639484786322302954615269709980559397240496317394461035617544034210100673215506057857806756923446488224359717966161421280160065321455482421703639600003859179950201943969405637577606143197937438038790435998719852672263239380651066187590417899809465678106384817423293824731525052185016343775388286986333086741525863722577714580944083962479396025086576936321136211220270541886314120907358994183301601987855708827894981346444989484129363304214625860701781868882819189883665805553115667616696224545661936107603539189571662333840375890826842015272343452608565861156049347550975007236538124057393851121613335068322700886423953871954383587437014678933569811452416834805450154614736448111295876783630981662594416442018642929800091512374685368270897991095963187686329688174788152057878829789920391298920107374453688889118984039362688039880585621736768129785709933109399818088842579982294226699698262912508058228588247117115074192051614308522613493734364455246165509806963445458153284305655929033582090388363144406967561849314322462539512411887240054480141462164691373771703439067721349007320228099177224064843659915535740893221143997707468987921843170053719900855133238630428565045718080485309899160297904398171791301017671307897674764610560700901106479946005902216023684415686151582886221334591584726710423588642440798203640564814560370805270586787325955059031841679187449838274224916014042785421204945705333886506296158453391745001676854206743794157740210030007081936311495595548718224324894993471518118997744344630568035038357532565728438685069638621305176397210134986638631312003430851013069290893224634768732050659473100872409747991431704477281188263169795229226293901077093941977767433068357119550729672462955969260089758862125083853766761329980486347959318398876222305107539150905139274545324051836979233751118963390360609513126986675350217698947861865657963332165143505716166447368198378891536342410995408311848709744638350744802246152860704412287880180426649354613294099864232550363190157520403006899690290501676852033792291551127372654857581842377427175654089321315210061524689285539810407910088261953576825096172265491980371793873824925023380429872902173341386937398798206930660192117531947721937234661187993286894365571504673315904580677053789435223433622434495484519431529423819026390785491711903170262994541750489715019294327457730612528875717230663543841839969888515127233847870595292290607921660052764794501087707613240496634133076982587443560808590865643448438769193465632845205654498454024319076180126419781620924808526081467655851135761335050026737696951856149497147583154085241604077029056278373046155417486825945970461856735347267693672670531520940561967353456317404883448886367646483403989681324925480795846053427468859902510545853595093349984603565203210385316139013075976950069890472729732112768837952375455251316855989710823327583007412253475476817512381326262690508910006197416050777969180684286526377262277816388090119657467458800018063731606911904386904833829096317533464649515745877885708216286036143202788251418500012945196504117571662889773308833688715310770853577711137995075835105774139337060616892040558634384376586088974346210768113850122624586475397298117301808889008998125892636275314598969518292608625382164245026896565995166065783321749259183978192631664522337002129896960920141300591852018085151521128773357542302212812837383662959774253928026738694314595230876856609052667700330688295965596045717638165406691962337867975713862516373642645874895472920451263300561673792326682779111766056737432837086058315968840990579488903191231056245332078923308222432643990777351481691465074218298417787073693038570033517778287498308996573395416593024236395053223949623366275414928597832065370091684478248882085968285149779618363155296738886281976799575074152245170810358444777146838232135583737735467468758989130960127649564077123628545134326862309302546670391674409621647929672993495628104609461102960092895908431043575253755803717840730873884689953327900893037356226342886674197041893524547099543932038979791127955732551502694738573726814752296466816444933742733824234280241149221522245943816101477499440739777361727610943288021267423260685973882421699511467085336550361750433756103178537679780513052396970535582122900407706318780798768204015942520759120283011857438764767818909544684439802725535250889474186148796777165174401371398457905015573080894858226303743513750615585385280621413170619692761267470328144993944711350874799502018332427540493816432276072016573986398244922727987039468472858217653483210200152238545175796615629878205528402247551790574054615017890716422000746746233736530347349770754198587750657641850658186815388739494337439948677595544005586743620760489378058398818561822448916296273495121393737041741003075769200715985905735367937299782734713884365983321608711766485838737439931319083981981607311468599146494620592995283903380375145566814324751965923250199940856396472330219202510063186946730944427605444370136216551897658716838993108691610511296360802724006434226214954683444355741997629158447404039717384519110243715000309850951879351514159661796025381007739205141283603005254053073613784412439772091251601789902080966257929325586710813672621348826878048764537379332179397492481171871762211630528838285611785436862779762229327387825671410915082005945216770829370087948884684992179798293371409694742698004341732761683047586836547245563826384929294214190020415548993017408305379449250148364436472289035828290177143150822729104155550057504062178442967398180603606065813161292592833282110261833206918512438990837779868930444625997306832613890546990361492205933993424529839372868720036239227303674719508943444268307918025290307164378211305234426157023274923505950001199506648789285032497110616722609948839704412754370462646118420851747252299726111438780714421420422914213494601142024510346498541410933341626141662368244203866041426797141054571693901981427030741507149382580238602217061190543507020010657189234353566839059424264786360306579640932968872176138063562853877851157312500451642610208508020047596806522557609548978523532218069161005765829268937968843398340725300891926868905433693723430077880196984889329409274134705849154825878048669185823285921600761960554865425399509570220145695970448884656941354347259400652646206966846939169693715361338012124140351638399234179026920142248698401406814148737276568230588748861227636929940730217304452138875699252118948672909593865932481496424988801539034637170601381186478305071133085572129759906806775047939614764291896327447761425077472683634374805122585871453683791990841671601905261622977093237460954214229888686076765345777987461330758129299951667607210243818451770219037619846036547405500220441502647914972120978240883311464960967448071158409452272821870897942519486203745569689560485693009271985262123524987030357801328211677507088384171937755560473337515697808725169506319827804702650493160261131210607795508533204528265184907437855490527997061284088684596653609422764851516162361521871971897747687625653704536329998835443568286603344727478586567065232309623469616660904078946392395786216279491214606411033645778029287638520273533375096630162749251313446839788851719101822993025568465994155785896952508978151261788209110920916644080670832330223703922970831360458045400860556442441252166475098823155088165639689912613451708263161844141892233921320921116786045268101473652639899816830666529906093565875260076353009044085011657519411735978323036782990278758939946013627008734657302438912174540035128537011845764012183650567610574091812268750416604636085596587233368356738121775495226051602139370369920951762487145718048270247446850821404894610314781252617445558462134784942661252355396767673046484244253732052224058635250782951556854724410632394685084105340814538145047521044675425891037655034875850887993255171112403538424602297173682112959625755284357001340707197493583281373618742425400207975372222401367109509773780508741568658685808068155832143011020803738133415140691641516789506393131878633247721806704406475110590377539042024028614076705730172985695612627614326639889502627622916559759622776773535710136329609734773574898628879935733992792126350337583114113011620900332971973010148995939369404350184597882682051523911782377359770766254251250800339740870765829818640388909834148362666853935332656754709515066681948848534802968179074362907997947059874787583393797163738433554505785799492609827000874334600565970342134616972650507854201996087586629343570773973127975934869393436021884998092821751900278880924384134736656170473129389158556726033431962075140613655688370296778265679202945222164221285464697896341969648945620296999407234266571555025547093908164662686911310662354494668887638003273940073190506167912795955150331372415327359690765744010292042753460152049663984608272584041092090642152982686496156454616534290722475307098794593806220706094774501093443507504340668425018766780286480572215541484015586920491410221502308061345075986653411788467549786475657557097030203121389219339862084265129724463363696266777229625082296990177202489404487812877448402981372432990195476288743662577908761607651323154997672261037174829527775894152228163399523105981206308151944331587546547261108392648207419044769071638575710388929191458541413965758530343030566395701322517274676878442305098590684053131451652384564295444084387385647361706927906526224208646407828157935263311577781304217092261735944307839684402791220550341283542294755111739100132192824465687787695607594807325684192756972944725108397032161326771525245050602780231239806089245472597571820583296538237908366780713933529272693841273193221146014770614505706391639984350585261983933600804782152783463920904830978074011821140988458311732934695035113312163970929802648957507495507752633184557914512247002321815626427364479461431560950567304153231016759065401369649320759741213309196256088828283829555446608889662415697065197838738923490969498184991140420649121754214219307142011050626950185474032539318580655766205456241523327900760957460130124811893472439357433820169416813191476970621599567763823108397926520589227428248989970628766124450893699521934348054156824116214953846716184783178492990552625703237287551249215774338161619605222919773570400874758013279717108382303448514649402720992542571870872427542837222816525027372425035430925847766309644419730709475790265141287568979144300104922529053407698081701321831523472783645724285600372205298078923962365292650856336337336793994863739194696950701816868848412800005078494828739279431522052668323108521982364466076271548380667539832577643695291766617925947874682548291515053986719257036699872948552424879038302385636876309609496508765550362715888972353152259684010538385834881699467057532666422937190423198984808141513484849438606168707240868074704543348209568946491493744169761237528567952140637060233957260425913711954201126849420264311951775796409411893596569363463524239109114698717987243306251348368721586947032845438509731944531856276448127173380267922239313470109438406229544436092027714513740688313205036032985223433082989134601355432081865018980941914634238612205661263124415180373671965411041150380447459914821872368956673817372686850553016191219688869518327708048098449900658787877729057633339181536812995085778540683443665876509508001243315122199280287399323478389158737937621171484979679982266860955465206466114025537988031116579198240804212011834076897093601489197285561923999184433988366087731056288171679753240875383637376526847684054090895386635339681947171986919912264019163068499716508177751173320736562076571644368710210892186243384678356605422302068672396636765400409106128045911610165459940915746212064324251604499477178186944242860700154089950144635302759594659036559180631500990752070407095581775312538129229968646392537506338192076807947350196373822863256581599612148222390687874942218149890600074331951589134437146673822299548287413351153475996677382782123738584396664749016922274257217390678104434586087291970168379901151656091191852146369400523243756619861515922344600640398697104355054790815650499186528403804833915165305823499047793027381129749187822910670454437630260407698458495479750142003869910019014889309744377142761766687462199702230387164555784014769663997548542566188462635513725159268598084233334296218899512941563647222887090750116549655696063103799501210933330185939254362368274317521752399265570271200535590241475845621988261327262403217474451270256383518719663271474730894066208997150465418416562060566732471448721558866261126315273357102944392243900018174468439485334860414274117393966601827374804461254824471558345887552430295312643070530823885305015223322375588781432383478956138975641836065024957622175464161733623153095307577992904938218307748682077687734987932135712243625656267095018064123883189483972268031169756449434682635007010176657724506499801944880882638236849098092785780006878898083101187140010861753099077167529824710573076084942378323807960361938087499820156381491862082478562287407474634433519304200848781832770234625733687201412112621050492853267292841091310344512816195209821864558126084020559083711984934781837243868609767648365753898158111023407582731951111517418325695833795925885711447669524593026478171318220479889838979347964555599827435958954969985387244107891048280951783101389193597464625618541872433081506550070642784740583837193339097463249321176155741445880558529906491113943962552533802066845621157378075572627036273497215739325898969716091967062717575952673799666962428366128409495810353903997453140181026114546816570688952020613344473870222359820473143423906150867006123441819784733263326393584189702675948167886597950363330758688004907273257923361615973507447874052081685495102969524170723554317938243432246904432543118752357099104435661468439877533130362547128511322000968475577932014367678008604443624369696938963903185762042329949129067527070608840139500576118858832657656233367627369782900951566205234141469788248426016570738786923604327098414141440879120078453185969194499230969755034330244885448980128958836826171878253953931970260213043847891425345520186897802309101897924765073011276424277013740524227611636617695946212703708427028408278054868897555092760256996167606432863169994096553120169449501097369762862696791465624997855182389155189689957954939595848228552602957071777803899067927100663427741790561734108257231969211160411037725233232818400149256488985719819951198847940530191670763567174266351699959533669101168376600112782572350316217208822181945461480653700480480500164180011055952970189696248169337621551829750274719053032964014450178438153464166104073398466724827417322717233832620337154237103002352906039724177566183566413245481449663612606972736005065164037507556203556840727236871139137398613033261523798411360400425607329106965612323137096540392118351323319123609886890553370255536797911381192897966435236357115485820603128304829193801627419681990915378372051034944984358493571663182029280611570136299020511203005563572643518225874775099289279822289859310344205372799275991180179095958000222759039616491980254699640309660238323337087316404182693897035411710039119552005429289409687360649170963006579828116077017262647146641321672813133648894008020791899562972659454514932771010683039196548469826122161154122509503869024213177172784629260558899932247898508922542404889190666446702077060406407436376625369341600444941836277763898158643804104632685940847619932379623996208289666435176320407428787607022641213564602402079526210691951677036729869207227968559940011002977064042356835484820422059708295070717376606737283316382348007120861683963452269012866461197639926714262229364379552776504996025169163208545893915811651921110913171585537484731175484785778493351142290869965628732400682206165172936330827314798000488026796486958584885693515581092371124484018317017367707739322615272088017791994741502094669706591496287673444415565958629697841859018459456757181570603632543748659864269886841371790638997135829230376700712504694025168016216163133386206645574969104707447107948319578909697286973754073904513352316648930784396981519701539364147608067418700438453866759847170379586822630193084642346247016860463647210653701551095742941225988519954363863540089633090340161232754541549511178453097288143819829267830403574464647273627380719328945872479300256800950051968529017149537712904778946693002370364170154192629960406614634505092311333102432750598124902779169119746649754526395719484778405225133326671201550236864524751640768372491538155166795688916793236369750783655582445466582228329433040517485757078567315539432605043092261245072089570530495649700558997328179677361465390172379423797669156007576915492786092429879991047742712330089129681412208056324803541905291477285642300578083837986251908159170344349912829780253639946106129787468148156049157817343480158837465331259710781231973999047511508956446095323975338142809949370590271644348798780944385310805078961516285704477538030261511970215722643943200711590023631731737854956595077372198293958338040973988784939506904908116355236737547850957544578693221350125609006270498596689230664035085362630670574391672152009708177506457007196860751375673788979868661309362134417814133302663254647559888564868044841581477811821821083220660023143358883185560220896428338028917885572342197463505027667457904052315368007129659256575507079658245517675704185036641979575532239005517785996875355007832876112972542160522653119025503777864575187202618813222336086069052702839566898512740233964687272977129896125170072356641703115107525868260422298372877417685260095381464840149190138472384555303362709887968296999721193273078326668039272466804954682064755503421477569034438876302260438438523907971955488705737566851718875860041838554425447731885236708442879307080709549790238126480699253287964602709883612063547724105788888614272638212057339168781639799091047896873619727809586850233144781003839586255700070290763691863909638763675557055930372649782179786210666081041523513622757101350269222851875652622136964422832293411317033375590971127575318943224513881096511254434908423079019925421606602504095258910746787994575777473800565221372472186190662470234623410144698527419362050406943654892970492484839839186725426959291174767654674258239761799489150355627151639551702898663867994446180091937706145976417082662216910144634028558967942139904726459405361803777585964319445303862958502256915199808717535131546057206558472250270353621411482157852592063198608009787468267882518243603038107818957392287572608077981656250892367873278840135980953722221768668533250401098801171074999807586074813376752583874448205240060664079431691595442302999233664767450262100574106230421498012402264643404890750110098175079376382175337707959073333431308522446555697498848992258339416052291950569216549597007749862751233270376461343407466818083784897810935964743513935801609133544839659140817771744701586745078553412797415086799915418418409535100985404729373988897414221844800270138081231490680874864272848684113091525164052306701542360372869536773147416274865223100080678583492061253178586410789572291418423084836113269078885895571961053413125170892615357434125940861383801979751621472280152950784209195685896348247596732603365985679380958500926635132165261599527039840555014749495035560160937709459808764213989151970267300068003823083510124454311325141648389490521474243250208156352554587924760023528134324758381171687600334094334874960680012917643309207803437477723044941975548115393399089463005471379707830961421960965158836895148916493677491254215490850934428978555119340501805335874273566820864903106276779307383042681681317384606693904325926214883987111830032196614561033579668400770826169893603050870722627673400289157998082182846000553912860892825708975420295233822748264592527943967044757415403905951211523092207781268775079113910542402653974394603647175232681830159008885673792988914002822315510513501942428642145897974613754382617058708577023643738077975262829246186510065790841050949456901351911032791647446288238438073243741173998414384788580757381532394833283164852510878112907411888373445174380803587844449972317196386504077287732298089236777127686150135479214816549651396294126407868954007648460408204432086237725686989258944303524453086240381932893371874163767318746211085254392723177891617082803115234990348445768745913187242908380777038153052264860771243285333745783583581715468785448234972753921070021391491039814341287759029332470707267699789721612923418724454834802933837430272130266683377358210515031910472646919154572734902540745869935646391934720920864761722261914163087234374802699192247084773143075574321812169995603934195805828435635676394625759759062312961022470722130885749201601850619765918771086671566655832334136179655701275157347775287652775698630763104735420223617264312304522205015995470815916542335323859467244551765922574115050704755921186245769554356115255055742233870821280295653456972993748625357010971608777061347018605469374926512701069089064193130644390183932420962674991495272034816723483046889769755183894658273713694983499399455121523899034318981197501338380952081436794290591588176338314469148888556717809629983413951986115778189216785163832528893923603184445546897530002530547988373683090931552752889062239506635907110722084574543925278129710924563580063841968361865663360815737486263665113624398232787021783242988748384637829146981207923668580541572535890626907635497500845265968016294225728172633512164432021168750379797452386504297542451665167604047349860892754277184976613997719134204288231756485082408513803635353498552424782135707841356942642399052579801977288618681318758104031086347834981173765929567204231391161533457081162489613253882232141162341125504759109369429789257851967980102311432371265319900369633995902334556851309866689341066463381546274543452147425497440692403627966332117442681454006618798288064739444819947598120587028018442894981943933671509774028095550116425290393580156463181156725964493416726608536914980690772025330235380485942256653410133196360749872184749920663442502365787577561014705379018504071924462445295801441140292131332923176208261074150469335226245797346954991501459141874780710811781775152108549651559120452553269362103563727690171872008331547066068510186126824059012135766038756957963112937719899446153883111588532418669612210619054367822954202437881428982517657104790017266479847361979535403542977753419051443883751602765515743716938684711630012354064077648870174875886233293466898674083281763611378331041673022260830968986650422824688726502020663850333646307489267157188105212422499097733097063112127555335716572774081899565267376807640196048676626932845133830955922781179473998010168137678565302353169792332245560108194840732569939063781334061498788329106147881114364078960899693418098815262541910730375080951756902921305808418050357357470012701341740157831028100826730723788628879558171996731127535527464997934120376736043040312876928208983898191406632780603312164163054843163470464820768999065884004346022904167784122119482965710888251261929637452143164943294838291220614340437679249139410643179991592420705986345858909100475358356433227776350801717341468248995197943294748041613090129966688189015877681605771164869995344168850142723661135065786037579356659243371785689398205983537622203734836502387550150867480398275300207327648643864535292490078458529980735434235780347391383842842997168575666494472224873429655178286046423038220087400857112714483278079505183488575845724018042001254937830076925513524814932594221284822303825570956729938143765684354556872935063385426197837935657260453291363118904193981896039565386743927124533289162955002057122654749347176121038317551328599379361179672321750968415817901108648657975660679585082774346145506488059254331843569212824086712341882998319722666572076515713382529792059468946369270357410967895398939453892662468861264436356716630303127800058292190686439418416508925849530921087855134730965424651713217114906366101709013757439081114457861725766657216873302795860512978717146046542749938275659784086818910487813818817430561603523091199715306983801974348278447657746008959578763752749095740421828631765359523280809283616888254092266439534967969164464474594786468977916724252025975936061231354783934519474731000742588661899748554657925629417979720143315354581468908422320260453956414347259068856942102693079925192546879574826922468937913834030831448537531049599622908549900423806914029563338801622684999865492263626281107859843430169987047528829883952290923411814940399525872170824338633209616600748523010111538543180583063242863165953642996910877973622479571596908824466108574123469468953419074628935363266486575302191709264093149175876346892825880755829632609020651672279151028757746643392431225912707016242059821919305882201133569194346808379579934572593842427225145805628571259687877213413818399241197281683951010818556449621347314766245992887128976703148031332151463065868266322461779471422626611374307298924738999652672375940267102347022636848685238225789496139015306205257168864211888575506176568224112990077710340744844741899495247459538902285316869525836142134852249319556517219158157606624005389734759788984053889094413459239669003141269254684986413987573024772627120657712926497239808968443016762738130661141756756593526709801624171715337338212595557124614304244332969106050332571904470365196516238971348133197206531252464607696219012393530463775335162170495764746466842813071416334036300700216683261670294239518573530751313494187147290413518625906467097370293286856008120918448517084514978418595488639215400973160717826577051665997426380158832627682326953167256305384909480074554474001911082936558805847991761968467215284057580572268522206476288804321838359295367812348304464188356779457348099558602999941449277827957894500491140033995001345157161841724121907010056867648042352104255331777170996248908512361001322518265874646608438093051821440567419978753659136684340723943405403393171838211684548973084891065466649471258323484411953193135494098944042088388682010670463549935418026135694936245786611621271886614293580450732324682970732296112224799201539893151545344708128659444290450812900199124027630371845487802463572945255165601629201706812205717226060612840808797655571542086732650669901219408546881047407207468465754151995551180199998565914816848522921004939630015654226045708638373404076294136140472884066510593530069247573993851143250428539228701252684431605184557542496511267851632314707189063532009972273280763859224350301961269680595883547480339599273424484882752975749240123793246217761097294875330424348248680487287229718709019398551192756004176872405392088299449967467805822922451507241264175625414593949195866882084356798790255638274417288814483612031350593927693627650055992981408625805465093771068120471482076980499546944959386685329382057714067180863079412466042029723335428699110145576021832686509980633435219560473906844623567787424912684841667080952691713613889979224009252261396038465078307729750941435317958611291901395804341902007969569648524792553961918837660268149050750396133748875371229767191550206533609708309441797719521323316535372464297709607507361175424052054766864733587854352636205383655691591423544307270038948078806458886728191751763992563842942883544580049972324951271658022545823442611642919162650911199831250543872012817721144603835502930267083664338330958899508935136508778464865508637719438304711739074154935714248551760976628559338652432604260001412532932139501992176241879041137570485456156667699249392130174539929291709336517901124600724361691547358274193082319256138760523195214767068187990534176045750937076736117702289412485224554175071079056402987900395677840053457059377155276804009056252748564386161616604922113821744714167130313827451165168996680688902351690635098840951929191803403208337420392384903781708040681708908768549745982892916262934909922812223647724026124472796001755382908166156048541902913418865173179417810238549834765644330230461358927803669598201965553548072834007338420342262476263585424828292238837834763507163886827789686310047244639970464265494292062818804638195443973921327742856398707767035676271826052759820167933286932502510763497032021639616091364252135465094493325876183430316327919993186391534716746180907477446613327056554668583262551850951071237311880708709621580151245935265550733531896150131307958000660341078833418654598000055742268268613373483542277107178899451661178722817447986231013699623398892243740372238346817917418208999097192256317475195014468709711031785763759826267654368987395769061103387271870893218865654502948178843356110034244714902810037568310372178332319798463185878307493516050674890767237464728875277275225884151119485185942330255766568794665473228964725772208921549222140574482831708300704116377599850734653871464351341411430356891794131080524359072801218830489590418266509068905148068137775070650284106156698853761513793383958738411167180669639000048103148379140008317512377583886912931955065923980964098531859546356368562263313973508067944837665104853056839080596298992202024504602883767776162752185650333009425753228320740503809352157856075856236214422966046702634195114408426786947897635954159287372024303234988553832522718329084094663789173722170855386097595140292994442971004671440548824604580633227179628223282351473085690779572410290946203397509325727389488739949845598008746078545542691758113160724087882382612774397455040561282246369241638947386814759670950442760295127300484682160463035956503587743116271552800949683347920859801503994548532201096424110486864362300478571645002988232243541548051798548669697366253825888455662328796208094536188243606141377975441185917712968192091516009513937322755219107958414663190846065080764315965415580218567546936094776914204662314914742441239362398972565358182313674076850665266335868905228464966112257869880474649716749620906698465235840346465329735630455930740487402624753339436545585632487584920964719823545477656838316182752231434216687868681503992898772635459261255320716891001822146366809734808572635048207860149256114498305396567890845117890117313108998733665158978431414143397179544831010974692212441356032996531322656104190424896595902081000511044737177252008198727676681804929022712518492273775456861140828436328904745443013495348904878527577739965120763182352215141188603237499877610036133329942840122059552793203756603780201849283207851993881311596129324127468752644051589061973893278588477599751679060899680754209189020340454751240937003848598738901965982004628602446313878670462011039856062706544179556444991091373193621823999943166106860139091947941423834728252031718747070993918575051082834130288986815382204383114410617701807743253388233468831236301162830084556912765833264605411232579538025714126448077269623489986026338840755341407095321088811144191012562670884061112949079893431719937930728049998868356960065989186932603201941591178735509991827822097530296945657227923719633963356014338643958307275362014244178847071090577264555634610291017674808271858317022525279045947699750984605065787049036923906780717335863211636622275860584596506185558988116896836801442000683662088478932234166504341731527391882169322568666110421210084717298651961826208303193290616499434570330524839814589451849286397769282278516913120660776942781098427911198130074478812664341333790747430368945161439274703793513936354397139504325949218622620052324751022938366536092276950418854364106105316727681463781672805205523415657301982605608656143467092232034919129231436045352705813588141041838118379208242516881373499013585902919058282488884714507242279561271698568171979503315545444188713736356397613969467647392786739898970570617911646634300030491520980694813661521912406430990399495616376000120413893767796118371537520743238886626987570486561443007668156781055924644391487671752850845764577143960149129830494627054365263407150986965761872408152046594925887590547504884511435835408196486067458688214511872984749545129981897408608037429374665058953840808186373747205552225248346689322493819430405183781715157933333584413813121952906758741176123697919262677074531211266043773726780157912397241983921000836346442093552169171349497704564716184617718929070306638551936052588219253663598872702269184659251817540384056543212143335937652276756730955932923891602415482354949459457698803493517952140545709885941615925909454351411640928203242738803238241882746086432441121221938914796755286868488051238406794599614214990373311051327405459424167211231979661828616546743553077292734586065401135364304062382886680103825967690486440396649606472848683904071829670732281796494135493198789336916061259542170805064190343713395949516625686677608262586318892662507747085729391240673349212467427833305001055065991056198975765663501686365897657195959974911971917502426811237294366383159800068297517246252899568684235919649048506925437203477447844123962148497317281679752513433855435225227527565709879014577613602667484946567432643374838223127422664955451289401228867117828480401729920685625570301130381864447773460389164470917719362070581874090506529216431517577370212160015712425655236495256924129468277505669087885792633390227466993048941975561847869293461334567380570195201235546590104095499134770618300909364766931059804056699364725853937887675284762967327820628002234359539590408266215333672946824905646508174527925011058381078811116894824077959148365407711425988188553354183105806206894588033550618399996177147851479499734616979357508072013116727609153011494325752920006496906389766969288873306597391385556413788581362730289576864283870021089445308473338757755444126059593030518499349551681810464430748262806796785483233345367891280928375315563466249760804285535329240837933769022635524723879078746242533902045778776009660304966706545381933260267490926430827098288125125872545925209334036953808008346358073494826551139903173274958320736805254128196846476363307073433481320740576599284334386798452057717100200257144384169982634225658501638765644385927904626350421044484566003335160277060452270641109220500928771256963562101254665412690906131175252518449052307826185500997196819015696509012662747477271996826284398108773623100429527905340582266020440036225355973124226870745389024530387170452961706766536329648489345633215068327493774978741740567346046702831165335562824642814249074253737778684362152107813654955050632679808978540549565840657887909825015505144705480018609007274501322353830691349317460194213586223616944267671878244842578113293614880837754557725988021253719419007717364602679894507261969727170999745773962949150985435129209109054510219854202804920792877313640387387167452636509795744948369789513551477977389877607820337124256691193458962160472797478890085596514776862484490215445136031454108953223668231335011580481148918719516274956954877840796496238677627514542380487159019542210342642965474262098782983445272921329552497085488607896205675628943116578103993849994369280739885547390428908830958177856513839097455638881599304894836339660001866449588918259956713741018745145967468042656490546506281513050503884494756773894120173343664625501680541082032237743138194730172229630904348220507763204611518297503318877623971913251618985919448161052009054080121958187859044084614066384439368214398920321305045538436537714382080352917200453229917777220208080681692777151370298737648246959045118886415394787250156371261360187890178271482733700224752990314665596308672335843472123172527682690242065743528688392975088695894414139459520294878664569768524318047847879993273518190375120998247337201208986094542300415742960889180025168475951696996750443833407603922243552232390768300058503860230867751382701822120881511944031454674623710284718679249076544250477013578573044631691489968393327476603224611565575490817276759300494453958366164893090113240987489698993256854261517409969165440915479857773600136236946639333735518533077303906265422792292937290085454535940968853149414070450220136125156698443080783450640372201060036503363313784234023414247030066759620665265353744872557864169083752804261526953293088342778214041549847427923951771829247535884552567334728762283198664326051035074305242588067757119166211421603191850123434335785721738783536118915577891151457995623371472260379648055309017002997828044726379942454852657353710747344582953782889047207529518829593573726705532924852830018771107831267758131254392691210405963486838766369329753035739771000674765705477790660540782910405594260565904018389513171772932541049570843152754383251367770151139751360206836076468835681694298837301575652128605339667991990550364420780247312020913428538655302952344552436932810439528859273913471535228274542135074836479968517467047063226588655557581815587902293517262097577242401932167587209110529239073863214548718789674868972438007223538001935332514881451527836917502682356450312860291510651902030702624261546108799099159766817022412607503398233267052427276910981321776778341084842096899287112967177163746549389075828006597338179110517934887044989066627628007452157305865940058878883357899641189889248850718936697731432863768879144454385658017110054833094803856408406698710032837420040160898415106801909132830251359086512372301583486713845743555749669461353763793769439747902675569605296959705683498270114613084628210399340462744251401664257905222408384570760164508828582931913042266508620587870990400391431292907280326346043386692839259247836790102936844851564886132956771255587544438834337073752264094732197123622838868560838572982549509576551899605125603236552993403416038992312078785365411979210187055179452202928138359620119281764689836420461731318949594971185633892365743429458267927431406334612070332575379349375997017489519209659310892534994229498887203481599957015186037979297482386745557816618859211595420487001606747419636625303375898550867950420469359893707772665240800500690856132848330774862567288122213499711801525129128510101468851853556109365400935443059008790084525898131825576275851057045667133081457661292420551691010093625521273871801439969235525598276313662147900917336854517968985931808375879983541395011992479064118471192796934333900097322111977485728971784987961213998309854639559013040398088558125243415163751473074481117709758736912642253105321448970480826237203592143447669397778568383810805210950496134260302652984414683230582840462437273780654872776812501150390376459819110216897901818839534432232261283036558912268794258819272403615119491017942688725558173121088568077759446170153246451469136066132231605828351594975458858147361374788519947484717833169791043837597970572163308873745486787541845366943957191707636099608614143175675095463284642676908938461398389189315852453513754511703367799427304100529672465083941668695973537875529362336851662192040556411981714286450609895693238290208623733321467420763607845297770387035785893896858456068701464224740842691004632845082126941870159834696501563845286336004213268708356361967625846722948381926450470813059196888928472199232186504778232946777365934814963992774393679015908941415171843527936669920930035402145226362041525156300032699769542816615899445077044430978237693285543137857119259511477065624311342385375594790371721082199329818970933478384576847723358345028656132060560313165369044061986541745035062529331223769004043502801273519757996122071218678872405041655919483284314695606319851332356984825675429795206405359562443260579810425336278655166360493347766222076162027209657494594103556508674453679105870894162900668291816490079485176067824048483846257914429632973321842226345112146074746979401300773952171743728482488228760991846309565446907878316514640593256772109858368363566181888639503964612435111037172621951424496717958270228679132789087992469233948165380795255126184722864502788427660659470488398719237284983752267953986197618483065048519392337135937720111490577522450989251449540307318368113036904791613955888295197671669985748731398746578369735656675002482311145455295040956205605857074820901794065176715032417020345107609993093055581330670673493947546163499250520089611983373436241218518955827056119463736825043748543134949465881410070915095813547241051727382675750051452478253176952940331017508789780021047797315422301405520131589586422932178573570532126635229183309930639102995742701696842356934517395997450272111242151650184251380501744930479675137939923880676655060847662997617301169664473664182195912608077751260287055457260600388916471306499426905112640830857693715950707897725564911389498946896640866151826368736303704295801670166132469976462222016513529369548819700807025479031277371635536443106763479963300122041539865485874809785773511991511152899759407080121922942312902392054092537137063984150221414042822172030332435946448184427046049265030886675500433258382697609065666512717801223330428783289669850292765945813809481490754335842974663765359334760466276580987366768285037491731571302741898835011543671137349258027603759436854774715150809134753195501262662716322770308823414628974026046689368549825039296552524584496459079824178554509561768056866035328632517749268552778467484031195176840204155879922058503971254283623266859604125249515346434417390811239653599804139400048302723542970323219968570847428885486867111052894831680673466691949381157779664307232502080004928300966982549416073571891137007218195246671322385598888644114191600173410749666882992661447973221849887095993379904172917313555511753642330936388186872642595261896812800237656633836741875313390877512867883260671788478927132368754293628007171288064362682233943763369675447734386163486976900367322322958934920608907954262166455192234853387863161266964644031525945766425075000122286464272225624733449528146615360419107202287700321573027372936863268440774927837728412233852786212106571105841566668255102358329465176722928497836764448024925371725015951878027063551972561542321569721647271138305412489292721109711638065666598940200616665830857779930417435500906700232159480372077952390544098069320798577566214826172778841870058643142928889637963637713166544282790265285553652916023340727401527539761752230602857495442865312538987951428558748980685722211115885336830700821954886020606411227476758830766616483894897927252885812956307130972847434505339819195323247631509875421340232876563410410528502110886278035092077744379846087340691614534746232042096712546143167165968574202812008340214275822000502423721762869109886622541216503150852678764020358814316137237776703400598830274526442635218477950635192788728533248357773901283363766840540530514325345317526591729259599016717956702359015641517812120466341200861764202776382132408802553672300810342871580423138043434792955060145060401121282696152869603885432487554095396540036082895633589195178098068865797743291255468380678192974295413047525985086271346001929032840056484511829497894371744601758924243645232369447132555958870256038679504404524808956272440547946791952210189314802783365480857187710190077163502525492453928598695352031778571893776787483434250602345142934334015498318367431985560129883217876336749639495620793623624268287725319538145332359918814694977399723059647514267996160629291475353776130181526787722964002717880755538066106741937897819374504052705745662660358872566357909315388861138451700023148599487032902635068833739659800792480978635833365332759050725413831274942577634228267135837762181299897183464587085080084563409265146802778219836505990396883399265488185152760487556328584588287261455755398708062886990503560949947437623446485409658915395598154339756189595817066911437025796467289877580282548630833327807617541182403687092555432418728636108508555516805542272691123600930260559762715641563347210016667871192899205657463801743391985850231060332367708833234320359120997962862753204029819090058022843207782193263776715147905704558887751396250822722522908401733454406020265344030530276867819692099856472752340655984431648895296719930382299065021518617351215545590993004175552112379735043745230165957855458989448489781187698237048638445272873547093642529105879109994636889205373114335273241837311967683733384418116556168034226715380676245849358072708886185415720743938910902516694476003366844210035331144522721238873575182034602037456177467233356134254764113223170707272767331715710162330625076966683192492026542058476340024199076527575413273911695803647492470747846777323929896996071980215649023655076116802698036680485654342642303304797218874560049511678945804659537006045624793528623384260437642628074998205831371240229449497926502655496047989536472299540585527071418737676716767034615565005249434734033646756245084933870557110004685783406751572028245764779414700103391479369709415918500169959609453012079489068483303347178965397802493244702445965236031150876784348079433220142071700246884059051883007948397042413153815811415949906885334786221206247601415842131152832057567276211916383674713339467309390318575575733171224332580532959903903304418462452232401962811492208568576102354979607662633481737764210507026512654075014187364634965271707107403758691590760148006516594114868676163758239238028049090519474371433357272178927646536784441769288032665021112808475995380615201062148130498436046819545771663948628878967146547577875688125441659597074229093312747043933375205554252317926194720501333281499723509507056187479537969571445942774952669729593127125086977558174335722043347425602811427274418480903159467203112990418243435783189729521036743986217127989217735919485335692279450249042219150946633065802935672030987743411237201792002954718348605154808146127435477478129858968406181148268768140812419342395349475175354388543566691947198956088383472909995155097929197352108771778231101163666688972289099321899520567273678812892104219939237252873525774225304563145713391328535134364896543136227196871256658589024307679914434897382018353113207977317651898027913871028433061509953089714558698373463837085868215808121638641946516159101472483651142071094188854128648963790818547680980036112908620801236002057508392319921791739520636578693815603639904442818832587477428770453861524736643712368066121956792275057777199979621095089991091546706999332468992016569556705825813914133809482977188315491664291244770883323169722931430072125557707914686627413077960619752843721013683419201576577036949918985796890227661242170823745801045277819130864058688310251150805216088061204872668664690630566244369699946795722369209452381069948928472867794686060363193816027817576025759649565354371882972157275423063426368699849917786942927826644957501959096353888886385903226903949479772021700288267148007566114659526593393609442854337539484391377107653811321777374122311431866773926110202252545787896079138253602931052203094381325186996143023997029279799466582625522045541607084999904650473519329064587645548240352248581574383830049316787076269503596049351935586842664429318012169977216255338063505827892379849873481804047650193822351005069991627362383121053694893929531216778158498599574193411836346293551034023507982898719155980699007794998869203286212381642647025710047031331438394281353492443816059161414559095812426869866383590690481755262197430752387427716165616540758610723728116301104645414803913636124355013738185482783572538966508536693761506674190478068589692764230556740766016849854111711271437390748366275687041066856674392872318554496473208724680930528854603684441276307950979046669982068817195017342523941603977266086339175995507862851516180406236731412957266411009171778618108297396913747246311485261693434152866542209599329536720465808541333230233935127136374250081340571944601284482695307993674285304310682405256064075805917439737059443163868634141175526692065656749694724615634260368818435016966642984710031052775894910966714600537125426731437514399629722404060880115643128546003735215929253372608340918654653269156743545735783685187828966687950399796705381044234584361314182739386155639624449972825454795644600997258295011961633122464783909682788479761629980967637218240428792876283962575797719658235216759789377357919991663490822781999238090724951349240066277196303456617160289462145480624673174966626488089908034249824691904052993602024805401726135194844056913027786890682738879889722654844465670651013356314440669405278429702360858579485235977446611010548001671352896319564482095678482077412197220580989640125190348849519532215478975015655223636332443125353317721260129051757166681327008050946994898788981935071714978443316996132214982876657418674472568302721876197741428972687249859063693430221410637138704163080553654852412086952066946676657759339743466949849382229441198177921062641668068448392951852896558881894622030491972635789619024451816133676421752582051770436034156990786247587400758691312774008070920823942929198320513900958211133231818913169549309795296285096129736582062684344498584106049308887512223403650445876518716076542126226133192652798542901323005176238310597662766752684191510086743614305386756977548742336860478462870419703052952747635831704952018242436964228811983164567255524230068828280907788659213217846726398551258115612056727862979152540846843108265171090983537943072442494995355406388584052941063563785645473894429038161961882192256469060554162796800385883133229190013053129745751363318258409769143687914992463832282878070201908949948873534581034131008731170633020224611748837920503145158765756756618783689375839398975375484152622393066435458841949800790229761315138219502027552725306517891933200041546886294473042302995045310983411314553531850248302824799322720331568703009436854661443538546128869243333519800963921622815779499216916063663449745004050692351612906072985213793284265064226753776212371300690323166624272046818286759462159803632966978829290072902740279239620752240156556627070283797341253721946580473374618039665097752983332926064301703105286879091055686361047059114061842555656323295797872695768037835241800715745696691876701212409724407744022622368891705521749533940765378809562254616085320431040921904242300643987990104976491259480535616720867650544187116770768959251185612691952009447321831505333358487765094256908200889127717492091153362696259769608802725540143155462789697898218261381299496541315543241860943765706492676851431597540943118237156857110074969673936327648709714637429443670424356022037906973853049175279981931353133364642960098665936965884334171364233767301587642997274768496855204744558313033144509367796269565395281548066850852426010557351980525586352210514860830394000103114205236318050127602703188411767510092151539501891940153791292885889886662237305143190410824044859887878333519465401267700295898863841731767726372503746104205395864375653656116658286465565890082981348082374207514718444069854778259497671079295641964352233743770148367037758059819283127834036880769951828005069684822918421977099838274672925101912004791381120739920117655014039359352483053019980939961414520308071021129739917662190931722294358178782754387642921282687987861217812776022959954568798542858339816359389426753343969155349793455594921915788044524130462702617120699940327384075571380377110973982630898622727312062388756115433965698857014202595568152432917476059624708712661025665445511615694734394830387920635615350958329357924481237139963510408911290396619155238278680125511385818782501922868961716128314272416138984507518780259200018690487490604120452329881469577417445715221209848887163505172605434642212347573345359226453210789658951166919735888038294821855215193769946644970108545807774533044457853115342063114165182361467654318531614106496828843863011909173873385490413917470544695480490414950539815651523560296536069928012166037263814145234304910729175572938186169694831677805028480458606904623953213242915271603618531688668836076127645358150110757883353081853606209401770997037509151311022238531479315448284249812126848823421151846419733577804218894773414174743254815533272699192988772866516990003006112044890811837453136687428702276906915326163918546001339471022648258165837838103315520559871032937390768880056627890191172036497219146057928823247113982599952596376093684480251248634420707076234188593112568586076187078774344040104307990789644625085693881548537441320059824512819441466146948239784946639356440409100445095072247168194123607099788166492780422357055486227081383671573970612197448031725999590352896742962313325236570876133393519590262955861348578307860704165404717276049982824429425686524524161976194864815696920470208456157568564937524067307595375913971229476965108438230691768791302837085858066760939797226715525228069408083995530396841928381215099343511118517230905593494486176866817164444729826404541142731404671927471058993283773330448388896702079955523581902233205298082548273984950241955130750570864008264179213245129744143604698633929054803621576909488041189063246912678526489888621462104462056859171861072491294053964895032912575841473318021544017238539154612620858145839592691723408757552709639390400912323212786379839234203553313848210239991464039321916241684392561625109986157603644010060633709760371590455384066136112064506055072992384901855067718804478325634638316570071518173748699188421168524203154334854292269202635773216798033227005695935758203806731300392701474844756497846385823640011161338686962092850231388945399109084786212283526863968458472942808328927228233004760633480475953760474641893630139139052218816467608159354331201237691706619564471110240895562942193082174696290409186279587171318929655937154192307629903067882064810283301900728706372697522897294865371476061720888239289868547579472537380506656364737043851816444658693498959402966286143458025500500944653343433639462219855455887902369062538257388211393455679264476957567438586014224705115557760414863720721549565175716190144729724046428661396102750191507105663827573579094569488715763057024339940627582948038605453374676336999988721325851018424071422584062956027848288234788392156624172054050084233404629547824585036739531834985403213467211271242696040575341903519231941335302776541575030845930687828429722873134253750195145676412119925426650524348404444354045332896381239364054562774429293044629788693455314994136653199830115364862013125113217157883519262503698390883921774555957017773721372541148708943110838661167666660718599859791254249953600579634775743176148750138188877202052362113108764001524166889998065693121744934485896532422101150171428402345919522082391973315960384750001980847967200017622701279344021949735474775090430347565806577775497402756479274576881918755351452612590750310210017315598159014282231346059562550516431080958170853304370475802695502996138031178582338368384450919297536955425303908565000438037245919402219384309710867531842893453555382901478217593600641359994965883694067216337557591533316199651032024462904067966883408329493999774418309457789803053888950833068835325888218533759859557107687698291343298840482617411722471480021585226140142785507234311895579042496580134490827350165342257764913218503188432803899116149200477284037796975424171847301351701641875258122552726824588807040503690370313763106092010861576944656472153029898891524909366736730648207219120437346581799135958288822204160621994406782738437902961286844127236331913468016689658725818681683643996914399275106957443979697781409750501498182900553757176284334532356573357745377557503258844833134533680207771360303961362333356128158437430822677692072516083413614958999864632975587147908952682153812344732441138356335776516636126062282235877179903019468747976266953501499327684118346827976087467461528336300933941104433015043988180805061461135309455581436960803582742717199664608867802822257803340941991989511472965280975911547542729929783814979609510777173994960843385138856122940737539088834599445926574088230769613995054392480531536882770146140587208030978926578757015116838123192150884242900004355650410415345202448033462365053123659069257529470548118924748552062059098887109661112883151604429713973456196928154357717655267084663720463141355918616292259495259757879809947109636489292375278655452357101713720748755906392681039449093027434273908376305871520774188641480244525756983253522537838726010476452570992181748311223759375996027545055280842922390715129191509693587026407333468832232355688948162298170146295347873575024059476855032189562111001699400830601707922233906225129708990304207733809131109512786896675633865191897532071714165435288135130743302799429648903203856065106960911273092869954283226767092343007182221101539602214849496044279321075398890110086984322126268641917809310781995777122294531750777164304398036567252450732209501707783684288393251236919186182753290737073905509350498206482091747185616033806516842025257535988243884017216431314509148033863747789003983979488595229180791785590492166474916184605385754638243676269150738410789149233452678456671907861417156920782751774175676503328707006533172712169071682176164118461466048014404394522213740041489265224189377845260154439066216365687478761542019345159457680777629030934421919225781865217468307766133433620777124457384064447183704605646593320856543736751501100426842050801508361852753141942657806949142005526019150418713132969358830222429835611806902198607091285041328984222797972066736018776443488608729868415922881991014872030283954972367861455721214765102192305082930691630973147316081537428405999375875489343907348645530955957437027845277558501632864207080839182034226986012085277203534600943610204991259259788982817644526556456259167485254289904041087608476140860004523894072871658768619149999067452691226353244020977247898383839908767365958720095695989330240760384277303516317956092117676620167298691186625860395637675695486196162058315303734812130356249728010105194726457037577653218621596621548567207843758084375135592602457155995098794995176269315649144979031129427237737243955494949753433666078370427645799436048848927517111839111415535676083218574071829242679899288763184182457550308689317069036716797016622576533924752444430575507155896325773483697530405488541546316974158592870943383165027607349482319893035714213066804004844310416260107363245805536437595946476590477467038702471014371043007009922722144044204970160018739204068224436700021037413289022418359473160930553474600680905989620447094222295879252904727563688829029183135102595946796381771228380567300495718193563631479970526179269847146537152130154836469999909874706879311580576097826174131018571672008506847503517043461003076459196419770237868838923056707844856133761912525023105495844779493500858791809515888094043025828898952883619242593322365387635943949951683707647261047244908539739908248486795783432557709823173348120010045206148752773222923784085917205349469212680668067719683246042368321129537015754983571123525425204510685489776087619759753593783413011241631601110042984025305198352289964539724960766942345466683760903459495583009381648525163408400565161123189349509339851108521837222968472701191813734519344737378824028559842665654291107710417127411453674138139635035743839264026419631266354614073778645370293645548991891607085609681453879419870107502741427583130243275056721183906388758581601069911223089186885271317765274952186876250243867973039311567886044350407696396248590310260421659813082584505284405145700009538959147601827399263946087569169707469819965483931741142377248025174838022578609113497143344357536727377282465785804516082339338465970201730786146324649839576300086782943119918599950673755629609680583785775274483915301125800829637066684717827647714990047706176450927069581970011024274693120043582933610656801232692720385143244925477918526097665985308941493123934482831303338117646359267593604120386123067832723067197160563581353224120301124309813070604092140508664721201327881093708582713221377260748400992349431301843551945331504183010137930212261427928817054531170107303127196846334554183653353736792550923916801211303999627172457373654115196297724117477265086982059918725038818621758681107980989088196859368009517424272602663315131844155711881493854836797093432913279482722158010063078068728053467539913055349191215067618258192332723667730619578312527345750418933123274949753489824254836414072996064078023595242186763038771531395789339351072886883168751626977494693293385005065634424988638065051846646231001191991102395690474236474949343482799615444870822318400076331165930481998369752352985111535409583701839040292347629643264180515050610857594435622657085146785332156588909076342477089100985144543878086727672251940627403766629419692492022949568304513474734378649624875288764823181911070584394682930913841913265130458360564131895440109237670615434714557303813076391715567965360121638224248341482850653599009040501267185666592204987107725267400072641643669432132134628541076544792636923828369509834879296175169318803590984896951946044322416521093232413389629811030874964851624594400871211445735888882656257933255796466475285800470500559316194556267817196383452737602345877164341604715416120557288680929554319272748963139825955240649012030711265306956918329739324951629154634573471204049756419834034767481543045601384830735948272723900565733189956330743408387513392401096403861237652720781011778514015691240670339280837213065145920678129718557626327999622346356953325024950584824128835868079242361386461653845158787737406664906680531232861266540786129007259270161021079552052102665434072757551225035740530055233366754776562436375821687406053953905173122496689310781741991337614089647851638903973471107450560062424916014651153939492225872039178789299173877467703467735413996407672500701854636006543473525066418780575757360431358153744887206574162761635701484648867108652718871781083079830207526071047768978310789580223431656019014728964512735740848416979868050226120884868127009652652449198079766255613344512466249810858489415862164396234190732848910162993032593258547143487807435601365881331847938021889411188903877909930080800048713962232315648755881705050325140523030390708700629458014187120354442153734148109051292536956111074350322571932611185739599353780665516350658952806978216247852342673196996753248284994296356661655571426259229205386743708454631623018258050740170207766197559776011668200383866861031704742391313443099273833340797923230467965192784798447323153922179775301031990473060366217756989400010842499107485013595345503622463488831434536265115025843895691411909939852034624718751579500874230446511726649360085167765516287756594111288186998355378574833801464517255583876914134544482685168191845109334799391894188860475172629375585042221905444906388165126327639608518315935247287018452315940654842511799254963829523225571038241645794690514377831060523878329954274738162308468507458441761434149559264275317411301172877254490943844522833000604102496078169455274068619928652971695472741508174479294721103955772636494677721404971125941980511385492621975387254398613948796828464758870041996967256800703874046578217930452226477413614675709749042828401315746419456064852606057034112574332163466147626610044491295728115163905730275785512299782056271953753649721899715991480334522054562332344215611544404420974140519191688049971539485907880983029351994679953208581897224830788889377576909087683579810522518857724172445510458555301089018433451974999860419971369833138875889627375496059913426947107803223480148534266359892535405855778890821554146586646182538955692070720944003810888313618657108118850753846974633703481734306255030443589609932368128577566073607063809684553387265810864452670147099239311236921639832341694289313377036493660981975471423586063938442737020401719013104205334812654287281052161415585730873259826668613457342227398260607759873931477265990880773430149769426672987205000867924733719979303386713699367250744498743890438387293159702791108918795369572365850997594892644750821622904403802804976613353300191214429363831439552272236605185412818456267722692033513144506532878003885716293525588889497226516201773821073157649013934575192358087840604371740170074650703782340135028837257644399605827488817862338422424319187715571005268939265517483897998925319731468799114272882606636417031330369641878543514821392797755630034295219086069714959912153022715548347735944223092764757788452946371096797588645163215665168084086290486938265468216588138410269707303950009079433973632408915810474448528601754677033269453274286249499121037007298765559711168721623590918171358916469552407462243848550540054111153093975251460874593832692173717346434857456355860420253641593760318639573743390267275698530348681431622436594802969247070605973741513886715044064126310342016118928894306702062669458593665917067059950911601843125651992143681589140952958195446709472796398928697107195491080547764628767827432034573630984004751421569809850500517763695369467213190451271770710815129254836097273331624748513846156058996279418475976689546719641622272725112039229173921730141500581180579496301936370116283056723280790704411524017893644132462170505961847785637764235225536441251958710723644193911706358911404297201265062905854474858993886375639263965305545714490481195397414470884602303536232974466082350293934666530493285294535437769045946933152205976196426789366958792686737705713704188857870390646912534318819897995073479955909403626517519673602072125041553871500797386598459691669017303759972453044378371135658905464401127205479335784720067603810874971307852220307882131656647749446214525680957963679864350649865869478243624353936576523256903722873659589445951949778202840394638901609090222629613769310802387614207814447701589926650548809159710814412465195387267244560599212440225327382117698045728234431381292500694982313326597850431673468092925198898019328691765149443709940519132999806876737305624054671878484387981095961487001733685767029997459777510028266574561552666863094193066761564564441150811569002591273545063652328194815363102518191951377420325475993321876592121924727560209379177040227328754758959483453296303060521072086276334696558780797520613230145002300022556497553867746666768194899563746322067742558430406978092535101458738434128258253726187021910851981571328520957788120460360674376421047285765166507048317140143354035359387702834107217982059759272671902034798964761128520294232885906088671532143028695526203164703691191715070382705733408421643918339799674313230579239742036735521866239225590469823333248119723530863473057081535270728314845184432732233575649044043918276612362404731721075512649160137670548949217483093724825058693195651729148081498744542779762801457035472484560773721907652213994773984888649166502345538754681078958060702558154167234010154643091567124467108823924930809929488544324793408253594414811618606806749779305878821274527888743562752592713977085979172637671867758177487717108194859631207382382833181028977685270763274374181704586165300622413328497692684702270348158855349383762866022996792917293347096579886284941557769379829587156726838035315125148019475838672881619758856552910925821487032102028336620966902842032889654940302635692314746282267082623154318042051837590789050516985954265566518395350468350468517402614904407045527328692254799840179324586909117025694704078814281179751344725201547244049684213790436851384898567470902379638076704981265081376364720485043811793628472337029068893617726751843283945849712759304802788198058212086655990091822263669922991163534710170048613973808334453278467356838542379738916449836168883395759697251202699737949342803950024111539050960317662918995445276589555858839525414530440729195060929125459065730665937563339070465743321092595457942259135910942319374433536282774100156503145830314759906617347807893928751743684459694892903591640131526883212302938042917815831521263574341887036275547504301287931965353862374640832116668338590334615773781888860087112270847116765552302697904197498998031369927435520707329694787713113757731792991200039206749344320156632548761382185912328713465743707558013581449136031173429888259476004061481566752905017383387432672835187925373787556561017899143131658276509003425324871453147845903249117259105101941947002781732445415501946790950265681141340185598016730923345345672715750061132742096325822776691609543157762293867713317917431197949365635197683799087382227884235545242315788521369873204987266067963308304198803517377119087560192350263125014118042234788888417576399364801590018111325186883714592586174921353758609139852534552430128230485548667040788393204845163311215328225102852015341879095663489685358388679227376984067898459333174296094845552006346535366144195899617298308576172283716309123793304622536856542411792586970725663836044598518466893401557446484148627162098768983042526361665926383855011026643633325972389758260212944488739296706414296406182301759331255493229810599937134615258067081498210456848008992753044947220668543738236226779079537826902819870071068290177826198790351188524072301399711325074493373518028253119156418035374395437138503927234503986425810934081614076618431898239186050224255309341483908122581908467611169345341107818002538808341309939019327696944130664290846974608858413944043613178724306070890623718739448268010347865324493806833392963475185276564795646864573220072169537322461510302155098426333242785826527583963426502027089009382392733707193776222525062309473797196060653459602550795066441433217632163539579317877733685805571463401643644087994887534613185435056866408911135975147188813842383549703107931578524936755876520555163507581815759153671876399354671787198168351369003457929133087535646594075133981105308424075456995735477326837186274229645772302784447365891506874649394114333810108969779279855032095937457718053442403692076838512940531724756329689603748341850730692684412414990637869424323596269075815770054991843590660580436614521349608236349118644619528196535816866978567052810886037098882322944964566547922364996468047366268474726598791313173578144421363983064020832850927983697199120217218004664136438938939429236985977758809314967709313158653906343171323157275748242729159020616227888842985027749154790051985768475938233368490094497728169660453723910459338311651089667895789767166731400840105473853528748090741403862715864074039683437443292675997739652645017226140583005691038348389178667125250610343348783058347502404515246936415642577947408030981225699114253051796256191636144517468297064932939449094728832903452249633135678354596896969612610823195331599780010381814168048861030194237278837286327791788611661067545436992340698694345513981552941554178572465594486375387902440715102982507909187457948034321816300471500188111443350868405960741011244469923615690868952202598745063375416844894626568866907541649954443087361783657997622107974981559726244821822075698050501248051449554768568899810855026180652208306127902024211358926091438520331615833760199953787442029423769854308892552594898206083308599984934787891963842130143841402464535510178583502964309967623102291120412311830292177160516250145031997369070805684450971805257303328704821372741145812755964816584804576076805534333785164426612768023362871856021263384403608194142140064157503649660777161578484109186830302313062169141367809350526195834660764549516746900257280231073817543516196920472736413104151905105283843458842999792418119630993642515641820177472385245747513140843481204940388435338150046423018489014973333972046197146347136874291361211565553770307936298450620129264281025364889929451357542625364439159686618240068142682284852883278976785453738378407701061410675789015623991452250692858525299795893842007742823005842222040284948778954465339175250518185296332137758890071603850790376597451468251491662633771947679161180313474013230240871222761380283466890018186475004777479786523987993624378773962080071669807966979186916443579037868898121602338846411356436755135673723655389262528645063665788151289515649791057284087081855246111820297116809124895626647301050738816759534989627246594699423894763428598191995632611741587243403288840016574746530664925251030285216931678241393076670501278662478290113420139579472427809496716175265448634000145489387374760145594196155230355519061676671805768112849136547293029164032810375525912743538206421336365887674274094448043010301782993080116350728029723942257091951556596789197001135499557808319865739281838217867891631915972831648220240211312814778998447154575925485639245527834519651542023920884435010541206066220355551398797242630380517774573793964947486980329313802361579142490337768572160382932750478819148067866331202964004195377064455863587176576069071777380895272932145156198608934814818503439114274323283815365155120367176386106005727586914591220248204154470343049989396703794014732398542240768407825014662083476610722808366901446770811861146317370502687022803494959129427609329142379498982046714384228806413519081199427919613386429563528302795687902422643527911049043316061328894041463419660837803248129437442437217707972704584095741298654702091285416362915088072948710788528713042733721861081170123088303750354130485095363940112370554207521571998744958134817000744135780422795870629232166356919304493776231263720437927369630163463806191432573178389253942899713362167976496080865109598765570367381903378283767230517995864171210580275190276364061210040515999288283251470608830391359319270934246377282993827511747146811335825025131947502169005458687000465362902930647742301543241852014276621675998951876230796314606107676009210572971095338408993741463007961222456793374057181194365235926261460203288126927860406319890006063012780510401372983921147036503515488469118128100761983064637662694703381434659548893883920963805348134987526374073862241384463429428952671189174116154852787807109960375234468463374063397677317295946822542513206624745120010696137050683415903043807604187266082246241054502197590687460767750116455920738257801921602454024287165472057789836097540015798988526339029150372499521806361491108353467177027375383536499076151904637508733097734737827785652907481422337198619959529600233554075963800462413801351410311985995749086673234382121924173411948142263657339787666500570371612332163764058032956970173148110110272321535071004871988884141918506882968881468878941228949675203544945024047122487406994975547818185080922034658778382495283732302931390893383945973903048089268375304575522614630833553400725913031780980855431014124646583041407185682904794070230123033957044430224325512997391644641867228623884078252643583819717773001263569664569181786932736464590654685167928947725553943344017728617617691656862193785905359449748284684653988435334651411253926486138434886763484847617958438813628583584228022610482523470770521012273817168466255692000163278055989530179558478957717305003442465390717399540474816750651404628111490571084256037593165539679705961330526170943429487134434893167297203052087680450803931635231038064706685143180236405980378569282261658814249236301285835296879794567042256133100565375335438574557866294537635992323163231192988146643646738682537229961603618085224043380460725498078615565351050017444569354467104642554947704818862182766436094126314497178124838282932208271265857285198684460784783364028572069680201086519238379381278353269672371011701518230554426498309377403189094647304114679187161029940377501622217189028442404341882746451209883986847527328048526063038164361919635412197205016016635685919833203418990582865565514696702477936729332278950578183255319565467350311804256056984462307316309272606586462634934686726582420805819126861288405299610946250573965616034409426990935606560936256754708012515900167511474506459093633881390793154913068271011638324494524745378796260380804451841309929985983393217690681050236318995511968245341068244874799923727151087900730641811633686423472773507531151126970512759456156567742161549635324390867305275453725183950458949146087894592899558429295207697205226269072070141539140268819033359108186824475287036436832731175015022379975780413318795641725406641300986994401317814770413454564295540690684160608238938187209832366711753791266921659139110568122342840866153024397239940426413344280602508804832942534206185430666808258429079758683392561722688079249384106140376392945645275519201855179936154806624510337260250932337092533473889907415213286563944993224556823568670709028684084751825720269746616834420326169998823297793461237028823447706698198286758750874704475174981881829371139641158493073059446448491338594848691092381098587780497482660770586413123683428134189877670726079390654226561913118671609362714234502556312182169999205072584980485630240094255900544473515766726635565725910933463312842350026589779646379498999602946269153258766253823410338248599232731223321969231702238421024707874255812976779661622485327141096900600101765912754664235839383606969340156077620592986501660005371697756931883164818317977982707264185001164321623788338643206818426308817522896099378411667223059822751879728234614479457201724162305876197792373261389828785696614882650419370104253471299232348209004823765448348752106845634524552907489193907287246387516206065879519894396503565118340104063117687382181239740684406562795421634085649168971547662245422793231175568421492836298639436834482107667490725302219666453810063453176613305279097786989900312671664571887875394032747524766135174618451558967825383670974266111066453864519420013307282291831580711966301039877218933166581549914520377920831573240051513212602154763465876922675314211792260345655713007951707442171551256928993467172932343615245053624056449544036127314741633659958693119400554684052840236853017140316439737526282301705755377910099212681925583083064698633857805001189242994272040409007717701348235000581583494863011896158373457171741030786479184109853048220421169926825290097016907643379300791426877028808986075220511111542682756203389104627053873839966483563006696266965291292279797694431844274040801686113410353550588172095974035454699912806575412301495420960374392181111369066245773922226635007310916383641632115265878340421717428087159962930482154504527281812901078617604122039505680181275269856875046914308253824139588275729544510705152040806120962370319611115300466070260936431629151319031933882026588772702968918086244861029583329376172262163385544221289517972784388583991350723470435502632760715212792053348741132866625914890407597388982066294593438197613810704149002234316484765113304100792051535025916303533517210422642976915204536777248008014165580624218134931072905439561622925243343974205857778685038681623776073063696614433214756042549946180772639911675677785692899982839538498910221035021845839533909724096332863425042889126310223560375082243477699435240964489164339944337174329683554192590754673424259617090864745004928447847415719933444105680689317246668840059890293632203707630306611889836904404713759563443673310146084649739958498294210180200829199830698635027627947989008426756990780167171238484495301021507423150825648538053716909607625916541750411170380204065532507111456503413001242944983797955426182653410097944215012328108254904216998966399318297461585483471339534651916230517740269419152237113036725276641700797426729468031907931503777054413256937188364201448029993824967173288250189178821102525166867333000781231114716742725178698476137072705193308597487435938338756339177728182955500472861194112258448026522290879733990298799326974946269760684904985670452224439464358433165421109591793532577640288952232482774079758854636619679964705044340423995327147022605969535523075300023954151248318485756308899007100588068595807705626529064148265343399520429546346598612636947781553363529805996058617705965317833270805724603961157190442440962716224733187447217662435418176896003994086782392225056374196154107536802070998662268888326778353436556285329356295434548947676827666535145951134318759854317119005906773752078344740824524555777510613640221712611842574434125297613529336522389144538313108265598781975278102650735771463894362131760352130458948338974069376388600584729941776434749123145068951264233286054317358784696193459307801758819591178518478710177085259306192147691203438880081381123770697247929582243263371915202411639071662537610806150767569112404221902607519659499063016020097346936747314511396355620138264413524220575328482607584534322842477289613114754753339286125638552907409092134650716617319756706568712482028152158925694046912471604268381709064947868961403962981643542111643444105639671160733407889891062006421394893417971764278092747567274569642354873585689676501707708498559410307257471481379794717136419267350787588002796838897769005748224619909886663583093432626184318772749938733818196019702613657813884597064605989355178951342868714877372054106065780669702077061477461892198401527737393248456334040646863141317978516148042140322079455235125857768929250094359960202825700294602304178283585821670590355156632828415796065776460561701868511052573975310929397140939998393666663342503658526300285535461588366469358698823837293305745534496334383537235442282843893378848344153734159603733039983548583525281697746453606280792221205688316843952119258171128545430960546456439618301427293163282276235468424449296374665529038316533154049727242325503767890891681139193924559300623960993407096814090611268821719973660083768713186868286035896553176906141485941242084993441432899728466888232138618926493489479038136040405443425460978257402066759402688608159455403753870970434862207585011298437550376173279926251452772777543420163868323467787632924759357091984224944791522456986627015111471781375080407660317948991691619799727163011631752231070736091171815529609734320115219844231829325577485510258364165326666620132853939038878869496954043816622969256430304175733470987588454833118025218868209675229022511378246149958521801257273949101408967291004002991259623827269574020626933475261451348289838959782258767920670017074745183444394615274929898270870344830722536529320581986648443482000458230898379338236335079407536510710204765954487079487437479108691418735712410878117105550408632526717304362713583641067351003832528393642970906561401983405033996249663713676401111199226720466908669563994138014509838636536728843394778667231133291006928325161385663869641607389290108939141658552982532408086443189290612441506373591501943702993376906646958521193681234176350447281842281620869875599481818354262989458240767740500929282818722031673406062071989074435341977639104507101998676214655205031709610257257421636453204642188295755884307740156721124075026322041120975689729552239391403285834010054644498033451172823864599046129046676983326796553961236862094015940564174736908975152640311070564171440095200810478117781396547365530437204186465410173723937417032967951243740572673517457640392873370562665825926509813423546156401896882612383900390651755905257231904821230343996164494836948252985797281045122035742153846614924927490689245497201037483132184466556925413106956580091400446259694812403838723685927150461829280308752677394115839200534900018194100515468314822757944262367953122180418104364546606884976679706057646195124440093285079745066709512070577733478282701595225264265367917474796276630667842551046448502663403872329606995158003857474377280170227088228754062407651038343615634826256529909211040453623545680574554257638308395341218802520210666123395574988646042370016376280989414405954434766926531005762555680823802951545792285121920974603067656971968651728989586726368963505759392800211012080542824712469627434907740926220217613996431792558493510161689851130929935355889394105446254340179230139913792196203003363320108223252185119889423307740960870754563525460928056535880613963776264114147565070560012147388298042558276272158558685122979465853946579543337633681063391913450545779223678965630222646129035550369259671328709412871247932322936100970401492854665573909914073506636742170726657542625146813479182649671077164119019926315268779045004665735044144202635860831036542998847802516699127948584549149607845996303350024570656361387441734232785983258568890989779328842352758101140522382209637527181992497984890358252395140643097251449852185916929592965509640328032797856043447639260896818409831631860366276152231329331278683373605947203768099939314812711794274375875223194888603554367315919095395058020840485252842526372466553720883238500633046298909948670872952622252993242786542826874394321615500436697142073895097887957777765793926958795748018071540460155651883110768301714738536169444637211292013678741096170799592917774812197134577394579245375145766530269447739264378595929758754345727400814279861778296736631693338073019623217211250634904173535816814159792691945433668165099095519324302359541462278853705064108793132969728392246015171434819247326543042190668507564785247040339122055666744194301329837427937299142606349238585012490248519091008257817801242735204308817563479280360083183812153051716864032437051853589629416575762821486515548909823384556680821659014855956063978875552001247891678825038528045683805105161497925203088327430740099973369834013598363840114333484400287052188461160959035456876642802644821321222357829888941380310490957243184696667137088178002265128737179517290008282402512960014223155479981440510127391298692605534995187484093626348826088881701094921645339807120824720711155531611366728720889722655129420743328054621824092927947266303070941800176242731907019780929724221324123516698712541239001288285076606328776197335062017425984665477377184763074426694991939937747274589173711046883706368713930359327635273231562575113210632831237741932983431196399148327737179181705235305427204207423195836560651611454080625583010209243734347346554749884513227705130752099299367101773131537886732985407002946410618667984631777628081871351904271509282316835830350629220471971410118086541976269995668302849148207146135936960797578802028591860901079237658781668594526467100329563776187978839962038089093494641118320475545135575415964128648773824945811625278342903306388597497670180632254606455111516397883391938261301428966167587989767923100703332183986404447127645896491286907545195270413927436400920531875271343270626768806981017549936724850859339198401331155405114297186176954876905468739445496074859608912540465825444997747680410906407126111290269670215610165299624493711548309370497394115855415388726030305588870321955853160114370612085242525846764606809025236364853889029241502447655390618749386399889710544778892892477817481340884378044909646853971750152578359571314180041594028353959129148369341029935146011038401140957466306810651827119547210702748954118173968417409709308656923576937275825011064438898191541249660628386409907315943321623224660822102548019991867613715184818911952024335888513328418858939371808878820958865916009730733936287374625550128017289423068928386668349808534139712528819804535624529714819221783158718703499028976010838750502865795185715019869763974034259318382617244386377943981274378613471966054457424671491798181018240607533847716783172298350497536256720504613900875823074621143483846988534393419238800745826308248211151076769934866222369648259883560965933218319396819551617922269610814793467480823291049447884937427650927971066936447329072598341634525000622122716504093043460412278665347549423981207436976407276587007853788299481376799065239482575353357565616285160073034375676386347400823210230339626739298858226275237382418918110072005855332426567458730543407696571152140015243317064518649595069132763049950093050506115551042901065815728730875033499587487505355063309710871181886408370468417933255485110202297135598755188070133874419389900657824858583955482505257778327072884591417952139604628537793598537729234634915431354243677549893029496005238559613100944252373547467589621125379226656055224077958057002362382475063185868393192453393474577004774915324422529818393362018810920484286426888047733514131048937715469972251462745246142287907222806455126147802553332218463393052323408021073747227350366511852505852000953335386005117777239187542545899925405790970741716748784579370255392482020809211680918069097122850885168688125024609826477705801261684795177673072457611949128912234285707033009928396047136756656319407945730686295183200195380745736160463298174831363561124331886345867370395610645186603080666955829016668135301252606918252270052394038747117729903991000964092298172116810240963546766462037139140337780790642620313506165818262369190466597221116559425250984097209232981130939114649168126104906059803686089048408040883690024860905514104560652703290282382862691505482844723831879591224562504673351048334359245227562505279037067574076786717283873913300498318882391884947947084188111461444484109085153665424324439355568026223580615657611865080563208301894639461350573731032176537492973712769421175318395735288810398570308057692189317024028731182035230497826008857314884469753031962772271671008385284926584079178337728762303554479971408767166948863846496913033147898871017230728758097637139985813177066239386537855838584295068691131616108994550307017059966891933489354750455937573926846124912561628626126616125090535359502388717360016274970997717404368031354537192348092344563562240224057589372862057392573863127381636921786154918424572800429160491545980877542481960135801846501831391462579030945667330343521862578813722628317365663467872313251529154297033499908402160570443909618029311841561585337155475427683506395201159950265085445670042693617570572680258141459809529903839504348867909856531582382026540361970960707405288125587587029134587121903242626944715337061011238790417871889930520403150787174527559112708063393814072286009075549662122024842462540358826600661638955972541786666217298642290391813881519908008284649329753924180776082855348622212076730102412792356506766024595794875257717160860607360659306453481726987468085318375345182917480818108587283364726882485874667822590048851890438648307579692990048497700765595133889977556858499272684143117194811517058274793959397726210973435024562855187584097828138568142741455367040145629979939412984331799934631288009350786404738310789296301414813424308446625056667019680112515831422041243411144760684503327252744277245021537530512366587328063644607104504366294720704621689742851461333289790295256722083353874313981899359662638559492186786859139141634767018138438520480250192650166969417973042702823124368062489412179691074927374768906186253300266419005022821724386336706658562886719145797891330551308410676149857141107793793427181798245462542238253509340380647088554034172661728902475269227584462654343139418007392222421708859732307498864462968747689310814710017634205583401907289737186456868576011013410921755167529912830738045740583873288939236099989839976904286434999794500710140200220644463799149902417980777563947141425599730034214295435857876774239404794359457945873459848199035525280559980435658807977464339047630577440076524980273926011758262137116206725631782801111544361044360056377730013518357672213249235200706203716920804522251355046174938476924220468193178756861684919068647808008269357880739218948122772822448016496902276099359454010382020238171553140945161962247878257746776842647552922096606217555349516366064834639487696113886783086009802241934804094842290045425379510579330448264162606326169659415107691771401923298149656010657826829133185878626251730114495127190606379744688534164516738200838710653730286901006165307472408997279318861248205489673294402621136278284738213720947497940282805830209752011223849568821230065409106045821427775616334003963863383781971130249493932607405615028442909230468200216268445799754154925535616094592373049423874919612314206799913049096951170085048708020730488420203518142648373429820709886065939556263662394834284970367280165500917166826576085666362697650599124044210528188842900748126828757556098578895069490180863115916659403924956903307804942718079505268902150997530826823813603639896152835703736947762509676570201740564532755165499863802118388748600334409662061626610392230581943718689372699202446216367770081336932932235056976083504364119274345484831579288370612817982500875345563484109374582573313424308228919081810008221422691228377850259548784935789767787335008788323809963537181613035427134488645555497669372686565617645907219306657733333595723040212884406834904077315704946537235747114086824244503306402733576595600687455165204201504218279332201255770591428298695863625671923600480632486616121866299582543223407417672594305693126231265354538363829746595986952346785657952370903940451990112918591372364552903093564074150460105385646305143539356108906888352933907867107313369617238748019690036619733940276102141804428495846656843706688895336879324062880374783619555597785799121145295647376228490231440575182344079332907005864900118247363967081321455441229678335762816157517515169699055523939602371219774375353623875142416384605611997483914830470986745665014920202830437453341383691321148048760723094596481832116106198949185086640759360903340453441786401954256962105094806941621636977808998702492440666066668614649333014555809914551560532862511406777708811710849930526853150767434681303829508791760668495886006278849386613602508929640712574012631652039579707633604786766123909892703583361958478201582093133340127499918199117369222117123556334804846049644889632207185687104015644662115301085081109069315072969270038384724377315418356398444792855297239271680305510252336616121108530989408912673067121505917132141817611271254439865949452080079182770342198040614927962929468097300722568098599319563128526098392007352819542432861743748965377482415197767727653194825692752295625080150831400814199634772036865450679781095700439041856262657515763300176978667962066532027321624244128216268163177476890067405856315934551180733805777330675637197199716220925274032296801344981853613039687457393417031621734463581027163104266456514457204759737468031790285786607053192582797136118956655527313428353514606300914252592680801375794769354240388281569978133179689738943910318663294190134919115288554592957697462105540273432340143756582312613304504644480231129175663571922309182241176831494471078549630480907297019979646134999702026089456264041445999387396339551312565067121962498090714937048069516957258707964568259461045972755099899655138408390807097672804946293030076986210777780335352248299205005332487172540678006673007072218244560678077008819886361977739919192616295921238773907505759867830140660301607608763751668943117802876701681869737311376081640274705482266913940850472762012332808788709223971730076481110605907244167869093634743565655717270805745739335701160570567480251311267262421655470226056446778806136052375522330809232365568261695543994560975483174099418135617894782479145169407894417251005643188345202935159358749345898970212383577661419054816821188868481222107283724168500711446884373090575424631289828148305417436379397222807848936920201132517172980200245188169547480289592512138506617179932307934818910573959461889867555086483294512130528435549556355904115478896700482536179470694262489330055913439315335949917826433360357023251640833185744703962201437019176141753608065940200716349900902736289065401965480746992107001396711031272718763891286494201599003461927947491120451695043536214635847622978787532201931552476414211095244242302436822348844635113896286471191098306563592516781949343650865624255423324341003000994668667058689663948075219669371883071942635903205627915512287348204381482129654498404384971906122725539539701733625407332303645045989299598330711960524764116946201522567730323449588866404421776603684522600878550294639105003579622879915895453345858631427197718971877456654905639881134414356743282062431255125426232605767887411657594902541183985019032993744177928489333347307289242450294325051608949376091446108760285922142184776923232148875494375619449051999109794215473274151786472917541373386565448660820140987303985262738592135753023579804605966335997466445529909540352459305231109159618954814848951727952435731853450301813197068518296842275424201565807006905105836661792051293229015980806955699582439311910609022096927224733349462887196205634106001096865256087348268852319372052746698314022467511349936948457108908699794222606011172682535302370041571743698996095259631005854866808676850956266144484990391792237156875854687261722509245426539044998280088071464775011518784690371382896233691387231850019776356345798677129921724659289244617171788265886565458439442453306134746491011457516917200255442898591203265764408828330405366456772594310557178999626055147452942955435780533158283710362781280618282935227260554858895096774725831674061539776270789779763817665028240728032780043236441982412120049839804480270873535735478824371764906781509914836609339064864285943421534994433158783800644301004975655711784761718516121937450075337818439514947162177465562803679182953448061308499610755814645258113805639748727915747931270265862921189640101837520698248981499347422596413980778739452712720451341158519419968049917986874313455115717821437216903469679542839207783715024487450026794589161845460507256720080160729766298671583319862409423007723463766312151086963135457598002288038234907134717716463724175573271447051396840739024594403754469091053549572552084095999236033725903448354419647075900773307003791394554501849650692434390564462017871583358521766041878682938241905001498520462034894541610891822250818132356663713977336042266601461561235094087869723358560639265033898689592571110081136379789386809310984328851325550589928626558740750445157370717649580438069265302719497603388848756982997005924737296361819698613765453847457518278936335650894468214116072878227953759809144613874175328672102866925782991534038727131895104587268233038678623973950990214205514680891218117345052670955291680694242896656181292308117305604484384239065480093203451999097892903604227780939238152446876926269789487993969781545168697280135533971110183523117162609037834275522991345062150195905326442855541975496772952961531801064602087254324696288510021225010417161143520170915106051983716602582044528607424807049654047845170975547476917796950966653136627453167167399942253951941759557025234159704442335907597314784019230129372896254596954832773627379425817619216997227545129497710422845772231890856712419999086123844554980873578057975306336468820122577074840281125663411496862330688115491437764195499685631955112110009814034246131900114092301995021425765346042125757407411064689039223145460797768285356664365190048118658692704866005947719143617804613113222808804828415862140526742210151895388463523395867753388186168838047400911787876853845851849783701353382564899961863232892236919481461132767355815947406272271551254580189888508039159816007225383961772547631546314054831284855941336086093577904461561111982297068388993819395362364600217886474316846433031954468770895200583587620160510543642910854638369634702272656405943664878874014686230521268346139637619720830843260412768714341683979717238758500575250020077344797497794379313729610843221257117117111121315719701016900371194709199780420426861743614049558165466435821770403439991162549665468278185250677496238235840348413286299087212082238579144648891410447844592844575123950344120389950870365969891222700278458531436233968733559797641618664766129224593372590464326717623561505591373639064909213479775169287926872067850811148082383113997608624629111295507362573105704815273829984866735299526271221928816646007165875967077831917344581266886603086157197767085813938420450970950869982028016626036907644058796732228025525989977433221357780697546631736126918320625911467000754055426145740854620170322959899048160417479677318584789168707121611701689002065865986769724566799131207789616679084911764517509985757595581651480782395994075938479026509296783271873445107792778011361435975035350023028779943001746252431243131592859638473194184399522565458242473129638277313174045588300434514497825185129841928626750475954411745031435015878315123970608281826060473241951878720701520269148990852554150761652802992016128681863480670252597030504905922788836783296630709194350916427372036501379468685159170350603559992112832538132157085163896672169422512934540823965099954163457895524818763737683089777884105421552798408070676098163677006531804905195996924638802279891243099235458291880498995464827009439152184714644418732116446967934116833064513576324736647024316110781448167618953713143895309310239146103918302720218118709598929972282505358184715574639687099871431422379214072056138940613707007658279858694967744543248502256680925603803601709496945735785939699879256595435301459002753201032037256702402768562671197365723537472525771192410245375097281475630896101184650797312322576986724445717333044505194366863772123849044937511708701390459917932565035497255236342989786725849693005053904324437794642025255873466949865055753430285109266952249681597880843744189744277989328917253601475256841837682986329799398851959795110116603504151695663892273113270297374171149852014069543742198443303720218686464380509324280358277067424304718081913591534586998358156526325635381239408431298642496747043494346895138024519067454361313061501560027026026587739536173134070428661379142778303642860935538553661547974247686950381691629438873991058299215625971901826233706000117766614337604640799129207061470483588816532591043348690074216041122131021416643819348262014938382225885255121354824531166455217752673334552393924970841295451287285590728049217200721879543433004340605450751986055045649918627911365744200063324562838221237175184366266690030061603103402691516782535576392616104236704382396881510709173488026595045917385469884505091859270542293328807575478857867543054371261981770931666076937226534205206764289782151726410026247921674465160488932191896622610551872278880648096083709529624958200672523583588736160140238807910573878325260140870425328076095259593865067281155745967752870906432635580635227809936831133958964410271129704761534164858258926533919715088149068495776050262384421560389338384487191349256283146269306810981418535993560206835569253358589308384909671584125914544106088078289015550599363513864866255362770309138721025513715539380483840910316142750750268429770734457913156368544335359890918417782700605095060870599445282543410782218858382888620099997921381858123088105417633557154787834233959215158330763548254118448691246752556430670066462230542133841199280223791045842420043496814623102590544076806597017126588013082702772449558899283571027369474921323702127075133664564378169758845441143975685481777090826609221099063752806795994661760830823830547697419611630126053149924566391044542351439173739150121511102132782701520078145358786493499175145550898757158916955951005886310429701855437018885690270799550141691844850630524229135057927525182686510825523749415496306737227573194770814906636473088744129634247075205188644586278606431229492114013593206747904165476486725870796188010992556835987729383853046521250001708076166033898542441053405800294965714796817415329588866596066657599598826085464331349961605688716971765195417325838567122233721932225276225916056404091946005984061249339329693983474920572221958260192286386015750018311662293894180841946547243036329288220288071849720377084198670324106965197076401772890053956972749430771200682592247319201040551285513838597367961721246232753161010487328493221617989745514203172299560812247551065511748748745044624600230608905422976633973954262951528742986380096536843052449188173357189506166743997302194786201626720439737310053179178017153194661174742390089697031484129201342021861960448804693832583934799933607578944662540786095061662283552028116098735295637897635379009692722196613814783374812730250223912769689555480640070800530879629193094888441817316317400936580225922870136832284307071485842080323030490954943370369695089194119970537161705469732911035165962898124530788026558480101006113780738687679015956574442032347063429879486615260278566120652749838966144031179416927219244147254951247712258245655703601379722504265637459545082326911740806800113314365534495283338841069506952774865073766782264560817039875981878145173768156803924892564404674404041373085875274348828918516795988597838188464291123072120801072401264049875490348797257843454015256758632129454593622758121350442018585080067760256038910984231849049869675655647133719574663846363733562993021132604673084326073497865098109079074322883529136926818232043484276773929259429306600162283129584860830787588100250742214993762448771907077329499697918241751508684566257613130271823944817577058037756450468489239035634707201732292653540876399455515729031945227143058815801533716175738058447428402483888190595326509478593705524636928582495069541463927691559027069656897989602748621480125291234360148437472027378426760311002644338609148302072943188099573861556056502508743119720127171960629002304862694252251829346496912949847602875617598503928706313645796024373307125816963063528012938527019693856014407952690440885911159656677811001578449011517973949265391369107245661113992141150104527712661464489045871809176947760212662693404416156139072433311002002152188746969291752987230606650474521585938561324109780790022390694379772835740201233748985266866179961727286341985314304637273242500111690534086972746747620106376860177656177481045092078736971520258958314986646087586524390767620210872177124875556603709797973616082098062715991882755437056095623395480399841476245995314318322968743021445581974898989020197891084990696593580564465729047117460862508165263253649333640021980091443745197676422699210386148119166474946140264788120495327432101177135036324848766019354074374301901352014952273817240674727870251368890635004598192523461807240895414640548071498977889494602973294938930789938919719565802739325702491046471714738664009204500409315101028299673743021915523081487420279881383497315569890605578334817603905096953427989497530603949551931891550837908456010527579910121680766936978266397793478963106842581835745100165170874666826557840326699115751656992621724832076820917598854504349883998853775442294944092278636580270544471553438530412307192703311916246364448547280515460797897845070675597803341409030031858229940185653251470872959125690281994019773072896759005468855296559652976669737033012469705442553739540010927719217965330997208970255465625294753438630730130086151345929211214512887853128405964431421926801325887941226783104845568960414694404346752511989178230594018596194608314976338918034219743057964574247689552452755341934664785110333822714666205997113453408775760104909204090297760916064149105311711104883735859626297121653157895894028549819773223134214945716518755322296813406810499175586402950944636023307405891483350299280426249914587719147526713231011408078181678177604109884609948015526634211699819134469765229816261094622921651325418482875637337326426332778711196197691267767036139371532763164748934739108702752598823091807046729111432488031485754431268282290148499347800169391641038642452314032575614021442857857248455007065891080087588390331927086818132358304973741665360760937682497535541455879721916665979965633862039640787658744582995869435542283673589687236120913767222897045041401914551999259416741391932854623405816392579730812527588287120869759833568095031928434443124500167449769103552383612392510996635226747833887799932702231324688067621723736938570284757584069825805076545903425810163316092089022599027267747669513855211077338213208327338235886988784026455465756372986860443545014840316484729209394158288222629644860706161715951753248859079235197911068884204701057043858188199631729816290382180203769860963191069069984700897002236202746203049597223567637977297978276089629218077983297915726293851983481652319865807700431485832584016964158938055746925487424226005182245468005954682714273512609001564203425656696912811898522625470239658195037166447103003433690498660556530863953310346332600676014662843373755330445905266771420554579744520533155476705971242497183097463710976172981988134989869540163746258207785548433141026398609737566689150112854316110745117836976474782889697722304905185289616561030187376603862768092707298378574714811967173397946754754131146202817260950371532128392256971174412706935278224829312820383979637874317564247414854558767391688859567308610221707987722996526227565793701922905952601540465965249829073025634686784363682329550091303780411565516231600587377372996519809089078540540400851834380373634440965886733356249127752571105933101829286724903754412080033688866064982944188546038964730816305652586234427089795683295161833206895727706168245987333097500073833177645863780737301882118610141831306758070784446793607912213955084971768274513590892151527680241456117517382229285502885136028921176117767614789627326352523540513159538711127135085940797982653700429444423242198493346612998472609954623558115378276497067240211897020813121746631034064281256406769365554560590023708280206156282842329946307250046770469579759653491407459816762447188003005627719560391608870519997239791867542328730207925512235049401672079926988878690081092232385322421297081950585783770467952019233967380986558158497997031227415727728028182189971143121341367061853281656153864792783127055430659014337863424090907520226012147000121862700825206281654147922451815956148358153007407658738344172650584867145325088459171847176625268107926585777152982682299212854917470163727764520891280588143596277732831482448992798589521665014568779566061318308912214362624088695477522051646337331989801793673215782773370254492676100874137034257582276586551920475011217417671882552175707913550640742919588212696870660100759026228165182759850147470765501543754300791374632874857942203117338171448937161432295745086221050395463981765168290660916730146347200370584861223282966032638654637214469496322157935238335206249603957096537316783473882582744330754811819769036722301478570945911251724507009154746276872470770791168655750424122887525937774369659620747318539898234713470975637671787049176637529585916352497881920786293603443820250769188635267404058847843198583767525985151937647904531182579508060554313766450907154338757608280173558943869646852954463432917051989256377704775547259792486415098853026492550872166777170462688341726414681243702384362501705729533295256884749556590175283417124011819287459413982952074201085945404381151030591690417656875673593655383330339820580201559316721826309852412721818882590641295820951151176786829465404434804008045838324936638472779722841022511494652080137689376130139923085579330327288911644711487269047240071037710542727624264337020966569965027255308732380204593931816489191274900472281120914036629876702438410974684130404875934899586114613034886953329686610585836641769360049482773282016139840863760023607048842476516691191745986733845295303480228083952310507864926819243100812574039868925594561857361860314759348649757918361524940386316149193164937006868302447453164892064653263008974018601379318023041409932387805976445171553496935098476880751413620683466974360548518219286115430464527903881334660246480952845987404127891690281222506240768417847909159910264275048106612505148772065766755141368287300472465792662077289624472314629429210092197941550768981892834947702375402223255879527469617007534371392850898186269555450982416848375942365483052436594169726840304118727372635046243125100572913714570430919382797305928548420147144558609056048847225428623947744654285561575659126753763398521884107904101774729971011874263041178419208922293888666726883030634794302252742846776398645999736989299354324112689061927576436051117405411005183255071483113108354716971730845409670916557822685358743252830762557458841986407447443805260726030089319329487676507982967681590952101737009469711591673021814579341239283453955668462614176296292708069382291286129189946885922613971281135326306358936013167005164829137863552330916013748932046295622692871864398048776610420682181825527339313067507090176689560717873938703395319036038596652119049673908495268858616372184810358529123986723518736700598161092346543054553009214352952961905637143493054724814473709839000748353516758035253016130405061282251039745201503938700379368832400157237006255078535831509952150841680068596830476605426635921840520569487423170216112934209172838760528764490685233589653071947795904932615311586339222852742144695179819666221419708669667457238378407593138332089867861384404601143818765923183699202836640063927881223278480572376640380549340922633748591380359281779280868839275224033236134526747599264238130603223272029061357707875082127895349701526729269633507988120918492139406755224290422537545428646478433833616835096495181605171796289605861699765503579366804970171954374852581266341726524218774497736335466787419507942115742810509097575685539585555320335972898945297079256783883426457483493266411574941740264980145826353841362495143504349404547459942566339227588146994954926132592605737834513855187346470294635605584372699601898392521391587969899740058398775249013367349071808540198022166741218503740654708494484398172260193378954819703631646149590995866440419453564308213916437162706830375111187140739904551156136433646200718531934321598826320633309537631258445855353537298802438818227658606438589869527367278327648248900195585602977647213793239773078241253016141664566438022545048417271476193105054856747535741515292936262122610694396005461189682933725949003825975829165041109247724795638435780339386448972882330565483717006289161608150007525690205442931703635682484873096061131395938557627157568944273306463221640873139623591731854469678946200068993150734958242921515514013975633370376827309381082550715097778288395930359841298073568431446940861493734833755269854503722218096512222170708219529548816547063401279894350961336311521296647112729435129862408340641082971317518959009338258726905331504803011223591183437203730063487252452139492390485877225528800106338394302100522466510862309023259770272645206132523024636822458536667989120257146944998582276589134927732981887214201995887896223698204090887807695534036113834019847392826115016777970809126001294079449240852410367314044597553326988382649883998351852902505702206797135106290796574405860844665662520512277096708835761787996498922486066474919715169014197578773074576125173947482308400836009313026834493927564140432050147624725856105573115335034707764211971734451945695791770759924499149030602951110406246195773579549513964310328379851682500010396867943716821744789589707897925017547562469190896474614499535866301675123058526251833485447803592773449482080036603721443538763468569416840939986989133128391017010090002660186431641793464918892269885667462160892360495002403550323821434684880164727750267601241074596173480847066712084109651893217812217919901004758997746089067205478057587959537874885566920984528970938974724964685540829828835856719638137432633503270995354397096235253430043395576047508180762350399303183840855687631170778341808648843219729359622058327377288473209939724673858585471029044374781213558927195321517635795978802706638795262122759388301114126113476281823038870307008847167031471313732707719009445345448245851123888000077743699975350737358494462725403448751526722385945638827717868136747256223553172489898974562495142133628983210431436270157941700560520328790507933254762301621915534198341263969246681122249182230446552011286474010838439863926088210742580415405099559970088297402274678348730607950262815771860046273583633016185005362808542586189361143960378062834166159897565258216029389545448358995202842236207950746101851640174638382793780095726194953020920305360113311769505154095879413157656355857208909417690867714809036687235256206820067357502465936622071777007752951917037993737123763061082695326886971481281409038435993159384845701740683745068519204766461640932554848140085681693227859752374774844532339512500075482124013250734033214816105337252010922034052293771136533459496332838152399379456639802891831195538567805668508038629164735198525217785298984910912186690494788772035961700260114616543608886827766784463116578781307878025796744557989573072828070130378990474385673424181110339292109634925955286023220107982569041023080566384216456419401823652326604625193238941395833708904132666445539850215048100352618269178273163042923538178046194285501218400210698255106718117952116550959484658464538427118696469464942347834171316888575629247481336217172075849106588925967663596377368530243960883693240718701571514032697199426907949287470252932561477727632730419481143883952465427859463019848854703175023704705736020178855094119972422590810207307349383230657811111142424554657954524461179979459439363762131572498020426799979999773742270215863571314917204669084913300753948516701790629910635294376400055847175077715457145895728610460872011894198363386526606187045989652120988124156780567844422580697347111348117856167396488512715495145670630720300722404978082432670842421758281853450561876751831085012911490125116104461536206591174198524109783968937836677054441536093317450063263683231049289863771420474329894089496421090737360607920526180013964998755813279336321660938737130780971767725629173866690478684803368379550686931415349736855072383110665621053661617988313804697036701922795580621991632368673006106090415085571031473777594334456235401277107995361139947538780937694442003969114786004368084227421240285663988169319400196213866281514991199812576002823019182545586039657734166227911650786749263959628664210165964735941340710587769665277177577904689843019660470290597838203491460548722479601655555893902425785594645199124052368099239743134869865608310241699877277428649395379455584172781522889639726570295475239159076121296393368848316545216343669874380921497298583017914407378619553179341292095117559079017075932620099027573374412030298248174661050876317229798113189612762769779942932381206457086985721656631178818682861014366021948146425087553690608059504188222923126289709077173033937879892491762636103450982834871935296786513329121653894115421888673124199704539415777423288648622467121637185009018987130895856819190425296423930399394728386336417213127618324184941268428558624847710864720067391004602947886264369004761984580083751442970401818857541375399159989132811604154478877718660637217213669679405139912048457569381546979674422122699771857540458224966413242209258728157907331762875361903738738109999236240448194362004404925208467863881341702659952516338285077163977667378755261022809634127858752657523688491197015802078916853439159750063938781992722206533488411744061239924404023541187665847427559596496968229738620377980665831049287087932237926621300733444804222152235100573914582297507366065793047435620114674013650574467465029661864268347896077910568978584440289906477628203904494128589165199975712898141591632191908262528670202685719587482795344150635939481976058531025705995102826399744963465559901690031512101588280167294629136835402605191225522009264890263709462457364024641238250352740212714372886809054551654954146805760753976337650212028040132669943025810544193472044838029347427367826752975631894280959343350389871471538264214144797945600819970267239475819693058864886591915502173802188186801787368927170957679797947025508363008370455373879149396729944740054252543183845520573170095041213679000490974998174088850816038167667536978217742118466833317389047570510815055726604838833523682595618353541035114330949223508461075176784062377207370768540318100677933244154679678199442664566165508923034860742312849389752741002341892718117903160863454866832138577783781507057812408803570924087664450586720238787539802901975753393188894832020627282353449146496733470179036658264305661108941763991897098930592023721476507970121219322270197871928436219202371826863904058769679495811232361733834902091929002620819697115879676609011893916455042547063925387485323610763960711417494970489242269575894849682717028794495122888659401104758176600206326584957825351981740474038579938053331101470549807829807618669674844810027558577073145010517998227340991394883789541255568453773238195096412034706912029645905213301452439432246217724780862615766529674335647677436383109580295142802309007653079867934640402653650427218749882914446014816647331893319256934132390856765877905598142130948261228113404493635517507981961088402548615510049767235395458658860886335817738254372253769187460215888944358762724582425644484164049582249441545097202012479889962066970746221368650455426689487650894599526526294273771326695363481530943496815073038235935569199242800038198515940626991053017652207137427405106887759957197884725175836315069530758423466585640700093412083816508211012315972238316877402955589248600123356578354507043938136632337843185931218282721173749986653183474760746321643625447999196492802510817969923292389351103417159971174626299070887891083882691097209756347520923852589537940919268729655661894471571957963672751660571597265439669406515864190411592786800031027779061106566224725116249567090041590527040632288438931472874913518998964043185064765551796103669706733389373963807045181509787130210512475726618263651731693033000237433133066919096856596948558565144329582085361504846791435803505921788841535823851110767838905136263106626320063233947462389646579488535929998372562848430212365554269862214484779712519160070531857852840532856564777963929287328664725395158306323639962999913194409198088116970676961593428328904205872074541466471726135866567591094081876269423500439119284835048383984742048253503462509016497100768901781281908799196436738548412801034307629291267881457667620207176687707305138107763906960005906039739844109627034986513178864312705210758763692597340393496856065850758982909035284939058121940450975489866161997827210552196952857046047058237900001966527750119064557486576740297732121252737558136589709501733842278557798756059047487966014433358614110569148511276441803405785712917410287876248587055030147019003974370980649583343101827987645909017891064243195927310098940852454377795470217767461115474684736415234904801901293652459721148654372890621145845525055731351908263286327329177220357052178877625097206456084983589885349512660655348558382705512688674430901143533329578995229103548978057838694768974897850305042712660394102740589644942613599820452639303224517174145191872761588325244037832028632583996332216203789418542370343675656847839252137108064444306377718227332922636437779068109273913107869647750526641331428631917653973887680067909462218456668628547901149959454687663504695293837376903554292891084332750638235864514681438133211545928271316587846612302409751577136064824213884500863982360689887301817662938286985890404601030259848706870376981818142099373388679333487865124578042151783585596833059940814832200661073965700582117693210765551316270044904269391743309719487370313833060322833494285529174724269785575969372099767934259331127074064903415730153435347427627167381848616660081984205422283118709829204614842882291622504914705286987187984568601371268460418303382866774859629610506708478706163504288726660157207622501242985339217248181315850805439384162924270608896268987900434314428571536410799107261793057767859784862149420158372870067333086846159415802184711898154506997874970355895777722509680039039316630347714206204506921094624819264284714156061040892567309289987276334696615231751609164861684601757459207201660290421097077040796433546579067280762648047273905462437817000350295421346707495875324056209720707547480924487039525140715917921588801386730531123589283306193137836600361905210719572765465448835985802395787720590414162843782423143591835796734680743041716115180830276345052985783892958429755318479190063566031149163959666659457026131484958897817893629712092095287952157878896074272270074267491714900027320407890858572236207675609945310696374417053179200492592246872917796299349075047766261472317092363239746093533181562317327995514845844290845927704312700853031711751072002909376176728225223984300492376530596814561342868906089646711492239144746036466285117600469799316456547615536908492623902234338967367400715750865712938943804636839129469334844389016360768724168967231009575244721057273623865642903166440754917185524501587864726955127100177073498699671452897772374318285704165504319034563545108561124295065840693971800591870580152830426289183562224813482349625075086090717994544480367021656340087968503309323995199225923596035836154947958786577978363409621776695133214750046733681502714688606331202503116569714915788310036489597445619533616736690119423799981554114466147457426475307338186113217776682148918847762930988567249945104267332376501657973561609807895739194227591657118528537704961270168110519286538853883540997876221273738504067406794415618870077787704378851965224347869786910629591505626637599711973827030694301510754383993757907837623813493810704215304187848498322398659545929371273722830529807682014316653340053785251547228232076792044540254085462737480585434115740412686080224223936370886387789502282843491215651139223188912560829177514696898862141966564670172756920711416930244475459751741505286722848863424184129346743331781914191905897286658912571370779980481608923234996270933253969202302387306338024860542780990501623108989375240842645396105608611184671253282642741665927974929003812516810676356498809944493762150144430566532179181925292405805371869404500554986349021304377780025975067169831214833178752891625601629491295391356174077288905040957435003753710975289895427342346074002424329507007612236399546163890152989918501751401862028018324563469270522063025351211435445662930622540639933765660855384163314590888622853024645786306462855655969014644951786040487147367602966034280165369597256316818808323038267326062132448528890268806591997898187452793850005636255872807123302861986508963225282881845101923472651185589164982588883355929265487011981654970948840931647517518768372944092520731615811890386662151797571154857571450808675968887641940278857525860774320140931673719402736270730449497163888776684345036835239658190568164135552119161287346910659582295465065242590106900422743818002188347337108172051820339731513325853770709989560371131025023803141854560459449769844957313458665243616481501765097872063715098868753103075408916025065064028374651074569791079823633100713025163527177104311450902529198013866119451259163519882729917530251917886104108495595995264809710415438892665428997343856159271018267311159077020779088901052705320891991852190081115163574241712757808881937805872747281552714287039724253793995952063568860380517112328319844651424512273176315914865758405370272844983806556682279308948196306357791373637081108467413747044475211989078876108507185700707769593867944984215694111614561166441057565374329420135369668723428942145804296099200609185605774020074306478535516568482030416703233179553148340768457985626817920186975967239659467812041784162508390676570980461245903418353239418436857038245444076218585293921824921697830070369823452270003123387985596632711672068523183313694224938043616714527414954242901854362193059284280864683549525251134165691193573340854291850996567161632116222415586177107598176059686456216588242965467687199880814169326381251829522390519623378027107820583490862641411768899685895353902029884266589896062527534756566301669561984880574472887874360528140925267548727880268342591816317625526156880667838360901721908694133976644435676409388048020210255392656767642467281057792921242127670916846143462730183580883765845062296410277344473805464116133499902412007130724861324794320786807423972671701571333736374879202363546099513198433289863659112178819724608429190273588529206223338773299328736323063360684622882070355565933473769591460280209740978870511432162792465862072300372748665984764539450344104312363072867084821806736087897515562248994828492998868211369442058199329142810964885497918771409802898681110769616425387768725032958723773889560538882146023492978734586124546930989306894748596072905828616367006346879879095514005063462929840042947127688664280185021997596490194387269154653512334745053855312152089797046209170786602194734889515695627928280153721394357876095390725689267511577843710404997250848057722365782318234127540506018189727235180317429429767176202830777579102709336938498566197204327153749073094970448389000717687153354517306271327591322304897390394978692057813386899883330499935584117080160414616103987231421640662638164835484999486742164812071056566642411260653207472541447298751410165384316981790766617908860712283197315747025884567917981861791471946418173916464145473473673503933960267459998049416064338052464040375051060706167502763691952364847522045612482700587060152928432128874693635847584688137009678428800216859375872674718200508354479010878235575600688209813573143915417834901914861445778850515156304264285980535216493583541315061267681840627957362605088778709085034896111044370828415473379170475083604295675525448777345079847140695491458601144327309505625261027299311003080637010406343157933854627377783177027239854195771799324480480158347412321285004811326729303656471798291970141057327350611706796881636856460917437465631347566256176145671341736652433324065888240305857946005527151932637000210507672832587821105109209042995686152325839313718753725068503814317549022828016134567191793324274195768176897535341588689177284385088054111357317174925766424868202890877746462038720732616398138401066614205290564586545502899040285683686144589629739575273073833152303898081446619714772175523254426040521856796855941555798025403291556607971814603724001271924272544625015361954717743624022118728882210889123867997284088752747520653731736050613573446480955717152904648170373217911708159352741260304245143024406700417170256548058866296908106509629487962483980092596183143430752457749398467324401193290228985582407651992633627113641377743411986818405939135557848182553398494926676427364870574843073137099028258305884614130125448826263727047117322046735676173569519171707397376264043212432963124127863864748639576206270687748160910504527048821935858182835185217132253259035485431392268718080490206014592690299259950915992896474740911524934575743884597165615288986714588561586800474450638958429844189112322091160985136112097041245711240997884671245566415266100429821948148960320140085773019498822022758850173721426539819749943942314613130612836988134027219772907966015814326650663521072679422283098472162172744579627772908963081948986259805727419324485925652027771585419340702356815588053995937422687711989923416000192011201710427089712519600281786785748126194825941585769726123766635068975231254606495011052805450157187637717184581096276990382867636168136522301239353632725742019602215448205670644542723423964909588614002654715604488894179114256110137747819957780200997323746227636318759563296808804256997831332762838160559510812693831379066649507215314356984074077172383898991533838904480484480314415784730579398833320648528894296685848168824220565628617016031250774644560127896878110832838741511407256431074669416971561758499179915862617092853845636217896221172217682185037612508869950254432558076675237581259315725760170839826064415211769520414518594707873156058972777687219096908701407755447548888170660185366062488550503308879392268953301145526012055387062655634494390547694285385291819718043973015432624506370719163571927314599208470941640878352136063504165084165322214356955827733287248441350290082416254731949560931464071125189874308891461003055017258859039161684796312486249091079633895492263748073566150791004788461536542373916737079245724556490677989780629236572260716353161541957000941762177716878250622741683437985825744747203048155001468928073460548822693815690416243824070673494361707610040213402222770047936502931593694248516709574724238572532820031780422420233276050834044187919533165281254033404934706189614488530728847365528093390860822438244352987183545740238440205697674477821442076672048393196884248344887910298506845392873806512331691388072084045070544921126432568113697257653540794748571964100453560736527589773059039360131364398098905231833591976870142463144424555343046892688824474495502343656540754519125491406156325093846805508944538168583470106221249288865490107492679700923262741129410617649719484399444008386875635949258268781113240175026721457320576073335629608459155401375402807445812358747014462854756342472166488936467293821081532064614096657519099605954693791201322301575760660824437775031440614440439213852745385247414063628388960683391251322931361254281544077201572199955226695542071434504575774385590115928053079247171908717796098850386474358600218795267524256806845115235980055835317128825719690947796908378722314286579472968894009494566564454945994008091080919562453152574055925293587365080955799465563314471419375964622815039920843565991026478488654856822032468815414001939743160666129121120937759049208950119584323711593881097227473242786121031422556100603236041329444909577753613481332330094804625860249428621448270066547363318945773962321499554608942989936095787065303503874637724015967043845701711464578751399418836036609344974303575456557187689031161278423820982981893204920398085859039386618673914902172630510380822865603273988877176254957990848480118155576238171395849597577469739822506945150039296600435015347412196561242000614033740739998886556836861716982683363081980820565970251247974526256356293852434439438063441545168855063701296266931445351407266112314906555892675610035911652820655164267573966334215748679609473038021436373767116146080172033664627297646880355582565518288349306614897652549563746732056047588699764555885192693788415025257402253501892043977724051087959799121323020815520988501308931586539683789441472738323600505947124416193623765570865222102024250095874777432088048784609749440189642979764665738533150514039222475262207342405679874937807226198281991664899147340921986121067085053533492390048290343288281319142193745478647874232692897394280511879388132522721828036281798774109246919666637847794744029514648652278906341975266113000975508871865752992470677760732853801201502441755573962020174681424559882324068576045021287931553982418131882796910965937374492449020416600644607172052234754502752737768334490482905556167522116924087160521935638055173214750461953595072592246956597273067061267852185561862999110780037381601463629473602986693375306646247727868313787622018038982420104984046500645028184340766052955815099006019053144776578787194943432189091861730391626616107082917036944897947269457163848002837591700602749808624105957594709808588039285067996745198714093200420609889766380216958708491538631283981905528741909936346823561051014244256951415805586566872987823207248915997811116566230636224344900201008973073441175887624846876711590199623195170347425715036991617728282532338555279717511305686270416903318576906256427010554060966313070884689283449563329904643546923054973213740918404258575637020852612219737016560602910275866120973003740131929249733161800617860958963198379084422003598257690022694499509495707375584469273654619790007431384769871909906352013616330489175442781702537101674530415611708844683180786892578716415895209491928885989005273356234054070133507803208546703692897631525132077671210152077738418250773541995939909839700320620132385796635496059705141631686460877932581062677922957910601528520708359576319825269197671256771569616633627417261619827414919712260363498054527570201457558861502826833347138230918598262839850371058727653150115509828265692454116715767608214313000938521657244454628512018082831945339747025661996337604644193186482445998370700073099271815466005992081511688345417342258678059896904201956823031406894203046606380810682968707117533876281770486331081994052258131307867788962422807920661688709797767015053580275608935792222249937161265512153425950190575959894246980422535976123161648045557932902152774433381856314257360578807795841832642083424351648966530892804172210885247129918616673772800929514912614969091069850836748832727071197573386736651624454740098521717908388521932695673640948243074713288090666773064072837678359109800644289837138682879364884234863400792364942040617299331977751567492699601098425805266893886414727517114954222788807675099640141378664451847941172464477987726982528191364320266166286167515054515218173046105360674128152655320664664694108961606712966677045167259403035020344997508102962327852860835975742730603689255114942663052746223087355497665091085031959339470272042647438568792097161263568790174804660924428914727034815906013166350523388785381381700014806453105412151830050772879958498126868428608568394787922791840291155073516973363611905572996589040287614529833981510550109544417151612249796265395930960189059542545260319374363171292643405831943655909876551625736349794754168245484996227242698058986137495445982715584782593768366096620708108919592305042669254315486606694285159771324315751332817283834874351595434536413068097149566007033382766177890848600787133415184563341418929717380831226883931919438965820422704187720034190709488384491999532693414326062998681958430477411383503663692624751616112579918175608239061111108454830837279794025550689559401910231713390575474025181834730582674570964576979003312359702483117028332497360172570172108103093578498214937995420065030394544612367758175102260707903583879478499974154315166433625220260925442380536057887191303212107876366720211998417106326482978577636032551682371166902474459974007556877275775942004215200435573618314809279863331646323492928583213132334597598821924731839007250521530405543169588176588101760060515780958541409370166545955625811076213254700924088222894329559174736184339614201457682933469993222403584431584636205251956610159114301531806014814997369175921061212197915184237720124675214186147104417751840872925450264340642218718458128551453961585270326840736098687702067779345178024311599354377570814902542758010714410453896088255209314523470544815257842843447580057176112581270589415699316753648128235987052091914371580784742974524660120419974098762393139032803008424085529010600932373180100729767897821739758312243386916822069063339754828937235469843707942338476989041713406590496715252357679964791735521129270880263404065577264072960656478858047566095367412984447947971422951033232472233279143954916803148043430837125637570995072163449901822132076592450318694799181079553435661814653443475377430468511850003206111690484819733649797930745541211876613002805027897140089026054661000782184629398857014441286833454309893457718557903489128917247474280286794663013879288605905842427787420576289499649357626053520034577115414883213064974570816099090743805153768135973977463374585257319237998719490286860650004453067361535956949150067980226332182793923998650448989849334615693245374949526023442298385337565610960990968723738375074420465813654226608668199503326992005855043216175542741740769953528682523812289779971596164814757324181222134747740892033014615873082086991661945179836691550076366905392652551617361963085124540289640230670137634434708426774751225804957142373796243841257851635624171576257485220583539886217616558961865894508298741646783418551941340223480325818803344024725604494378499138671534316581550608380727469074215009471372897473145818252119813942258861709824305239133843072985769849160227650620535895143489445010850906720223685285147937290209654723146813533045236173772682636015478852028783344092709962190885072845277582365132399783493120790987153745301852708791565779821677858741555233329089273651381016522103719214610019564469435215330585436558608515150785402976953842576385122959043221191398264162748403122727617194761686956163124394270118617853816556533471382100032209275218944637481718889629936801408452038610148562410872451340961699247110220684079565630748693479058768640341630356320360625316762741326040613742060949876824861348332108925619746566406660117771171209891451556442717772765628530476912971241597388954288512800608006355251923829078747685066775155323951140170246138453567770985967293465255644371750297121870015824986773138053846882879461666825780364890591534975472941194434358984486526659112845225332418711620584763547720581203475094706164930799062591443873893624809401531284748333985148310022057451178564352289674695634744087623385799629125872558544445476225928649563067060123738140164965954747832231760932115145887469406899622644780174055526998182842047720091448340749172573702948446682395627965699169982097085636765115508446792563491337094512999386601733212060753332428677476741004246440217965014158111501555824118341761279116045609900988590148890980297547775389230042969009110599193407256673737887181345263556205165033611391974497207023368070610416443630356879782450801674202444105342005440542323085465017850141866634823207884217287012157408908210613241566515580654783096183512952554423082676420881710369190338076728724511659560548044019188815736940108500878162965041823418045484097051265515823746464140163818002977589638238043234423826343272599149303618796228869582747114036440971954693851804985978063879842065855055807346338958619909497939700109215133346858897966009253921123311886477571208630052906186600138474663740585900069315864380843371031765722431480840947133409558350949514448827763717255480444170449963722012149835006019489358259901651689912206215220124996435328074773200437521396512503052625862048191158936894862612063762746431840808198288207565200409757425236835345145777681133375978159339448610504967192454565956549752786032300742964480509996143877978275869055129429509048600828731360155201909927084429906753299613070214167563234152201830704130851615574130171084580600869790866241230931740455132129691500264215568698422564438847156792380814361477514908333519238612963147960845647432970397811755614439562311913964189408948884678466243190985871878627370535564585168007476795542918231583568392459599978481101603756917942881084177731554279972303405281385510370482238036666460349143978494658355914078228455823213685327461599188735290042982013875952948458401883406549589653093336957741130208700683911414219844995552153744219487441936523032863609857878564600674079411921637862810643148703258978179984633513044110890533846288246381615951154066760954919772032465462634624819254241773131644789413024348006358619608956391002860069271881958252316074088412312622462558177324589835300569404450317786454726166999761827837000319266118616067886415478025075166933798977889000490994010806147021912398355874683034768150284587024149801484569382282857959373801342271935046694858148309451598097600366965934188409124637691150897307297582302361977099334654963310668702385169903145987156331897408011747756996296835483173580073211387589551229508416869611611856148964176267294499787855746360366410192058422759097889643138579753253809993537934518913771929841803755006323810495870095728452386616194329766813461638662758217435187797118103628805374255962652899002730027771079109595025191610265287798918898228730337245320625562171428591160299164991562913158238813502056091250249065814037741316101607171897906235299671705296689625282165915621023703421132899320354359200071183450424419836615292151904053017606268307801958901241712594734850598598419039163336069383190633318958945069301632117899839195793318404900205431675262600813037825942699475826800610826146896583241492034626671659190151794707981303542563111370406886834200782018855095501548429435865800525466577667721711185154571670811850605025990649919888115031431551308075217947840338946569814233053635962352354585378824151156288811304869537090986491911267372629084191163299936946731808246719803624079804879218402131432204294296075679268697983635999094648878339351266493449724181232626455404586306051370849228610489434334602319382712003808075546512249274062419632144373916539456712439426094573339199078440784608981504007468867558083925906360877039631748071946629276084152636034040700647004353377632890905980906230778731521798443014909206734341724887131510914888425568787108553070881441776100293429018581966396586659591985218463841494144672073957515695386957845298364468302877190700701224838748759072286112190409949441565602729839991779506792781264894527227479020975023638611478884807494674150412912137155877992491111519381062506454803801812515034369389201439782333074533712653991251170584222727677097619317439807356026148781718085098026557877896044197238225226173336848629794101192021558742376053495498604903331579578856313050264641875667848928601765897608561188103808597430859851277669430975503039551424265732709899563493919635656593747590274476111515753325445438595664904721441042084365471803935264954281473229177916688225239251100785715388722054078081006431548854364494276032536183901972413027490730643610007151548007584763330838398532145727631036467908583219250582232930390296144906929758400302938707595531396110990349762319387394565111713089712473284619961141157880760452172219820557017676844244940028837159351172939406395783041301956240461833516261560204618590015218043240452258973033003544054587579713309823686345294769982521316193925963158444001396131218844874415997093999107811202558149408583618645231597035862754397724243724457219405588756592399572355528678302815133396675504684873144219794150986087938878382571936475405655653893606789915997303369190158382781250385446378104876083946914542965657505162833797516888189911179567181171181068184404625737690295779512305608909612458072584981922456168074248705273500223674947961333510372554456091419546245829142178900306832593711876292157819312571226941133606207445452299193011733123815889717695660863056440872160358797183189508246697510541774961231924750247145202279222693739554805383013568351048293042154459646972256951921674248892799944485059878378045941207101707113648970739638517206172979214889101936894265571494888968180692966980989562916818262208075141220101422097633696031550240910862130149572755468642964043143588281916976204030427438407174200018078421816892529138925337016037860122974243016228712434805382877071042671965787642543169338374878349835638473421570991265695008824691365356559559675904875986195798819015886774891114896990402138021617979635977287531929386997864168942304833795000835969918460052030333155150187444388766833055224900221359157184859087099358972664003757745033288479169298544932061111037973465731392814921131544153337374361439875432535455265699050739291924800944328534087049537474154940371720896198678770274675968751072247384740543926528899282357337333644101459570773597957733837226463872591041087655882701500483110744726928699319622117161539977964327546745826533026584451517273319616043992323792519386698410544802079388809937724084115870443778782480714031837120009054458556787873354025993628662341166786367397212107680213462985398612364209898938396138104714156868412891003122396633581679917127983116071920399087230000550707040528419834976572277775186542944315148991144867929523448159866097942348415772795018309860177039824962699719116186018612300329322862670118322099547737061703804607359803930959775215347433781589297832018397007333031569938962390116253645389661158924840555187835366709601664332595073283739472295024544307072176180544868651550779710912098675728115506849551701866425596106967345125347085017698254603354660699283906260053555184534541742643695667748617439076936878691726880723393466190167257552630760083398212598986871657292934315063690229832031795774162477536644683614008067260901778290822691059801792457567188189564914307459259772061074276069241936846904823847978368121294385977991388426849026270913434082008697129133335066401790736586911602936435801069068245778172563122707208053870585135606329555648315324951332236782251711577971846785829985583105827007259481005158457444686582735514374823153646222235852784299910553232058050471494304246468565445468494877117802131706255238794769614629863615729825388887433487603803798513284999512298844669762182141844628658033885071430448927915024923287323878251178564594970903029179237384025721929860947781629530918297533391950378001404436129993987438299742173062046182596069704677364333280368560309749764023972613623207753744458890847183645796787034298895109837496970980867188222690786987884838911912493170573664246465154389603789676922182163443068184353563999630837247530697617069687891359146503585495776076067578018791313633570551622393820031835175204368180244858570382688147713169233786462421773641239053587640806261846525659998995217698220873507609768132727536414469821355883693492298145796497914601823491309288765272047011407881840413210382175331126220605303872544066633916328252177995456210310240443128748233102844230870765812313073275547272769425350601459910492929613283695327021415931420206626897199288997963997047181666620045580800384666907934840243359662992154474592669866135724521145870426826511706984421913924631111310346656488936316179355381065290226114860360717015729584826884360031571441560962612594469813254409315233658212288189990265708020700189733426588028723410256913682359376893844246510785694294892076307248955310432866877696697021590065581978370918018273539466669456993389471988203447963131725179641882119841420026541608224534062240627173148169358770581539825206832616994040881848436475433238473251370286108757147417544611185203375559142918952696078155978189054792406368846703247721802358425878008631138107856509029812514317167109494790093018733958450781874382420797392825412904691996676759360965003574504892464831979753062531564450552741040450469442593532981574614527640027568670401389362625149187877499192575268780904047091301541031330674833595966036274927512997021862116829008117082687745888272013936659829247210205091337808912418601739517530508717391423198810314681527216698652350718219978289037234892399954971419230748527398288150172912978305556307002387603317971286790618829279408491350749304307878981621762628445122751204767616106872028910244709475757620575229358409352126969214881831974851360799709174685623306572513505048596853115321314755310672429079821056015010765071270970710508838067372327993826475006818945213161411207773982945687455813013884824091715872885021991960809388415655304009473939635293308884839472339003260788389134168104758893811451522540066741922518238150470854566685852565086876442132185937843010181355219173432267885140055520867943243294534739196635628175328450268318938157445498248647546082567923477746662451313262092624541566215683788491280704464692616070833619744956687583760037040001232671003484736348609084551131876304019545171473750770344392272023559818696353705226552583476626697920512281086185421166466655549534230661309573066225111668435344960300953744382802084533157507525556590520243269957231256685671138864315765958789836571495227790646555672699147614567455402403172002649183730564110119759513642859209833145743054860883452777699173562389244189772322693342095795204289744654942518907307606067068857229313558101131156104025491856138802846651187990539497855927172066089137762074865152226302353703374698917129241128190846287473610018974379396387244566625850413487218504315346878453819618000541323331586781738997845610888209756778564372036730300776680451482342628327125584847852607499091337899604096831517914404576270542911097012930616804903753410572989644016824208783994901652676653998977960660701777514499032018476444876811623809056193381910426019701215335873298959491180156182048191358586260432887368195741973891104123259573286525268689331623560432903415432595768579690620329072007362043227311603043400430315884228092820979054705435548909763238097178998519781463082562488879746702355980029243724434002099600177754510869188611213697358255305798087189532834937741762015762586963701297680550220990051551638617474733571424353518799962160347779016113457462451220132343730657167874024177146836977189481669935148015591463873392767071739999266901285449051056875367908266624132258541546891255820500572248222805012822308309472830704371905427443106722087459812309730625195908220335631307152959376164518644690073608491999924261116765547591967374490478766939965579854548667215267659336919160240704219866820387440817564209102651635626154063912838064617030032885062406070745915018197204144447910299980328902345441194455824785759038770396719118538918288383593400504874587074173037336704323826009073110837847539991037711791720659607860722966482980451565841075532571037707599873081313240585104137185129339342594557813388294350659975065546788480326358107492197672866171767576697071461071012945909472786338037837378252513385859580181197122401511709730066838602594139713859782284264514082886186720748471937872015177299290009258740523756109766518101450311395404737662059483782127459030259435008216959503233163012021709398886820683837331065031573828594055741020001483907008851357357362090704702817044753216844414128980791261122595717483924209569375051611451395394970873503492033852090372498612771637997687941789006993744670154724537917044659221395878138637152543273643885723686047203975007076776138974413776873649578824668187956952261341670209600624518970404006854134096650333356108837137039565798774342099254391432252670988185529612497010204517594080109414039989506227756486289247977086153755515538350037579305271160576935501291247662739027915048747664136733609694703167642481079039666812299486417934119286339375576635877375134213953830823597364134766865848704896563831680097496552348401415405563984772387338793863930154157668330440664492362245498101133472782674144172784025772781508274075624989910867398452157328442166621368784664687537860572397019261079892106374586250945158507624682555641714567763733125623153381093157370634811173370714828690406066145551942599171054358558175793339639401739197199485541315643183261303197938985405093371658165699231936143487367149173583844969863081580069603686242724014329197410592109724122782232542371574582029221186421249972296500403174041598426901371236562359455588984474447990561399519637630617454359721176221740952899852540381517963871876882545014546991270026050017099346159663475357880320853946716236004232780480770931056773149440816779171859534291093056072885606370947298918347392960763135175069488878391040677511659234015918277372493735114974402787919165416817134988676010836693737774778828845245065411997325701822462709993703474746821680417895980570787249543205459616720189087283648228521500416818061779228810836040074468928006522487460638462580960857405440972127678662970566186845090503402264910702253232995386532251494192641292455358290752315270240874310858311013427231326639919724973920229273208884930503350302189175400739134997987679253809866326175972621679470468978322353500990243089440238876301869591980880752433372525742143418842351736490308054965375042337923701102121123814225568182075655179074045494126907330374235358380358793027338004235728034808909001994535408983027477117448206409635242886699686962998166126265776940505863003907998734057328551067692223366748481910646786280979060487556326354640148650961906043328456121257499042352290456845944146176737233138884636628900498912131252397346107181737725265061376082535254920470109831109071515485173774540956371368681010089087004664700326147360233114467195339534089832793937619874067157931461694119166754218332346912138885438455929128793157891789862181465012982859527069493630944828761954634579769453488040562224247034813320811236069199714326852167899555460680639810668783499487110533415416235913260102949662800434132499414468043860661817216793756190602009853452332779295661361654785600348567097341555176842880552116759886751645296588681264956941180933780400962920046338335925830678072254835164484890017394739337752860436539731280986365874406216968506274915810316409786057972912187747260018923667151381461798328964544728093960975887047966054605673553108952334999748283970517948442187219502445704037814897700342239313398120708200563695590063198266307874445517869670425922051157692155236848296728232478855844349408604391888487108864932939368424240011613562629340747728180897833151458013248500164021422779209466002186822801297615186103615141148471494282376232904910090770985416335721178180962329468616496638630183833139790787700282390120318149221413297564862512062745395907676343845631241310611731616985544856723417742834385318280347454481290714875966431559486461827311622421866436488775443853697720508458791184238735374650633356115469387429312132415615726634975986694347479980181566623069538933025745567004012641290340452984498936419494488949714426500472853822924658329379514403205327142437133045426767210164116783323411125353376723398875671198632230758995719169920238477447217054772970559893942947761085188515224321778244520655278403524309863857951599493606342285117392560337123649614591461979841641016874001158818484186672120978090773949428829113463096106996653320549890208336910037455240351039961942644679709857802230382801104190658080979163679896253548704070986786379195826444312175946739661860527841630847252839021882516306047655982971163875615034583890231438460130878460149487466796121032844557879574996039839709090739217683876429859091944509003418833357770118175945828951951457442255902924396190928369687331618545752662651692002694581630791992588687888801690646835890981057367406293611482277676121093826478882522220203368628218417029935953062864690433424611186921017431668398690105069906079087746540765272284989183980193469480950726365559274433788599847492590399638392446835893896327863556254242989057779037279105465947028122811179524707095284747794270596960739880109690409152107355788134719998442050538945905667884792444349074705063642162735599577461495747117915062513449968938294567501644318308196069786256776925751612261423935251834714881373258825896488733500705691280667723392139898460671926332575469730306199760767043562145690791919843645087152921397320317392079693707714160406181276906039323998316771461992274094164379860967725767184148266933008521929112848367733420425144370217806389226447101402176294331242238648294157772775191565489800154200678569644348867513721897481035162878502356176035817605822666748202762954737764743973804203039405554451797084499374197158940438662849400641581279960903035383971027414463201325391281377947347352279224740479994275879390794882914385464401701542293711241192397497089406208398853499655392997271997820377751428158557366499594540230803765143904178775633783946837982532353074698691374306146861240036220520695591655750937213793928298402744662919478839222668668918195859594576142733304450519376051492035426977045548783682935650654935807329970297799339561311428181139559553601059863190619320580054241738990068691639155162455604236073478629409809019692794625664082094240997169184870566107829997233533494847577765381007286390390221952172672939075941616947493154239340995990850572513808330974095565324319989748001247872390117961073982627994617195706442037790669979004153723564428360744097487270848181724658364438481442030133647132522544535101502352802571201919155026516722110406699759515444427474188681156723184926576914667873470030794588949905421180666924835634323672877180273146700953497833712258440612957094325308185362005104497135488523904977668251575988389757273004614992990587214751156389988054520261028871205072328317261396076613333663943078224217678553597717437663448956934967947537179212193823962276406190002505512335465701560510440928982917857970699636736838660474384546682845210545555509695977495224941567639083113766022578363468109079070466020178033985835071529367267885207862157509371581076016312635221294774880635878493000255284596847723516079462217510666537560754183649903291215089732113753479769275741091829512755146924971998678808399166989990054480013836542572886661295073283022674660367225507431044857914797708384395804991486612434801330051675767188765066943765617103051720441587181001181946678564712007815266040459758737166021281086435559541205391315356968939710360298607047766555752587364907944935614825458621729096914779630436528939229828652884444090562784922670084345788672292333045169085863767712370579079397457496869202313924953834638023467411291110963808213597105708173494793680363503437722736066548960300182411415588051754852152420496401131382292214724549089827610942511186186932962388245694088368031863124690136339932028550119936771416858028661872285984972998663835936092506237343174271640143034700422978929033296256703705042635325401295431454795723965470050291665079722353231205379332275074721807634339093801811630895752427744213135360170296719792331716277009333880884249510546229130590548797230658757595918580866615956927076368667076364564395052121788047239903278183071947618384252810831273248039244705600072602871786209590462635404258923098753753888248731767137204894733527710296035105847834890765833230009222466795701915684427492001499052245995630814478149556222370218257179241262550837224810883965838179079073960942134646440239151157967437018379096849708166427599848457172822880649347868480441948142716019188039538301005619664364109412291241302070106261293492538977376019647459813737071449015401756617016311059237753497759657483854881919067209960691996248474204773504271111442346157058531780548748722405199783475473208079191968005167567220012568633069059347410990950997320717420761307298531140715832379627233174801094275497148827434198172520199488840484130443375935460150654722427972409838631682052305781407782888469872386166131212892717925484819725965902089818137494851866903173853362763391762460961729356881980481289332377091868630238359251701141813693583110832721708391444820352064528732308801548765935954618039072610266024375513648296174726893267844848073668870833299928588938677875187085609957604765334830626715369002714959497577601587141694973142202005669898169732464463872175239565574231801231453851962142136745961101403146180732361098604907408335302016839424016043358422988851793158514538637168093973643809031703415631835137817357647740249282620046787242424730920116753600664356163311697507484675496022960099617451751138168580880305467585186805783155281239762008082686000766711283856780012926795893663191318774815800917808329414418005144082698253827654504283404529089789968953296312961875871922965395777577110818455600647220565070062538573230015349773508252640873303538390517400768298574047836954653544699939940885155208148760707149702923431250079981394061893778735849533884960617705489201741984214183362415157332031063324437464759474795273021303077838428380537677622101549981626260444685603946295630170795791740433393519164202336032833845643888145283585342338577430123190354465504631476322941591073416629703606419458543451041535572314714586279239095995668491576955422902971101691827029937522847025964594028751289676689128567990890431987664658671530961919050859147094238103009224241484652678780636523652677986177491195054406689824334510840699847613782610363983589186671530492362484007265258107258181816544141629400294588959136309809541609385134981792373230746256352401807913019450202534677292875994179003210797293956894321959391324721840889120592231900992241390209393471584840340710584779541370022959210479995129450910361718918868380694954176046743026244037782896128423792116539989608399309857924370868834142380289787938452070229441862540596930793047727465141068466385122475022336817212604457590765551311619558427983802185002144187009304482487158877932048228610616962212963255152557012264388689978986006065490777855720464977837308045226907077705152123983360208609384156334501196753059329704232958146636570136526329911665496724683424998616693657162680592128124357368481920978227898723232214336724049665587282816785599482309749382289576584393791498410198447616275075118840675116783774337129736666114166972949023229493069923714811240672744786443354761027367416818294861052249285964124195228224852985803451223803795401076249160606674790845793635548478157799098017680577888647772646520755589687993049903419050003531760683537305993457357574130044838914698593862958192057898025808193260703487305448569269196516296569867982190064373154485304228556860419976875247203101559598454219398966323722897864204536787778532954527787150005549854171860894747924197539123985848914492930050752176420614904428059683580887969725049554800488865136064347670741878808208715809858072581427230929973909926997685869853249084251688488698230246109104885082303129656952112562210823299215424887017094472593522227840829065480675626122229057591976015528583496845091643488675476771446951413106462844718328347797254542436167906413809017897383239957160211281733665219319767331149242524869683223304003199292728152507772953747755563920377707452528813681592571239276329338600666588811680017288349374180117030385912512241289341274917762369749645868158740908814979697193144564924657384027659128051808119084336144603693503485416612342752590665236953578785448862800054458119710814742383412272073588276430063889909170648864846380758893217353473903271434319505537536727642851032589517802159815718852644022121576995231838122445514582854809929842937613266699738893393153917308497907144460601229203529422696447234537642277715226794121113217525628655908451413330096471495112847282017626991546085152965920272016722681747841048431557093625084094163012634116041409371292926836158851280060783914703034906593320285198206916969303954890452580941950340242050784623236161918547110387469909788963022745183424740670674842285535357527559382318135130727317671265646860469172063387371645078867736163025167511329646061946903550155160948080474609917258622257150545116035427899798318289143155095546844887436427605865728873154645712707717538548171645336429161460614146583483827598476880316706272394537332227627784299919094792395135601275224528485485865316240338615601060770163670316891583386021993858956637538676000424521778988482334170714225982563145144049566206502017038275579868891368182894740431631084096534917947624922215316588499047585605042423768489516296750616588199881161938147408514711724695197105744840070933007557174605236562702933294332349175079238033348860788829064223721664343036656571277513063292765702637366834159470012876490427459495117293399014429561502597115506208172141680475094539836647824362396120702060517490297765241194216158466694399037127256904969728612596543541909061569389384424760496263891039508229621527666705628922391650054599490978996216163931301322734498575782278128841029512670985776946978676673920734579514905070744219865738800170857797131171299220177220825474887555680779231334804545890863135610734436167632073673848207127010732522739375792221616265911627387370356148742137445054254897204938880792826603002783903552379779409150728844783868983032200513529466408670312276781319700060402897736679538551164565315993295413012400742886290109778530278119650490584742070656794742939428385649984261747632733740898134521674174448182149273802956653551778713026905308182292601311397557717342754506053862395870684222017458294247419699599239339985441629034049228447045565113368547651586643786108858205033841659187073774200369228971347765259154212748693323301159111110680619515652184883375921317777563723252618874272439985218369064094547194051011299528028227885931111108265710950471429000378623734896837696856285089148060846297910890114991282461246327122972672268712951939801552906939792356468522630084506364695648834677346788446452439182296753495271012692092393799562782328454979474567921538573337113012185838875668285277626271190331811673816724817008720421596238105173037450326034725575726166873778522713621033829350613994175907983043746004596622969419291643817887555745773702154282967656164213593854342539266136118196897269785889573657487549205188224932135256068207559635118494499710913891762645860222998691584081767413904853683370005415900027780236303608299677232729500580729177519967647132187848299524113929381660209045026169572721696194774097647360338465220602154787115013455574579655173550563639703045959678736235254156530211049850880215692463809622750561785053973815592050376542728048605595153608863604849597296139699926399655405613429272172508980636092616693935952869824988451116428721681505323101311470201989805275684010455785049708986352642413054861549367746267361937176630163033166235043818554187880806155130877483189048006188992911419575839863224544564374649370743018094676008634775319723074790814247411289965457149517049096213390587772521332633941883638207727372006752653625996399599889099383645248237243745062093892068922927834020073415066476174104349635297019478620066277904046080324943490568808833011946130509921985026918450877382022994213291809281336709250731642524575474099310016710870588959717341185208600001024600910023222432769587539531323512885603398499193235212623350326782137392486716950971831095513764467097609682851886962620558966535850447945907976666122667674205880422164707185581164222509288254617543108469809426389997437326969250320649855518781080970635879458376048545493829752729744638462885818823393357970924793289738413458145199420420710398914499372334351833493998699049058192726701268226977520677879553674900049703879100601744280592612428001551799644045428620519547425734396143082467434866119867140040130529431433916576844731539979242299393195115118402213739721432256153101949106031477090230996620492242745625648112781376106292228066164687140523963360982569717137831173306904476299455743893074349604824964626717396520045455902159426774692042347293430932361076363900312904847825301261264901815948567046229519114496656460443033447737324009593615380261810244071079061510247206354942293310359991213549515725419246028669887414629871906694574746601004165939619971091443125245433281540181026294670274040246256355109571248171014994875870577656608491580255247850138897591282917921608240241701397260158390724263713363556568752291444851088474459115897307167410067871661069490836347001871161783834499652840133502002411242431931150295749229467707004588212195777823031392598927922155907705095754376955824602997122195139716315200543936878699713863630011281419894323422972981825253679662936536135502111208123240541829720283314547367062173634926243442073196029977539444723026079713082214712460055890073403621478356408660257435755559806101735591133990143907785913501878030003427921858318881317524107465694420006300754861016105935567749802850211032113317548031505614264577029316750605297537898112797454963831026771292303626411243512889955698985787564483519301692759429092526079578109789418104194088437436546283134987222937750247863234583750114702741217043176511245935232657075145585865174947516009560239990557965138447596159887793921899256170068887014300914582002096119342244970706777469493378128611621228492496119513846218001337126304122148716867976573456629225395539092944477654152672304062203789734842108939366880453592271068091723169269692519807537646255756544782992672532814149602530137608172518363622320889597653017732529313928469756569366727431297455309876823023111362935232091712309072284608197602544126120759391389867864921292200036192603701729890010115949372600316085377970518557318750771958858773611998920658270832034024291487498697966708797042658848482067089334790426114083885079673340022679113954023438068566174723756721124292969882666496871311274713812732237831894955637803947027690143742177780963138147242419083003076757499401899699047553653448564151954504484638085641481449592702560488285652009956946171791916836520582068669404484825505875575321060192495694784446518495307173399133001450746063286397665906670433976406338492291073814537700123689313727536346603960933450050959005510896448481381078922536923674959873117626509844845809395980854243893772586887690364172437608237727662592198332305945053130374411268615594662249289393394332922207128527595890844126947785150677107471046153249028482032445109257805205498193020737784339917931789051928638387247908620932043270318377985647071684341101309073255810041776109885895006597078950615595309993224257258614524151277110889952041406523303609186516971445269773546305090243725138121481143516757803598150154336314739523731205877797038961754143337432302886596069066560927387399345134884930221246930484489928051382496609470181024008575551135066176466625949213856492415352673503767097889297908981979191309759148596658756528590500466525325703715227423723035321781174703314036709678277026122156014937592714068705334226482143151205517550042867677071537548081733455315135345245461964898916681637750300933007777643598995432154353752524829380851931136495231011368936786594171726461548326343199993864209696864272397842487495413247504353067045274342925980941248563530702944954659283327769664528302341946774313867830939017300665728346846553774158778224363775945478765236786793251799358358239685991925753687943609119043648167155459976468413321964528343247562948545088827587340078557575295031416602553061383028604873931720579350637161896699492800779490861762212994190750588753270616631360555579099931190826039889369684621421042396923621382334336617543664039299504590885315061794582559249679718209934184716097131062025163988718378501412017391082476460260589824916229035304052790099761306458603338928785660640254813706742178586806349837255284695262847741087437785980433406356500179120417427630481472043719887534563935987353317703306188902011752355872584930841404877095690082305272723379402188035730633551951983497976215853902318828422926971392565091506292090475746830915735646674585273933631139719099575837194949462184262838203285214578532867721659924014819886684181542657367170016303528177267706714696266771763766806482523454667971339993460034154941299305500374112665468904756922249592422447157118741810933770374808201554446110534392629299085925108364044828971315820073331305845089537280517377839102975188732500428596735712932809157491665594662551894617365502975227899440462518757709957853071295554230529428509715602496144324010556373700258486639793800639285571000036436265734666854296459530336843090175028229659709838823157969918911183109694997698604248623931162415045340918337996260373643140138103791553060373011382402384232629621630029429647391032906156700465224909329514939062586628809448948432663348294088108284294198458192806655535263547316731658270588785100065160175619648036337563122688925420121366123651612315939873536942337056146909444878784871704226266089139763798520366066770317641870785681902751465751835934549364322855904666373129584725408155566395452590061458338903134054349859522018059683439232600833771737777655453506737028743417945405977353103950748448972135275214126223599832328858021656723697378826346421404863908704388286812455728621064837160907254154227059746910119235105849776490249349799037657959260361364598285247548773716517371612376645395157830028673873078611534167367609223089056285081688822918180988049156407242228320404118933996092295248865183658982085243948460489881695123516190817001437486168895420593841289405468678750315188363183549426718716576874897323180555249405005619481224583945747669598031451899549058250039346535213585965844103125577288068542236568527136891656200965718151146349294799466354192479939738216093342425449897273518332030079137409305977038430210640351717758196522229932834941987638300994614167630932632416883297514867214501233474263740469152115300943692345644905323004893962274847557884980577936940881865826305057179015377371326959585454503804889171881365339330414828639284573122672906127026869514908114345945245333511630788485521430071357818940367513160588658151771005007099410767732769054035180757477208351622248670046009311426006409337000857961558941107803385681394208936746286667310393099816535532694972831346648879479447627453739197554733978000964908788083610267013838709600797184150264169394841165469533025924989173944553744773461159640067475005882601338241617068338446954591206881914037031312514673825186163428545136525172849601422261462076354298427706446528754885318465059859483739907407791753423487876249897391371193967129877537400175515386380371270551721433871390757367668256662606779898978905345793618801175477908479456029505158790344541495601542335722199530992665481596960715994990785956237394191826746660920103318158528257598140362764283998920871297357694534776170647438734607790026068281572172687944884702485201055337050750678639097845930848797873040077670798788003416839101411305729403862582655432998944550107904298234505518790017759865990997185540255608766151507156440791261886366357373720121221388072953034939863924812472714319060398777511720431575621551239000248051378734515537309897096352221212305463562015515197454906455673810192914030033048336694087883665660346424969315267899668077027661557928167515163184756207890246839752986050045224070542046140388383560450720171467173493782266083394379667104588547747420034548005195400402754236775256262540168484358331686655214386239624392688066331214433873903739233955758394145076510913822467990527094576548580785566677907861014733012156118893645737014224003868160036524703331063175981253214897417022819800154013674163033192716824747225109392060746770220385881683979217688150636758613552507371895829952360879429232037514499987240710555493974411045168809787872042169666431162450170954550193920117132991239769200660976129089299641088440762087204393783362112198519295048089007183655809919886604716897145219148902707165092682816352845224409918354674647772811992094422692722326496414396627448713624343205978686003836782927863868772502058112975324139330524208880291246216701720532650439563436601045851743577471473592631549299810545211738025071593377259328700511711700489610394780873138400961971647472572357278764820844501040857105157129802772748171395708140635260333880309151212704625008923966760610777956402193578966774139616626330255213296892077426319173739647372015774155979610730762475696627573305299693085371473322952081341938961678138153570227222087909026386286093570817132432607991946034371659380744836764258040927712196726745660389741469858484097885929739181596028349971544871237089268382998701789184849673381903771678702778031945146717541113508543552305238202255153942662820400751374952349383296384575407527327348708039450358168045589190577920170104298045071560207754659569375690691634275997447158621464402931166081466480353942109146019054246766492274357700202776868967097616609133935395466819513473181695844922911606656095734137665027084986920929238144744953397876495701268798004535542395760125151310357785876508465588035637866829896441491214248664222626015871775651957060452009187488034505484671691323069085561506057838363681630003787919526148494888658298837653753724659307269386950878184040081569924042958068255471152909220099213298228028212737275098761141747140833545624530043632607008542275035759638848845830200620206816369485525328462038864036444432764653419998771369993421435600764655746004022534405283752004595958030203461476493096434824245523483188479352659213708926130826543280131518538513490513670340127800236592318083622599093826713957594844098338546775635346874312238078962767895219871696636041686963655357468872749684724162132984742151803526305558371615482955172663771125773858781895219438142961734950182917837238907924365618293740655164675434082613620149208395931100100249344832974800434299644821391851473189928986691671657465188105246026876903628137045883415846353152736206885885794457471799176331286369312934402980224792916352760547204406947986514459850858077634460744413983971871286792609873073888972441449092041380497950517392529637989826227227904979514250593310906321918834495699581228500465820267613366632719598853121565594063210126320432245117888798532491269660253950623133752668049824856917504833357945819953457846165550798783937929863128894562184537263383545154611547044628910984569095371794038743533093350665444316203244460617834292694859684054102272589610651267885846336340250967369247766333707715629269982198404618065461463835773557434261567388400472774914125378753360308303131196136594210494870083634689049426147505852365794548933932754152820838836922554659137280045338644183280661084427248322711462296384679933249234700352154332861863611768020671537668377492042626308733709642479344908432393170258987587748564370557713133492178198802994086434446579769445110246450777672998340086553312594755980107048587373206173233989058115182147120876986922403469301335522862597574562747456977821974456896551003542568137977610610286962919591069368133154926781759969273017610163030614362264108823946320747906404106223535304252066460495636065791971317348047250268029960338168679630306633150055831054190461348323037714703188840382922862100470461407103640651111113147246529752013988018633537109207394003788257899041373745994077732015035520671337268585293912208760991245366070403079138231072176990459581057567062839205317614875431718598537668947504728424815881484894365111979639195795262433661058111408411393589544891975679487334140982159993836056070688912168266784221697392683706563360355717415425834101034373180993348490612102008799812838084178763475084026255832839051145210512016002553923694725328958744268844535381004282415617798599347494979501844105156361283900220085155281508734041885138175763954175523625273440050007214809224397654731340761114916981187409787931318658012844091728262377967970521657707859879850782103309260502484913400356206538850949130211270960924086084478570298863642527982845987325468347340140812375168978613755050100308663182703286320797187023591826512250156796079709617596981094650002540134980573571987190153501825999409777186660002575866846576341395096721330213621080388719144589758176414026639979486763948160761298902828388886460382521189887582770842503902914421925177025310580899494990289097285778735871699097627221663249719922712700130164073069083736560270524074475768957593938241864248561186421101747679858765465875160281751198405747260945615434613075048783794083164597716464728760504219882250418666796272811297668309219305497403054614031970068803102120199723842351983609927768114244554659410699306375403784179624940474867616379836645796265779245399958934079842894488239651850569801052916338159339778736493586935746614322804996414378959281472441173650726801546713009162651113306273510183095148088651933092749129376355793639127057002332556667034043882318568293552708964015536194257036816197196899915766485084785924818864292030136266534324559961129710890605307179374646987197510642847745052500809418286125720527988278505327109561112508716837100988370944579357231587297597989369048277430357843234619649924270934462384860984522601510076603555228638539231449177658419079989048966520986478287591016767761826397523631927762448219500113251605504019111044466686061230410371935955603223817936072307030098966947024843010515305749646153418075967581507545840474865789366826324951832527067072910368913571509601605287733986969485474990911703603271643772002763168900689693297185570860242542047345388738434517324558268097637722029273553195468541075678238212065053584487101130422685450915588708956484283194277812173202465517449246204090700406661836420659438515246732532884162545451481690164638431425952179284074700442949202296554722562681312122753571834251392265699582488539260345760538359528797564183924811829790363323696996357576477184065455518275294623416977835123183531089036169827997504034691457728666060063117749579313682468439573726933195517278491143710081055934023840810504492779963011812547495319794895084925827296167056283722731419743925409842700307096654916797312775766038992309755150416596621261468645912633219942490071263285439668741210562295404676782608608984644179293381653021331696673540534451917041124968984895552572936406438840140211157755166524585149111020803573278368519058700508071950709104776197448160471518438376351015611543189687234610523625178386409070328048366281905632055334362719016414449790802709665610166735232982320004035607689444067690786106535916021077457103256705125827311203983311564054699483764758979150706346191119782863043227505763334747509515243338861429476397707202155330691179888963855661575575920652683369356388072586800851342602386542385837077058197094155193607167936331514943758535067605044947258580305615029696193821517956192396407070197272705211887806490841664310283096708835947847145456819676428377690091239639416267515195443347955561554875874313036060529175820590920191945374899069761719650144217551005361520538315469328259104929105256355529071262828380391228497981327222351540865088930056015671897936008863521555244867481685373451338506719673544477995242226581272567459073490193397140576117009479126647270868220962295267564246961010142432082757413746978198627191125091710504966946604040487321411290373484514889378688839705665285263736638583242273002438486963124986214924582772085946765696449953745054442222914165391986120902242134041906422976395490786906915550385269026803694516382621520022313942791752928922439994648949221700553120359866749802856017469051607986915446454931919041825669289555227838451490124733004763202963028953842396657701992759532704044677108605433187996098846987110816194750169705766605702232279761517363574472208345092111125309886215809507779934146713340369327421729680291343257699998136043739924883906340779705208012706695918010619377495734405312906119230150808783296090074135936755019441682549562945876432132188217636363925859190067063132058827272935269314293191737530238631644405235773138731455759467723367531674197817103912675464873990100370210137412368961346957029063756990837409797348110318073955924018492883299093504942217072842227394793655608061657085420853238277890943454588444079195543733191381565781498545071354662274235547318048009877008581428971080847489598303787240676522161567891425082782868123489171658497056353575310583370235904717198075675041923303044173287736394312307550743642892505951774978641831399967422280520827690775667724603010531249252156053082729027719155132939616435070269338595564739086061733691736120911368383586979056291072848278859357133677255102371306018697834003857484646788386212625202674001809577973194167871319739540770838092802250840527629389651821368798932447424443272263366039055215651767790117361624864041876791330356292380517498375682265219069594254819351550347512721772006762761167687083166535954145195174705542108716205348139553611065487781917312058514155306412533167263006083975799720273152051453469525635240678832023809918712929782380234912312134715894651695579937833298486389968762764728093926036531191529929351816027484738379973129483819223243345767389803209725520190258911463168221542151319098552751852343789587873904051737373895110575428708772792216731840137021518234008156690215254510996055437029144059447640045977081933618679860248967579243072746717009531161949830617853305665769590895398271102287914868472046768658386169547398640525128924416900608965245054678508450301980087227119469705869711817965275893591406186899416094876545698611110683867984924341462190772139477069256885441219435426931552130846628567854569989584963363086253335726114606829925719520025017108020218484316725848063398554784917281514216272054644130850474378535186559004163733538988831441612618665058348431521396251711949696961281012355864964276395860100785512331495919576153887794433125456284638324284740656855374386042959053579176922546529176151630095723042664152912106350344623973598339712514728886164793815799991868267045590524196727657514992023057170468530972758614711566919105737130143428544026628524900226144590792697351467358077136337860930627529939672501745323966789478854293028832165917963543055277309819547611668185373418098770075967302858495827650308147787491913114341103821494918302989382832612759111915144399757069159856011222464135722255192872035305443788355309172739181610023381674503005344755742450050585037560949347955466242729448196254517600010575672262406574504504662152596080464500266718282745014543748577403292412901547148948793013001612869688355907435972524483185422513083714306632764686354883826416964345538507696449343397666169848614856861915829291006349237038971090542230471588203215512791759841781764792222842659330399791387640318099123224727771584415539928553500418101927491618795263429172142149635483766044588600438235392818210817762257816449963568383434805656197891291127269049686208262502267846670344707147925646462748659150779762144791795555201696074504582294003102442205823464535280076447793620711186761105724913817410551021862878194170743157864667306635076682283036506587786133190190452378833057005448366413664062997151553982960606245984319183029642421818071962754453281457154127053845876199694386706868708689685425171057322695415065793299400466146270843966633225473313278248261759146175003283086818244332494972692712347811437344919792982597346849676715866721810299878253084436465354283800208889040768236580275029229297458397000730959190850776789679419984362442185088108823848722844552736621845630254986288747441102655263981660894985998233913160249295450277372154757020202905095077294158271114613817691523400077652679138898222063822706615146292413867178892543196128738038446030737042738145607857978956151123906610723700695883503803099713360069974763364737652515109853091716098049500954338871800400345029786442638050997042546723439117218916322968894800857960700709137376176699599721901480373938797173602484149242761156908657127167019985836180935309334427539138324446063218035095278072454940150275091189458513134819452368670182810518322371700521642761408503892066602478937982837747673714032757348800988221017824316938395664319790780995869908643479387868368767061476739641174323365903033504979346817358418838783258557042724268758438540049941856678422653361925758703333802624534822569292951769681509724636174980257589104820514638579311725602853402728166613490107347770860384165453526515858454255800845688443788724273943395336066618409248169212603801717681844134007264105443057079496418779370200094060808689810267853347658993820439469152947882986469277090307885162711200034801114357764248494164654644978334090885555096776769149099999615115549785954059329525510924037458523838448555905545798227647521800963131145769520712805298531147778327780996730076989745570777235704301625148869116460789703099819640189552675290839219788255557610656030841416174721921141427770783920744938946724445619560500332141789680070245233104520583160790322672006326796246719938905490735050439298466753973052326295734456392900081912126373228978262994854970169046949007612159627649851340782219976076763761666300360159787526548610371355856021420551914267339391924315531944314560537457112035537787679937493678525572553593033420371216060068564752823221527142460962722196283195278043058882369597244884586629585912902592322612336819443156684849219047039338615870847248767479175972949534181407473836931055814808748203719558110138680626642066572325701778257748597065960542909814583617752970333720699327762988642585625971239282856277025528021952828307580417803469631190508935796814608479611959497877441216637480624530604424138895406368984962175132750315079084580313893360085577397263428852682866320208503869358443776184557747349272901241295746915100168255389296562285201361739803365832303172308021833667559479839204072644144026867864625255466221965379577352740113303127817833053285128058237731046168276941872053769610790256094483933742608411760728275654599649606237801670020665268304150982571309047151221291446930237562477133675940271145232368948307915576577207314507891687862508752129307607485958342508658714902730629126585070729279756220233884439000267536738505325362438136212583977430754517533137771539867461927591015660421558034077133979598241408001317010595344309142570871129727711249354796825241372499600826847971128593350454594196869705201510454586382991219911596446288413712856721256118118515218145160074183286014329450885376317142720903397391793252635689159375227575062592332167898106218615940476374634284906844769131226012991338052090332529717125399988475313811215979153735575369612736420170045112560870205243896924114708533926672055355632895095837526837424357265330745191133843334805032202325118358179653869316174158290676285240156077436375590871225196448447659243130018650832778310396126943110369732336372563793539904709365728996516399064755227226321048697317169905152636450093994969170033115428694367218149637493879392436792665656456500759719720640218395675399817018781480071542230628358061796801330042506592254064045943224988036202143211242732374050033342995057017153756062680582285402995670322310888147459888936656330094881787754827288122622615105640039380457539466007278914698340691396121704163190953352061839039506552723350393726790202836793888063020110022053296095645417895191642640267331563360430360049685686855160438742723176868929227224986652376909912978879942393355828723559973140942154782367183552457639535860186761470311488524871299682631504344073431224718694156156835426939047426680340609182439948901612044109961120446400258712366240498193198712285728825035816662501062539196457535137321413625066738906155078847160641402495940664407123367136012413351739115749602622913835750831881647735038133626186235051360619712147589892809346324183272084718471909041173124831222028824153898136855152086129921561762611486695260724760762836093529401742748349470501299226992867503350192108328304079715791238596435806533878359223572692851130344801857824188099571006114264373794773297530065459478936481953430081627028636131307553760786045713287768330990735290339309156846756109660750335034741945228571255239181693524705573265554782078362519918169981229931754237142390646331110475130010892022862634235276316276439835056703568132570499697939163238056403412866285498575856401669130577528229841615286153574303743179638923991967115261936800110796846430371941222670389466247565190383590404412389259921521708535242936784643092670957698768168313684151894560778555486846799545860361866138768513691522868248990735118885122682051236952976481148660470198779343969913733964015994747773963869705661070948041290619170207741864711581736182484241353823209937815319075919204906093797831807080235327947577611448156123460801963123130894665817406981442523885297014460704863629490777041392688758414017499802405000907675380411793552635312697775994681786741131289975317682996707294438276536423730781299395144815953862913593909809233831227307366025702238286341534029952356501212627115845247249804753909242885690656111386310532555558294127687211735070663474219277277424949111965736313983610232727832637173162600049612138316865779276214353639393928090805264461214176521737227563346398472932706729326651039606485065062899591127584429132759756077942253987496417783956520707155623527255727174147674904309730044550906878622750428405557921264940957160303211591817082113579784012444741785791323026853906119092030842036346416723428333720889073390000323769632202064408081463308226024010698456517132344932564118733502668259917384338235459981610127405087881252719550433328127698380118829153630620052842850016958794350985484851639558908186159373980990602279962938579122651614964843697787481884635187177788925236041509333674617301319360606573240649384413410953372448545133503485850768599480463127326199433822669841001496479112772758956439837340993781242906945028542255656676245928833351661064204429369295547243454379495568491049026219272980829792595425309817913565030386482280787055780038634505838600379835805214116405900030596711841020016513802628627541038900035014993791782319998861523949120087151328131291434981175937127348920464173680067780703474602167956458772359635411221404392778819805962444233027173015661602321752091170521199326514680083391284339039890150620767484198017979585634408590395050301978002133340380343343072394948290184060917835826337554228711635239573814162869186409286770274297452245255107488105103056470523626660712860550708955897469552569211589802505215864315265737742781723231635305584302252705819858777748840732256961773200874212973035847667806578817066055617689512397047885936993368971580627742926034842997530498997434693498369280958499163147049071002335847344823899195463953991472174172967026763162157493779312169083491924757468161532159087280806105141617201255089764997803673792879613290965454081298735465726478798860923446338099797993475639421303821011967154373955778630565841315937297922190862826701438391443904524391629107818624073583551595422160308589477011753324322026032349566771851247395316631616075061563987338147808651721106547836251610807650250393604478430665880487938140587019966752476877598534294745655996686755903556959802831877670845444620426757474217495053889253498915754724921544776258116123296540955106109322963769301322627470289216068418532621423459006681171118559470935076735599073753722094067094877850647507113084705490917783834757492582824439800898432331114063122690774786926900034517999381570311439468245242269234002895417478572810699266775722525585563488745609540581649334043571014458005725299741577612085183027878716166426669386159604595983072855317776724844256252407411665299546706125212827744815847212785968134044669886880049477481087726307749783312579765049330791090058851186061459634895294246386243912665909076659710697790198109034216803833951763759038577854651073017746316997451429701828050193660137962196101265070883615664864786730564114117506689340621847090397223302013582795431322653511566815178575758035552656825067421086526733042701579408460587817842763951376360561018123668435608902587096610887161129547355546752642901471995669719052553382649064536379301612031191936827784073927379056352028080819123322492058978609814563677030405664432496685390665377383970288048085126192627796577304356209351235765524842089936092306057537635363702523078178708133897356765893287806870122772640984479844237792345103534801851865822307705806612737526306535250694614766409003336658559748555768561634272186041973711710339113605977143679694522325240006408639012830924576278123656122724707978714005678690621704261710858129862090106920057033143421160382356984788446637482529104210597734103511069014494553599831135758653935377947740816956753052970422757610682881094479639623409965322393099857836512969198696520241003294055821722489191385944707995929396729541635105525126859516892335140047012657346352465312988026756895884792971252697749046144711072842681809482085974653174199985421945470240682750849318090813066815734472055576550165927465105708846635214552447756912583999649667621718038544027594665987149118330466966974310036846216295132537691154076892128873757889472129865406796088559120324279706158231443880665365907959617290988539084799568436359053634874141294410502633197388789404764808535902924891240514343717250992999901629226581437639923934566688420938867684903452823081689001898787729549644572834335767063086023756019118637478435305944534411576964365954008355674991804953819464604479685500850074372501216267192824070821737287169718445224097563638739456184109399501116729239434907242646394819539390061648813077315839783997318856354331749967495311361896802533634487183473619441453723311330393127248821993308300662229693009936329409014826933122291961845479942380220548661209583407007463773904380762209550832518616018101371605913626378289473247095129112933871226552772541715368595830182554205340930757969019678078731564293258810284783601659228975540826323390293117365182317749181064259659119560347818450969460992647657477540429244158759479449448603421635930759373822687213405034825572968165795676307957611427576264505099135783198241109948063816228000719210243625117939087736326499379595249820948086367459586079499662098297259341439725788448969612978139113482503215396512896359862689927573546496701622366572842321400468554702679791118216532639537634705810442417240091084827126827710921115504946708219245901253149584855680889439664189910557866795535769478527478406176167033046272958371036598390372058508774923688414527328558467759957369791544276450724635864055173836513339931953560731538833696351719590188962227293052366214124025137321864208372576966866222395184349393268660393462420356211530784144519402683020239446445434958161108340605776471843800943227313869572323788047489666740225783297070255156696968891685848478972389906231142939977778818473353084332038245515081663221639544039568565248435360256775928019743740376049775284036598954227303757378707159947553008374672114664943369039523427782332102772441854700420072539543360687249777764922065997894958193193504432105784050300613288439165147285611926143833637121646702287451595259379309952857864410732510712290300685536449593966898315506090686445732803894843130103637196722579195739303514706676985989412723068576938996643529106147410673005920812129742333490966420130085243462279436701455783271085101504176017794751189602491926166475955201479149766061282633223074410840175033128169691966579046108262657379085502086733154826540949571398377858763463125357549966685828781461349235679531399995336020463264484414158788202594464258763656438864129029106534531738273256268010603762299757190929608953545533288538233561569109575099462732196324324699577832676933047906804174255791863289077461609452639610881286146002909508283354861536329648236363267360231715312203862971685506029105132776914747651234531986104679339017446689003093772606548559862789195461047163126996626819643079841385733250729015128366422003956213759355398724207172902992670737955478343117975415653957554310435035274757705265870936875212383600910725346524924505087450496318483097308237138749462774297441985238898718262548613362723980483429115277714976705159248357216362936836933115412852567458430394837077269201723607130793388870172465477692810549807480537996121579091457314215845630931829762519088643114915321337964559549435015731832948106398595009141207993073215559785577422597112813853796138307509640852096783392067718940486049190615876680979260119884240798108266459409240532618980756921481051342757687551083017654691774405294256123146459706518959157571690701307254037315212213179256290301033191587060200450044171954697226493247214296072742623517398481510215406852424200214184016775417635072539499050188893603874084152063688963709232465974018071894938453162895819842802595828129148213236111031440383765494342527381202380819672954729247495542826373384611778365817498286069215449900424185317096984621087900183051985598281677360317219485596629120838851080636310582536255395505468179660852574958593622419693790994560983624411396516483666666575757842088640832570065836985912263255155891956396870931860006743034784141117258645708965341279188650034901938124454553396785073482353332589280919409592536918858117892987876277910562112384091248378299681515503962203594181433040738898499720755795370380856775723360343455925287256167342391017064771786885786723889226553600091870515927694969478521956532460250749665125330035534956660791587062026935712911970606481332522716754024753006111878327092065877179240164364046732313017258016768534299124948447634219302904410731158770014966456890637554479764118764883633157370013721619824059793693438653449941910382764865402058185530778916270356358957764979412648255193925042507500512581383545544328567346559822371086658548585299971856756284118227172275243531041137175132677231085320667044405131048293092492049438688044845484642911531991314522827729223742221845158707597620410774091482183322426684055792322587081430452482540333440185333756795131313682169712426302980317563599223497415551314411291505522119410550171526432697781772018325213818835020272440978405482707245277654916539607698250789909067215275246325993889865625318259311645787670493068022787926707828184453100684812369417958312159745653434334634647008516277865645579979236735248265696902082466951342241212509327356044170366389862005575593224031536508421946908923650999852891938498176029427063541051649491270596297152842963802166986449200660846393831079399639239082059910284017222201143363422608121801170821718274767663537044497076486950842664224864986659817518936729594096716676196640942305704450366102156000595599671284175030437807637554107734422121022181047588671355193861926100116840046964624625883881028833296401524678909268039424070852853360548550570615273160461955196327386175852625502799409471429090444881590187390035893790951147678577830655380034576972181351733946359096414717017828231940295108402515604620703279041641063571661578577540707199700496668046221016541738386045407061214344152642337869699527450516429690218129100520942384076752721871249570415241039842442108070530066803427799360726478545525993168224342953157191543367894799975989504623443447036274694062096054099812924936886241163799446980493865795879221524809661302713657420275067485326699836658570837389048822369268231084877156313887527116234749920913504705048383504487058533504843402807433108861504809465295584543248897611748812449466562102771291108106623154993821683721564803237075500948292163811527384976939148407195038414255200791838368131294149945500811619995671562092837860148569631194505351041622586009546794017687466787667245716846559052632131971373743904685786699507492536533525524089895653122583668473480712488790489937505742893358870049460872784259507637791605794428237906856597886373106015870176103302766641186107809669062213186298671584283672205087038447323118713830489721975155350184385548055995416028559620421987774048797351689267947667065560275527767742055992168680028824919059576685763303681672133791414727626544322646617205721674376371986478183814504015179574695388056402060920624142197283018445808334194572377154214856902279884070035973881752212583441407375737250587454952314342071920488093194704516870322361617624410799517053317561385821540826618110413368727782323513689850666158088923080629833785599850173084084931213858637451263598452942055967620900318239636842791573569190035147691294828199747074559979132937523717039511725886726322107008868326693368584306762722562797441192993094211014799183087071938904385352561292270146341705655321170721851231760507057384606216326834429752960163608232186358234205062825311944754327029727298552885048520290959697179922229462008655617939627076948166919788128481839155527611248144822799389571092714927346569617002097332985007328077309265455470056990826255296215679971513102946308040840540867501463631236381718273393426516516802999668657379462543165776780441963364956263794808269911794741303457771534025626085601133319067885649549376160420101507974293005435213318988341710255572058234118776247734753731231208849508178383560194400996057544939090845670185449298990597369589038063895760052438496109841707242445029497609119716147583289692781218682819872557304626443050677288930583787965818813703500594607566956391928588974376200430929885511925116135700325026489340612320181153190605399724226686866652336338209583852815933860882514626578234346740734363483794668864894031667717281512229361858062908644405091873348854945005655382750530580371346476505293220848076828831749225943977464182571608261148965992841193597709252848437998887035328025114557977376922665360028820022286359486673643881626893182744452557151875933277894432784560345612717115403349646501321510648784835799386308980244490098478111469355767268332291520137228489352292788990036763253102628205526140296027556125366336951708822591073005700028849766399785387349379322604871378649154780696346529299368848393280069974968630920803666074963367125961616756438030472611520119967879689311765253149485990509005175848400760043553688528644593057968979450845399483452573279353544633716159984171988172951283825733250733068460282152329177736312538943255435536307600628311620149419071141265877085275853874880333858622226973054684188354415887740102943442059266692075142813569755807260653177666747888315554127024651439600184978841805261211891142224151229494153163433614903125877955557716197342605295948774646006671079793902603848260548373535745595605106122306453067156665346720250408604826551716644187088411604816602211891370451693396520351179601844234585273289764905865627796230631656808435835428979589296391601827758789086761502857280405821971167041999370670986250378304504174078212637165935146732782869844889318082402137878534415435500152610900938355033440179574591437162060365947255317206600079124379662759095642087628266380768090275557331961308816242614712954940631673885349763051886684720940159504364655120001435689183526868363905754753436574899187341550371253885494473678520607415927900609252210147566205689815361873506587377848425907601849409233304746561276717861218965610413221457729487834712403237873093348749555989953234062215602922211754656754595629911462612536289656613388206670988663743623190132098179319676771983513844716540949434166423668306084110471828907701930068858539098555022323920655026589071366586093680467370545696552618103536073069411685757529081738613859542895058851092843563500326744494503440766094636671812665799863104812979909528812384327894311287969263413058858513191579955129043987078479863250623445007035645781800098970717009242317954600500562478880345351726453226893671396724535730455038320890710481739054639913493314539991084554899621199252084241275776765627479879361398589535628115144793572648516532023886044473118702329301261181729299987080080008694257724602715276863204185440510266189523317472865887776992353608981709474440391865027303780907778705713459498215278639484130740746725704367374457027461747506826586032567312973154911294176380406958607164369215910193797375185761348005073428161164489585283804340870145640899658992211301957212707971552024130626772007446298558755906651372079669237497042852633960021914842001164182335201466347532283150421441158587901693992757368979911769564204568550193527903419905483134412275824148944443269190300742884882089488612286447807924874612085147779720792682797720229524983701710335369727597432797643121597092002688773501033073873987332414251935094102007924826585960714758921778357767831571963810942182209291108808502257902270948840538129089753621709229827680991709857136035944190432475807211151985983764097966003144560438782278557469615720202282863252634123546919155905716552110142612269366671955835887546017936138756516398329271361623318928528020368551851583354796015266056509285088758607987656505956643671522160159998227981746290183533562534318488357855275046275573262634142498905427641759028979145962656398204504724951518744471520076014342554299101373240265653136806681435767747107059114641853342232544259547441613294460369497031501705985258749301192545525952668072175828956503881640557589383879908463194043174934806369480161294713804391968791546504567921705658038450061811671919576876781719592251808525450846289704980853719546031942188467104677062932721363230971888859586257724736166160863255866350521078803845572674391854777144565340976628023567155041696020089827765263767511101487816240137321954040639411519110282091864763249412768502250978041235521201872676838853980868385505805802429512978219822379690820866760310836490266518311353198307870242116856464421317873936035495415681950263807716004098496810851884196809918814649438705607228898392395268699402259039353305411143119886957609333007279032574613905381698493957640837657858708163678427821750265664674816906227198492150847741045813236505307714765590992641819319273993227526241595515335900937374245464724459349507749431630351541198746468647780170820545850195728808253845750714877220159740056931729132762722064275470462715476131248865373294639556050878248069963507721175089513084268384382953939274759247815037413411014229185778275622615533077766159069622593628044793072772902407394298808612736384115081674541069262742872226468925599216809195831615488156401608874649685102683393864903940831787849420075295922148561190475909763456105612800272298753504496038397711971892962104726999089733428327670411746186323802229207041930519562247837355495328040848681058030128341799147429528564294179843744413039625846034225044889464474369479603089994834299619610928452750418452931092282452710456620890842641305514724478918100207363806028728440735128196655092665586905237313660287585089010281862835606944192092469188413356147057459076182993826727262203984686993642297234476277354708600392288138033103254237389083624551861308853729539409557505083886276530439964478155188225369328185152055481158348985449215717805510705461458114326799234796652511922409586201802638180700270528796867347570033960431633939004904693064020219589198245031648409053857157312117936462166661094686554032084905684560358023079995741567932557504109993907321515153740794357959761106863824974287594449945353053995244714949743716571231878485337292653436079840569035258667690508592638384457911683076123627038693091121786064362146210924890536648078017651158651676837581085779034494431842664289858409888317666746842191977163666192158642395344134173424705235820956994281326100664338456027254144334914966472269239851728703826609522228988166990640566846308617862404002097000014174589259685988149913226711001546039818302798440521484973263435849482466569537876344159927260447207866832576519614635394310190215278667339583932726049100260746465177841594707361549062943755639319376760563735180261301836413230294170575987176470949746792410199544753183347996084277188260719517146097439493716744138705829039012896126214623680766873770154312223858748547533173053628255272373476441714048354287821976614519844424103657269364367735597111819828905881510109710574511361121230701899084214902045659142579982697499527464292520888740194176353781012781193783994767701506022867754874528108026804477482847859483694984142871489616928695146572312275366200257524571080663709175232716419070500586304399310831594889745877454633811555524827848623599790416986880031894999448094914286443728718514026560439434986295889718004372652279124792128319544035909762787285071515062338460890618169665233514517243107586788973558673316552730104328395536304450267237311247345584911620020313513667747155368406499442609986742016053621699571607652537254022797690850521921220361480166424219559388358977673181921971554780160942458234674280439544720854146632362494337855746615472390242820941500021373592185771145150122451529363629894373991911808071583305180116519767787851918061264524305168645652385699808915513326876351592862449977623012140466358624822502770237499986824593665761401158077292881640247548229305706932909621407314998726414052378719943347985243515421888772157022264684221879629921495951552406612493826834946894251390671851398739464099544260090733848715719554056148687149768529941292440016114455213853432478620877272717260620589254785297630887038002250034812140501102091268658529896815311274620584952832644256534889904968043742138107010820501948614345056100491843989246341738043416661491773549536691853115536672499042358196778920612641351066113816566397951904788466802709651815781022820077974260635864191760403052819018447572222099083393641185431863739708901662534622004308441188256103294221308749978234357130353588945740339914645513605244779438936475068053651701838312682887370686462608847677926164463269422547295890040022501639307157767434394985410866130156667653924885200272680515807588805223768842340098352835381658128558109231182094203018018076849866043022488101436021398190154477699650824932865388755779337645216647445894585783178822096571242621702901821102387478262232196771349678529772641543816773519744442128371441898000026933701973030983818441210792034518141694625161909563185248218565362045564625388168305432042487773814562381014663316796048116208530740909288715952608196414044186509188723454368307731589248350695033777813167902595498692653926803777847644268277870499610320959288823581373716084865830814617417503625291529652517774101845369701359532625919736390595889508116406277518198976136715704045077686014114210398721471341928269738670407132756930056166687715787336910804935769310515403645786948415082652063684006021639219150358083262613758091387883538255685478454597991414902661316080545169724979773311089128493857486812089054921812157104833182033593813640492493913482785439716046940742787023043364061028761402393112519055773556857079642343295902094965965491695915399533959340765216109998414821105510082455846852878419339980066043734939939266513155003734600460095393576871267177419351018458636427863713008741175641142495854495075029170098378141731982347598128377655824155145110558471731623161949756808436296235115477210753586908025263470944444774534259886883950742756124394125854518514038659284821114295376072011132910856126091312648382402270844448116552083265928438924396702367160746679506309323950363238834175390676562538488369930081239076940444885175989582871028194971219848129310318690287995975817701525425856395528746136932630787180867316444211508040753545315684428348362462831009367807450599215651990238404422779690836101334261336491053762478936925322621378864445350056538453642067929647737955784235038296792432663622663436027803918376980211865692791700697326080808618220246207836879740458065918131555963386217288457979780219889062913456253281019212107937102474786934927424596371275827708468433024837786335730467143763283393545927159791399065101745252271909878176222493046457412834692520465319455653865579785514829061215728657641990864823477453692595567835272863415856574215287235287021890927177418320088621637124166847719637100425720596139316704424613965159205915091820001140989280021996360016992403554796188471332724381792712791743823668576367336281082011316697536065359656768037782824494393425646712844905703975013406744627889892560194361886169233125692028954030653694112081439761425421696967847958793797769970531802547660410514462926084070671829239860632078201446163125188250169754227319304008839158581084160256579983110478325608123969346190403095926607538041505113876740540559752901250258572628386004960516271272604794578812928332399070312455155515792689355777352254889464193089897731628396702255667887670578471451948474186639532925968049792917844020535100083141786685554187543027947828094976990624946845594384250590947640009854963001620298523043609607875086674382967304167142274230358207272955986254584325961981801210932905977580872219853983123294523037446789069326119557459650215328876223132442185866242551118778221040776221703781447198855651158262343725795513456285704630776176666924553366793296098658977432374071403800558821354205056535376857822182235034352583789919258183701931179800446692189123080823577633639336083869167753465912738495664576003591322662957075182009691027750244358796139055248945570006533034640479988868161982193000280319338177399618048395424009634308595455460041434915293135494131317747384160414636696027921627776442435186576917129126479473563747089722871068045109702300826305408379232721232877265575230274652210882026542191696418346617159159326491838902410943499710926117175855222180604845189618092735413789736738340381510361328159208310529638429114152548828586868551464684962594192058701053389302870438739545747669087927781469636275341400886248656448644986232859207270582164724482603677955112234393020177660747174481799820036953727091660776991139882997956579811201636430685151016057020845926024886802423313271542127703114333604553093045044905867837913945888514501949079397524396707167116022787942754111992733039600067763919466405832615803984327782642012749442644804954749172580740933243668987827076253393333765348207004222199958890722053096357807649856335009917627660121117479949998655485105946558997119511658359806280449164986503648332971142630080173390591927363443407837932652030499804808054506761124083735351691509147662210618816364355548701748689719637964802682408418048746170979191911615598125873207227491171440141180866670748847598363413030359018444744409166813933768387557782836535911769050836096493825508515756909318061382214024381790956827718309528387325231878288847599538919597704064289178367777410918656226429280468077926891841856320180893312734454777971957363816949509932613974199379881975059547567486084392200787898609984109933637226478171075146993359002851743544067612485250352843704735509933401668006071345472607436415778331830841999968835246645474130436124983492965214360795687170270973287120633841244545874147408801341423651237947866671751274117129858075961010499587970936903040228836311938788817827284188933126432639944097849708466263735482490678420497217701849242921437793037121119021025968296252905055441885677467179210214104836094794263919242149694306245098758647028825046620851906726624474836408463116728208216694083906982066585524634292604605673263182908183962899346073774904860983731692634047508328358411848019447188926817773588438628152036774324878628850334425851544946827556948271784961822405722435497376674312959610927425163959273379623176396603739557162414092609616875713474936405746666789309691954397121545144794614019242934075492285878380692605278277382929361481040737165786102650404886006364950511479771234059957840031049776419285741290012487956550344865411911333959315529487577095674699706393372045780468297512252979420882776355420772327775649398806531003703374940988746126764428952314689765649063598476082100043209651072242814873038712301172617770816756992497304829390886428700542306267669457157373812434469825413201184385529513338321837807332352687564621190988029836478055250329540420062604413838682345889833005770249700438914928136672480659746891422817420269336622488530371761022303061736309413272763976339870245871535272668123817362362072594947691429031831506455275277087756091157133867396350316901723446841821362481256410556115683737819731282993926401802865194686894624464584850758917717665533110952278728624788235099225748056293255401939718242688193359822831031436458192191736100816258262959745962981099020891402054295188779009785238293609177964723221608748866734942321424441930244211156659083735012385557004840190800040369831783996770115252160383682311297692189320234512258481279066352671324776526096667551972234932461483776931827594518047290623583554442950908551363264716392165535712701854989577799560446379743113899239183106445574754200080032569095800974327774423299342133674701366507185465632289731290212953819671893018448074842370077121325099400448949982336824505381657065327667225773835645476150301328410948431053766272403012159466161327125441771034589858314701571857805895672145723325621840216825967990284312624496826225924397999377316579619007532008704474717522774276098492436334641804940357570752564642527914339962832599607453168558249675552454465613718458890883321072928470971451144716948769598183245534206956860618610399755628219781315949317650510180020701237053920086166986170655636951627822364757861888668173697988584392468766355177197613312613242732017015848886890325913219669615344072667050674915709780741988360349932884911224628477249969967963965903777630440703845162198076161500430407811270164954273300697774269437801703927447661125908263075487631685554962052141045734278523868260005939896717636056407898416000347747347079503094924320447153831451477310458047990991008220464983403271564752024188325962972851670712795172331743800596411870882422004810475855786485819574827444649560923707293908555851514112246712943680947865942899751358001232474938411934738422618410937954664085582443089033960250684981831327965550552563521378185010266804943815346044840558161637184334000357164095325822887412714623123182334849496466550872938605027069075062401479698465852129743659474997648132488121553414442989661629438590833239085523495267639780383067277465472392138912803099574981620103237998220094141553995788799136188937689741752996527023932605318279036243120958539554419245270571833805472973116327907735188966958342912946386980879383800972918480276010470703477306833714315865165470346350758552679392527302821028424734772900324435703577460842854102911921708112352359436695809394231483037025449312216883986640843643942922087817874780989055649498962931617768298003890839551860565098584252307236093151594735898628874469171731096487256669397216376788771340910042988256892301973605249508720205629822092536541788607192677413651829270459909976328037863739897409115941037537547221993971657395521616701226620155471099379569446432578442034727601679252734588892183141219744208375568924394911180381643457564718250358186634312618999323555138206191454389415774110995498380379737677252395012940960976991034104515597518497502945323613445023446256240253437466387838999594127728924151917384147050277067394302095661019478792198092442424413976011380894789266481985903738967034073832578125660897117932988495281770799441137267361956097186153776973542998854762150992935036126035369223495294547027853271259008913156911394199940417612065364566877554468851937506009068521972842082822108694146843665334209542755934554693737693794046966225438246391047536089072513429719229909378987494180301884634007251925139074077496194788983114892097659591941189505455228317897503301517105776071464994236328908331436905983001595768044567662357851221676433127418654548044990549204841777738341254164531648802455268392060829649797641839775788168628118922546337435382755700882916655102024816640931015942588601307376232519333875498368021854646843597688988557648511588434483691539043245568514048584525331435699982046230547923848832175346717845856626263597269087997353543369620446781583918020384403675172625735933926396148411231653722108133638109407098642910857258012895509982877899215266485858335422288575841778329146603282291293526915889759102667704065098658652054379936582768946826188276514674919870811866139209112223340615621584822159230247443540180335994363925645844226652560323505338629889592634190804011266584425199609210266967207289874771335260909670220164698337489182119374037928642733220326773839871655855640764865523713910312265267570531648284369884405012596161405972382756501889968366943848332682906550505047996769715007165904021568848890920937107990066945814951494815407250408087522224448659522109358934061132825678440574525682837308787718566303209135702656165847941575370633685481350076896523789921878443905243964328659538930508166001586221281903497701358548789856423818982339080624193926346100799458623604700965217376289294620962062434261379886090842042750752863259335413019387579174902380122503003898444325057081492212558800280922081503969487895932494143968105703383962115501039711211433346093107578357012395956069934687131252310638132538478167113093792210357799029328665118493158876183778973326467471285128607702764160372069772059909964188345277421035800147726837895819737634191555712504523447532284171512487360724180316642784531647244608562613445680970343420705001228362588699349613020827953669888365587952280442823228909198945391611581163946709098787409384105479250839662515968634213762061171773254111713830936741415351193785117367711716723152192440543154843817337058836421029370914168918639097500948277845718420497038891091238802512240358704032294943471583361978124466752945106888216901256480913116936092914974160017452574271050794367646313225946101000211765200186638098972565361465376674986112393432434197565945899481856875805662452143256896116199108857352333142243769082693369724049719596762083192579966818330846274317928721917908534651148272795608356419929269171047054904372431832903949441451842421126836347753640775971136984462850545409493005500607351402846483353271579730597845988138110259014801135779083604195850437868699975859034712907091474186571942118518795428491368498806557315269508037775862036724901294881017796005982826015471629085822194521690926923452086672810612986303408300519867833873671221443110894994061889459427139564616358196825980204958755513575233770955466383997807301718754939391553970856542202963689663832616887922664628888512363842437556171961826540774967573566497316774672093089848727122566974910261286280245906386628348701995298807108816485857858350292359670166126195977473603615901325637139067686087606014858942964421322888296476663179164110006060548208383062729626436468418189946331132654747027699354047950432405312638088747963972152824279988223174198591590705631758146074631545883365652492086755179002043353154641140226646926767821663785310900588164816344588012645319865709318062107011388509076094153612808751942267585911004460415625902110020154674309553990978079816961460567477343502395853891422108672106978793591802522948292061097657795461139333289799701313129771929476882306360258291036062906520874506466138644357932669662929243394456418707695139459107737826806975314019328417890794906808907196809301745793672715484521255981047436550905472367296416538977719819086956228981395897346898617057890442885357358086710857140258171070217206682040434094556741114359543987829002861877187105992623581608618276985125143526338218087548453805384790636456341919915057245875345034402390894007595511670980640656242374007439827835031580426917494476319110811526724586300942571059162595455561949817119929131799361744596877159414418849208359403566436968529083046893868459494152407183065966545909732542360249978212612871079799143908619970607369468739884740862200051451406936857149064530679279172083523784452773452003513081819317962443722335367761374360638439784306209944726198092260544910483345260747003908063916286850068547098896794194157907969227617809024935669683079679631538155916047972182178030116273824916003351462370946982660756037390918893879219416436334595485665332987914700873923239674718973523009828347835632205892315757203524952460641510914462158404819468325196651229784844951149831132322273694172959782994909697156367607598367574945233192176274826633242736598349735080205315205536764683082469469269990152669983779900319598220779198372490451660460955900086614630474587802466991506546500186697954964400394776567902459863082122610829765648782555568055626138144196024966551888808869240942175518626783620608959837221441446997231982939205962593838242735521504162639607568643192538462032792571475300467313817115938941336286749847639438927943739892395651325181749383803849792155363592449767158927973978275264924039518381643254973995161424779144546311639130249761476628140381957185566575129957979947890399280066306716866931140972462801264563802144227071267293715593345176112054227859063556497535454374301651480271021512067349918313488399675275629249621247587030744264467620255467540288855048391349234390724931220831859389273170730175692892562441603476430480796730975545232439075305802135575088716354648640734254045474153547782637758507560668747018980250586578619720000695355330091850973980099029819965332481297083057717345274697329090016316883314699311778733030696005865828862984870911086512171828300556753789613999772880596037261640504170856300886643190531572002100945740375844741098888807942689651851684038856772556200345295534145194004862167932024053875378812297533892539992287773940954901829185353385708200794866373948220687677960210327072055622861271390532900356500448909199846066082168912844150451125997834588144609693295985250813102175298674678900489486844614719033873552315392658435410755018468572783320618393940152907431114378317823785896729515661674532449654497143216439920343982759503659801576927227758666068475340413092178629332313038746368724788180372723934365325787934311679998823403310449415945415894851323255679192623487212466198505969058080148598116831000124712236721317778817593888289017229642666319575607907670663657519846563247664050553623628766397505043885174673400774816746904072778384390686183358634209793249443459192486038035720572894849855096486715067853809345381521211892233324286623643581585992780917215916198322601042335047534856434325864036169511148679444175316938046015858731120751513014350545619642251102484099973904994165922673271174564708858302243652179661510805941760215833921527965505266535291453123142761295518047018646263906063558043046063371465475097131875566937055976543335000639289436683058617988437649857083476713082978504554311702529796989660215811611288984219445388210037808047044735732444720776730335728069616587512429934144188984984068779504714382967387363014552530712435005847803400408137890595845992180887900670446989534447908570681100742986514157353902014930699009990569773344932659243026186130761965095221534360821678029219237163647138323888781028023818342333091164261647980307479150351232091650314642610518893221765096664384904048423040403910612238874146813421186967130809076716310558917865327448929934900361463856940607714772124502593813873265555331627218331611411889054654079749505368985952594512980504376021384726605759606493085160112838843855429033959086960230373020684304528751008798811567484971681743173014754172508013070847467117187613419689172766915012613636252097372358179321807353542901895016120728047212098477698476640799391140002780820418777013792748249901107543131791972840743401636631081858731729651286442460943723023796222806273149016001815620304654472268227436178863233838680960353893194116774235239243283303475319328892704724502447824091496286261342233476116528511964480603685100925684175150468259474270362214717126377909520479697080554499861362348787099458360877579632365244468296512344316094025540437415763829656758793586359774539975627782375693844406383608961906070291794295259645813116332094879942780876333594408932331245820598191857974401084822234301499676002326463197236967645492358793807980264796192997521827839726612524530401654384438102151065341131361712524088523336170771999904842102214008009810224580557800954502057406353798357811377588991373551020707389833563443294563204778952244737758956978993313646399278090960683827361078619800421820912458683554271745172587787353473350814950790210760731752022764817160726152240763365966518599143420750182226091846306431231698565624316112272115343938373234441395706665404107014789790704278339374606578230478391918627054133641865944912952535031319654026694888967268511140054240506684726955464724307661344739746251677771419002851257703914322976917900969115739471846071227578556186578596493754077240248946217402864673959550348664600806522012470251159497548241789190444099152936360656370794016837931087013250762205569152431665591203901998360843584180116819680528103601216919015824263876960828207481369291678122639884879556478925953054960704181423693018247488955964940861105345594948388861426162110973552822814242439527431766016586384415034522299453200271338392664726617236948800759240699562573387684800439497900437805088933449552422179866625847070001854362454674269763902384083511094309648634704079287825050915133853519493952547171587898282344924776700076344839583250675354715483832263071556886684424573425416393796510947420237016873533959709756916743524113998888603585179609798594436733543813048695544848061013348499675348494932332430082165833269925026810050621893183300458062574054582137960092283534722061504655529659136911527283164114879188810661444472830431108181150284333601106863782675317631188198073764937025123450728240379078516395874775072605560460014705980919638301961328151009388462159653232742184571913430844913940882009815161337231858999081796995294293054190687338552299751248035245453801674839408338474547128783950723358580441962071637591089136818451348437110756370352245054686461672936979605799252458176512139872757023108094168690272163147473948527725664732625060003789098302605334531885218800279811517981665503617251163941622607760446012334417300822985938553974918254616802583465828847953105356246811472818036222849662210888295935269117103947077186352108677033577120497251203819353978799558364671076089302601831532551952946240386930037566642966872763313278795909943765975195254643800973030769977099879714011592342415759391447474944092109038571017268642388818953568342777816198176713534351670230358055246385970208556966904178344618897952632319949678659913867577443242712905791029863910992429947317207618095659688250481174564504343109367211902897161521969808430112155326904969783709550311786579082922586259226167488480630787258562643357021763710262121353963531261562870418140185000941233579540931428564329027228184180711158572629296324191039232750569259730314556033527796889928541285677402488596549156402019870614130532719076950566327050882586883931944903534645080391889654883613646735278969784203726045362537035302796922478880259364470721474357065626278407948929224292437686832294744466721412829311241973596792458770385330947106529871952549746064072369451045820864641522893789571506434979885780268194208172522126017199449334280323837561919489377182588842072593909799713649461907247093569732914808215470437819256218050942951646617005256072461592335762522096475615555942400445192070963061951998058580583807259586756674302448491911152828587888558066374976390085558224428305619528810096044484295328706139569304577734731248601531576279910842452530876455242028732905974549931906602115166390309846408096288908062686613696074181059741698233276210687861689554643043034004154019941452412864262872049899143037609248884915198110359354661098860146129275070780580410346362850596507596780869953222764229070557921756419235798907170612471136553613619537544704400436463320826361758474476004896224198842721579176109521189833279910357145155893734471811779219269060748019902156643408730803597277413223040007008046472399914689270121031009835416866571434630590108610861674083802196086930272397927848186577360950037778588656067151642478107068346209607972085886891226390229513420706805775441032305507593895793273799068601692069025497770972044798983182813125690562999688528168889052923226925977016361024130451583811250764318810932349665852624906765986627186267230129056665003230403507616697385706286841025956448984920844328085746682784584209115019486116164029287600765422283581112043509861970683045372321102306978646912627374042788177405866126514472367075450004670711181501433064935781542575032502094182087863703412506586115030798044585794753747520173175892803491834943626007037015410689800057557832430520203517099556680338337361996597712078824136686903927850289779104814705503026812306595653178479390445948153828684280424686751186070054855169348631073753276929153628897623435732677142336870062512761475343206451678472613137522028840746266230499301164826047388530544205864076009340004192808989080246874041139524508677985069833967559068112898785705644960682665569722713112222699702689230147076594046391941530082475819572006907177135375322212047744086124468010840157294050071972953824635408291003988734901339017925839607997161575509326450407187095693395372241883167156959552647882741822536914976590788902665479574576675118419953333171511648128856340533579119005433067693803969181256589656743562577810349654684231787973768455044186649789278609435215200914044781344101604617621581782693787455710166549481623866198261129748928188254874665807911705610327178265609878241122725084068576902327296206492685540642107211334714721809682580676642142385146041811513911999128830440637379849305937250793250768707817795405813959149038051405231026498219227918503764949107520061384739121082371008393238805429877420970174454613916786552375091112135228554879519701812584970944735292027460301581462576853344388373577099621641657651586364515397386033147010886968870400228631877656218465447274032429305303248998548148748226978993046334352708171671641449799859940374385436147532244890160660200299446822314721981755036584446749387914984484078952392139926305784136545559732692480345161165433392860283422621434920888026737466956275991263647784973397458138286186642328075689399902640267821402383549430044566373184832303822864055961008470145876457084449400305975120053437232818577207083471120130158968010995127525223325184011503589645332170542437407585432618318776438644540347366644866626433646715755764269603454637779310498374862681719021257170434872226739680199674988207988397053241119701401662430836028941387328373397834213852324962275276342568503068826301455370566988854156830968728791952676197938669953323484771256818867647506971481546633740565565740529244802640127993488997926686854874602219619265767001089899566119717566226582838434926157481299475543084515791934401358491008326032757616589636789335615157841405593225173830048317654973754380120537507480590451729371601378532611651473407931170744135815905198504318272500997551936943894576165867497416573757817127569146617256307888830574937402642915425743056948723003001787322965705133130502112827936469920532311600187785734365051336071601074581347258672868345465419489722021571252739040520551338294279405484079093232369286647586012171997424174982785796767656479462923457845917714033172841563837196161855874945323613000451599976374463480971315692396556676912005538422966224389854033947681055043109989433257261406663517407653342896722028261025254684710175907842362731154867157233814934026548847156628294867207493854968835895054792375277180861104875846632276873361533591503047842500933599249064787415135139137154568956961471585107037132932747718078013895501756541531056445212678021440304150350927145892516901985658273547811311568680340752890179039694111935102248195058257700822603674102395721504091837819153448123583773158695251462807021475721958938808508125908972142685238830425979560271206331570766225898767387212964059859369317416349973565397673525154022296905399312387141378001041650841834796896661807049269960586704779971490955659166092958137034524017087043010161145803477974831147557650443180715502918896979952078131995172567761250249813546635936914231981384010407544590531989763004013061864798330767667518896069371481001323016241097455607036794936988347538471095328583279872957891918520285278647720686119122061901624863877758211625098141728188107948631665981881285784854863269423292713806377929191904800628765835823538374669719846231004958342502279668340384166042437479301426822402274009238757027846012500242297064669749831496999059232107044255583945785840625552911117491198562113631755875667851859385805419497205925359084591020966865032489387111523260398801197702721191349680941614322261364463625457505337264930202645287389188133221371851502910546041796852755027083465086194979297690578304859173951536141880666775434204518827299513002884331957142980671522184956992704834511751804548277127927414630081095900589911708941589854437392730813797632674465342454746550592174131384303292209440819256069673150808963619005631265792546062997348523094850545367611613358298526668191852241665513297195482475888429469324653050138851608477141594132294527665022488334694206423557891834623719153464139530576379582302166990177930505868513431299168155312372011140190571507881250628112329089099626428198651494438642645078156183200775594706051119229416814882789214215630051777469779039685680529529899733067778855404408493838843677026539619645634138924915544293334941115402369549970532292557394501192165797733357101319594087430513862476398250142632650805612565522985493660960352051441494214425717188632096002208080825603578283616891253954617501624963427109273805445149152929049252974563121858573008517008450858270267385167424605356160503498263000484645468132963499791872233689981604346828877911499767060375849603914449456430176726782142128425358167168383983209234088225464959782584949188411923337945163737380921877724544554709646999468227035704125318979792656574077905210140833431263498821718878750486681556949647727133199387164694148315850624627173301368738285479814057316444161484221526191362265139507841148776130798990518000142063264387117857823483734377009722826045207184213420010086039828056210976550232646016653001056671356522910260583197256935404734534318065418228246071249888302302529630017489704989082772880623348897385678937026595890741810183277738383057092995609022525654616730552512915690012967304107318649232414615723777150568185092282351089788327067358514249603654789632924112263223452801303914104223512010329787884022229960627456495389700733031793891711685226300587135966919803182779248984938354130590475459361647630750547139537495917832705753179163752014948115967313131309079858049854721105731569116744086374798947727180250570471495729268854529214555743223190181926411152997043677939384933444818712760976096435729717999429472364363778161802025101002165371072632628818157246208974110890861132946197826493429921869039862630228181194375319863602851460026804928914228197961809792620029457841536449681712299034240871620473613136271193599214612339118480306325499757417223067533874547918049616884602227724187599175090693498955391129892842671934200432512938724877414338436424076466659303847687048538907675777018923536220083936139544758387256359017611952264507711158889731098004529969673999869000697452367452622167853859234437629438891884160774124982740798444719823687561406565482442974221983880209658498368011448215097020251808380300378376451124897133026950431812295268752855632182639486224576047972466631039849064438560946928398854343356278338624256073720489472306289246932028739267179559775576402448254985154759788562066627664887497775857838550264635971393224335450335258229975096388768488393032072452855045934207824830128748641307353391113800554649975447077097583703185565313881734834925554861551298375407654572673085627018491614572115152419685800772334276427124241542277701233816747295474774452103722004251257073162206677426450805246686235784542041849565953761264633346768080122237345957543442771372017075553190100661756065497567765693188744002798207945265872161703207064032757069843899582467904561974306994356239195294845930308417781313066571352600870376850940271816407729976918660945767052763265219558249328957067059972813153263329120733678075278253971225225797778408181872603994248729986630449109468979917568713324922998675420446959209109156639140195536505698246477026111053785520488521638414589760079441409790099810510002896256358075041564141737015884453884874468024721684902716650442702054114875304933519078136085821792145944899810578344559755966398027404116374397702422781991710799241076627992030443886967936792058556385964599272403960760196745208111961125051422290019441931893942611602240705335127948236774904186180997749357733856167207001199612830926094554859531707463752290540616756305235815207305658062244602191541315124127982556071616167150651825811744497981693933541541848445627163820648374025647534546370378733720615786043833980570187289687486952216082962586476900880347109559899440128543977946884962930300747930148964371749300724882919076252754596612449625644586059860420476657296880048284185402460999113841911256918181683191878331943290093991780573005272800291212434895918056260938399742599541160629609769441569053028815452476772644416730984755162162872957423576473206599758131042581178438804718151866099147003476691733141370557693720580543549360628367696157189247206547805717309341894761097847843840465332367415085045417860007754500096293719974268200043651045964331594392051564738097401137606129468178264245730545010615817572452965219266614084816708211078032733886722509880963354785929775158001911894169560380750208356747394578101031254745204692477275865306922434777037286715283976214628012464210823486297005357143676745196202955427710357736024298345569926872139732243180522058075668736446974439901476191955457121910356546082233206205803843442777889314581358479169088717116907008513218525770510033792235217270501905693884884458106501251031780412236172347218143617125183518380020952743381061643637657847608505640781456504739545477022401172308248506429477674049461822743575082240309231312286515292692469486461738357947923159807864117424606359353947439279427098127577077186813395670541929142289323839543174807309932240330261075575482437951419585419544287907756456985125882385597736491038933009338616777797157001226468300742901771353346003519068059006536528041810861343313835200112202576554392366657226998062409758314530307410154572715828124905798876951871079724712586906520304572489083082059870055399620782751234547449780308778859591423222730558744154393099921181881035112023080841851405153517165141565600910057420262259655493367037829689914853292246162057170109020405804647965767792192466274486277363917579314787012594561460022215237565913243756005486767715712693410804390807898342943856385835188487434855554652102256178461483421740701737624705736418415176217855698423044012634124734805480183013419662681107037112901239140155877506183908762859090066846096683733331284238858724300421981769805980108207692491438086691710961232392934396684083531765826602463218611589087222402512978503522356996950994665606163817640059426405114248117315422193687138628736768032958529620908997499390196830704605576899515519781695465073968531450055833382441674135366088648153281259173832746213051484394188003379201930091283316640409718212810998378257240930791927468384376278325680684902630829069792643026790092604259679634665754870493691444087212367313316259036307571411088314979391891343323598230321103258895361686006254927587596832140634870350937804794944717778522095520925369918747688522710755424235321130126038532196218586388447221472038307671538407940142953474903079572243594527548760428828357462926127689824646874644484135797233827670256554267442031006896604704046050260283575056909140750173059708571139945687819953095516278446111300611589554229473584511980679689371245172714225528046969153234308469225736700842248282218571116094167196050674239578075138472302993483886653267090954067144339794628472757598180394999933974566551946396672029835030185776373327916951100109829507208260124169758506836301284039920571097552073870098466053724016009825345225340217732171811134142273706287068145068006222926672548305881153792518953225953695318448589568298080129254503373056053742820326924147851139882510517285613920394439066609913156008560781147369730953622863228679517162071326403569220223409710567197908858861961381337234890252036622557784363211829483009413231476553645203618075976228156904050043052066657551792563704126157498041694770376206057176153369410950482317630543375864544127096450746924035817605084004059852048268738188257551614695352378680933748507348886819721438379500907554599098135941515699760340328739694343867531015349676419214516753491256782185268144359195358793734099571296156000318902990568241027053315482369012074534176029783952128308193979547555007563856122033560966144238648108502512259208225264492951219928406942888774182280909020664901416010567047847633793718515943922516018233589075681828075422339640684779270539738495218921854107975058234689442601991495375900513504992594880874371310158607379386438230688456415072432128758301266494213095828246640588476072128767826897814765676953937840365598521333410714588486642226803257510788834217540091212268898734736735805283386899375915522958769693740675606311897330401185570942108423545852498643042294677590011235102442081577918886237377757718811454657258216892306797080592042904424707541128357588276032286925752675176297561367848290488747368935122243646041229921947464969846433784714169153505802026765456676541928340384174095726330269888162918857915987893514311033611254606238206223163800058275443514977807233707379586023150034448058103972572259138246814042092439310903162491566874989065677038149599068136268560524416166084334021668990711006312335032210580982745696259410278659556238197123003261386981704606250504127819070392333996809143148163290684201574160485059382686574041112644890208224086516372998646922035201250998783890469712910413941902748732557027164088312168113168725400349222080432299012954340590674376260926016060544090395246359675794619365072217257675329734490933437825174485101331397938444424383900396209526455442413563405227590970589021813212366073869802980098714017736117966871379693713852168015622016256842922458473685009185396636794464391961896647417203020390926649003922306533182993251785718692229579477227007615278685212589633333945943018494054976962728223511017268294813572377826723126004072350681940472581527253968092126256467979390336468546082127869476641929577068916621359272009831929196811701195337082768277040486498834869702131682629686857315141713616801380303583444568101150889958463206317815261571034790330498180604592609963398875549020285903546271243178262504513536869999703789657307250448170599487792284199486994422498702281344778266312537187643788391835109318712844491522567607905008859501808079509700256560811228056602195518378098297161585915558439917794551016222440051264725394939285637333482675755866991103397807867924647351915223219813536225327817755119778395676509822731089851979577837566309867794128931933261855266007523590183776590695439391263688928968615237055087486327863967479076786343288426196723694961562733956578351017648871888751232758291374630607272503305041072429937488902375642440019728620450524413642076171147222672982952968565961765946845655930848250718772663068165799280768998732389399426955054168712078086030338668790469791600274993080939619120873100100159868552557245628752364916502220910359040338392084437842735409294547954515675995137205380169741316840507267381556684118084448544338531694218167809997806406207311739227150483447459474794119509950190303257699609732714208198230473384541288712062393489186427729908564035272914426010926250294314964576450832056550727991141327003689961141247270883306453418780072640095696108037333086884506075767844320213904963301403434722282994695935027235486921462008548305982049590109627676651278770829186058522810131039898732558217634076900127670168415484059666312942095826876287189979874439285547407944120515492358334862511526365254213234191132291026767535771744087662271350597816346279286941829964629182436582498540462905349518337426372591078264622371191831268221135943840598330444080495169085800104892274165611301749624589182317283171390714637931191230094150527506030921889537941387328027746470251174423440662815727822721935311132132584478517317242892215933483280628372495432514763391414986132510986464189084791879556341449383606723644873667541214032942484403693509715653673164767738324102566758406409487337744450938683932278383827070205464206959005312198334536349219147743860605399945456859308360938056117655366812530869822627974047733411157048397308844105020957053873352365442614979463065772729545765262633892523337883666672695564313094196373328386699150413104486325154550845708769509623312296010511830812952051010200275459880107473768446388320596810111773191859733084796489424354556523996305661154470009184829558470526148868321263554666958040476543399536629970851605689115739114046600819548106587935542804144192751048815440598792473124893529753050454624103644777186618480242015854919773190304971920516619608483822588149888790936609281339279714557655791577652343706996821014904292726386051766669401646781763773832817513435213858594090710721335376662651443978140889908054771056365902967287713252235694570780214464062784348281020510645357890206443438631608201349975471757792867184003632245073545007067715156319117421714947511674812059825650571759517298961490670528989592446883647504292993180789149590417470961947932192471615929242772690210468111189378968173233870577021029542340388126753265467912890337928245029389001474886573601209465981546735558447650361459981243277708901856103140893214557477480601545064203245360512084896313946735965876109031800858703404806751784809260723372954961681907687748042619654915727781392917225398675809435006556628108750479881262075261120377880078016255183670539430079804323731390994969972940970544842867694334078624762131961086812736368974831877235981374624307063149564447142474483108473137939653186117440902813421620094274935522899266740797024231208266756706983616894249845839913558752718744210316442276290632984829242641349133190582189942557052798958311946461984056878429604419298294717236751115340332529784030165457065774473843571267802495760403813107041070571801833595788971388156985488849393870762617697889254602619116448384998236715315013580120557244025031643546546155329676889022955707086157151308933579942746058115382502337073585093211402609726560036026991225672776569336730391061923892615681079744445914988427423926842200800412482099255098180813011415120487022144856826312386414897037567389945923239000390955841500816135096815381771465947880744440870377523877931882827271861516217097170265224820682668686139919646907661946925260385221996898746764709469738637576044316932452131485750845688550885344067285853138505991668354415600534235804495367895817777116202041021732282091223343212859636422366836710005411201213094468647328561250540450278266023505622690549871305878554118878721614717954477087461079574604824424258153728000872864523120713797257356949084183070300622325502581267177806005502438808751696920494317398675176666650709322188470195406971315414800649736140976535624232386812936591339252438740240949023629360778570287782226770189721609617326359184075059594461884029337439269096048209033381174008936940422338844697293593388718077082922770209493357027357478990392368360909442701755944481513132161741627513412838404691880766525259818165722801054553550442886765971420687636317225791715987864412835951048655694195049562518749031623846596977248642762993045204584103659953571052965617043820421041343308183886527851354396895459504525437045331447247188004707241440309996286783748008617922151367586634404471588944351658778852266152651549280128927944624513997312193010391467689147466239424253199479726219715993677143468584645760393088994872894050728601945046750180521378427422421112152883092775269477723071457426574208669617184865330317643853528438686129688705905627638203433521196476246568050731876307764030522915158088171476427571964892900470661654451870761082165900547025157555053262780610641204740772762777104021669064284038738427160114599370176035199172749511657658144933083292209622746762953474859024430745124337846843574848535461989557719936836593475000754418475822845547182422483347531319664655984485818034969271440239262465868133075475282049489105900433540852409241207437127620480694923477655690195607557179797716558370485823659070372902856828917573651172348105428463222970100368857232269850567176803961057029882062740194090171454725942040947493078297281020549332423645067813159452301714328244232723031552603791576494784194895610789765527112785242817371142781913570669632837721714663052585084361338127120096744152455377884965168190529370659155136992680324450152946073831392581238885560744309552678803734824980864805964605778106967337753781162835410591506285108757780347017531022715846356759661584605417119176516084388622904394509315842751672342301027050092090770391426888669453676382677274163199556111946692840731278186923678078457436127206209702323139415268134874311149536258048534682852223603471663360463530328443087614774980216478371950193052251797307656720953543028554695738907639975767772599479295195168637084016734730812433563361125557223690034909096403106903679425229322395790801844528837694524404774475448135783306443498801658952992761715266704962368930757789574267975665405269564221256457598617588348743566176858339337091637522305888385182515307013093729619050380938532570382006963466034075781381831982612296456757609747410189829272130147009807915529651988652129707614802676974538322483671990970735391867343027748107338415433676257572882968764811779920972766120179713544872926779058332881828948910370229843848317133189879249072561229520157117035216325554633540281516307269265116857312487081460751849614074703227368889100647918776356024458385142909320691167570880702048542038113549055114459342996924213676488410211632462486631981684994236474060799082049384789259448658379898510925323348007552935180461852358136380905179339371556225239816816116188621873900996057070804416816594226135841291481836456421353975962937383430069600555664845510816741660361699746199740050529463165112582744278347200422475402907451354968075384654749418445449002718025134251351074685593349465641493223196345364742707586690124930115777701695026051488152636153190153237272958975830332810259954720956126451667318697663366237749843461362313818298974486721715222826916255753728107905128015793060984506846073471958662968748150699632077783286549926497465104473459640906017740880377652480826266511657700513692920991979783759297237741186118838118729531887459642058764343977480992361915409677670642546893019408433331858847711649443101027669379082311518408643386262343784302984956878234833581990305065652850404857023523576162973602393868463603218431364574914415704912804305045679008539777974580510268619045500939559190003103863159281358544340407473105545228838987785545776761470630271098490885066079328823510274842075452167088240126435089237587081469395538385937290921946418529246085656444498859367484162374607115538169843779353248455102732251524300399402584026194781358638840114724028562492257523036873943104504630272017065312984506775643220152713143404482743118685872645654711504608754741273723337096871371482001148372268573847048269210242691477449754545683714094282381279045398831324565576270140887770303077020202817563469351645331554520569138757556184271509078135324242494632100656309885424825322420860609657815523493092963350674328248523138755519476412793950371531865455869815797619832130282028224582752286789132586758077758244346337609436417235178972926292031047429694258859916123394780040894072245853354028904122300310745688490364445731568061364488073954920673937241189253517150655638494839485765804617976900799381836023953730279114604479111984133645367244005428673384184621743302423441068827320935857158944038435099521325275857501254184305278221249246578050796997041433653394129347399221567194926875025874861627968912098030406818238542068741161222795192920802329906747389892532828534830549946519384984192448978474749660080323336119171105072651010316532108137534741119357278007848831940170128342938305216422562563811162392053316858327656315533134795018676467570524700477445035478726726018257541643020025260912969757181130261555460119485434862397632680661390860765710512654735426672170247002669965778133360425860103430836090181576910766476933496112533270925208317529081067502701538210613319141769150752237978623226130479329026892130223403861682130965211550339874177890402872845379955038004066681411628253836550597457369604100059847931514122475902376554166093915762798780360563633936172049149548505943287438114034521083967159238795825562323570028967062935834024513792090256889992769095367594367930599295844092175443032051850687930563032627141211740939538256428910755606244067290475602593213892088789344804196970108236136422711658617341565525412317591240301941693734446898708497781906087440496210917132237928478350456930917020591665894536133230333433212892801737164459303719778532522194147382256935906913844174069070100189559515193835337600952447758032911391668224608408157727985908883054668495229364286305904728462235730329326421584375530960500905768787820712133590217818054620323437928609073003512583572606534287474825151567516508444795490136086008675924178479393907749330084107671415546524606186306565464230355694544144421794481425407109630448322114564479535174256226307437240678443170151425186804042321160716664365381242189017310597634502082354340722518593339575262337512349381302247819633125215393717277633638301503341120498901253957909233270450060859034333979120990892780074359835664522286849239844435125695811396649618190179054719489150991198971188622216720058618956422919813740099738938254502154501577847636140216945832663600988162966074912047659003646629327826835858899135484725803791987115448499782342505262925033398713351665594881710847979183194599188198794941885622784252506682672792957487371057466900372129523575464976134878573518551667237454460902084708291908271334071940875470663731800539171795502712081736667072022851760228469539737809021386325702955095998843296978788162984823456215660295845176589267285883855287397860868596323906319634471600366432285295544219155249532370279556504783413945400513491372568413761157643196267055880451881728883587325440769469033602002340735895815089077106332445450539934895933479958433370490836919733837868694107028424511664352465994517913623288671191324308083599320223088190863678381160734221643117612807791221294486673372660749813069585226850216722860112333770434710772162485710141933390983897534911379344097578988080740432530737310416081622492059863159609278943451000746691823796337500456751023774992227987923333636942326305428312288125518865036974107598748529767903283962282142056822560609863533663566195942936092701168693966572352075496854578237958281620764955698012910089107975956104630509293820275918726538115740792598758560268526541972012041798680237371817755876539749809108763330020805582300833076825336675863561169247432346105928299792132630415200937849408820363956020141589617561310836826906618833197979722944120318907702546373914143285350160116982666577909560163461061409333124384459979698023837504910785671855700675909975752343573083294009667335396858030897484243175833995698768228329531461481813019381791893234571386853597934144187639527667815207802152544633991677756556035013106023729384921671952836535174554537810613495871598303639409153376934786550472044165674065254735555499178012606804164810488287655884976193917769288357942817987858434638163243143088354572378751174828626230303153650780343491754275161440065906440335270688751336700968683311387371577434074208403594984063245080370595903698338553601530456941206304499136594978316673450995770860238381980042048276378435453132820326419160173336557927357976467902087775972865985716801911323457531420017697519138785676976688042240026802492139700225776232214980724310181906594369815699241741131968678480414008902914753860097627434191604839675848195379577851869950940969660490066548547928824351865790677780382707039691520292496642481158705496831716057462954925741717033820813280378138229436700949791893339856152582762162592592171689001171105864178962888070355996564853912306543990830390287530226653429032337695837860248275150701510350056531720947863719022749063157040101444642933090748325187326457118593124061455870630566038487391356627055015754183275122295067879349276516624680215814705008507814537430195690066382852995615376217325899951042848432834591139001644898419081003558343972883744031493287913114437976558105448938556847750241174296256415314135227321710836397598842880010176026686627847770950744830987060608104760076153605108676761035691170010056209869964249462821546556359948219044883912504032430691562768201687628597582940970756788286581656782365725017130855416178587997293394239541691216250278735931084099562178414079884079462292214673416085328364987820815941303062165586726907214936918990662256955172289099136317779433874786214592078540244477940307329948416915843481659636156333606898980848114674517632297511890559580616531463129136396014146127793191291908765245656310186353246457890038199041982174570116623786079505564637508303458484505636426427466848775365300288929374163728026401585254877335889918598444323609936987564450827282125942807558564858598969000281947068889500442444244271922522961540484557274623209092945873882702852761415963857050182429577920960218024790766751556475423144081338768242031862031287414235267826392448512586717025455212207161244168434603555699550108207443761953129522437242499819170215923236454732164741990636450929034604730650284973981234626576320552445941527888457804309597333232471200190380228959937711854854831868150452562046674672823630097539399627227799527566363743728032128374318896664102332550305207055339448183663163263065780990077475473270761710083797336375166535133222685484299434617610174798217053219236259041896912203001448629194795771338416042161711221049736989824770808463324464683895336135615709515352141392298645039386707783168166751403790698403194861502355563780331639157636602553427599958835681419520318022684638697752662137568484554194982441645551555756834641030998673240368199240403093319766734440771891994266495233282537384705005355890165926511295160238579341372435094273782824425951118720635832593499506389231664916265836529929070419255685480378746120949153482134746644252125222777794221574485241095534842348782238638668709122683784692575213337965296898587583121433895821587449192002894869046122093836163350040909826606814189931848494849155964883541937146014495114170524625121559358986250905602905825026778509447512507994061630000335540262335877560881131053720509269711430616229656272004060285909101490953358610864296613381897322918156355873135568752863943379487394817719819090481552508543023957005319411950369352811083718599462700252802709144183261593465446710397726243311381183022420411161265430508921583068157231256405985086445104999380261562550355556044717003185273764966910924344818897535082456407112680291378019679272952105112182916424706934040522742840797784837673584632905778997078581069709710689671317043055412997598722682528407324415538232955916075622319088202071795123008366432876558873781282309350754357227968145060298940420899434626196002370162134521859817143872800093595227547404030383686211879409267605694666753159310060111407786480488540402445473460909702065632151113434442440173284389330080346270952012845594353293692600717151735946278653471401818828030069732705212842969580430929836737695751171532202088089966512855180919141373787551004135640119225109866759684489263822754798951874366151895401675512369265481988947100158875636446281663311546492711203640960722356318194815897259170277640103605835943153387377102423778078752235709875950505797441496736445304310602201226103772247448599483568397465366973653258479290418736747459561226864149072283050060144648199410526859279463438983611298634750001706934892008003972284180113502513108737850870373892738889419270851700415968914474336387607568544691052365324134591975351093299361185169068862510807242869571376901353148669090902937998893242453662900280866632208007543955945218951433423592491766798174633422758203651597637482523576219484336865363130031155612846146377584954436654159950159042716197621577443487300732030446010188782639560777647772967629507836021401688746790750991426138678482740780710682443039816735289482844545588657559373031639707030917450095160180045604620020224219105530658378856453964493239284985457717470461942388744185356547054031008803061922861561418569040652848609429989635399308466809534740116694963698806366829743794822897255516503182220369418729894335987438289400791908281721881769200764529374113599665787341092686965842377220325098738051731218559189256054725714505381464822088721063452808769756824387991845876703079796755166354484382891648356589912447052573658245516139269741476767696670981180140179851443686215855573742286246572971420125561865230998626600290007035210112452545476757968149662553286926510163943983260690772464861761946040461261644545717056099897549277791080026449649565972845161540688249935514459639034930261568271238651792706561135210874700598495336155880459212592096873318795498023676079071296721706553410522430976844864767589024953162121064746987562157161415818365514752962143679256321106141843649024905223595400672200341950400204201692599815679285579002731485793182780348485809081384543033733576468705137487011168526479658036200054195853636167006657604086264212968728066893837572690173664517528204427309534771091395530210067073795802584072035733065056591176002254843461314732181491728406573499701920444176757871865656640265342770740166402727054472183319196113557582145689312996440458959663123344916818103611276728660648964005600282212453018053566931767112840615564092040964560808039452398945438347668015016517541945769155339265546449429464473882101211411805370263350658920007185618831356593615713658173132722061472094042382164687535646334371902201494043304736296597322713419862414925404989709935813109202822519025105584135033726656697178936431043977370661403201494488630303278319926171371796612151383673490400752931765932500214601624731748679753208791297768651660900121344147444681547725878773406478762538682164716895411168881441425787318470074094620036017242228042668754421322704325434858288973389909652570596391609581445784644611400785348585261460585929650316471916744707534899881534673811093350017825089360587761205122068973331224012650680984940214896631400839474231788420898023555635225171799510332182869954577115912113592395112418403766633667285806696224533402158310500769921026976742285728420974816549654764899412924494099527635946038102801185318595566789504039748290976959370384229580944697592889146057536141382459652848339269630920929346600069602325361748185748782134066402383901097382769853227027908687846479966601021562788697136532781657192381120259811832214916554882568014409122601133378305481543203488977346702503517925411177070617355700410579035762690963790213963349386755947882045146331950141612470801801807111964930071790869379477355000229863673696687406998676158917729042141220982430214421197627238435818198100658535766098803888338544774801643941957542173286345338029055088575969493408847159033486139837518153139066226904224179641144211566494412451164445006964453087058090142821449416284066918417689204819827456712052862824246750322334600809151247858011279070558801165672269602341726741451166840265286004434893565283135437289746814925496919476383037931659393829456916681355564549366672973682476147960637571321566164136235755486844480068803576936305495570384408066091645901851736345530573928520514115695270491193840636066046998384060725286021923782655012317130708053408149577783401888912599889446913587602483570525009196610769983642708709767276471029943542664816203385113574689721299862568287362930476493149049366616191358249462716935976232117646361857174565762173581292054818057966377637709482849122180051749946739928364505700515639620059070122495138779653093973042481938839908499336185669725004248222735681494849650532415607137170041498477586888888863729290888163775097300701876464127199186373653773173562223442227531271845059753213105479802599930908263102731749512931766732799035040263337261438155135706217308942420938860083958228379212051272999391008601234387866780018810527630310222997657441836086603422771060875976512597846773739842628399389374527245612782569069630352617550939051957189547772707536394075507172019435681880176644648003396389636326043052653506344665516377256739628487005215154931385167380627872600761450107909676192423801728486971579686753171655679760390026614997842828880714284281307924675404654096717594807050452277452791744532427301217883845836225412274320755760462221774468222783238537379187623849227345160285372330702241730416506325643746202914970173833888151862563612364816086734368166859754481782822571703400060192127685918257813314763201279960599133455398786730362499323072564726156621822305990031369698846973636318647070783477825489310063677034082229489536803463955732660961547662525350112555885479348242133699133218561575746880412084664758758348326835112461595835239876911286060242233264924728606579789666020760799208186484327705039704096359743210392170250305635108098474683904894627722325004283373605456851509639507397554461204392345599350269339288927216000207333533942386708629544417139242196778085808515887888989599788494968344314832818046574310341822828655720984947357285528345399303092239748167484730389435198064950632517935608515426997194845465729028353036706833656292144933585574423623491338143903854049387625282541762242096179711548628474937034617719845113235668073798692438787435759381185491917351964394775853129860814996804010153680180263377786071638491962498521714209778626911494668462610295064019245027198611679891114166709010795972295305374664796128542527617283771504062016139216843871262442658296886221490044592903882429108565114395490274003006191938235502641190526750150571500123347256364391611955737087255381275340352468756420725586688161066033746797175712852823246455934901843945495004236700565016173444595538720029198727025483532764863581875515033253928914722670114285124190278327213743422520520002449801628151168831239547594403808817196043285455787403573780190566100874007720436333574740882003830525706488667321613068328241709443623093525387281923386825414655247576957886557490371703884958310236689192613230161802565745370335396570286158684902486479288888999768081239553136592546281319204153039679680535268654831994556240089673875462018445538303911109477235148540220768428491191223117334291856635981196910737578455798724191601283469886356346414794095042957895515633731222159487065240721015605516716845556071800808843784709529783053179109990057690403490307370143506660814270933103451423416575339453274237987121608071630311413246463069367514659683152631340897804688001120997314284702158330412974788252158013158525347218876837947215124899910939570855135732254033512193326786167539413783891693024667209487820125358415689130334240118721180874227422183541668870376983394295420645421052253831092015481179785436186843399746483395160322394599877631470163724785006342284334601852844956168254465997329633723206453728028018768779626883995218564408546405342300775515168226160801828860999006286288164093860648723155842385734092484118211255765665279551273441189102219030372754682874097777200435183232603986157772748652764016441054979555654155429831871067290606137678086042756217851139277346868199342468297058163763504404313865530851823671467239099264870243907609802185383223560471994007652391797883361682402723011015745894681512475335649836624585803242986261842549482727255095198240553381874009858382802718282358936137097980883302631449082941652940085379393348585412687021853834404268386137981280027228289506191665445230980848655040161577936710139394570065586096927769195604050881694808161090237790828953095614254724245567653392898642832433427649793799798237594118286631652389502520900583539048011611234797547255673372455006374497987155026068529743690400825826181251019140016025267594707645484756167305963197165352392763070196986204429657221981190862188027362985611293295750966331949042096905222437357529912249944006536864027704440968763914994101514545456966914172986494262449377114726331934767512147123105320707676781266970533323296777092240078021214760780625818775544301079308121485251383443605418661555604273643651963689516803828838314156995054202886341337279556635020887044703589418864769428138155193335493576264022658979144022241789232210177709756891798248709369120305130161323311946912394861559867584802930906442119090419772577773715498288908244499507620416437938043005784552526081319520959878685410302765682393071655283459526263917900025259855173128445805383513683878495846221524486497719442784092223662172433324777235957652695926717215730117575793921442963386747049747419178358891820861772279328938638634213899264490673030676382065692005986680147181095571999836914925322134611104003941693158679919757076422506324502988563293964278924655299155915775827699374043120848236435301402350331720639215324559069757777391300727641284277011719610382092209475360720405326490632906922558407704812379764794908585706605076933920267191504059105365410236965549001267600623595236921104724728700923254768743972659636969135304579332800639204128763777774394578113882402474229104352812572814705088764276963144766186547467743533175442668246859636591324664711708787903792718607939345895764187759715447999153298806269168893624254662851378524282024165947982492386736604650113885374963452483730604511403655676907832575903803095308503424136993710030159769345356210331171710159115498017093549674929822946073568392268948947572036367158008367531446231947158812160884625608599341555263786116201216424684384114830596658269896926659382711416169401433993974126258829997817091138817583364634155987989919887423777085898775909261651369613314438860426376336478522085851995907827581325040711652828187022701686637361754269346488868033511375726261229504957020999696282627859032117607806827679778868751298159294642528590624988040746642084979127501907375637152150098189577759719615191124724886396320484091003652534362329419310098440274497537113177969053894358064955066632317432697158022874178937567848021896869885606942837401929218352092602981891983866996316590452205555905850193564011260491581967077513780646996223409591463773672531127096063076323170715016523806990815761519781928579884907176041299381199663299787045753680558093609293139912656005707011074978326426453425893581908862947456862397742561914753015251017256848638642452863384008539828939242199610232593158339668603570902105436453471997024478415438117251352522331732255076595963446511763960361468897387066159615320484266749424121732549121688246517379647208677026230127357170320908335909784515580850516733360230097512407211522074247848817642752179958735663480490773442320521846197464169186421145787469427883524068493403360205360964677936011823132977203479644753316017207755417276981534249377393138403729583704954259402741514287248439474920554190988760135608138459974823391723714372670813439744862511730315959859333668622261716119859414859832502530372645113964263368442304567605065997408143932404736578177010127682535115515249668973572432704951501562669503358498740289114738544328063954321915058929775654481771152832383733406090244890044081979771391655089305236563837550622841896705800877137730745582364039715207184694013038776485374580105117892860219668277342213458392038406554590515342414035277985318172706420958444778192339658819177204511697615524119073494379748302561094759124028273714501919556515547205253809073149406186804555991360191320934584081059610139375364908206722454446365061659358037834677924422587172649100769659991002048588255029015270426715220453016050058269581481225615168168864911307387317573100301286941156699638775219636810278644008027639713055619071816748047556095030668404353672841175257609401943377422768864884302310281251651469930256704283361645873332734319633086199062373032509662609336810165659543650776950276951865518766392739056111732573546615368619096567309609676473399010832099524639095241655494296168599164669929944926483266625177553685819627020185230524763230387669003613536958851222738445434495460453693476401051788953497512638305992662686187946227964780147309142651588939946171281265436370765692667175060368935338897493207321862182796898175027658701374407958499291478762627104701566866131794921670253432234758287912545539217134615406635721892620563001175007525805802208006781235634134177609699163049579389170693523306593912610562586219042826770794151721007267000301762844628905885974953808298307426383307523211068383640173276059370984295060370352234253144597372437620225845132894283854082659207501587082003300009959612220361697011674190710930914390221275165030384573658686441936149571271772056206217614806732025366239696456414157156725909458881260543801975390740059971801306527772868045185851528340856526000809232017819798846797125601969810290392934418210172221865740715818101167877038359627685219965526307059188437668281059729218206819309793497383040954517795384084605861862212372336208576663202066126157785745691710852437965401931071868788972450134006512880022212042853481760986160882397783599038522374837915922183691217484171409286223004586446639470043656063746948875536634390481009807884377082631048453967955309155082381970297512049558943052179472039314438570017215790418087301857551520445521620355837169265975383507230770004155196064961283075191767043467735711843950649242743681057964900083253757526763688242550288161741199394515988693024867703144291426731528088841332810580405304760390956148227153567363062071760963541948134997106488412138453423528387982336414698777097624296867962282194420136862272085385374336639689589957985588879812535153117277542454142836890356535144103129478077099266683633406077882636257615501140078155530175562698879673055678684773722297223919785817699275922516544181527662540079133235071598707392551927714759778199310381978151098539132036495011101958430586026430927318313503435594753957941990860322846022986122422419775583476156123771381500891727404261634942208213832609044004141337744111061411922438932959999362749431045129739653787028365699468854088127990339716705225587673230366042652006089214254058246372804051069088144836868693569441007265332319741839692083358648732449880940809374051233531574625257321757259435085668325764361556143451544874631938519113204924134739992654445271687112482202048709796622688247250906542845283449950018560691535908721518455447001664504673234743180739099351581188470589953484268940109890499940041248485433158765623052437688247123807589717288005589550045354523696138606383901657028995521203965035768889880188956024941124465293436133914015712448567120286441606985341294757473766534308138994870525799839872943109110159190413150337636257416376656408742265833570093344682735988904876279760464694380483321052838690787347233776921340048798661332636734543743326443914413296886808727672037911646156569302806259743384178125807991917171715199423520347281355141114586599031898714604848379782045822352824745440305287786383796790512814275294109394707309338777276826483795901125224764301309631321870493746859638579870566735749007572502380754675627251443221566655823259249078238346231803921131406552631784277055935371424008822717661757464500887586262400740211124958264927027337121799077015218821830055526644036017193915653436767284715288538983377573845233653582531796329986172112975310081940966139815650698718278086436055152941607403029495598647261799277554025803461799125521853993513724992236444883530583998221360263575009086111708181635213409671244616096407083489163303710746052334969107629122937787920631922203265382063516454993441360139881409655843572030076817007823933443249430597304285898605130232747355568564490785574304593307563616846321093887375947440763435495183938359042214054546628004839779815089917618179005071257762552937695622136639975849542093717632530509247921636470901079849333341915705404149870622991177293618017635495805334646591918905663816233234938597172860640351897511250808849844321019107972103123289887008090686634661153235815611634836843731839610410454568218507459892874738734003453592605003476406638740659223878314857207425301586440446191528216591639414756591447956895271316046506815516662010715088639866710646025393422863316471741740277668685709419482010587406921237539377051490105131996257304792482383008223392729237305677627764161854871361489767417279277164092166770060941125357839497675589725981909903429917596165696158022219094163610293428329069808146956051449588499719197709678384957091247841567042671925357927785848311727533639452661308471174538958733885752732081413280701807294781992762194733743403166913812305790013402112230429807836456428248412419422038133866813085348267008461727593996785317218805179457378825044448308944905009606455886963255316096380490378767936025703637069666394639179623281588999624663818592207414343668725101590015149272457568849245938835017221397447567698399146826829315847293956437565177667768511286381909468902532065647477783517991323519350688068262148378870347568374320270640851299760676057275701710557771855709860630834373022165454410176199832266380958505082265516419116744691326684653351555711517387110826920350633276734318484522578066980172754604530183624590262437642434546028476615375529309014306772259866671982078809918831499865059506965303001047393327869626610883085596722603161458093516911470130781597178868191442668269777241723114758045096980324913224279431775509083354631786030419521999658717067894426390582915431733366552896752065615654920787490398071051569279532912012793160861201917395005916338305741829524504939841361982820985388249711593038043361253294247096666459058310914829141977641882543101847653246251807834062526445868547570952235571869838388809962638601892058877968886268676653938031925052414441403074562561339198289558908460599529858643031873129296972984190126250205783997278855327635861218427794644713179357071628708539673376862026003840922518354004901646201355269297187442745903505372439380481809231245464161250669897262115290143263509534376383013544161496563749654789866414129702594377095756218926307568913210932783677617725460958192931522086891783991358310109292760187311504149366944528273684867838643358661546142182612660546455777142222534471617800029630228060765783976452761722939576926393280341434860866330732980510638426184736393423566748721764584361568130562211370664901821497588477031382817232164523068917497000753829867871145756447285664917452365045398368266317744409707072249218988000285110965613902503693590425299024651013515255268334568854653908663187996970641880472950807498805042089603152870919363642829251352884840605277337521899324616839359447979705575492535529945130943703901552216375659697200750081116947550797580439809810938248655361482213799964142368399297520440288414561205856902260016313285528484305093390290200118721531602393992170095231510331405010993534427639174573558132596106367049874555373595407860782950857050853725094673698986821271670625487794471842667240630070569219665968229327360072738665004698892569965252798813223262436217779633428562906561295916600086249045279991780900601493115635409909372431265482986016654109550907125683445100775468981510900928694436597316231430471636506250709195517012965994505842934052307791372942222276599823918771680093880875391104767779275692127808357681721493604865870865355631811727566236411612444998214679764640430299206656709302553658143039401438606593382838554351142144583163333582607363435785836072729204629222792633724957293861578455787436207905502255475192241556758541010384804622968671123547594490007890186379132665459131740884547086300447094660672725638501875847365335035061541803875399120729414917757193616119161768753794936539500115680171984989930627292620319966170370937273294767778231087367902898303195329495243100766059227252239455302465530435595184938339746598742690717986555558022805600018046302247224459157725903677512496369597637170341723300135380467595369504919463199787073070293905115148606277389507369704813546939524959145394808501988462115192850490038518722925137324139175036098360915985608998788024042178402727872440527804931904230899033988870494967322943296752902122828393086664113009983886748145967259004354883621433868250587710376880470023214492048479281837972988948769784829731424775108579567044982379586748466263749614557671074371171422933187491110497214045682244491444591492776027649472545410445684442933621878181244881100733395146526901834993612646608654356688676046716465774166473275628269809124687829854926206582457061507229922752994039757604591140837459940200949978609449644938055887102584617263047532476526529248384636568479038849839618343415168999825629492429244360900030308238484675349612618527750229900620158720063229437789875370735389805433458838818323472078567457543596330171611914109600413851062964363347051947150779956946009318609315684456884380749256719980895566214953575618445013575398870419672707315408753616509592040006152788566182390116621600157702094646765704544056142091392678103151857214952093653395369498009690229214674482731381339599415165692105341159267290773632763427532450643550896911635041431723825187158454935991099920035075662169575072789871837767719624334676138610015378197448747159547975944291268853785074610086588339969561877052802579488761853227382684086616755946565041702821582280678248362746912055758612618628718261525544293524007971635635187853674919010133678212204563005883735437555608828958339113805032225156755655295931734686383801920780005920244513377485650810822288688735401048284676397093346518833121841668214939375596325904917346374653308148846419983015908946051744925192513923783188682535625851255108088852717291937758921251766703598127307631485278693693825846773334964578678182741762900151694136198151733502962692602089881359999811601234067296731701863956767147173540156433824694186839758645077565014034417490635599885205974730049071382606962895860513471426459473914059912140215367964928263676285675809197306890787705935100187181129747743231281866191756087595952885270520793456844396587193494656415185179997152953178609120678388579683457227492322617779536652237402817358332486910243922160928595911995692519086542641847277238835974865159903481509332535694327672233523486187649165544667977107060127111605435178386155978095184072048883363138071133328153778260601191778990810146942975213313929923207975265282124986051242914199206541544011275674952867844929868674094578300868755819068822827100740899283701971418175205350593520706972330789903483669121058113770815775845707768490770042982384675445497034722861249008550176877393092440138758241653991228607490389946075434659675075624622341800382272986712251725569113440734358676345438556822423883422387095058578384681891312978351046897058134710540814420497985854796730286992348747470476574090793654931425078153733590499136759709671857146902289294340954400832855980904917341703144088486272226000201264506428774448833593282064581705496246752233764560273289828607885956706754180056585675444938884074642273872683499065896077397986042882964538814327978509441681832105486310354373292028301260377974148263545830711957305207679500017410453184881394674423421563966805420191675803660829330116255586691807971185899056302686732942559051591366470131532876112101374427744744870091436809835056588230310188447113547631405203664708937787718741871219973873578807131370048467505647617097311965866674316995616845020369370520701525291036854351149731454114718673214719779961729856516336483862594748283699676341435800291885037428132253575580380821792097212517615437259940332346971137087859489261533575972745426235430600539944750391777198638634756612287692613666448594132462738196079475293962028187389463339430339399612649762496910771175398239205496229463424229602199461242367352593981407898286653064933844584744389836510037944064435029973567579047452504498541347197726557213796964114351415153944727040935771549738202679901985516489912072482028667194349577630655893184882332244500243490385111163748381154645548476531708920113988159052733614388868125909779043640767522885763389083971359499117553546332593534788738883256884241321013959886369740472809736650201036826812685285798579552833491640762755137890236496141321454207712617997358319989098658177172218135497188694993463532389522315469656223480353870704265057020734022693197315701675603524018783368150693333776433087180899429152879303442194696421183368578351091193365407433110661961535765318677705613517096116001365337341535044806468498552007302514628841961771114124812188445687824815341155249874662529854622317943607226428146252648471762342684119389902556166593968931194993659124549099370753810958931358354899760246433057034659721141705306988894717704136412423434241796659746465459813331690184547621698460821235910334694860525151093979931871243253844883336662226866674262768280409041034372506890972727535542681213825094292678808356220985411692261178642687011314813274781586878872154397913877253228506929439831729818534832630354377334329646190882639209280934412629034457601471586662805640386599231086115370865854114238264174161169756199752252981140026851326437261494651177100506903593193013816090507472905966537434942464384271831673336791360375296520773079444472550851063158326943802105625709097566573907800753961840552189744254603415635451016529779453336783149481367432475846836979657625478578930058577870355049957696449828005879358304875820484908128268803177668903671775198869016047968847693809759009707636169175814662195084242275556108388100197824607652772943408106655197609236888489317619364417657519247457196096690910977831010196600706949945167602206094536494666321117372675310751963051937383141369040292897250605318993729490390778136745776749902101636683972184835201587804760859032731082141282638107491411056293436467323638554753472341530557008691568587076282831484047555943889074259079663281326220914054177530996074436375269814460475106668839095483406286554248545217751752762831835494551777703851511433706468989995212150514029792976497412781043511403352099329625762025583072427585537789009389151654743936921361363484917397299494007299457916299410620204454899647476083044181094991935414682919659767284760842100102987942783883301884356611389791625231913643261959182455829808623719675042586104665224411742583172261842524558453093949995399634131180074308151914332634946885033664866132275498317142701078143938342394787880941365253267226333828530963160603638348372231811175165987239429634854474764758223850495680942759224761908732938850861846702069299162845457883204118080547884650622820406602540031576590903675106264616793371765178476118156392216138058592325441809514751196593245008932284117638419072865111719093446761033359164692426417658398070204490382178465430662857241055684560183398570206986842367341133980852360561101046491432611368323749163239314556181236591532519867705790931860013657033230262983043361174594385309507523991238478738827811879031456152776825335427037757204975256525850330890630352307806987990308978505112238519380101420607492366337485067899560866498659582439585786156689607324720074078020553146020890583527859201291036208080107361072050230289249954350551223899380366328404006803648158061876203915502767713485256729832858682128874105263351109481834415595578871502147412461835893801641373538944979379147124247661221311699916352156616848809327890890848166037705097334984724485121299072226779696931169167732940152519920447132141995343990893155110225194593064697788672495981780703398436367341023730963742330502738804376931625931042773241579205939758224204635921685388665686508711942353849064350825758495498419969953529461508865349037383090520324325607980034882532707771311360515341386519324390628521831226598469046915595468154725042043819139445303521421892821619827844846104844093521199468651139835511962951779027870760382052076151757227789290477102694688610323602250239335452295802043607052562340998372407754765371362327999822154765826002152977425055826195101679697115628146759318301688943749866512944136283414720395848139996947718639619644731475073872539730472950180768644274911452717559443812138874504154521244631784224206281386128183542124859801366141663092069603246296876732958408276735639749037203386607329340330277693787539762729881427264292553544004408870819756915652950031404930831586442318989211660631468055156116427572053133478984885189589555997673185727137552599577153232433214665527836950013796858804176499956508289484513435637793120631281455999118873843820478521206269338711383558792679302072056146579140454942415729529867792136923780153847555615621960443752486527496414736695783951886107381262433186869242333383738474677627696922607691765846137988344304892085166729703849838280914699767663725978131419176198185150665437265763213617220704325966513995001743933443430454480993163245480024163780055764867867840297379575955481941063655764255617368463233007822335145818493915062444769541262558307184743351611825829025348833043255773639975359649319985136803836780623660237522269466634141022611608694197937518201644885960074090739326086489321456104335073179053137805990095919676773481048325741486458705393080970681359651334656365147220902628144149190659298386600806902214219097006174737002551247602336241792856068752914390769378450834726683291589950503913157101866087020238966993613948803651817306852509729585046651041501037067467100092593701484439898771252153718611479292964367183380332406561019736062579927874307672859523034593688207152607401506920887552849496949772918045199399565564201098903178528378718299415364442132729920625670776337064544524608197313286139412782525934978634516488010615440493828662870579089509585385039277256405177373030397469823948857523408847449668575293728724428301627090491857056507545392640356143914841629885156550018153282575747319979521737162061590218654929493407660334016111202826415036566794459921539860635177435877552416325486296538699011146809922526953002445532977435612011698687868667838871609666071405317709991676410728149045577797520765555936201956799462303425327319240001493333091053142305462389611481859311984088121684514868989998196034984471944619160743429066642045036178351467834224629303559003812346644018379580260742461008244041797014336288350900457456181052723412475228589718811225191636519802975059037856690615866161037318541694622437468411778109549944480497970251210252278413744462579483621950241234957453724315203707281634159769275424903906257259998448284090974558359283460525979812441901636550913330317449123816474084858052793902732977774617721862496404444708962782647592619446265578250432755188421121743804788301075458104018735214952082012616436947208213666221438423177810673769300756206898728539406065017888470048627447309235378695551528431351976302446550955803570483512429821595063889043271996559845358345086444115160191315312639583770774034724006637926193307732655573436954473070440527273004064587974556721516135063574082769266632167951806258505678499441620176677141104977679568035927678520192963881949996435390004042968724882829408005307573511243144660013506801317490375195737554032696135153402500432878663133505938311110935796170119398981942621919039805142361196107215015779971133867053284635292948184044452035503620409627680926629617934474215316311093890858182229349026060039497176478795674357507010066429743378809657447698568566834453183994983398987031234004711385974872499846912156371700386796659971853710039867179206696958387421319384529796529735472505995691419268130875416932099951044562466253025857787672877961621407070826427561891442772928131388124696563417049533630996541773192675317175783819539654629495000320208886291576451708861005906121974734972549004849616296049123443293535632328142684904041624937065164822296641824775837964428825334028812021458298525657784279306880676258044182508341372819891057071984600957487825936055576501753325864775303603602471230841821283240294572651286391605943191380916105926919848555173103670544677371197772743228849242081282909587512574444038301755016298654044644305533446153971777181529759592046580662252259043864962838869726641637594091127330022314177541097174989005167764798889291229859884283353935656948217157259303941802934286093465716418648480451555310486550987731671087442925480907406322371497491621032047907252712830476808406320119355786094878421931986698979500782804792574029479905429134033643227628264603157952454605665906349968956996583462758922747655210597507453809745456101437523068415149223852574088284268102671379733731311041276802040642633703369614527016115103984939875270716359898531135740863613544490115765878683341444516987180746769458544607650651330361945146714079093414852222155349313122183420832279116649106419165055728671673241791967473179157334793126555907508994136100573878108687230858654785940132670799649097713712025981177341968382109201668384253113739880524980529782564893158283114730901217674138676272537149773341924752068707364380482508833006525980347970493399259454449423916949283558822939784984170274843225015322959069750637211587011035040541206290152565913941377464337481692341405901629926692041759608061642460117500463746772066649605099840828783646570705993452344757294642809320672747816237306034460860424997987835722301321654474712052947363280943955284381616732741867342839205511585603900563652640315761336557348043903166031865611835453761039153074826629887938581516933803572565708318379773304423290837275632505629768746003182538903694698144780908477856271071813680434245689507330705739593591034395450714276387538725335747289713044511033990217265963456941369739542533288442428823876188593318600607500854943986009510648473892456891488859810427598087480027372938851848617191873305491777035948439873418727594381842177060651503788805931924099791929036387646744616380594313231984660568181256963200518605742553410031972356092082532856818993045803206937752759556195367911295253963736564300483559726002293156189024711929489651133055971231970337662657580295652455612815944360505652306231919107021653447151454884736103541184879184255106033259456913355448114276663291676754614665833309112666404271947012312562293858704105034419545023582959339745190578666624224915077878862800856953542410440508428703005959839423173137105173798660668980789145967796101219204519249127689455496073769534245534665750162075645410656761694558590434307397879892252461432363478422569515306173776843288291234481047862528879390487115908464150641400421682075921831716038489759052762851987431082112060270446743850290874818561759436792070479997423221155469083600556695761896431762158803294506727144625445929603326023850741292960819114392502648783096738213453375827926067187810590104252826173783024132290720029186677392463288757821943321255517799557922054753375358914818561364718521212380710363763184979669873884330900197694278333350538277622493394829681746792961461416258141336033520584627795502579321978049824407578762191930522144068256654926633490824439919995010882639054333444454472756923520396660559991169547943362357366606771530008986908600333742998542412785339640858133957472524911538102429305173735676415942561062426809862312197633984715970736345634566270807128921528000865223728728088120187575618996122671005066902329527452046714207941607693017799670782310283652049802612896018186330431429655282757830561593483699763818792595723835398128331410019932445777117705990953993871032291541271592837777409680955090617161801871131079087063488852161770939141582654794845405814019318770627918572120924834310392327882496214030948013889955271660164757944412425133490235603174534295640616651693644207505126094339128092491178329007436657616777095410481306293991896811588167899888455321657472046396077242566670733660708205263912474443580046241344362155670308873975446001154443674680026034364940797639609148728976399807538954195275536150251481477673021815320965003248937007777585631995499696718714071865002579955670072419596873804086209183522401266829807243744236103831195388177669313033231074881984751638248168745958229467644720660307623898500523080239248435446594384508910235075275862831149203683561248305586251614528263754646951750745663394744271303349876935821737742545357153016232525555032341827445466195120998202120678174483654316117807010374716851967859556310647194539212741081581689302353566060747901004249547348923471652879913779124530295893631694957181529367364381439984766543141127810107706827112739721166013930665216037081110644324134529401792445158653451796795188884874025684791748101860065624156610720873218612461375960399859395232613348239036851257805666918594870259338741973294800742947789508940562506922095120702814864900648382358822151052276981097026150271199527627422016444286437124489106746258304880546086420306847699448830868378692736455450578223433422391843423105918736569516263035065680561376896529844897121893223368379379100895144394986338408649795165487610663890940394174718361351809288708818519622800523746496597140546570494466999851849132777648658186288864111985480548958980194666791286113870444165293550101956864937010323459717373772574006410467268514185147932463311096103514479061265398615814200285470364771874115122003478346522108927551186251095435912963754017183965367830607769494536761368269107675242361270715376109354904296671875673021602392478461709290569948481113930101504858796531717069515848630708255366540466831442199232106587174024940190381467532038597414615985126660590685091232931017672808198225929921314780163580633062263769740812889571221424850318515195343266152086295639325739161302660997050422731678153660045606414443639213261173409937468059837773559490713013840863494027941647435910852307446891626220669481472568605941071362612239367559783469954079098899838217662918352634767217451708158639233477746329748460454936736545967235533336798671601338469566287935847138577955436583140461033024261314853388783973933749744526896694716020399450005801009553439621527268688736544469310691733774697647736967550575419097515074407501629323176804172656326150129721636783224026709159793816129510602258236792677515276187775174478200007876357281888431522854066705722639998264623185570117074764799107720126764617522456170455314953650499137512243973640779151927017020351682970747569138941681073759706649707302236362111214540398601044291284739655040919073367797535559478871833789631179372488828037077141034344252148917538547471669144042651824986648584813630800093248816817152505557304800643793722509867665614646045514255780075826201288709358289440041860699995485458005385990308403844865801144060471749357191247547499517822979440262831627114371048234855859611941456294456489679892958287514894537816493734584343710624598771088117821829164032908282978832983187316378279834421531498487448060192027009994939375106698324700935883805841051108965203911451690931966872180806938294045750885582289718459723449772549159649651804440789890928258284581251284094419423580049724659891637243557375088626078012996142115617776559200552694284808532438916787983748320017382597461100597868286435493722300048247515404719918663261849201918574398226898906804343439464810714923237794068800509254719918787081566323034581771929750283973602637288274539245248515268768313366184325737948442379229572078227452949242897228231532761298053232678029794397574716240523146684251615030077033106043310585708048464808734028113094788683520815408323774766916636874239928919196726813703617434005633435589159400856253979196596525755481166937786367755974660803994690590781934015991835665608866238338316278496452658171538855346243655610121464077090187898893546591405593856643427377248630710596392778608996075971066540362781392256692763754507350491018947787333640943699588253437079933913244148922373422609950520050831703765115321186457346105644213435655630205314125809666820832941175262559738041044856313412600469107118425199350288299733407822327356321014828631401584023120762139557228726465906674459382094627909574347897548757294394503208559767890398545086541076509278593024984385302683422393790369300392271752398525902859657230698179288500534079991077127767665481567200827635630708394947945880879093783960784836844778124309690952329789400238728120603351266290462908659660386679904313292562522511412179164524222832611860854871585103085029157474480389547124179539649629017396111287496684549092475236907813625341232856781130518901472108867905803520629234492890984813715867798392747929227033087225729355559758422711695991602797930267033557923419846441668282441684782685723401513285678465411608699122509496211897183679488349445410775055193308862395221391858829105905620938089515999272557729378882524770870064208710983387144655184996993338322183523618518386580855124491332242054669025386449730023175271451634479969197423438612468872469898070753008774421841934470947531294006622680000090589436594375535769711555475854238641147664936639136820251004936668277253485364686195758334893411975336428032560484407949176757777572742620242607993990994612472721291328974947098454653177869208375716069537173334705934748742857903781428495644225096217765490931461253980135040509447659957965815094622745480084335043086003340407179017919434301529104981198164913682570961815143000050354172923607736125128463508553108250082331448905078172429979506272231087951958538786321750769354381831602107044148899998370954347792592912852995534042972868787040008698264662809859175441732437298136614526769346052365694445694719099556425588509282698401242859720066399580594705291981536708478397928568311626379059752809120493591144058247302985774634209262901062299352316782237060799506142491890702039440488419943119342570287362856316158769525825085331940916404545602432782477593829833035141411723532078575433280731547388172186859807537498153882366628470842056511937086614070022028505316020398235933205577278167780886417847553502883597330241326981649176380881524862423187404128656061418623585555926204343862554240491266414702393863673084890705282862758366617600264282298902340587800212005115651252431538194735652263024493919187218564183483903328872942213803914965741981284177005289639301514666889747030488869321290987503393654628028552141729562012390254750744354679475162144974965813834034661498145339947047900372364932624001974058263338616069106255384640654447795658804256171693396884142129651830158717191534125525743731431763733586263894911165372782043379359836185434779924279999121085082053457129473461847486949089025173895116678962959249121835200686653114507349321986584293326017814873400631598297461674946192383803964169414379961111037375923940883979100979885717816859972379762163303872650719843864676193424931041452699653984291813889701745963156168828478521505710773770712029765058279553305639866194738396291152295349236195753946141625528348777597042455921109931656169727392563355800246489418990563002843470645811039887491332525365213231255944632014154502907226974271962918471698866046911389387050330230503548994212034834102530556369474407267781930203323941569505129332302437514764146523551126081881582508191556218314211819649696886478508034230257693266222994791174455262232861101057916738945533379753416519277446888552488713261604252425276094762262307524339909277759839121841386531388943433841953690751593920289493176743287462788081628868694914579564712049369653642530690508450051162621759387803743471452379559534777963467002424202170943148577436220465349300077769297722760396823950274673413253892547988116667177622825088756001038692977332533897855074608463381082870789804344829204290795358316089668602273051072594822624907007007665510573259020370123724388533756444787729843136804239338971687235246805777861514967353154317204628961600324855069693095119680428061714331941006142019302018164196912814962096199231093949399709832897727345188768745832858130799918986293240456052092575434087091034051530130890699196430268236812979469759065498561530518297657296455049794627774436327405906417477422016979841308740529319076617315892854797812355026519625973372893404322796498454919497866410041390153589107745720183156207639433336256441187874932820421387651001050447000414097639694904550882473835094153047919121715111486653794758845923786410425781673979314185668801377213800354627315359936740822736239894671488938127769112003368292140273105724440483831718171377745441874732819747667956452191752471746725288841611665305176572102190116055341071561474517837803217572361577100721612311429859185096415086824607737726397829656076028988991561128800921470237924928246283995913568694374851005095245515156594009225377322416643745825383862596934928174991352206218373853256295063340832885778755714248753199596915721074478768800417263634389195533846359964548799418853076262589096368544903846950723212418084656292860244637205837367155178828560018160687951044711625773841799775077269370757754091680590508273695682381144105620538564264986683940243411281421163605454634009766034556039931421838721723427927103762104816312601561862181651714901528697303606207160682730395565309099244491799034529243758092695134063713502892516399315938977427969632698418433809047656286536272250624827604631040656761671956399481033059653861698702951066554416618519367912124309005253805600835879659000662650063233027233329082787442709629032670459512037219841314453940621238491197507727206842114052349791369867799947421426885480853583616852526017420789671002937307601421535750919012995037402131343480477670752901595156332149887637765450050629058061939250834909583716087312359428243314039052316915243553042833959631634471636521043245058693270623693054420667244939440445168292971305083933702673504241407474277324463229008083476213996430232790222796664620220398738782790432112900249827411741026853541377971807622475058439765479156184935525811336881898349452891344608117249799653081054451623152332794614756608050305861014899466140062548742891613820199102134787419114395752685798707249857587729118009672521578923184479799122810973571949083915809672181405481389362044707431245940532824693916122086893422783008845006359854645370511735780450535160116407317219075249670641284756904480562716212455573004375741417725026657577750874102053496334380780292737199440489832884939588600940718007783632522359101586774022244031875821062822708694377744012560375626998505266265940427299778350978901108428196057601915370642508611210694372055116551533173967807615313167693828566957744890702360162624957363602947209818786135459926990705949959839100726979680172995183071626277912567551062070473808681305208892708135833500655970183686794315524096175417868023773184985940138607252474450886977965985881001740808146751567855568385061683171452969454158065258744428469399918484723934573809732683769232125140316937047534102189972878512500662055825657857854601093891612048197567144834845702453559894477818671246231163604302122579824258385706419988528085912740641736332741360886852865868449194248667383690585294951084338035696841156619081184691895716388718910982006521004595726334564119006263084032056242775511293171270965754702628356759098540636485956643134848911074780960740483889044643270443849627989694829252763856404898110692564364677855299875083558777907757748065520646565825832693693979270155139326499732740688019280812932969954010566004580103370367272620628298216761260750036171918653614264879543448277835121716525389112545846140698315183820810360337873427759639353714320295673194699506081478653208326015102602520065067590836214573099922333248165774800144460549319884497649695898167698675523698614421857836234502699110199191214525919761263558622281869251359362389079214025232028498804869878673891515809964907274507334768192223046597957351752278835901112425521687368973980598972951560745082720019728121432832232038528154448347916208455195132037802319478953499935916592806450033292503443773124636476728941664661680921523394949308393678030472789956671418193321979539147372346710016742926057926843766408016476181831013924531883893797992208843195451769698514676324753508364596141733189562346695948245571911430087520541915357548020722902444388017201340582854552520305117262952572524652919459076435927164112911567477054213289678842294664679954787206866307614285953591505163917023389064263735605529979155283184695361043018631856890114229046407380292068006314587544295845704040252368711938176370196662405339290418399625411473488838204703806685658054828805770073634914484871881233108015205273930767598241903562595957021945185335114009699362616048586576106024697146964634936534882344278932415381914947374267058659938668105527842540770025152375709628796872114020219118309649416582457383311631400681751519893576254883822169719922422629137890570679518773916260433068922547737916835875116714442703442943860808520916069522776318803321172887458650722180137582663288824115238491733110833284886791542159396953182651187346227791299787790399874411004235070242996641376685673105937236375890571895683995317272705331519083608583478481437172183949353581902813197885745507116381680203446042950251239972737118807475232378190079020990425264018914857322170526573404952993636331965416046579184756361507796247809018781506025019743340093796658751680789856148859287670376692206658999370486932001478847563126571556844359412825685113772912778447840706769923018320986854227549909719181799322631259612640764098237599613774146051159222248373137643990793295405593009067535909857587416768664111690107434785961565852105808861664463592917804115190853829130866603599810060553384752639533793370298519494642566598366972275409664228055535639381394962419440767666932741198899621136008608997638825272845490961020639716002257737070998544951340438192567764002839630096181464260746316777112286687162227505420002280417487732351560710927258033979074257800060876807646670010664622062379097210724146276910012607063843554447564780606286736595353674731572574319539354234605253114027473538867020643783156327875594692347594628395320867566833813647470326219474556457788348955618791923189282326938009950489068054446592466426483374779419826062181480680385193359255039222825012993705721664967383256398995558614731965996254643011502618994353257930236337580258277253429026183029001359836298482955036405708304010906415604718952983579665304163835661382473458981632829434781823091440776681987488490386688820547003587707397702557567649244202462208260870956347439365129064072598869560520114469321333320340187148915218781713182743919706742315482333163842902532691897536256117094219076574951086056788229127895518003981031868431788925757034817204375290817828584572863097280073534951117193478633268963362526432304528051508007732403988104553703840816438204861814513064239752110426514508022624693702394159326789691543532221179661068863334593817656153084061526149223513789784527434125626246607407804434956375174918559550545724704803241010718204499592807583530878111929629308643229540530809565070231917993229463894393654938327395387624773620132861607198747812145883256819518244399478020193716300891554120896918204448894789372181446123998310842395115004881808561551409720798751716869880404151442853337027275211534385935125721832224676307059908938332948516541385249041268880621522822794449335342570454857706557038562815128734886561291946277470659345653220762156244901370522280517165716220596067726802060619602069457669940707556155151458617776285338048706972912252828492916827081315877453820166538519201628350865909995193392436808068830323524235299278766475426655386360318617923833441991819004918578980962333846338054484366153723165452571015141963360373180859327259560883876758985556365481367404442950024713150609798613328791163672360003613312817599462498546977229889362981093824616904142623366876381112367000248810612151293392131461513101627270722535244248961865821906027745342958582323394935720999696341278300055685817696862496757734316826664671944936011837143724240299215263571149202543685851329679083180193552504244164446489868789420903110368940803392519097381554263453319541651885737393523689503361448209488966398260090478318842129452435325817387544643006663096667500837209782332587813011116044794197226739813527210970535604741980347169399874804418129427065808313780983555913846050202002415585404055292607594813838119007395170660587633324365404265836164242154344881163113253147317570666235643510347349664794413312620514427870311421285403415970861068160082073801848322101414424895658910052304874319031446849392281572044108257299925655301787271468059217232216232977182729179686923732630189097430361985938669834637755719123436105618059358365946045333303077255130236078730064814665438700057087096715806087966181222968832298452125901698320980890801199053129507043110211453594890025695201683080300409555448519426988478611341263003875014349679227841572459061908518089651757596638745435150790660745882182649283622416735015263809104819686253805176796890280809697424448541685310130348332885330822126839156352615849650751021067562208871128958467620282089992014762828562398353412796490650845541824207442808817909421104443560718824031949264384912901594960363085409944101358020219385418340604122798180026623187025170479279516521431639697220045274869408959553401957318388871295219998603450161110772095635113750529413589672992026731715066346075196022374999363699690588824482142972894056851597012050380423010340440565249699433530737854569346210932582825163243360092078148479124519830230177427832710675176669056676263761683558040064570739310719313312963250431430624942100778159848552428861469637905483563356377231620433203581800498506488282498415487771324178886388929627504121528671732682219296866896382242355765189588097459786471312922626634268054877809344438655036181441250391788752949455859543979902463292404883370094544760405682396721791296654275796986587502302407735201485433681081894927319296547934330843784651884178500885470581057114019214223425880591377521421578170138873592181405423929213786058601657351849180312948055605627400495844884281266409054168130574630099558067123016002783682793212898157471666770048360049592051195225739954449969926163218950499956399884562305538594354624955855692981759422200963384784256485204448362957777397472476608838018517629850861956697672186086051838068198866752467752186672091968776913036588172785080412253289991192391079878016191470037658099301381699959915871994553618018350655002650031801519257884585596410933451389752464216411792683301279573729802769047198086543888173321894256728281038048632235641205428418867496586506126197981080420498581705026653645829285866974453689387786366060704774319464993584451146421626319188440185022861231571779538066625833080781075374776521594724074081804077759552189823906768618783402215171011300205601337575153817426892984590458377020998681124378299186824666916010759552019398731365562157245771230319226699652076884512410239251464039807122338685700183956843249338490132887982950202967798378378342028100776373392866940421419094157093925603233110979564758871923418772306973507298357834698356214396110332730437721146569282296982498669168580513413281827987711900898122151945581508123444717547309372358784224531474492870749204319312511506100283978476735942827815088477885208640325610186749686854276190076543271657840840433521183812904294628635473193725511400153450951495698739518222995192487191877264593840975655034707926871308103871714253115422093672228610380078990289986430712428041127258595917018212483201930096356450027410543532757689646279478808663134755627646886523739556495644356750968509094440966499162961589315455599381217208215714924073447494307833944116422045442906261507685166144861218901554476475206521859106198927286398593498566434103212644146813816693353849990720100081338746929342017051204401053615981785247632131175133049334687535248724913815708238442257739989366495798498477461284123299373465264661139607946736742749033437833614905187471941921739132812685864623776232710049360736385287618978238649123412914579668463832493809597942758219005279455189456271756242515185420963630364803229368202705208633892124391979899078336223377457992137643463681549415869890665182000542810978893302030250622218752805430208815122077824870204688904720935290180585748757961312037653591207336897839761986312698701449976178463857516998728134069085930891564721447011474057608292258092248283063659404616648774173972260398350746224713379350943622479598658256155221998065697752063494532367272776188204238515980315483384120791484045106460421109167774530397565437479627402346962081726558362937348632121766672044633373171986150419062658515284763839480312579469118975998038648283382152932409357389475675961025404955336284258640971043012251606150440703912830739482584405253468900154640775045413702015146521500599535647658203316190640667395531734846216830952947938966049093082563179987559853383285936130364043136251635254671716319240922873833117247351957858077505499587371091259553866534242689347152128949858295188786301843570986952454767985872858116750241160009202748965358759100434609152530234809965129547968674739328463783366817610286577606370160203306769805973955377042122894109880776048502009155494905930030663927027119101613538232201500948126625282925968761585379717461185736740195495222748729378052170973996147573654013660011658077137375580367878598988745745918555507803080507952951358440283373418304690930185167242866419045035786936744729686978091994598848977403891727152833463156761227225934737378900558602702448120667899785530931402953207080229553330437746168181909030647892725988420392051689477426305658276979761189100598509354141070802540464394921529645872676167344151153096883795119497662352101219895040001425264101491109048743184709046930632939061654758415683601132070460765230220389261370004519243458820197754395140943608706834612006873054605741082320651460645917348393607101742466695126844230611628596316686013256309534669622836516172560225271301155632760361997711462981687343520649908689723935001067162773052524394659571638193391706355879260802270157707172976411944695431587292237985966240417181534425522556162544699703466390296008342957376150361919295952730204500025695706746691183622224958628935636632585200886350447941987382965274783816853940231079915491417573026708568378265374744648000963808428824463465414968654719818005762191113810433610605391805288503535040275223555373067052566253769478997501860082810437284179441962595920468955977951280469484398097030135598093936565203043375774111591869166527667324864515890663266080813543942731286972485210622505686030207648134317040980658564019557079662404683125662421954060528760573210919470514051534440083498254620250542525711835397967375083841636495714502962047348678153201111578473042642187133375027075004987644558830453205101372663832002956711672321323828886871042204173118946568947514984200742015164856487786663872355003874352773515736949532700532620803272031324716609279586994996375545202999010001513081487031399655965258752868359047137972244001446731161318743205923103031374471517758531354619581983260610949269501383617879037031099829161591029865983958805566788583317383974956189624871895440995510104007775434303743880176188568501992570194766474698040220135575021948400231473874792976142963113254836883823737645986143643083133272304813090363169253870879023910494343987957271862059995897343819856212824868568683558576495834596412542000489454692925032738212865541156454629222620542465005163602520493412047172650741499646437152963125023391731303179848527712368484482620223834081382059980082181419892895340027840994037445112321809197222262279403157887621191790546411380900995911789002196001620578560466827473778812683360471451714934330015462754416917218725119240124931653361185523943833071985880837193744797529799053961738246593644307410812179809271701884296985495885368109699605233349913564763712847672409376839744707013943863133773407620996839871513327104863697441930815091629771269225579479827725423222145682956215543485371014604238951807831735871855715940108278611966169807015306630073267666257064384566926189932893837361999761374792818671895978377539669224162203517749354481857229716596364045669772702601335250681853375965336703040508605923588071267475643100988599575177665895749978097276979768751028220642231850317454516110621564298344926718078849340910737291583371586289782109822476073542413268271140386633636009233224720077670889837771488234361522403042348238965790465961932168629654434979851782432424948279838925186989369666273488792474543217932729584200973874961249845448032430358257108027681045606809970769016308139892837095260482517465586866706476140227062205103685663742476519191535648814911587873443500687741041043767222943680948284722186957770093291400685381358214464981481843063765460733530783082888754726926327417369305695340376468317247737093272114088079098365677099263491427770177304125070691359187580945114237138745498523087798949428317039098032462760147681108512686919126121515157195044732258723529743617286388892365484215270339993042117643170008943362479902170673558044468027444788868366160400089929095334551580243972114056877122650067021056181657499897010873834612560574086637087374556127116737687733489830332406886771433148250211356921516901066560500602285923124720690044001831069587439480647647117006250675744212327188546792144868030251857580340456187542631847485113595198686766336974241990758716562268765934848728948205584933769659242066562704855161365944189461025464570227122527814319112059235045484591392567716885963594749549992704506320214620041132476832233461397010323823790178517556628633911797431509255193249172783196620741203833831347227462378969342706854674819378630001389962078791422852706644113141140437163139276485371755289951889485739073178475107667283987175928053372557834957980727151578351913986658059771438579926076378851191624542513944032590944123873379274041761620495938787928436813570705599015219997267909365959394393664696844307328109325476063761482894895307124451423318369203656927810103481230465478028992222290398859106878446558814998649417661105010891941583202395978519442028742751565489922280383478306818628028368410574957254818562196720469096306525097095314580514938204834510356737016910967697173877575456982285187261325000181417936391503436450037063634663185484988372342384139499120262403742338263999496789239284493345049899219772321699327339529498858423484151438709316670252913779785730439316715710109968502214894354063316447516920282312508723669635552428173168939527037111406792100604268175839534747994087227315562438164708694459913630458657077971896315124016402529464967183232294213079653185127618818835432430571666657667023886174898163944213388547946940305042622025183839954633227101869270089171162804691073225255696125918446835608625560336894388720541499729698677635645836882061831950261061267972381977087905483150605507829226107668726967386766553061232441066958759369276294286824100213695609232985267789783580196476529217914035456257460662890059085354820010451015106935537597799515183136003724411382796389646626121598271307404296405615267230723158102421348547858215357521345219880280881749376945293224725526437891553045546245620529644238950087497170912899046609420662956921441378830136111085403414040497167268488016924398034406173168208113328564552124461576262253113001356275677407864115789291804366552352782215297545318153597952635188258041460344399812543304849086922213942994273744461313616865635747569973978929272061574059363850160866302500660101360307579127907393671824751840460423343598482992678087207821344189131020573101595950594509182676812597947214930806832644236124191702835203012598794961140568536157019738565739341601255127666921722909805438495689441999625850296815383956616995681501663371233390341120286458266143067675142142629949092622987305573158813029146381045571835389692122732797376869377515864882185484704429757329660959999350440959577277525707882030266556728524093364688534893855446348145833693177283935608938184155975915656178969834808279524252038532863482876350198182044327590255992612951564223266360198005957170315115755092353552030123534502730835023853423540399396100867855028578962469694034755476116015777061852956610064893362045271354705352941663855069078013867471101955426209345242232429380629086191744372180719385973414245437586921904026042850077358254825623422941147234795090734129527729646726333338444223317307039418585812896320928376349529628637439279015402345284908323647148538463349456409770811507597070338806936930772947429315510704866179954879031132145623432058724685307664906117388534368420382425398461182545715069277607901540919793819936786673134923842703333013428027063904849116145228148777285517390615280713081141008702159372378050161525900213979253807010299642064593889374414810765657490787012584103416096073047042080586339347594822693336438654519062172489855657699534264397090258568229172879887130082994017657740794768576751777882550289665601911183671814012222895531366357625790113060455570635404853053364034363720350078024292380411550979871693902421419253066627684080907968115092794819179773729616741203346435689355766868555802092045104433566627575025332002170510947317596379455506371471293606096846921256132566402344582052720045542093248912384182564074327552416099520293717242845208630773300127630008151918101683811813097299081358069920164175706692609709522453496183186333190515353560907897768758715527061284624694495809317305281805313614186709675055126110886447305123626318723189134519361101719429012553879922670934921675961008971143722313744022211035323781701218954744106994442825195111686600989740657136373016253410778475032162525354241997654449951803354112500760832336252240998083076787496870621968688482577730343520146741772885525844815202225575753421450202617719789076984686249339503996729505695587141455501923550515363930527112143387423534851425529189693052033248538438898744655072529768391168245880844448974522619678886708589050576251539150327897639050413568134741318321936847902186900414169651751014734804673551052495620135652531087403956689019884552273174993382774236899035563877892547655890385730775456002092381424574006312207320849576224152572755017888613105629276236024914074941256045084466427100975545897465614784933131126124194055662095751524017512349083987773452253697150954332755360770485277640566102562174158985125808714482187311469461754733074362913361604200182557573847912041961900098664416744923461185273484308039103590579467666208969450227626759715478953592470124114470237109880440883224101551377832927860346213301445193968501117010581085254023047401055028186672093479465108508194768017701131869720538560501708880928752148466264200660309697691164401962814937707558853426275078326394091183223296539959008568272623211893487361389623532192368203950458793911613386171412226236795227731076527762269624958609761516828222881285890202017209272371792655138983865381657815658339811997215846007345532006681665626870258983780646311285115190515737544411738526819086500197447347418268979108232237618565572432984387099044271544355616647649281769599835825729302900029131723761592190478845364141095824779876619720879811794329900240432563407037810381426772849783740965637797824498314710348913042553649162564961791660940732813040779662103616479585520717496229156161149528553554917275842411771105824392410008779103766157394438958634021753359556760132798634670083253617876895069887419796142238611277378417802926610198034603853303631303540398269017178445911833799987614977638995121860518263461124508010806546960084369482713257814724974022829106468440291175614384022764862260307723008762363386868260707403986967733339191857665454560471295815289244434492235159784771654051626442459055075658555223115146790587720317597833796195788668678817146301318279181911620137253893727883262916633134291042363471912701672360891785110182125005020587860910222457410094099285568101249384763425113644572343713520504201319754464089537547790209389088692452687563933120931001903384743163097429425313369188846177495313491309696860570308553470137841460167698172863287369524125761163403226144736042550567845809896838355290595230667397627714806596824970573756896862727284133002709182668853048856927268138297653349466910549189042912571718930169937078227007826011110045203310040309523017500858457316926392277102007944175580100106082910044326700153544379791063176680748647701389970079457368746309889281335620394352562845521579843180964472340096024408566118642321005442547273801141244621023607676306062650011126641279834240989318042166866037636229251068400576573381129748696941915766509416228850403115969578055252795322642722476795465138407123722850225330270926816535156455406716574768649020706313202124548917849276054746136451388969817509782685213418246432399351849736534157635141606134657725721358891650186517510070168205096977477514117129588917069940226068234148459719288875632348000056360139499016109777185038814693105208890270178877390907334058912622670207640485819846542023215116685830588705075293628214416769960070282157225207884461904782608728540674959335854453573600694967113056274054924015110709312780981793476407379490836159717077951249271326354083614937891812470929049505588312928518363858361800803064943036280472195266415235479198934465301397420259639832052966801493946110075327451779206317261044776030865095949006063494229587788741855351186962228677642851546752881425957838586752394195670160980391128092465613576963188392464827784587404659374559305550799664548947781325028858895045649942135920967208499889703248121426102723985207757777038448385989552260028733612942941755048912628662123514433181841633474750820036731414815703548770125878906076332501852552047617720556695015040382521706915392402853246083941106087028810390410378645917972382925297096009265818101986556256111133886157134716463582810605847241950997022002062254893707531297463950761328598077653618559423340524554004100969571463452291496912850309902892798930264195504646790636671641297852531231412546713840660528690228295492911004561032607793670583604263297730730073153249650582111395817445682357427784753328331408086767507363619368857167108279984408382163497154732898482095887886183739607780398497938709151715455702392853925204679078569417875160364725620180906639510234114599835597873400703949946977714602350580789447650136071027532066261688477774939992433802795164928921609040904099890400857362121589802728170199558198961722059949589645738758079856568681268862567818127090606449061091742029822768935798613768634402212876847113257708328760229839958882347995929362833876953878753659020616387459981413993127668112135540056359861469133595768082450685618014973314212166983881280725300739157618186981024183356879680567595321006699214170600724460398056919295137639579745664269522686528788165343196071961601926278147357419756761100177219619406587525204433088214700547435067896477986487220889331218689953108524051491151090442047461139836148532571760001579931748470280187730470666471815630521727669882447085087889035011669616729088447159169167593705255368206172318583496803700825235982353409342735495088468319862602918561999597725100570380570901357724858580269354057306023191053793841130496296670055654544137431094996235691607508864695509554938894419947477296375051935296657090528558961259691753914535851861805734297238891103410168772951906022495374127334877923963704279135093803460088202327437824332837562791619604764759126356675057879784430668943158603952761017293865023507873310020618958473463227285593267857413190406576096396523088462167147902622973622616696374778377045307876852231825204966062501767389572341845706267471933850757923892683154985315994986868158391449269525607018754396385775835132094719027777150471180543608661466220778352323478745538894893451193861101247886916748948644555161188068724155635668109208069451653167730234998102237634009979367539318886842984054209689168632365538956713402087731644449536858597338752501014920069865543206796049444557491323228218551230992341452200481051140381256375645820721464488385977338486880566800211846049976589951154111258214167018534042310467199064645600885681483650526875100595383668381318294536296067989580151322939985929471519077651789212562718662817102983970185719024993211772780044113918016416937959439207678104081865994547540039006007165500434491853670671165246998706296237607431649750436052020166466164791024840983791652215261651115935370320095407829020156579581868288897718868329535388865531131734234597737447031034027517372236642195879932420579498354484200992726605781177741594929734419768865776937051514445946875306477990998068738305327361906599671245724934409259577639161688128842065664585984120202770867836297264164851589841534305137395378591533963723833371382307334734502730628279246592216195506869541456303672716281763366320188709525978350025673803442270793450956809318265457841634398582521034207608119931552624682085225353595113091357032475242371624167021363249172653767398706425634585330202349498562185799529300411349521350030688985930228821462929269179499864759274717424245686714892833819973038042606070547593243966696829198862362982203948909473732855977588685118830843229135839211574562363457847167886077769691887705187782730805233022834456330839983104638923771639331629330185877016865526691345474509999013229710745974679157742643602629911399290789602051748233800906843961455423457134212526453509819381474172328953648452355676776604360689186705496736884416304157045386575794071356398919929360694149486426940477450824109255254907906687696835031410864534251708313389173741714491287055059272172340984372455954628270265345707743202589382633388758989057052973056429276878696707765316567449050891799231509861709766650825143771385384800312745530291904126101411595265308191345817308828282702135568777784430132465410044927775346578460156551932246149382795999495779717705088917112361001508009109305612557732444778363168079212516848102538321982297711879316766062861442172248037851650344828756282183846920844863189918512552431450405198547648397343466943401821452004175361346756169349008123048900504957469979791318423527283140745802946527786198590646973461221238062677066062863427653888719356560001681133126663072921456326298805208861479561696540147562859178675046244338161600628417952482852716343344310396407653071814927633894106235392528952601175085882637117676720240350715612117286316001490655931929094098182947112230096394335132228808415128174600389376846938316959941208956590260619538219096505123067077447559810873613146786561461731003844067523528381110565432563871312844389466499204745716787039780127022184670881620950542162961057264018249290486210802363233909242719897422403999937618467724318715969187907731987711963729819476134215762399335346686474127273710927183346093463772001477237014955720736643980076731553536292228611205466604953584094874497920981671382603583144314487361955087165483575374222463208474122048639161190468071004252612594547916003738327973207579734831451871899909123219177872147333421316313439738568090734906636638606934866329572539072804112446795859564237685171148936647060456580491601990566974334446578338231468580395094473110704331852241045162890704495576589034291573110162156343045453282261302135869046717421414819724467646007548197811377838811028923828170484021458759872875428565311039017588605945181172836651896983480109858221497241343690765773175853446391868792089765942430271923560594557154170446933423664725060180244799377026254652173185146101377641600887388446200421361949177832304190167923073247308896121160924787432002227957278404580519841859620977815577593779620609835978609585503611273697567923702438457359364898936116581749425706290772023393513987435522638986338415562154095250284260902612114626885869495874606144319448858651862265790574159079149718456345712097189387748553646921267583036747538879088408758855549008982814751163998335230033930515787202772000991021661664330805399102809683391519207697007070436088739214155308754855699913606601097453359547124236723233503482931796826716171410908550319834974784301288854757356406273020151088813258613838410001989646016157850966053869652399047948073000387339196674532461078868081681208033618903036307638598886053758622609243587822481377102578701003126468307025483584401092592352122213932039008041151859335916555927894871591422504153920192656757343652343244843795246125499671555006066019822330260741771064902945884866176812636873172326098632880043343887202280205927756583360682683536853025632260409487640207513572531779735702839043775743779566069841672429344845690805464180457989090516433217991931971247509967570860016555141715043077783813716209693134994299140822315531803107733645902743297323934762203680653345110853234079472870663542912248173761867298022586112276082407095167261265525459114120176703538688858419978220149918469209583493977893956281204776740007550436060164272702366085196824176745046600712066232716932650709558141556754247029831369714989034030834071853287677291733619942662170747622854507678807049820834673816213478495759186980567335540382570935647464850254413808760965660432261230407215219380232054188988793274694645066762482122699748715459575132032869655923149753515558853205193406278821024133513788626069301033486022804529581693504667955107943829658811497088748985557267762933451435507844516705115803549344169654620070130920778455930455878767301869162460369292250872321105525167609330785184688099097978829326180068178494058300224588785217798088132624001760325318250527053396567683099036821900630467462379861736911919979828869993746233110425156530823411539321075645272504003915408096326549719694000495089599194846917441305722948077838409316802763948944422976017879824111529414134306882600596074227054676097107091565545630260908724194876630361358477578817017469544770675539745246968472439792788997265718000984599357772856000306702287042351226413005985681290221313018886807992171940360989923193322004962970276909719984795973249328204546796296350965700912320841579805349784908402465789663917206382585183219396606013356593088340913446548797722254694787193169881105174164321630306946714986670894048989073977031509876837977377536954327880961200288323990894308422334139758150676925759875708039053582873126372556854392072572537290360831345516741031136070829404032497990953139890506483613519609547260911932529222204515405111923760269543625064453797083792995656507071188204097281915959539723769480477491220590363150964058526830400071469064236796383208264944376535589494711606491166765638509244246685270597511228531594828139290867182700066347468145149537314625088820416625605339436533791598417658884624326105215311738343648354923113056337640413591411932688619299051662976575832253985785127217666295360054284673216893811029886513798586475090575441781965650789572238405178388161208353436399917032575519828722607161780905454714075638313146175551252400414013377667117354637964846681366847486474327058239122238701762204279574850343299811121529671188287315888506968871137026144076435915600929166427160151851110132984147082482646962948360458149667985711813479504000958377256846216866868182815794102587834832120007895111831935347998509924950418450219506283932725967759315673889569558835603008360995519832463104788987649522812372431610137813270041033224476567425130418132600392073233276572827742182769792052231296153787988846806078138246052138446640661935845849699649564205105824340762472623337087786202453335862435384663375570390668664777226965899466717973029807417622289911725193739828325244573479953199048221720206436705761191696759965967148009768028880086571022942162219165758586087583097241454430390365832483981297034388323022925479163463680483499926238027863127128613880894649607429389407638848875817015802791331219905652974238484584109687937699908952811808734107869360059845295377043735883789011740249343903851942494487888654182460793927554169861232365676090702154332590492431766761646136298669877240050531665808584901837903239799446949363711836160946830722528071257998153135161789543678294459026179176002094230949285425823672874328545164664429471342985774747384611003009018522853091621929676236961069112577632728123642812844879974929569910176821797217694100486825610079739729421674877869238182818765792249033067798341719482688815434314336985565359009921447101039765577263145219495309922226243107186042517850390853677666016463626564886394887673959233063137116627395876370791581392629093860568985582462136270143814055673933528068405663782140188073568150378626843996423883573973847679398814294869867493767929708969455504368852847245649346580765812800933459526122249809852412597406894607240150769634792507049867350956612406382786687844087127138849047328840016497518749294088718568394526075202550103264284412063955206290498541715625727850752527510793313538300424028314834284295614706670230198061771421931419666730479830957850351951488637748051970548233646439919562400970213347238917899499873243972207277005567635497427431256153022930838723802325207552614446641049679427331466244028002900964554760265509081077613036773194533110975291206831608325993996061810643339847075701530785926885330372274784084265623863068739765367652484509311066407797699561433742553747890902421142709808794972163029461010173729490753300003563577478339309641195201080285972771714553294231255467187925195996419509673927618975522751104135462512137967178833490250373928601114205943814111793711361357197872956499874986537986799430685496042166589532093879466287910978867468229308622785849232532315329200290502678040946090410157016623619556509714022339625198293552013277096481963799715751660312030374996494844570050607460221084029645543683250186820090853491339833617910060119979691123394360280992688752507371234194820940954083546861580226418564251295187085923864039988679548697573246022808503824164260604095824953495235637800848372386106858612537139092664119832929134957113317117719720642375449672883045811816028701657691180549094940247033957760880880150918493866202040826710124844813323148632264395308219586793649435087060566792449315078549663757776477094053901718632381681434639289033062713359831563691305089450675623860533562007572396364716820897211287167498422078252575856628827295107959156233203567165873983553395480353851361116746971299670724048419359151143676297978449789048994155480044278108393563362189127151912290316506583400722284957024367747638623268208987858293713463516107077986693256009039621900260125416201843146323508162452827514178020220467436383793043832453661163497485234797918664063541323236366727795593740714873272417511503617290432906673206935396321325389183298117199326822476937193815040206638621384400132266688210686574027147632249219751930807724006708479584113761399639026520516019951791995384483688024274630617504859081135139455602172701832555658142781458310789679432291516370189421949534344496267164179692983283864986969285899568415376157308893814974929316317071832285985010471204040793868905900222614766884314171473084678210520793238987472819663243459902297270612988906503429851120481470787740133575447718186300569363478517773778887186650171128129642120925413794037778531183927866106829431442279261672934154261629788586449666886282066973204281809522351588475800586318688594023620047288765603751153434615236927757054510168174219299202946566009527072062806469922685038618843003277255105774987206494285722416823980186112661881134132278727303142450815566067574067148882972910551701436345216634211907937858007453249243923005024657247468931790309531396345489000360749185391765499548329461939169520571897850756913292675594418162473320309041824488634643169643452014170197008013017228779834554739116414311405414626645498675054176041266459979021642555075331346614264063102529327649360527378926212427591185798495865585289780893811330275659445429056015659031077875231468745668404909032374870886345500571361160728626609048779532072399974321332839433640414672719723427324912660638113184136587481137047727638610662891645238257338805347793617127721646953270332226574313626020090678279379075983168590723595814719713612434950522289070180278833680067096920927739501189086770356394272971080589828939674840984219243661139459862879674866225106322725521936492490377212400198592317827049810672775083799819064362407318725390918951580423298997853520338548834382465986559223087099598981403055500443250580897070635109228239787676144776918135119932996815401815635483823114372986076000602580334357344314643435387087667182366958885206089391008537863984214413473688140760095253661153841576559996160442000178756623249227100069592885855312759477788665522554367100560146531455273804915108539487182935476256231191368250559360845844922891570371820292581665938929691580275223153835486846198771792503328904521831202665747520563359145881956056892003221913423739450838290791960760660009684220064835946347029361162638080443067494379398023098626417832223749444930546655931603848766457742187529884036692442877499674170042536852907215979216433242829389336907834192825436277247475098729229696118846688388349135983149130323778770826767613442983385660380733466210289013236024781200627037011085970326943749863256930637861674742788800848056510949386855346010023373107160189835980308090963861415477234484415537285726466005782057068990938327199125775189493702721453518973987640499185643102103631473541333046732635253684955607989841034099942773240978731724437866087551711972281276921684353750394024030245695347023763325465038209477431675147505513004660319157968654646946547478383227064787614882072879247487027786327420721125067621790971389484159306044735173426332267702374335392591945544209394169108333382605674184685592705155007836390353067667612043259642160633690448579155134894257237526502736658503916882077887700686124812221701988203290117565696619043274441117385518658612621089447249332559845567349240190675090795826014505964253827359871687780207073699946567139457683209670388985779592594198504045800674821053974089875464901095058681307075323701969297754162841806381939868902028140198318258617176745182953886325660633945502089703437796634769932195718919257620575283648485567577125731917728037505427196491804778663170164720228980360055469624681725474456620289578825874388283432870379251479642290985230073266115138084454670022160945596631292080232444709851689976300742027200043491648214805959483013440260506837167046509146102010593598446112168983546623336222933277262955206026434605111147582337178366738384535234855811583315992026910292161967248256275207417886151802128027268166211778840668961190103470232577006760787718929188594840243271584562667410114048359469431438385116821173888977823862946405127776935428848180023470724087507118531617600430646596928254761043798934462407440125927911796334237993412923327055953396107302213720677057899718489425758849075535980942287324838344321140349747466011165370850397411284602531771879060179209766751948583755800585453375088489539003420706613098506782213667554257552653212777918732972565573407396570196845400510181186163446123998901903705867120082636195248692273792572924587764782226725375401687821182015694219760603634034140785722427682710875725379417230560847366549965574499427112157842815398853602359515574771844869237225243568430092589952148467497110257465868028234281996609861952935861295460962527460340962890139395731607256519935777170158882606178669904488832948208034623231850511571331600455013156182481319671748206138319293293732937284173416580122037453544730333961170469712462770872322941640371654253204137208358780779701040618959685457662966740848321041327341536452721928059123781074171833328101518996712587150760161097205548187271155123235602304854260146402031096514686157547200486187115385341441327086174394439643634247759333361872780189976398075709507255612373715236266457417839290068229988786894881920711642883191581808191393474120066029248088158768544915143785100593889022897505976185157496878434442555902898162333113667842758369016537489546378512200168809562142086647140773246977038606894208059763297011195845029164589569617190225444005252187026981289965010459593674199635790347597615645258484333409754777938212335600037683640361631189641854385408117296285793164786709181437383805905268105972768191703532854842806821307549969923782047748024630801125084377832868392270064221557173734099060386035197441159504831590205454149008128480911759596617962605068754590391207967759370320052903241628370697220883996480494015692012448219169905557132996804906657674068630331690532003240030170148139776343672320661762615565990386924139364010207887366008156988440718061723374923899452128349833473781801712447180108158135021267577305634912126387924019998504825907425507135908237288396482601013800476163799514072563783833149805409530747333167371864083208279485150280594309316445544323124974661638620252560968740680389940620592913680960812376754189003084663487677660100218573562829866286754469650492006193989656968766509807769147058436706775970263018066693653620911080523729171127807705421615450292976481045265845738573289596613928618300146421009887346586077968611408698759439617066847908228969748107481899363426913549121764788305085682679168180317024777859802487350772160709804322306797379138608362174700525809047906682762522366629336388616710032404107083373407071395645726964460115951182602036593191263784014823337269422675795398443049289807766433177054230811774267871965148232563011242042708519548568343024883046083466047179669341663854568835400223230532883549702368971595264350816273473908995467459346985666555767165546010250063624722954671116370037672737826792604763326501042945168800292009983652152554439957814868419891468803497057431391756300507069521526208806409491506819761502429621462515756222811665968718827480285736216738957790824884121738494087088791552613356431219562887631631678688708534420591802414820266213386413269380754459759077536597892242475357283726809094163697432128903314949975302379870796277884608052781220638257358296255430310684920600802650692002389126087706189180163751210095863107427162277994611553028303392259505357584007840556640749131146684169593616273847264615004858300588513700897626835159708616663060007945368391808202291416160295442261776195922764063398028177766796227632404753765852968712196269868805484096534768122930433135291734993961757532947482122009389088853610706604438022690338000555393717158168135664317194521266763081120046831141459855373867711981743452808053769000041767843741287495143083704865274171682206628208510430946760932032346337086005675684085119966760940079349598865338150015384826478210853851748638273528364010374676422131429330011424471305240712013591968423747938812903976526202363770922342093770692279620036403290270830328289937454089420468639592715191486629825359151671036592592306841396098326970702387203431128975911437977131173345047856906470732803408040183078443780268038378982747809940993085453578511604496233181301455668926401418010744563488579895692506357530781791212929145197238206331970021863903741528381249098451476712024820915661416011795545878105044545392467692194635792147908032401167736554261604541484703349867365834855271441361793095636509404957558636104417185313734641677194930704777337424663316668966253073519710579311266687088859070924121605092658185797635203073286915937747534804565550627324015817530753081360016364507137116362361465821477642720036878431010673600093191622744672406811773270705233467682242928199994537269937335385333127598139350388598878231330870505207721960811942131963625722800594517149990537035056389431280041294383517964796590591941303319310558416724610702446292272825516516531556224727594259418606272011597884078086403188457205366370826022615194982554722555680597879373403004543540598632885923980907703248703991491020388278636077923430021182588490376616780191054407109061727082946740731630984815340983330256553385128839475500116077107030468316037915359149442588700765257430914818636500385262831325679820729931410278603504464458449143128841213403558398795554449800442178164158369012181218113609856743569094824913241066710600417818661532623756128400483029275201309948482060443392931534868751422768704034861904621081103157994266604510358332078718074507029766345177520645822559562909837699477812555802771396393315403173736134524467594460071708861638242420404889117578289702564179490848915087729641906783268297393883363925255197558402124587574707363392778580701257444556966142760680682590993131171203692280705385305535045607545173534770110881791062252986024401088621993139762664492556808012352252440047873402466044596247809890011631216965065414928845726181455534529310588606099665522800355153599405648082941234567673767273447216753261122488036190960216934542099005527291047918668170329016878808185118746116693411499070041091023117677485737102978933923643113791167599571845911884088305844368630885159043930965344854824189824915111181535598908084889211668946421788829943277806641730540311529817789521409122560304244101583537724558865439070332705811045776510680935509605573710397986140312777007989780873830973219593423430135993184608661302696585233629754280956213554715779368105594446200193243708601203890594336690652437605822074761143883999843376906019203180633106555630061233507222188371814918947616922731190025105324188707211904052935682384175097816119071070745589498290163792567988397601869005947235195542108833505997470874710010085125552032923463462832913960922401031442907524353273269782696031015693072252185592075812876835428680044374049195186434705392455024140668044117547333350931194149761201632075755485797861680405691866956897538424595253137688654169653523561163547942111889206843693824865533098890551059960910123002091888313192290809292624763324686334597874047255597806638007763936429965415220135354942438779736289358396892598439927673813311903396496140001496515502088791952540479710529703531997558638120909260469476061819002376469497776634872468179034569783320554805410544347375682867111650843962815769949874199177504472034649330676072261521867894507911532456261612268018254439919751398993956172044169084872661262454138645997046701493288461437028615692689753466965545079110824234426566409368068030537511382595238781466203275522246913734873858442411600756716149645002931580718596400672254356296539040297415647889596933553935468028349663857879271236553434444899921314119793638507057137902550508959230771161100855846962561588933263555759498138021545842543548143079587940805975324907768857705150929068988939829960945502434671820072140270008981768020481034666624220947047259454824860912154669063362722015513417299068671245129269143842165669795498091769952777033029309465313616012273863918404400302406150876921200346275170758597090850027211158882213689510394136990919497052500180200006862745234756400307637979395130759991131291719448276958443005902221094460527459671463765833675614105355794404552898637091028295912785267794998074369502591353080611490754655180100942706212521265423966487678719648389018695238368884191342722183753632940696887362080720728707375767209777395497475924594084226032273487571245139673392326995951646733267728070067565888575005998069900806552345110781635747864734695323710250758023033989951267645475357900161859096475609971527728659349209462785186199150557690881494459676877807939483658956165571852604789195937203432040360542859514694008069060856101884799305976618103240854306065725155162338205939830938752586793109147988479236550732356408049191384398791027355554391459900054194584868162524184281688213031450057610818916953811196935584836882303710371978503086345228274390270078634047595689742460662431875607718500860035584171888370937401873997627310743284665514353849043125853560756563703754272912049743599315393713918877878227366412713541249638863772308722264756729221020402523294168972180968171829391481142928999879611904860943366249475683960453225747189870726829022927556308593958232973442781356347599101551201656803618531354115494914205428227315262489242781719227115748966753502137421207538150515508201261416831503228130163127137317120360298295759269467451758830178711004152385843911103737336814964157959350608700990240271876864634288323268321106033259633046999841722959604403839249779578500498182883539627892241311392899252327723391732514962832912483002624206065991315912253120257887432354874290615657837015924645309240772159979117157818777273159713062978406563783945229021451353150366574888345621120087135688931849403508984798502302061473955324171520913164948897431792481051208776792976767723446102482904753937844255540128554327124193392012956667855036888380570131396128661379876323147140520455194380799508723235934069735298026967922540485672285052010693589058291084391606123027813767845109886209415508233723147715226235745131610955243378830070483789079803416344016951640685490814367172386577818854836226040170867742076038272747901462930773993879965440619396909104068383859712009655631810681063551800550053198174465871004914658128800397666413875651325546462847028223108350513029040944357485336118928293779474765098400336932540357954051464091569884194078333139439414645788112784562756530661625170978337106357059513848869529423626498755627253844407778411430879992337512471524502311684150400199012859084300815092953156533001588849800574700884893587909464667566059669285532414528418474431932022967905327787868037579939896151081764152290330987964060307981297409474664156819193635817905218996078731007857098164670103982781856355308767148384506331336444166827673085378723673515558171871880214415453660282988162269170686851779877852246713990466086463162495512954394736939591569739716905464102872107017163038118388278744900247094860205418238142055485231595286970584969817726468982642545651163611339534690389073326977518390551534083326241020496608414870827003782796440837107243022816636310354337316373816363507870708548227899757319039429157892457971424987225785218007227676761188728131915194839588484619207017722982128406235416967280954012593994976687396246878802597993779975507170023017234500108791080172230363170446339867915966972099445270365338488161770572206839652725590626983456793821668303962414168392906996259100279026039580030367346305517888286444217296009035063122115092775900416780129835347887645100357130821526695299137561746784650494192518333325795414610901860353192073585717498109250504693288272592900615370425831758866487412640416219175361282650684584696630985586442101587999735175752071482509032340909684862691018002755314293052765958653120156725587288999367163558613510520125282412649852764657823500959541527272470388672140796108309294103337538974696254567383055160391812820445259539682974913350485701751402468499012877399639394810119497739296804121909064163686047796401930390020648809828036934741918041508632430922104933477952579215930379608653025368663910444164865034387804484411318326699138969506703816204947880376597138751912084381651312717325026218371179707903110303508972410529189244669372847272035284400328921178692813455701630218020801769620185266812611431926179861080349663884094879127042952888115492158910195260321605778432811129778272208418433923227767119909593768996519270060300578290859003574265799090190904700322873344668616473111621548768880947209129982597586735840420100509687178247372793188856706674257902408284158454133650170301342043543718546930451979991555592471508005507609136082084826691976509116879952320906716216715616135903665346788749531260459710911729265732142072217111973104532874758011032383650719786670713352636570354783149154436159010466568308941683256381413803889003176664104644615813285515319398046743222195806768925317280035272126238371135294861926532320923713041259593101878574744246368578402495073062631666915244113584865533382925414355583557886552370345315065622331714460660584417080995936645202130971163393049034150249814217492225149368280935629126799025905025052320193819600582363405807376766379484148880983453626591736963558086776324753432538125290657672833742858660173278008974145185027530580199933694854510742791076318695120587865682952254540634633439304305026241898468807774237169830341917184344259180340499823144512524509908221252979848135339285943128510860228700100921547055568792834304651296159923061535384903974775442706513894070600284028482812201645780809744533947389296157644792883197224443767542698856827878500120548166019014556880311354113864614073545367024593263398720532554199891079377921382285473125812932164416693523091745071796443432287094116248199349680245316824637080130096311245094100383163296633104310457260864157840236212606654286656664299386659509569237406084856880290374000744038105080897837891799344743016522435287744234692023684884232547987281640654807593380552587629944925542932822703003698074941041110860312973786109173159563575888111172681274752877808551451459405167256326295790765090877235248087373075905939107920243194321168897682829048160987706989515810870939049752733581921577973667368706376522762047211831635357044433912675336286252516584450135849196276191653503276713687904340565202541600313344221838505448775049136902250893040846100112362564614540786228316871470802557495440088305081974827787351762724178965612435156909435901096403663901739862623796203628576559122006362358006147683211329906511826662713505471275624824753263915027068915047257057811775117041281207916087108990884451301626502030645780724305161219290967416840179749211961356525648070413705803923684225873401063726523936453248979848890626744275273511660996920656916226487073420937764961212611432823731452901799813646785770908977270996291549244677924857433765611742699616801314905198430936613418240582529969959575082780054219137888330662516359023753463619341595389577987096610815198478854370616437821389245516859163342054619404854139632318178413552588706158656792938300680878660076507255904293996820898291811338397285280629601586205662910860572959250206527360038429641935239863337497279284834759056558888937488329118280313189793861931390250747211821144736075375911936360893377452775052582227839494737397138529834092884185419842360872277149831214377369149548107442372613205728652019925669161114797943769355225388477115186814503547074537115148878840050162229793142870891549911890119916361377823877979669585060818754921550017650207199274985781825514169110530316358051755952922310548692783302558616638061825520351011062221647074784331734255799239681312865555413485238244434899828075084708050377798397808203653890702512260959841307374839637243847365439761747593593690376161626109311048521463277987978278757788706865638806767003305386455069133875795619422783825175997587982022039629521741279638572986568293825162178503191550683374385846347403332608346768818478221450695381435314506268256023964513188120418293910593376741705997119865173469691486460302197121795228178748185653231182259547816919670751891361140031539938532848315699285640710571979735720965682046680468156697221715313175372497853522508039443404891986978421821646256626184458731267585062759221549884651128659111629504492420796071137259189732856632355832336556028107410808945123718851271531445040332133770834199852672966443509309634965839478217463055355944187065908932844676092155936093353413535117261792091213600599355414011278183415296528349322071053008189134351465618370070899975434227785904182095729879702058084105820122091565652924645700668028206097212639371713660822261190647499365858355967049962633444859817039688759551774498479946598597161683493926138808414709291549582138226472515540153161277543066358820826556593701678859726587167300288840305852263060353543282062049185545916154748902929771617377652236484564320109742433756586380231736266373208632893062147749056548561713925260355713410080264349447565631782524741882818495534406354753463768103501647717171295767095605583861413211941293750272927083177877682696521654307751480279140976843184823531940466271854523827501830662490601597314906358952657392417094925774128410367145407916362277000332589385198503549521856486421744067286831599909969792601912719009638285655945440562312983358482069024627688751459929733256903459776823053716183592859235070304240002492100579927077234809993530191086338264435218402852876109232026115791355606195965607804045030074812499785049088226405845427927813947942778886461029053206554388487822974869706493342420087642700839537482466384932651123841585069573282953709770182794717661556131328039558034810379637245281093723467519982515816547267468297459040247699892329054890116294727730030316431985883838424368560159378537919948733858340243975873135863956075952181443041310955811704819745365063058084654880556187213799340060354802669797714512293532526391307484367588043769856392442007329503612803824658354628584691854228600479218384951615803735221545863470654843603682595117495800211512478662093379836380763555445426867399384000231801525466764924625445182412868124866551957613013073751445824775962664376237542554232795295155760817841243333566903302227499775976102083934827472164936740488868820596346834924207627514968709899392184511825845443666108578432404590655277612800265784866575791094874380049386487228831731001350720833035759404744606399826634775786543897517365978966223835016652700954214638366685773963025168024495633096737416361443595864757070780572360807803321838537433425956603137128294664562822417280994109938965975396417815023365488303126048974594729159168686568305931892212587179238483537076765698228165020324410653376153936554019275927146332896816701232396203750458288199191950304840610475700272276184607431072130382399410321692542892709695459405048554716089875491248507417665210287523872774424108687471888619479826783853228211834638886016331239477470905209012739668777310243214088792854002326162916048140586040189586305135817472680160880951137691271131043993860979627196521141137703098123216503474914295487738022553285732045221921364532725359874499707314238557299062695719847831903162297471445553238152721243477978452097877830429328861546349953383570620068193488910650340241151676564204246298408140315972813758527878259201488655419598944354714972005614268761697589841531126807190207309657143884767321384019835771378112484339127099152638884168684089130701465444196375965281091019035034672385539850031001668784699239273320665152968153894866478719006552779727700714364734465668538184908310936833957366646355684738242686042223443169765074777803740422710539934669604172375367456029320483115787942139751618280508455193735946887188331341704606381201493027379706261010657325613929455994051243682128050199416357852954283915257694359081815736230631941586997054508665033958890602474185286409853888723849360436367039648938943472962666621218352351967514079913683069047386812636010716605139379220985446426716436638075183214875284975590295910941671870711611158214643460684146368943505411046915006671602193830118824515856646840175694820902495049888161379908322087030408709323347296629689148420317859749923172638604865217538548569722100164525092356760350679938984021946128799753076840208011926580507440991814920286289838857670550602104094318833087028697490638125000262978392447483006864340311804973085722402395049872670798327127968709871738594869867680863092603851243754345652021886934327470926401588130523192881950950572065432835101706163193708016238316099026806478546066423058895889038153319441549058849801535169488827567171502223748173849527949504732127983435915798498097515503734314000639660854814824819795756769356160723885994105536601080225936850848174002614122933841134128836482064481289486763328398099833584744309525850624509075449758845066623993011625832839139620748690965100073283278567812040510249564929511955865196362843879441258385550095539738739066481074440973329987563139299244604737323679632703220282002467453454875105053250318138872123584655818531178233932810496285318923106193630105265594652361457775797507122539006614474167038720977994411941440056601973939729066381955919908416212876684308680199917209649409383965860944433605984988786822994193269445848114800230234835898235214250723767680432920032697852128657074794964305117428807327573660008715461264950959112330713816394692776429745963137255129885539670693383602654688968599362138259657196504622737209532627404630346667948528616033682472383377952261619142698637818022306003577612470752753657759816281740100087333953780177200070487851413967257053294715223782698859942833813014495874095409345711905026845415723060576646717045650089260242946653264648009563858838239692057961840855228099757011782675526161749945297034313899405160243481191041510394032858666296985114728468363382312309694031739032414474205198689677514960443252806075563302664712456576249300415296951788370726225246898754664560348640013997945989517815561788925632210254067297725004547456439835187418156007906772315497180604971138145214845965268374459109609018887479815169517477919327339864664567614966072037778390791575892858557156677796622561564435966733111845800310746705884531591733084423256640118125594010153268736968180787945300889165336932357950470422691309284312454972435464922879678160386434326348441286558194785061936717219289869070326899568942983299809180835208451256887383457057608216528425304320351140782638661814659538765923619669738572477070554717392977775375545025799830768081301018489185373962127254828597565929463280458856012034338932621648355068206309115886715461089459688724021050157035133157576666314672635918136664119361257440155145482995855424617475073223008463563262790454237495757009083183484843166621486521390170448441625273459120295944115116736986269348008929088413651531032247586224902676879625811638848733676847580311468848375912216014669427997043185502718803156731744969619097441605540752507916422430918554601323484066881107800039556398478173225818613762383089061283895226142262673829820099323735544194442792041467977430099393423987572489720539891652070815980127265691005597545133006414791544135329847922757772589845527904330806455918224465192197535820870478333341329692512213145434598569324070869727097691695349606441713519843090463418217970969997817373571031726572035933580542522786473836418487904553088738864732289474728440466786675715704167195729831074376892784342158594897840320032733901436643232239043490439221076264940340542361102055067456760454810397646298167148659610016266139329526795259706569663014967779334976081481825971482208162803770539040111655494352036150002890465287288240353484364246383825718889172327290326733116715407569300447819236172862483970646944213887368989268370711020872712989786018226543188783499757461511991334189209711518716689167737077529660691838483991389746027041120855510931808471600188051665008844034551483818139655148437358446318792706021316366919948321595360866344207294962576445658305235439173991947404793650765003654775574329533128120399869309879156696397926631331716707528924839761833935962411258414206014547306739631021764180353448051545335049382975902700152572356792365623116582511409172101826065964010613318797531738122955471468329435779714643453691655164952504085800389860919283054781953810192067347342683251810529553297179489371657714763647023232988930183547572494964577361707724985406924840739204168579779775507198439307410735004348385657712173639832923570403534475195615369921743770855962102738227917494351107948980907492786887534425438839515621752189229387547761365344810282122366575625785989187023210193424233919944135228928548073833790693049123173350768920097454673099595869832241622489946173505885859504725606035504377841566275441326785938523523977609926102656927855259787496749161081887608445107561830690982982638086991254656447297551870083568788072983721425455258153795116950600250921435982174198134327557813727652240731306850222064161527346195289964649484447998557825209165673263195733768501796797606130726313574197551531660407259392870039142275089132187369634305913121917521885607804550795113602618433988273816890552492496858196328504985436695453321014191581824650387683108857043407581721888495871778947643123995418041128668158462149157036459086226133906023916728096987570694359145317152532758417514307921292548687163406264931013585558902851001649722392908927528774063476527223439099956615892668164287075035377837566334083759741338089563546491789305602002761169072891494949076785505411510044415021933923874091891888285995035309345898983350377484112764626323921045853671364209884231411922589030025104709644902650800945168169720768456978163517582003082817861208775714555557965097072545412703034593497951941903812847487424511357404358357448465539065377108255240561197754495763175761376546505810547125798937006928685052135469475674822478996902155413544042860076161277088940287615506456778385994111330748104603798768915282527098627423415023527102425828914385966753546852449267108379650698461565297901820354192991973127189862802637052497850696227656026977640445336574214583432750134619501497983294434051413281274167696598351538393298670453044218715705578599144041623440966426918139298979110703454442344460053472997944128500066178144901345467716047450573733326537948010949540286460139807441879526263106698662163568545310764317729746167900045404415245380582472629609104997520977724823400499100396369386587383004466451770102540934868055148606917457138133751194959609306222345009417762076987058867547077916728913962823123585805603999243875207130977419064787055235122983814369060514619414580322717914702875373584579565540025886337693083011107932371924048133114819536524751470091070798012227085166305923426244274131750669578084306888903442803061308988536265659908018079264071684844170889949198709842627477475773100757516957174482496441380788761593970539660058181372543860099626673689335177100756215384016740241565924573677736305511235357157046777226411254139124472802072002692713477742433584265518582294974158238146937203346850727406866460372471670175222938990421457085223717443408268231367706558331026424848991495310549408897195043417279469741539816089281585250692490576867621455007524281305983652620415582129315361757953566574268218196747837872656230033943194951658613121697520363345455085508045540909603609831705310115185142581084225407670556274061144058388047847329936978449504468709314807018454720538752571635484166740144055898010668718211836429905193924798153332567953392089838088978357081411635384053751601293300229095717513059433396810843084597330183950357297929399573285820115397226359476112696560984147949011674687414501823792367524091374996795890317491428389339899124604951575815648154650278192282894489885010848637494911649034793423056345259222925884188509609036163382521547927750775665539347345831574234499879073706524370855985827841788482383395361901069592289946355945115539208781817808589538311351801066136488406739487639140780684822564912804211937236705511112009998268945500015009645766890936415102305223883041920089347703321276968233830687146402862127354222573868954651516525861302381150945320498304933332248352696035015737516762665772992309729427524634101438855797356084891770375932586903963828414083957631624781863393835913841772417393226766219646388972015433803578977922008163545960858997468835646871710857780517795394136672767306886150372976603832971365056588461642526072468899794213087454321279766843575171569593196707648138603549624646136701628430487937048546013510628175072303594857840341512636693638930880289419892621644125047484503671974477888515993400809384136912623261517016583600558337342906693227451581000005092832885059676315865524494790047996497625504829493079030781691588185031537277296687920180128050329737719032506616761029195976900429233546614832527150894407182050624239213169081772329272030288386082305300276578477908711556318948856182866302690657786202193093192080354112635314736994519096323370823741414964760919097462562156466109703580612277743424022559641741444174577379152685215476269807398550490486991543054521036630761905747750823342183052089312197852720622169077990840919687852921000984666069454553356984746729214965583522304904607194456765316747453074791486844293934587813285995525728782845117447820985951436016111231002050358557476574728496052068831281648859578919006970083450234491334184167088798265273392895914600785546724043014676540744313952307136561295248796947573839657644498032836777095620290331694317300067659407481058810470275837604502323771238343465914781475017830927304577969042261424791704843388517906973875035097953248106615462339205140611100314641638474317401988245056444902874549924043945542500908086974016276305574834487205995314322319282292340528076189270891275476788019503813577730443901440270559717409235983714367681685752140182498797521419969575567068865731012995356166122079445182469696194872024871082270692267483951865833257265899654235260838582686432488686664290487296912346971133650130926968348462479291693772105398024708241152155242456520729452322489598583972963319059670919904441593505027394652783449082416042834009262723785529650823340982378062991460147438232852769195358296346776312071211831252844471890002628114841196356646310384864097832351712065029799108426773405329929004493774644316061853288403619054234308709096389538269328861877726672666274715317296510513710812903125917609710060268473302109738663295462535507385606914833190059036745017312410868142365072342093355224489159351346053144642009197831649549474922304494283471617009377446152287165262960069176819416625305961938965446224545429438281800925403276339094357525897764099487468954870128962969910023193840525253495232458651019602533483001242789199475173672653031269469285887470397674379139982193257673190804886901621089973983290171103121107344514418172067499120521157400901371156551252187317385291032764927980397963224536220466292430827707819683663101174577255201566660339843363852573233850978186605815779732373789477014768173356688022632511034041972212165884858492568098185143940267928851484714630351392941945454501378706437419652246750389892779586127801038286952997266173053520676978098491357819974521465539297371513599533952985092392428762424447722555705968282589614442165090490730239849178211503524651404883791868872493132945875307291072197424996104161001801717075063477793326218513230588981651169921306002913611898358310344013292557458815355677954163388207719941959978039983580103333338853632687820972622166031905446528447419448522140079764274545300257716223333770067840679143030988542330885072637883645372466776318001354841512518341267750748347064528205298125421422956221350987426979351576369330897796370117201834394988873204374678482175293980318925208838023019440766433240330794029961325056485089547448432856484139210861170766122135695403613354974241221646574685657219304093587569104436938802299164267665686689959627188915054504676569497411829264161319203207622283133540774660890381089065138420117697262816885109115949048247917603768319815134093607774770513612281836880599875193022508865067188160137404416884636649504900823609981918713546470371819617858634365707903910845436789485819898229287988186060222873007322599189226158017487789486991059062240050501552757689065022440358177714753253530909339947175241541996853735369253158209678852779185032062251839854953396965482509139913539187619029910136653624312951103979463202451928881269163259591684954667606854885629740561795494672358322672936456835572488576195767064490054080526059674713017073958787271550967955252219449612851289918177387612544755551405906362647359630242315108804203735911465326299077984144392069248381048787034173822283948257474772989796753127488940037741096862814571586139595016705045397289937480114647091157707908635068529473413451218997615239303746271043214178724609075446146341996478613795647168342888213298680927770407712988721231869930130928095671233472070552602000776409873127712451355340536758157297193529962315315236959049883181457277847131051910724106079581512009780855764431102511746139699776574798596513905343887772564981137462196045868807428415068936283445571984588953177524245068865600546152847061020570177678372262776359391769958371960333799842171275239393304801438344404807128977745246840763836503075067713608775182929387758886979409514304882511518645223498618814357327091343510265872169156127353763939232449870750129159287545437862155947014798982234770902656971697030578300803326575127844441334104321379919777936694598237945030671194511144608310790484856300799643555931890889493018053616810070220502948544449419854107437637227916756309722911152583408150806405840015034582030091277163937752131595249751924720999336139082121725938022549652257315978849259671216129374651349239077314710956917206612924752942219349998568405036873652227100286772473167760337204064251786871535898493510117918263186042414060835859255306940140201166308672903415807325983493409123578311257243270254771256370813173867816994715063281339475559552613256604862828993305606750570251421941257169403655168255937034708543524363602697097385458564385577825258169695573883297153749114638826026497291232536927049386960512506812713853654861005466350960214853753750886450073124254250275944855544211669941510381567256372870530606474011323754512446979444977614924702627411866551493742017264682349018909783339010554535984819396609513570905818440463822326502387131010777572887873755369753424655661484619198928607619315661980161515077842589365795939473389647493401841013831707780639879662612157997569561345246841442223663862189994823610805325095983395593229008229771030920784635731689515868214984913928331971988214357841459096578425889379290574869709039352740552154539663388445112592140339219819005857348050794173202509402530924301046460841365670941602080189963538304639753157282676511305458727214915441980482997775069599288606616751111816753738952192748729764046045475467989565211490118672913767339393117083810410644215013248764048665251559334348087864644332236847363821112376777946644764095573798684947819751046884762515318661964781130824148819367397050630741154372094936360673552597927845621847568182206059665719695353215846551122186811154136405131147815486284608624632385639163524379156053510949497534975859162792423196728054155178245021165253425835570633376664077940729069234587980832319724019372790803877880807665007282428919414915517223994168441573545522784488098514293117118338229646130395355805491167385296829050392399153754931040290446890661139685832545685498765458794163810004188583788178662778002482702562629228425567316877554140002667629040970099140106605276279150631547277521775071575917277635741735047251811835876392818466341719161065284163943819345910636479556783481624534873214508986853194478272317749146472752604043223476919345309140910490798972020324787606861040067164159756287904431675455371214253913552513684462308868555719172945771694624267763558380014920922909429972271300420700661147995772240233438719900044039633409478620263091259742018132530006600582726868276020339403629112973533040136308200686477490833107070139381760381245611582508841197134560578770610370906260657556458116915715420669935909369371727532622058496286487232543051964632176147161527934260582342930882756662387713595613064612282328358419242252045099812370933958987500625406946513432494443454722633624934819730626593858156698947158908729287591853811420595275784009129434555325668106987653534866373980609400325679628557664851312295082794389060399762953626089175095022097135708335957124705450119340832513786279517163121456181615651014945218010648775897498781914822113704096218273052467379639358933373544319052980405634717549431985136733633522220895423145346237579884612228384236880157559538756191769876897547121767659984229499758869920105106451783028199454777468550627089375682469219836800111383382047174324337834250891122437968920664529066219524678909408158150132233952774496924760383936057366909994822577055375952389549570677543902226937200898337501059659459101695923266854482047003315178172590638330878252346712458635456783996061169708493702121876851725688144384119101428706553055085108434323074005738008862946774372225350376421799654928123100938166900253266771364670432753333232955696326057871510661212969049624178958212814049955247599281086710696974601591238849746008163278098700300810926984896456377948374799094964226593481319506641735070089477488615035137384016757964475658871643840177083475605822393874721123733217989005364145557955980429879096020709619164177942714520854743691514573107632140582989959079537674192208989463227498838219929916916085161281009392604204550566125195843414054432355377755063414594819025913446415046587083728023752529828475637769592957116857696755655959717885851758226945525345006524661179258647111633944664532385731974357403488004148879079429258793071478985878553561077267578449017507731081512354944385724071958495842553227654995733142797305553134976378953108056269246152162262958996790919620865960660691953972439452701186595410871567528801308284110735788946903886543305247578817099095985401920210865686352918720309621497177492136752742094773514359191023370311010110817939082513951013281970773344752970382881771155833730095606994055124186454733081245272178269520500707553167692246669632996091599744025343964446931225657231774112081128424664751484708793214287543389833101151318106044927130423180348437683116491118790355244858546246906431649295610153402695017296946376979659408190249454145717670371685355717488740168087615370813299585014052431497689157598910385266938694689400165413319960477512423054554048781968615840448380685582663448161310728535130583256778472590125522956158481795184962727599026436365416230525037332629171571262314329709088898166248723623009976401340647464414761851249028009021321568057398770304444765933297697915903766344240293104287005217087564220194480436947944539785436163147311910570574941343948450316933263899366297830818088840616848397758095585033320266816755674696284659286442021677859976637594853744739583588331465595161281964009873223854949709678175730927477047849103289457540042398776443920214320239229242013060481851773986429863156477931057068121209331862431986296295673498013986700199344145772980717175168273677014293956183143742478715784851466244632969754126173462266980431245974111777759870283002557934798349316563643495286258637006090423425507386159504602722697504977452155897655722069285966892870050956739833660108788101040645559547016432336435876412624468900297521458583905014066958852721277252709787484762309395234331998032029572015021195136235385022196040147278703436280115029655576231111105655711972949746067311821256080506339538557040273030162150230722851485362356648074508993313755651916602990836471737090849925579708765056760493312180301347517800317284186365183656601798845592829346079234010696962800905398125449812619574127194325800036200124020117288430088938808412739475259351410165781172038476138792352606156393623766860291616178818818114085448074790146491916895198031254260229436669152507852130377892071509253868736910337037270885545318428026510846643317819800877881720181889187185593980041600296071384800244008690800709857352024924478048373494857545404285590621169689364452499075744604618015018962411747690341148016276212942855438231190451253324945031116401280648929772839505218390534140917936200049777295251990356585710228921172774135959339851558597499003838622366226337220935831202986305506078399004452762165287894240233101201590946707486106882819474424146701897688401693953564505212555501539452458244591765949344557658668161614044749685770549456650958974729729030431848033108940723830840379412195355372020934323777110218438582418684278702839882924196855356428140945905784361781862112933587137605359597998271051070783650140833834015524968951922297981619124708063359098063297985196833071322320674037286522673973548495250061128755543694245052840248838494976323959204294244735199883604643666064430687467721798385569260505777167836142697965634841600876670293700010919973356466836786968149858792574098855927738787785817698631679177339239656951717797529042665470043718390054515636246177385839153663870602130538609164049092999856569862948415976023836668400301667366332471425400786861844680999176712951953310646942316189239838541904465147190375171276809275402311770861199196832874867499054838839885739105803221779281678022072300649497417840988258674478291113542663846884799216118515365587719172887600760958693985852455163683562129354652261246521687566214531733576152317602713466221711267124708403994118086757561336289169679807823746470613775255884296264997938013319515996591790447969680629918670082627717501949479172505328594373031537569413740454940928517767769022967219559935429556754506441407211505969932708090179951678556427533801981067971303278070622956050706930357408588376104414596875144751359045114915132252552591005624488477830008812996327775947920810635468375279360125331320170919458313442707306064690604489118009760765455429221935046698938089729766387320773366672854575296812985142164781490794585287161829808776392665699105004824894051374973653895138564212876243647550754558626894743442490716316858046428370179549452303707993927282543558770562174993108275354709550616562274825986227054425792864683689027436825361862292452116761966208246972495970152751599047033760733555715598088567083899180529877689120337418757813689318476652094090595347229528926034029676699114577992019862012616256998618360458214357130237503868559200322828034069795196426020562704908005756388983846259152562457779577109453321851551491096143661549136090557259825074136871188235138599595348091077335715886675494179103158039927766834686016245105205019047512812472028386556892114320188562922501457691314166392554761939565327052573591642296090332056877009776158629756875438882272060070815643500778972418432041111027896611182224064504383607061050490478868291810823720099271729590577342414941591715828415819590025472967361525146811730340588578266255471959829580138067657682117056336625925309011543015512667001383056686529285825596094660085900968611270778007972663091588488128980701501634555493372936506869002635329149770958330657778046315812132843938590148728414191979289783334284899208550092836647100983985073779224626845683312991451070787950249978031759177171316564861122323854465153152440847324235383868833055578673503208570128683126304838228926349729237457475268935177206585834690220770081765771881952110317052372246399480335064670278572164095966277138362146599645403700680759524806836007639126559675531032286470057771389548999492655310483902329366920953434938529944184258969654434086985302524478678625954789453789028907186675124061110329616533458857359778163890997152646507018829742448973953059029829232392409638551264268083850689930074577587886633738810377152821621785270244036313167998542259885694880201802895098640213474686443933066728446085283409301856773860543499372597083754304557628085991666215694743475647853400964964748133832782309686167804297529405758366442061315000529815075168488184186964679892004076745931258326905754404971332072504804987770395394848202213340159587190865235772919989923128103979901246916759893577732896356626150248227545770051039174402202964277314148490917669170298891183801461651979282903452725153948428222190523415835398527250921964124528333267405097593347198494056129258785320682363362329141114839114471471617111862493275199024563577783128194749475796961938718556360151787668530661441483125156283786323853739138303898153524177455216232128214985761742481995214149257569434339362344000627331119948544846898525444679980888137849522675048020038425799027321052923419819476382215522646176481648583205431792371782485543407418242220924391112636370587145851060583196064042355323263382266329795384912863334927866067234290899512172157789151697509874504586764059251523851828628992701915870333076743379847820011016127530438342432785292943784494772272065687179248403306316265382047134160513920133102191568293459926698192431497547673572617582527122304345009741460055600677077230447600298428371936490129745842121694684355886464444200501697458227590346430492749555670261696222929593111677047664460736323910225067553461896812538996996599819760010956106396036517986291955163144021824219749038089482482241949976521700049305390576312899759273180708574563120282266007532369674692882066033590118645252830994968124615399821529855812257237893932167252587851315674554234482021014337859982128879961430448570545745548791126124934398967701679447900397950138187384069586796288719847444227635178198203788544602818807828081651065009638745006733926609689852113375822236213877904635942043310911857497267163307481592519144783648230544232226439618938758288254874309114551888604628308407179458479478619127344290886623371736655290764224164859622386738151231739605083897800068995387886624188046407531108598132673946990999972083088606607540806101994616811476472742959536704583779631934105083148614004308158687591764290899247520252062138150864991747419925099221930040772686129090371197642960044794803858729877240343984391992967277927315532200883145981706195717509980431868810176671909365915528895044007038716827859756228868093211873000203547814826412979571786439063332272921794154434107924005305547360216352289872248865716442167649331599179713904293181341406972039206784506860357329840630507622538180889352711330153547662731135138956548089466804279076221059046622707587462276587400775842859270959414583698325102119305456995892076343005429743645096163725982771299898088978620451860413233701392391276488191557287110511817949270297712410269666312926471016342609748641264575086881022126671247888755142138126811579986291495109892589480718568355845496088021576879511776593709953950751470292106016643694539633286195846475639858394282538391228029437569803989819686291662976477157561327312509637754357889280318475204390856892879391310976661630730306164915782187070381901389204141986012535084202426525953329445554634760434101742738116592723631622224029354082164879522411431121487885994612856221112055607396245051207306190597055215940604559042889075393885235390906136702467463907939226304555941741260558062030017504275623262531788484587624963539923623380917956439243608495278974167891685474952537580448619619057028087739911680826022276069858855255185579386586733903638031242734124931810184262706919645694615508415457047276501681016600964629980102801233319542733521839357674908089523125910253120305799989791262367213033562670481524886844381510192077265053675535252374084451510114880711222491672365476253437526203339761707066798381868882911010524730152590654454160188539551053711427234742211168013767728026812702796145977245868250431048565042318484231502641995112663071521508448115438509544564114721079694502482811133842271071013350738897562299403201836789041774002667032555216289461343158882562342805648032387549447620229927168904629822936973670237827813133627177598187370804843799479798600144483527049651235220248488163266881848999159801261476086963059561225912206508848399024133111102226350574944605638260216161093440998326325150104216198694948023317867444641117930193500225361940972097330402667199116338731819520614963347138467374518581076931617440118410697951768990439454973686781351402451715566079440294423805086200788097014826406401330755203239324008837675177501098810837306649052032759971114143288177561757651289083116062111707520649904269894736525948155148641065875080463389240759229353148972061016359645305163567090956003740764213962764025268363143249750851767576524772516092780510590597635785594336581509046392666787303051180696945866722207151734027380005027145680257563122335348426452014933678967471806201649152270981149097904640411593918622276814696396217637882450893543342305022663624450333856353274420751219169681861492487755788983499122968049541552849670119874635181836509231136127680841618515149967825519652135127141314731454791031123489173443676669852020516733700016050735953857188438955812793926979982952552409210430525167066776000182928725021274214741090072433984427189670507625817634962456712698523081186890584196124924075539075272422534394923898790457979985014544245241373910167552904636098738613199438188194380523458706180681097841528093281887765995603590974194034870032981946499687527007257044503037733182792648374216309246676283360634215497662131559784908857146832379689922202880921702819026790443651765929249221626903194295794105080616969320452197264506227235962432692926471343361600966442960151339003970999059884106063417865603474484873804419251863026320894019816771338064636131424479560796483567759849496469830300233521889551211570066368878929709452755303277770972543695138543800174489114263605002483614146759950725615329342949544010671225637516953254030161562611140928637484012479732332557677555038876608658621975146887820105981071484536826668618997434985629463193822495067176452545433355936537987361338403330133739229305864512594459819006261542649783782498883364879525951808362774728509782789518109837019420461204062505812248788275724387152149420646499507895546917392465560981538234996683410250139640409316553106057418763959380312577645007481106233743083253398761683616579373247161449266589207507103727911462757065105206434650489234168246292761090831625943529785075540780267307834004440066987206698626240130190145767787670376453539142388593627327413548736435017903754515227472779375682497026479749104484993900842655124794765608340294470125804687846600286659330642614861484720508171490167891136938094009665030428116920607649947653686007223914164413568079782620580286913527018603586388709214475591845614754212466374035013357533374987376739352532587985997426419117861834581643209386907329281598217456253851372041733311344713633247901902070199428445492681870958164438716702911000280984507975796843851241062674120808512820881280076050805846281765626850360590387851244970144711491761733521461055868096868752959806127001335342049720438687366539322237015454903970105235981727950753740108381344258778094406866992847875441010621055372415026241351637797824767758025471289037360724887183326168802937405193915609301637913717946022492153334498923822960336898073432791598604149476871590353914848560149125655638990166658521528706327447284147314586893961983719795052555965454508381091144214403515195438762176605042303029172817670893397823108320295700285263183618467423622284502042115564897839591946413307867029534049849085360954643498447194121488258032291047628512290157950293772192550870117628522504231121424814804245794737574899380327843923491093714116866844197794680501834546813998027755949705215978927461793595855910379316502882008130961626636995415204055810894229091965385047953320203569698040610024747532044057404290107432498203538989817078860205016162947877814296337604443196458116900712129822992818217409986350265591949186031679526306438622806268071961176177985560415913451921553777355722193809315787349226995587750921203870171771964861342632631241066137900961258921770987857662509837011505544274678885997912741819361939100616730510960021924513498332051344994550976061907370746836036684223586091390684165489371396687509851719808245558363676728903695144894170416592878845018597003369442704512929053465506000761972777431484664714803973431258647287615949624196654140663388045579745315951635272321139930160077531836942949846577095350530846160883517621468850437405611790965424209048386655021568031856024904804642487894531661112380093744812465576883759528410811043558014879213235589262001950330273228451277247299343494609251179867749836271042198109383974019285873543493935255846404695150907044943442965105428105762681165455307482205270677054139442315129146283867054297498703362977738792571367046545174921552233769280361659377187080443999875584990403117606394689971740318289843843572018866967682099981123232184099559835261643460997190199250367506817381030365989053418542889536367424410389626825866758635765904797634121417463584491424892888765313284766835510383221374419509860046080616038112895983053036288856903719613107821655671928431127004228530041787977442926044338545671173065051516800637446000017241735007472852902452063489260418938819023141119686482756575657930223489331330627173277633638158816987047957086856134414297713604411754637500394195233575787519909710179876488206939765801161204677947016632455271179437400927803565915611284255511985319458510614446858805753276350918785688625519345135242780385933836945190926961953888577731734368347722176083651095550349976514578966223842325709579701827379260286440771661278480211494406310740064391860765156618038454037682412333828215663959352610477334632055884580586218157974089784957482071302533072247290128211281475128027905493911484779813798541868739070520590980059624992390285225860984965664915342412714938589511272970529212291872648072067578183374176663178066480221734356502521483874222127291802016391112963479704493563497723964342195140258185772237995432441362295039778942607006335117025387643530673658553861354921493454679805765781947196754025421872255205178877666617198696169285818937344267235800631802244955083845621083270542297962161245117415107484760206278749885883396711561819897935733817307170978610179975804774155260480028929404551609535193996594512530988933367719425067991508812539066414749026306984619567731983465112333568655730217750602079537075523063367038813402694406555388192807251103050702806099546380287215693245244683110080816436434158045841936015898193342034978083594636889641695213854835397018593261915237157695799827561741129950521559840102147676198814493770837184971957464694792252917787083125052143172031239060726291496577284315685962824834774244845604785878219160385422057897444640963307968672734697482178901112299304813000991599194939339124044399651723951834855342973845284675077767160422173257752533404101347608767427319357732210755658848137439413312241084870603083610660973570497082328168479624078088314412367600277252115644761288687892207620166559088619355523847672452413823010278173100726249098059145478568691964943296460382445015463070591688244474809952285921541216888026665466900404095474000072407064364882402303083516636719227407648545359767145282721754023793608932961120191906699492671860685740415798532544561533025534228231378917848539134926773677285239550770746564562255512010194783053922150513236793314286488924600169122733443738607957959732789149921901875580139557525657311803343628042088917641062067285534552379018205961702143922904151264210912689217573419364688397121741096447363956896651694009461642604023281452696938971380737472221895973637643344848883588776469851900876909102687756766774126421462624676917039613607589447180515315629581795725595067611647092943747467463264673378117929479210067222978454196554065069959238164308499686354849907296792999503210975988015651754196715638796314088175930626842670840802969670753926993858619666725757428031156902781529131236574955329961631756741450869083422395882141917312759134584840052717465542827606627274904491928376568385348802997107184447998773277243469934008885304285932370466955610348989719392477372110927650293317373294858647432765763983584667166670382934345782887951575961629190701448967014891061867002751745179766313762378377205511903702233291246959631919030255566609856595416431495565680392439962534801527404704898370952008278164344240640223111421293748297751854991683550428812935079824788236423507988742270413138641047024587280406163844113530971344507538659977690103518166141146337261306313886521247899496402309139096857436132631505193213317653623224356465652797211728560494303652904559918129881713318564506325189519407699653454039655258296698795416148056901181920472758147000623778758630496384511771401377567831409556055627757281804559867362855469417589310611067999725405493100081912003816250295752351080425205764133349507360562441776352168813628052366098043899674743161780123344411694690444457831508593729886154896902211841199049557270543891767260390509297747768683026275517604350862674099716217078091663536191356218950889102796443944149007968002573903347259274327632134762871237825033201682680854129114266388062460557083298182377527305618892198049624359438717396739883632046021340435095622779264372327626595546679607870365584689432147900952638623513605271175356731865710972345559016500418495107529816621060600062760824810681562000801339775791040079011581403044958367245267560650237055341195660403558425949281387754783203578056907552494772549232695021404349374021870142114556739349279373736328385856092720485750740120852627523223785511780575873307449147225128375492594322894382160148106288195452477225248642132384528086675668507156706938882978667891661843254701870851747747736734439686970279270800648462780337830597943306141002414824058208025057979728966540021508503958888734151582226466703440293080304970166722624347691634462707626576936373664000979754459604019309403715857499547528401242695853323529799490540088910398379819278768222636313771261648173158087245482194561873229530085551822931235021501900215303223223615761997660085855689984616053194967118057484778252199120872966373808579931797345218832204566096459859629766196290465146676633249981120081281937713193278448702303941388618473645013308887009231135064851406984536011716882665391307097554256723571562934498989192856709658285213468992702333075327857428248632052658136511797822011601254584179896223823194149318461709123433689241667978573368909122170149182979855872452475759399941991679571082782090412852880092961675547155574169769466739021156583165518634202741350625738990632112749417204541252619142451025407589555431786038805016649596843477509564562594846363703020032655525795014443706556778729113962483492197477026352005478357459966031091065346804350036632814488712096436090547266071572140912857762261604728338408157088708837003963185056373583761693297216974461102224959898800525799374040135721632752712070025420475249616090450257539421956352556109712901721652354437589651605423663678085838546233890490777620648896061845992586829369075088116168871734883634023754917291892589374438130153444123892701762041982971754391098535582349875916519456946442361188416769936659122142182317359110893183174625700177612766474096883244374476927598952346649504025860270815294359513622340131400559995502224634281026069753652852608465342027131762690342054875344674361962770416380850505047338164595175901852868765608274237636858292471407625914848700815319034834924656138875188255147196289777202599441320718346157710054386790397626960814939775628293251838352203402489837514549631923513315100277307192167613788117697265323642341623721116287661749158160661461143589998490046396189971471376906865535048451499393961151814289085804727860307231271646233170760455505287827120689062440077686186641775176030693414508493847111930806819834310840940192648471695272677993671465871631830496775191251890436645007870108315743439194041635116967563883085653699693265394213957831684142657985729250636869947370706911901993872638534715052993024436146526323557486710135611795178710482794665957651673794180884443894159298879277452969770269510358436729684007119781356172862577984652748893625733537707155113546002173696716585066435830680508263115077615816574881910579955670599550225246701407073796661597901250581127978152256946768464657899650705533253053246890728172329534685291476389385297587809169324791946446829876089965955748636078553052636681453223708110694624546824335707294729682896496633094772302672648789936559445756837588595095564029558929336413306969650510430393416566891933509859411922218429331555781600498934005840138493925493888418599780311048772973172374852516303763337753772093139135981522845237289762279140534830201986391964694564618484577346358916822103133984273905516357901407862664670939075745051568214392899628731141069226656847268555387584913685218632381679009992409360386647526118775342348747751756306946757763723442092154027754920775453447936665513352466728423429722419026923531875200233240751494275907760563824448974682395627649849384955354865056083461480503666954700930116288362966755877850916924701910261099033144439158516107200548398621930941323261227140057519049973592960380303338058517568829213856895929458754334355014055999333293675194063835459113451287950513737539179077952323092856267688487537985102175551454973206031513246266912490971567577237356523797867265637053475262388419529078783931326340925636160362923771637303802388531834922297813311248234726823899692150652508641467626047492061507063218971549745760756583593708313274384873236397511155207224071410192354923589057587916571509651614253073908406142963893413613413526864636764679580801444351532681852348326547168823403512296340003558355664297407760619889813040440979867521932154539631231604661689966185961222867624264235224609443893468809503039604880916809851808646888637741415657980341592426269771209568658059593065064327994696572733282360582639923039777239332706807099383978870027600014031575775575245227367348773559599476045927208242171183806862411841095550334434206073918867433740728788229672918892701202905058823457555119004592680147295480564524694227704059967881990472647025112333731616924192353595003973923129587159387233453822983548966707062878751272740034496704583217413934580946460943906586984031104623618145086630375548643878565117803652971259969202503077294984393745903036835130048038341900816531863300700813839809376053899478723867675777431061903440848515826653079824021657216677439302230210178948409464628694804708745002324728925525078557523613222588437918859342991871369018126384301963232043236805713445589860091346103296398435752927659999754522210347664290029049725265559547285281656236788921103190414738576081655513858368989858394333903206207962548552253490860371781589751619325081405219695165152227791829171878571771501663040276116214552611551513628505429267937514535879004760160458737786977118805245511595640330623084503420374091992137329226600854202028335261567540138146393688494173534868598927676962978431838561829931307722230455907657053940353725243515865510130437816300973535488789087411878307291160109923720580484934841726504639655674073703979184294400134871375244271960897912132141167398256995081161454428707909409632464856657972424858672314932175220298406576389883979287698871473503387893654403733068344957454994308187741643777452393118771790460483977241790728307558360937569191182184425678150993999425592938708675498440586984305938519874771871667002583057874014067795159761112383937299457337230543298207838696896163985003371101141051252038639741852052318184800893409559363715681046450643785700083608814639953918588474469349644032510836028837277717505364907688724146491659242613400217614797374278072293363200506590346703299511473789445177171201873561852172752687659776759280849250471399777577870296003382749573296729367413661713976870991404491659078190488051068683665364402049016255978404652247758829376475481349837655263582673559293657992716453270391540556705312515270453865436347470890681468390140202938372772842068814027744089429915687642438068653847925315430054077775235117918987246699437373155992041590877795001265140562812988443065320004675718143928081008947822052512739549227303866014199084205827628977060624135115613613075521815111358931210729601613561059664386945834490885903262597352057018241173101176622091742759134135371150317107862674969226371427308051422334624232160320993350659782626533135792412130806063932754496439368490410633845976971264726984958053795624331797991293821154636222672759874814790227401761568619014444713337842724181736819302945380142782511500705562474660884865757855853793728959649399465799841868372267635467715404114280618223323872149301320932727860750339117147613560726604295645229400512511707395883241668681270328690613173385892263562183661793060394853191581282947596448175239438984238652427366288282752984805305161614050171547866791448231328028326518217801288413720515604080909671336668710832792349343572964376761391652139570405816184165062286596129753141973345148940187822296012802803125433111363854854112551315083848698704129360943785104241495889410209362763261642095319288438322285988723982818292231765655328075203113016472349004629180424083520706272122210409117761732019526095220838783989719707528663720985476811724134390217948823939819588353615595063700734428449796871181641172217153583931491377021599261520293689218955850887291689143476302051872225090037814317998766244392193492083833911896392615798080230496101079710405670008915043634729176916233116384426926207931043092000883597685179335196101330499387917019018281445706851834570699166283786364326059666369328695453103324415928463307884945976687903887512001748502128893329971806071664480637216129634845441603659839524860216815652865454418319838673201388460415482158288878823658400632375912542792142336704470057717128763846807449742756915098395426727144558507030647026203004918028628262147101585308278031611741000609158151392664444124445168955912998433145184910497550961657104973451568188016650013872163521112380375075788685161368386037927702623863919098268496504809377417424714718515388470686803773933527748397155768706810646056348502182167387556795692882097550329648999410288598399426893013277455048940571135915251063950071503406239066276152385307079389492277597246872826371289248261831161295677156063926564476315705486433707000145657500546759051724063285256366481136566039656464197156761894128137905747937180433550110258687199843561418599907666528995036991489945044467022652869655540654717770464284145202713005252095384153268508061715027466677200107738000689692433344078989704083813557294818303543552025623117529921977982236142213156229451544085287636577049323346946355967977500748149218613089504563840971390957635523436164902062026013876524068096617424407358350409220028342550110056108219982456651720999578738628861929327362137035783892530683443583685560788976173756408934357908879671971453430940970709647405331989839787161017244561495886059598653187616761239705104235984582613501723122436118564038555043682854329619637214771191636507911432105421954596870460781516825083676878490897635742264978766156649748655738528506200852655993497939102302703708764418939170640514871235665294280551978274148074622580776759835919335244772605505899682826460268066906857047731680340983653972250284931631781448221542645169311878713084940149136735416737071986853905546214055983887133509719694608910032947167844192484920144522461342241295587636588044407220611420997237190112812861802543422747161277292677440460904830934976367816919454335807369284696394240099577925788040019070617478596120412996477195898887409266014216106128615806468049310187762472804222625892186688046747421050736000764301110621753932267883043235957476453260998292064301722904488979989345874953051101976419591838731984058314347065050623771465153266088398655968892668712913140079383319889376803233893535526935053056883738248293002928667977114821943120956909440937019573462131886871201648585938984754388908607156794215121000878929716061580555689649311276756195469614340659537147251030248643202263241328978130782190782739900345949402802936923607616330322395998014961693137653085540716287236938983426756291621479113421371237205476383524199248455082117275603452981750137326446779721661679048794959767853998758667093639746933397800664409808657666067003390007863338374238131102255263931258136752318785295428011325643205730061462328917298330351254928028014266375167674378028182132796522867581111683057073343372059175304177941780021378660029131194521488476836767421884250559311839135425024429593039903135614028536532522034705235107610418863337702496673292165557375408049343955860804820019590592959151469028919243297654495065876449429440756146944325820426165335397149993748442311439886145205223499333066465925971341551648267632315468145018026458082061845893609360703558664386819646049101298249194825972310543802572344534577849413708492645125783978237210798819583118081349743889009120730593296093812532550551852793113117331142772837378195735213824549528262923938041098727542748617645961875458023741191338402198117947216538320349442619810659643453607631442608724360833983524059958703928904598632252931098661525957060286251945048404289808354947304990365641523785119852562694645178886196807671249989659505481551492252412574787598676422796445626346963137392645714852696801015729423412469439528045453695479976291499231897944624616918153844766634992247892878558213954528131655238264022007908535752466658998136585624076998846193503102258921743871997844783152894618011767047129663274491248037283829677409370285783109083746866236178567701887136592534795594683711211094453763818378192993334673738935782364562243396667279920143398343684313074586716847732098962168105762950864408224148195426626426755482749328392417438882099488971026702598018652341803799442389333173995148492727116421822433813602711171802974630496116393521720251061589008712517194628285193879431458463577967772306886150654940141079556189077601957076624131035250376481324450250183300381129386961788510705113958529074958593616908321810754185329441464032046346228421962415662296599634135724107860599542614519446153000579073579903357085592237886203091920839426164582065224771494928741570306080333452178537533004005788603794450727586863211710759869711363975357604301566718625494442786479145495508948459181310745376527035168061082310862373713379348382619886429019717985049337096242949683817962816451866307682357282571067806859831531368479142284301491000808561447736643473987405062378057847038688153083161253968275298898142987167572434052531058554498934638595058480555087892508539614860063665320997110357251974286516932188117175918089721807883281937405047672578561429883838607770300384448924718344882726150393857397515063550913612723593010241953518164515889217127508576382404434352093519146325867357334388789019547587462057160294465808070437918571165351518761190229160719576760137906803593639302863747515585865614327307533899984550846622422780295071674016488175233431483461803262936251460647530447458689370082369533320988959415910602012101989647015545120126467926438815809582530961665119031804174868299185805247405468779949229184210612463244595028082997439333846922217831089384973821740488190460529667873245736669353979932606440010112701320681735018764609023820789368025217903903395490666178547655283648425567578482253075320031829367444962569756583805737384506827800898279326175840786231405293680420854205994978947969852101450749710887020395618351684814361046283114894125813403060485437026957606042708369074075634319148171006039386639895134119189606046032943477419683623797594359527303229277066672902792061511457386700141110566303242160215331890312893968929759298356854454399541965256851918613317371365837188421186864846710935054895671704858123240836984204409781334347999186862213850009331494806424240858112699110940461415694362542999236528457093756230153135194840086039534117066253498776974154063909294421333983277959197174047771692480327623186391183303617220572172126773303156385950326245129447839627407902011840846907719836527211981934349435542895104461603093059949952354455287825075203396096535780817145585701386824247754239241794543553553839597319449572208049437832962125832247107292343177195478199056774622260083520730250470193960587918926154435499642989503842087898484274392610004880217308236828721771777042645258323960511613529665600034078245644066784630754759002065860341455779165816082981099206810066896066219458309800066259628227664733939510062952352122020649174637189220825048867026542465858224717319331619159074626932099803094576937149018193012720035936496453550291521511834396792313095764356612650856389188340876389040409213877780848934563225824652410938345260572710459149947222445632622100779045603811885086420532353157688599463205855974643601407076002316844332294944847412601502354309751088355169083146360111382509359928966362740198192072618974327160067580931644013405723465940344366083035044487835101198176218515909641462145986284195797874989124639721599862134430012475181431145145150302644381587252064285416281382454456864971731979152306916977160102190856941956511142661518625860545452155332533083217329938499001905154683192254668554442642711915635159860895386671670521335592151216012026711769930170299332122715845849334306679667357625093763798341164787221682258964564830780552567416589517018121074747178007340636280078255807035722233530515409731097296359489761028643227240932528097383199501097163723400115827230087794933660875483400804104607486805022391592934910451237825541946116759404656197062847254743262637651798633709072905939470516100587361341776221773368504239623534160442065921193945699216868748664968404785561563784133926396140415576744146923927557271804788673151513222727467271775483059786142044565991345232717925581015213959762529696925317246823303867195016029404776449783646344191993114759883463816676945660032769330511443278877126207259789264602676005386685507749103870612083776813043286983851787976895537545197205922279592206950520350333435353278529918760939811351895405856182277819254453212230506731735502952441465789049253335782504241026137290601192485898378908264207561401428288355026841719436141676784958284747972793733517150358847938199894096504688904991563206809803714619028656551405316630351195829787689337365758337420670242340614229795438879365873448795698565294729851308493195225559492731970880865439371539581912877923618632731105094402827942858897292533353307572808147663224590317254545148850066774026752191184974047662552830802364718858173569946469693955040275815896542409203950431914174536123765796860115195777176622765348306854521041928073074046519463213353426538669004544440606278496307469086209473462727894826291553580206610982805362122860656471136941050011069228662725403459644479177614510904624650153386985160792816105436048969562173493774735964986434871399017817655540007667035636435181083258690295340510557319574026988968821078263257255220402325994951195181401034362977869490654659006487051843658010211506873675581600960452222661500991190070786113924798146872293003622916072286204471524152237919384648518871554883262471651252230347030110010692529041214037388046903034875666914368070046552783458800500300739498413499497148659017313015471556385523167133672390915836809247736160081070994975190834970636042098581096569640173683607321260694571470375634542650784252729380096022778118106444877644195269849615724364737702716390691411204442604151300828986127376564625342555718412406964359797172125028318937607334701333591832455707661479527078560205851978257105596733385345409156594565454253455402557333713783890671548153735155222717667644880768522794037723786714791566110202049516896594786156314465313789492147240246646315988136090548268217898710852322929609763815976700944862901816187338882720025237253588979671260767138898924618302205532250080386743898203571507958777097440483905904299949447739099110589367422314457178640986836802684579516215526554695224515674835170531782494926647562439129848426170411408626635020055501499306042353445930656419334724186467824386633978612771895608247445523867564202507839914184837558488656602674592069334574099971839298612543715043632742900720237280002444209217833845782914300432691786991630816299504518085523984349690935977310283062415122677183956069877908742178078635406611009175359784764238288912383347166160310185669056754848365624978379798745138839076924024277984428355875821434704353086379929970022502730146089380979977719851627429804949183534152272754689330162869207430106473843321921329689801875580937920057367178057731097733711555759612068226521897914729705950864182010134829374072118374577674254474126684523915857681705599100400989434504273744949479577307681380503209342313437306538387043134350406091185932680402508707419263450090299707212569268317656189705706623836726645862730392101751547025358361060692222191229332241342373279748127436447935927257636496242365567701985203193422755770174527160024740390059706234462069106413854458749029905741842202318961053328903944091746577808929715774384680011172036103909508049959778081384681324332506353424682579715847370270320082774979884830158020302518529988447114509428389864773895632214302626403231494222988785216549474194858358980072294624377988507335873234243335870895075920769830483809705206351030762008347705653977131601632256546074108672244223855108955818726130668723437243133446178053161076177344413633961860856966834819770583822311374781669881651778967265443316470578027383058226526126843315670569684010517783743968984367095050373882300502129837570492601666294855798182756990511549148613266386109642155721402370640328313991382117591188292247663052167581586237176338112604442152807412857950476001940236677048965485437274016863596936686481645680697235850142887235690140966510424831748784504111606704275641685439003013351532483523426777251579038931260659072723529777747893274622411534900367333667959537839838465472376238882640703482675202441371995761031272507930166100716289779425529805706491328117011208471040506971778003046156141884101545750478380293296408464422294201215831542638065556155958312219478928267329708605858490558754065509904139664999506604762237233306984152921697065730594843326674795323872495916148315864116702535069066908511372832814506057326648743516680256162044794361291833714955808452361035731934696222562243280082094684395754779746152366967566032843221075266294222274152593654290225085776219240226817398922564921522007305257878420744687701257706527945385925089725755934188926221804036497164521900931658259053479970679544380034624475265528063160701571019704414901262501316268742130505875549252880667457271676331463817393576998908803803229275377002225360726056604362373719081409319517473841933071117272853918872541602657717005592493469249696932985615845482613688256461639464752244751826094257511375777610618254832255744132311575085266059888692489543861859924259223038001067245649095844992981147516048613801797638357789047583839568616789307960483242749714219597654300555872575313836875725183685255066802737773559297865462805165980562317298116384020395300209415012305953278324527060186708792308756263117825324459856089726137032142719703506118930965075810442858335842566542043415881503791533112485563338602984789183315303868768432079089293410017950656687384936543684078588384067435628042586396931163620950524841772808444523908547566173880516395726766980723501860181708719818975031621423738320345758267191851793618131338407376433204461951548213917876512143717667785226718508996413568711253386284935341776672889634520748687732506653697855242075475292245002680825678562182817458630712941769752271310249552414487541753374463091254180171198143347989599697251899486959290137165379981604402896790515848190363533885944054799652408861756699465636005474870156730189755737670981154779023326197951752682218208553034873021139323768586266566307059987092882936795336362495038155406507621872963943035078549700372215331368810763076464620818871227855005467961560401577909463170568136091123125878912364735509765275677760127222306893205477654635375853121657495631661407885248896488221316278659360011788077085881771805909708978073430606737669041518728621724347881696067027277622135086419805215954277532825861613888581357754164525953553540273826281274387654156812596081356201883137200649034306773356928912117102710102003104251981009927170906284237156748484229221783305441574023759038739955771700763358279973181868416519887840826978026932792654617755820685177838841813809124018964533492270682377743962252327202878126765119195055847997790529212329456588370546126758001835959166966551946308453695629921771265982880939827455950431802419513681286515795941676484088738754790321059794875092948397170052303685612449083320018792008179199424531196373388998148132984481262680032699669913911278761922947291387658577680981802245038580375521221707579601213048969569531051904331100886539344452438957245976295438783871966914622656003446526874634695485211737383672767815938795624527997169512042939768474459192317279763040219456451173757532844263755742676141641869981938861102064531733865350064869393147909441444041311685105395839307786515369726132722798469899993168988160046228304567033686254656020949628080142957447988565858470998202445375832977723583294990023739719872634179101852327357175286124734494259793761625603121228653038814344291180673950288025509201219568038138611117764281127143988182650961173582962109952489146561249986914550989526990802908965880475090040831374032672975964082757928708538436645465813422056730932293716911845351989979819096539452752069696386513144876310845854066214744936516008782203909459678254950771845031792331807178480603750330905307542324991614316427780239510802770474485386843764935590684881264731390421287648976374083884448312582848819897372950152902480721593054593343572524474233850163428185726756238190228705059710449686539774672521314784148286707639513379712800127037528544666134797466534208697965019021005812893686245101409836104628700261445172740205729516259952144481058724896035602650273483075535559573542823977286273038680619055679171744279097631871638194223230630279784424003217487355158658510384277733781228838116348409728781508232476922576482064408001576303892959734810094685492959830260695236238923181188386642224882192509344103572962357891901610965025269731425554521159663437279815468361891278029961948515219198028952265014789192249865526710241801251967937399248912572883914794837676898965072092322917409221143797019233651633995033673508455179835810782494346287053643616306037891055879423910875281652881613240740839942754862938271377463861432162075273122071022722561894844516201852048148766629273553590185709046791303097699366924739039873759168207074510293793521173264290567740341585122144274199342116548539571914936055737372020159730047398896642844145683826466528612939685569482328558131296549350138812364321159516828274631914944350613042243308905396965045689345727782542854179933719946518585480324893208859752055768970884330829560207875827242800714304116842024369414467856745836122578296330513578185803674857585783393760239878020415381428484437053623945489041459997194573483226881184815101872591519528231503292326428010321092251971271583274617052532766466992082554316373886460829172720667915101210084381713264900012790764554225173767333658007231643202068133426325476833159759369296055738300433377853583355836965844291022501664892186454034723228328958341141462625938515993231765488946508588238124085879327597832929734180148818739760374067060218555090732023685192020466361000751606822804410692259338312119198998089804906787466482152795333080740813260647039996746344058078222923436798451498204101717392673329580716468379920597246404767473700612974662761410730082852097198941152913225060243251107346023274636993839437396214541682605851066228363735676694057905903865790421134482363133483407901698567544760461718557727989590989606419814351128959273399399785772485302624178530784635521682237860052193191011955557792446089312060412636588809001315576133494702846179047158297781129612159696895267427207787357557704492768251584540170277605325446077994134595825987701375769319796353515253534931422351855203020385607663963322942312385163462446304012921298067041669261229674859463204431216208288419968488824656027816350394443828271180967822897905955478702541331653443253479958658937727792929494772721539923169133946973348854497346736314812508757611196732785909255473494529480523204664149683928775402180762045510466798949758991459624927760651261238770467759519805963205313442478636519762105883646243639434619020938545888505965370350166365157924865616287291032691489959145095120262303750869857373419975067547809866689771147259399727112047983829204196341924942603239740606169896871411846856296088875182499525842026588362399228881530763849945608832744718789822099995140345317785199632132636376894301996743305923456172941548299571519457619336067566375608473675692580883794276152165752555848796478717993252549066298561263661647839297239783287329223054592436871149501134484977572453888577953055082518072743167811241227937935574169121176231005396225391139355402394329216391051118436716302441126462062130116262980083333017054110556565507034324749777589551762847862115075714869017966639563527003498554414956485472657951059237393475503924883722674330914672162272849084437993228069409982979146374015367370483572668987940703094640985612567538657204030831642556213794841133446395761163943993544220025250151273195679891330236044452675140370295211935368272507258517766273871433671429601089565920387893047346681573639478311723351612483455696619896105087026146903050709521383377047052353931690925632253346315923008345489708043437338664226108978063393296316588033189828588256313911783472206466623248538741699246153706160677043373211843527299715272823248354071160168537942007873586433637793444622311410377348525888903141904936438264883734776595087071738863950808520624866729575792215374824234086540459278637841913953326022014410674018949860840531256778964457995283368882629517189118720227809866506817892907452448238533995255209923849931770462532149565236626278180572098468184591365096304497360942923283960940366180009014858228063361749524684487939036122569850539349038573434290736251833534518136880365637348514737638106413524939496182105373637634219392018851305204953438166476346205478885940027918624029596447267720685877350081865749786841364200800480714793616343348197153648733107959911468791257231569904502540411243565619012677290119934089409448896737134633623908266697542558120035002316952436880743837041732491388135310912275999685185312727366186018022266368796877743320753796596850740516636381769674065024864190332759352303408207562137239071205247279089391131857424480337975865247266859703311393227579922312058567442738028848575936006665607260094412143253113416131853748904950284353249419382066924670859800861944820386665735790990350379921563511484823527146429990884713238233024145752264550525832664889754523446674876131809992402369879100953314923644980899919348038469374901820734731886302806876778352023530102563079207091002791933972194182085460152170161167280688600143709772101592298279948329958952325134016554256113472392208450185579517123548398100171966476279649672481408229531450051663010672142658307984431493634339955596132350824075169422885292333510445732026768648131014041273961117138850575120773263912058587054461945531176648853230196376428291496829711615138374920392769549272646951803930403509316237633517958277157074095187874151892621525936373381677484753653048934840897737648489326386446421678909011644390358975751357455842765487600406243713973756538909105285352224273073787203173436725396821591883691836258239847712819803269445214992863547893727929815698921920328274895618040562980097177675028703612564726611626717029319560463269203451543741220974826290914942099640073777979684685176432149118058445594076237389563384011737187735397328418074926689043747987837233174648447038364957629412570163284168029885222476175860870251263177910833181994076948717760435627520385865928182440310011429147903456235114424277985397326401263228890069141932283784152576168777813752981988141614003739771469850337978506774066425328011484708771489734654877108486712494875362320426067410011685427320040690889911983026754658885349979453967408873981975734903795135192346187825374336983279997261558117288325796188574464833343175850222734783275356829243620184883699110142541046466131702175065675772619318285671736028160086554606623879497550435326052616878390723116906614954056748171185844915924898968489072628085940569114723792538652010151795194818975981655104612758693186063819436627784465185640496342022800381988589400713157989286627395684618155845440381281914879271556457790662963493607703104784002124920189480559401763532401331531620919529587364925226051128551096318754894189610243815642125434472101133827260874895503934306869006792585605679396125156893247148461509842494149194697909940233389064888323068297982724158673491991553495135489789376421934798485067226318254612160150740039925959562047750744173193665643434333485824722188769635915123534779113374825356004837084453182299580652219885431496279417036600026662389471136906672401493980521029947701502390026014436559223937341101483137238781094565142446156848498278226827922220549853004686002066006472364720647774646683440980107768478230378648360549391341510380484186460346198033026267795574385197978993895813478368907820716225799050117004592290802524019803955575579802974321152070169339244649266719665911137112397129463117715258496573676376200847192399281586742178713280409463943555221716328190147467602711675832666606171883026233286545785151103639578090408346955845092568982963384801085202110310153065973751498126906806442644150030858269412670483253751059193895729036184688899994695227848247023530275070335183472752446628865177124881998366186260874850706707743289933661315821756629967831740984390861830577848938814263573440803265612401411161214631671636808405487931569041763206094851398078150607867092262378594636174691903669452834838391574457148988407204033758150876433512102613776718287056119303637723524259605339288587927326611443934228827845179589039191316737307521663268796410461783445109790698181300998292597359741829656408404301825843079093184195777694691190377353081859101828216092786320398905409195349840448810625110601835725245794908524590911931807649382632508786262042362954819587154689808490818833396647364192816627783448961172986796598313785323666422809092997005280246542297222431285945308287696717380158850033505068639229775806274735939547671395057061742846544162663827976936224731893449820166621625203500952584738267731288851916234055138784666498458325173297056588602322199539427315977279831586247881179794355968758188752468511921474518698144763320306343401883097045798192149042135335923008328638571206546685185751738807731657659818465361538260107834741690384957209126247605158731764724152346857273084136411092919882127869994672034504514653761457159648808319662968233432045800475859742513666460599188738484053636556857884881384774711132485968611452741482618854083462574651570554279672652873222158239475796772225370470793089486739545808938704761938848525110836049613720677632825439654254726495286990198140638486968610873273111242071840288211703678619492895512727817626077194394937834761183622517011742084958670224989293493698591928787276559820780777600285808230771589494375205225359135738886172218923939971373792538824017172574349696377870444968070470915989062240049515508177706979045289752916773694016485035940192454567779683732647767384219217752642252497083699240239741791851247931956622000099498196995292038728081185444498391951064295903090781508790724567088654153758310147825051282729445301655310718994891417983857575256393391694796016169733128349953680659479750582483143413360271321526537986092977904821273333297706350763764431012654529171945216501818193217365412984095864336949478117277406886904791701968193960499600497132719626442953350975737227845971671798537797223353637509664991553553153293194475362715983006169872366558528096244213762131935456063426258580043202929176987190811811128086648325513152224170564756237314629807617974504005188589800552990007650246953042508557275233776677470929323386636156565161236835623173777377456060378668069303589084007134655892779614221019207050867292441146050103979196469693829390108898669956046390611833920804193771546552132538929808985831894411169133836101155748077452985044792334185297827856540527686588556966747925608745750156098473164726603779967510647389090258392906305584413392625801645883729731592428383079917898278346621493789438797870543563050358727365457336299109799308543740638374577946929845302451796152880791807111942814372047501896140356254720386454359105034260743290600918599021727294991350394655886613424434943715316184941914389151687889768192653883731545897907899970092017125073843953432704456942689818903800975301029174169606868427999707064488433570000991938495520514503614466955719952775073615407862318753924746266063197396858687179705224301457645275543241277594675307119031255863478403343806101830327439155773472230255698521115527099725441235657979366466240497730041005171967861011553328274752915081744192789847155458100130936393623659125740439250517980650048359071239925926576515526053482773830365650835948337457478373609062055171151530976528198631351767901532101097637617272248178289258658313096947288629657565044259099495143803115626289024068617864456379101518094270349761968149461154085696345832174788279113249635116490702204838048906210390870557396810642956863952481436983492604580263700338756536461813930520622445412363515265811346741609248226223998959809564889138183114024395765249336160531304895795930475907804483070926746263538907805287180647471831440882601718673302448454127750591657737798592916616212762664350146410624834551739160068932249664426426004161741475422298990008001969982352302333896609914048077644986618918591162951236362483268266362295143472496078625427069779742405818815907105181054132509692527324010951927988261401385398593306639381004818739094228097149622562816677041488749019256330975240964494115611473358723382345865480841718668579075468817126114505804378849154464799947563981803435667781033358552893150728178103878950824531233049757373595432348609697948379014364416485442774258765341339752272541406259558336630946604740995200633956135275324747135818595678153812023765996765627444780986439179516000584424056650748353860241959220172236762247235524869478238598189331227706969795057768130297873989105886725877639982268309601535089616205176594295085196835326576825924811032213948952588129442424227909260219969968931834180461734655668889499434028654607678344854277182091120128519034274389817611333066413107714850924958741224637564027681444149844542541611143666851563249318586409827029709195905187219980573576126895209310387519577985039895119296283794116142386078113204639652068295754214401116644956761607231661400679640263888849469949072315148636202533238632766414700602896294388146953229501885112348682162891913332355954264023794285403469073089342971114495976045545023560956252643895517213813042915567782842994691562553927175358041787166962387547281509535907551651142137219881197814117571049993738435801013759148488812753143408808286367992733890296605036202943727155353536365563960411182834369641914436792887982226735095534471391287933051315425166737086242172038757188399546465130806701282025340586196414289520200813496956150606345587688856459485046881566689728823820430804482917306207473132275584355817019415881863225688056355170753360555054188584700712461951661615565728766601505881370729485794881663656189848182720039832664929750530627483154935275709295991482001633879796428243130926240095328165662474477310711435533139086602136707830581963566107411655881767620705565222230954342834304674882571611787550595385640233145191143755966335116186345326055393266974892601593700177124142101312141357989808718839097607075626853651650727133010950607747439106459544330542834963549443988012545835652126758641052103061997583486564908745897078403677624024912257136228947225834601395125747013671867352219544976488418317283185017374113442135983709279236211955464643907748728299831291962613523722735178591552803476573539673930934559207013071180260703903711006483582941450466053907097663898799032458962243882771749556064315899751810435797695202244462824362621225574168928300113021168605390046937550600803396313698581430403843183572504382075171816688550211849041071399983859202356620150104244147499706830860319381801119735346916677586449833861684976325662114158443264619385341178184900175426776757470827204398834420715113802750791898225610239076506321517848178053881699827244102574229241500252537443987931850668579900930014844806998775606367453471155434894119030524711994895272122964631621728497311115118692754653935739711197392066943359240376254588176163526396996397604346150725503746265067872893954343708499379461460236046528900022696573942195892521087855022861085023172946744836930821599360089572813765458272554491752422666227151407144062920182802521433444298216198551472733804674646628036398937255355833873290434480116460062321282194122143051540113280113104135496478405630202027824889804909766460121020841492621578908351719285381738100171646910885218472022300865233609557565114057218961045055393821646549223659360571920948827465764563591402354604735943630012493427171893231028340080956568009687708454457362938448035861126747260058775418574582119998845384601227966589796289621464504652619458610500817864940442707014217963823092511274889612629233378033885565252753207296838119146680996361588249652062999315566550667355005794889435630845903658944913829782292097837253791956653647389529134736413379466901891902654844111175491599845417491507466099755657045867885676195074515972534323248472018179078250469606244663461009388671937573945616921431256872429226140821109394437906116797882771843035208334045893932525675890147224867135500122446160462362382457474823307358845700037485909894986470124777520500261113839931533225751065017817132412291465359408098038009512301160973737901701344446495529074553498406101504572604831334748139555071943570326985456401894569663318030170902636741286887984888160034482590666924320253948036311114155957702590090554855145186208788674722961949969504238860602529931901061266975125067129093125257747043513445595758490571728874496020696750789924795856922866634277641924407026667419500932946542166224965762426762071564369287509728944842102601903588914514092375670066806326132139041499170811650419010146814641681011296712212201947366298373695531689686948854565850608291397878814923033572446099400246742793442819155174984379856603237250958617301992975039909546438151878754203887199502567198214800409155819815874220793249003042657926327464771116770312427403049830329028436635314594217953803414851420804989230083431040575567701577686080811173439941298773316537126403647155135825466542697448929130878049955559593074393765346943228869439384958415258534624202775836692376113290585029462229189522820778918984986392035480785912129010470715657344309480417793334984025520655784827305603723609013659424112094641153019693471533502147754405194084022314764404811527109089371644250073197493274819425306512246713519114675804910109896926438184934534497157058859545897108585910655494380466928456993993984282057002891867796066186858846064108274798871378831902958072863867558701507454161684318082949322407032012947081695854048282252074470046886955715990844682156922503062158885878459204924188560095753281649780354047582078860391056227411750823666725474871658536539032376799513596922002521951889638962461536206844027082115347184251162181986715934254690816435707324404684238712183794970598669571601721699539438318483235440809301293059310883018064540235475782996103248707884679980596019053719210681347479208178092228722357294986532713762035513423418753615547035626224839167140547606681770336881709436569930689483066023278503659268885735797510947093812234626618437865435745235714402929462255273840671925806462220951788369126187363226417143848471772849610635919088834741777016801882099736127206656610832684559299815089426061844770197945454525787599759768788639974605527065527607775904637508069326563047138095029160375890313178615601943744312789521483279766752989843183133859049823658051944919725295180070720237072590011005986165610478355971959074250323702355010843802059917807483557641546727305676116497500086060450371179484984818513599588567247000462707266362184291578494749062219932282424113890940150682928178965040884765582186981131636562025962653446822947620731175264262869863152754270052889649256816981217422806210777517145346024536887944883513804611280939771339512196703441373988795900696461971915590217601906475559737380215338678042896820695740180988272630406843030225302092988254027683441764912683024688895863679523368796184116967890176361626252584176809545470026177430255347721813786741656010672607344313850281014292770845953635235214560467955143111602414788530215616329680981501749802804576354199121620194821891642830982825903385522714854838903637153225463417982520649007796181562188499998612367948500681981778539581684759075359955180389410613955785461741278761765392584929008881568879807684944373313924802081049179647234798467858461805060412817035937341618135328621546155816859089744282790328662796027387634165627728241233683288416740958633310612537442615864070646970372250509956014131494853774555751993522683780757096037804391102554890586113602302374375070020433703968570727687497198645662646371818423035486803856453204780117554003948243992754531798605268296933665885096147454879557025620277201077612570073791292204387436171484340025496770385907465340465277110011074235161331790215906684103257561916446538991184737584306898108918644599873999576677423265285670015215019400200563178004213249841285568081257973847514304463667626309103552770500513513061059581754861188062393644430067757528579672142776613341917453461381254970094791073783626276476545011979668252834106463368568148642168270097308002732642855897181455513047582572582448045525990329184337676996314373977703609861938418647204064098773787942638287160989910183564914815265642290221976192340644781463888952998762610469335608568287946130987683961714274431604395175723603651056450377544044247211938881885215805148487382849945924118597307785847608375775714749544368232495524134689687547096161430600349470647713008748147857253521380984234618640501924734615457071970858805098176574528705588329212495855128323025039572960472605877943451386270423966664172704419404846284519373441198805158540364849610393951275856645267872115130533355612287249368799459670331739344286096009196789199366045695403924127524240373812291154549061904149377097916325804181779559739345471836368795133415437084354752008520014254254081118161281780734411053436110028428760287575178353484041887885653181236391038036947408379223483585238431917063413195600151042076107366106413267061445436886099073632369063701260664782969995360483927975801402956503768318034004289756841825424948157786538870011945910492696059998798622853460311883972952199669143427523199533691421298750373735771514740639084296288452841836731477170652290265110165344111486457907148225809541476196677443730925331241149614381542974890923184021346920973867540808486350609676357021819516151061580366034110682267504948015465512799040370789495376599540639201679603244875113022917273812794838846616095450635660499433260208385745885029509952553153511228956404319408552157807089262602551200673663978032065590567486108139752056321486665504824028852057493442531237011327508687172655099733527703893544360252060850249348977636935568681645672503379374907130046687037861723057678197776059478123757838305972544292455082971311066833455846949980504514584688364331920368007390955504390857647713623187720100321093182555944472432407611022156897027125724328426527588769127938426796622002609456135657072232916271047397754974868503635728664025791442899698181797412848135359740756196706155335222280286718804520375354006790664378581221115747841100169990620738066914394215714805798346496912138865831527073516806295049852609393646805596701201116747679915071257565047492894177869517910365338954135437805366940441789943542927641160772234784459376267193363937066695978438361594744022613113930426936957741759180107729981379986323985573598599668089885496892294118706503996912159195673412805457280188674282424725420995477404704365239639484617330271338064864762764648161175870538865716336764377742651973110418046956202248000520753441078654361627453381108914561033697863243199469693809309734135942316397583859829048181158368942906534123528891101803592954670812821775198170175231803307715570933175383381680188115309509804038789771519401619445551453399791880706628246728968182577116299198197707349407567205273341256444904100831540698226361107044941042863118074699575579944953214238746225994297436828647028264965524247673323201237417322918382370408540610038555654832945199680945987594081704319170820209260955961841433187288066323816295472177419086961087374879659347528320573077270327106050492829160865968422267442816263480658403636018091141731272017396541169233547147067608348149706497549643665682530764524510282454047546557576695548225624019214826082275811431639657618184039426811517026425263199797802141318151432696063681856841794855948596583982728650439556299859501579450598926849864888521980687864408246048024576522853377702363295082766023195278691854736252905139172593596753920282639842176007757586856620518661629595660172760481975822232463514260046924285126146985421531319913835271207287875771901713095938493622784986449788050428997203391625430281955756307450624843084713562944309510317545611176263635379703115038809956591476445097628731079953886876042938109718087133867770158280026341751588494700458631662541461510874003445400400898248099808916858672989718113185453354030825693032193081740367030051083532850894032551793678048747761081478035891675024751262769328643821618602199541539214854048379235386038701770535479844656132863775129942383753875189688974713149884157796168342171066944440786465443895679080170642123320927961049379282678794419362283691084927397559689845081398478544200589631180690854451275791230707745554271026717617229409897447989930640592348530805448694492526429965354444629599853035416345118420432874991716710866308186305220148784043176078581337078260294431875123018227301068898215351503893940450088337300127195594421221991864287119205675250139415377752216833669458471098401095766291934453523550373137758153881952969265948626909484461221731874306982651095082076191149055166670494708586944023053597251437175285891340293277569471935369155131952469738946135923087909861472988480619081167284756255209743910240682733905520450476616124825542170367637002740582080480964574976481649376051308138788086647362177741028830966803688440826265172729821938842335466552965845927713306636711986957606215846157788558686506915786443423694200254675498554074536755915785704839614709738095155655980570028149590098266187546280979389829974396873472096785562663455488477164686454810158898710429530025094869292637128122041711348914498041084621708940075143671029656875437187151923137468793529132155783323745043835347998780314727184323531790793045009531442088437373482190758443087524672539093772954171423505810875425594762219830896398496011718203745118266353172643794260493015945568979900391591566265686055824873597733623606728093723195174683803777193324368892012365169073045368093788519106739115231327516358496287908812886912104246085649749258201085068395058921939678641144923703895382051907994044284658041261577686427126048539529348841819362915163795180425667665896733615410044972549883468160427614981928074307294425673613180199456719159881793104881144839907637395321596616935462447203899472036721505252901684410426991276430888410312944101207834878615897658238942181672805037345271276846714541561399905838323858614025293121461025935660608189123289126276026227179818075988296480174686952267818630479055177987196884105990519556695741735983658168214139224296313108614504261297989001767872165963023396191336429493982059193392383682340947111750355133302582075657868796910030358633715262082810155784575019420950757520728378316622699500811291663016500262552072593449751372198572564139211280299031915753373096989136390437894889522154122922054059393185696178757634351051136950498251962989605990510188292825140268933965899312550541425292368969832455516565405784775056175256430888093334745738384126753350118867023081890925491609905122311258594303398913735113976513067788263860030421461236904041887494500933648435089538139378738770782709800666048774081489110801548409996371746638928988699429150437885723809138757847035192666427091422602596648681769945998307258473535007445627691408512721400134321149656065122259651279984010532984029509268015011048776973201213361776272988714228314088897965290454416968664164965966347023987956052489419176121322543127256373683362533858868402010916651090224557989453883816282003758267288443513148292164053609119801394358764166669404801511624952595524193304697415659512173183123436862178861353243831916132339216287343031503205336049089909860132512760044304807623125378819093127506640992519507126885067617200720198483846894085687095926912275085653241363001929143735677473570203100723795104116249805927485333403739628107535869039764796947072027295832354065364315090975632217469482830252528630345699722784498693110263619027723612704263144574498117335472384313456312129241897642524551311830975495330202192872285249281173210659664904921907475607532669664091323043446530456925834494642791684993348061202525932224753414418401249786360675039832197665568034758296461960901529564653889109604375473512762265379041524639190962088438953248479378320990040300046313438482707652149825296496527052451235214162408480131299483098525410390589797018132613812200644568056637593390679157093671422121244641996380041687931691399327226804751504667760456362998489303793376709797563740296288171084705759068661606753490225330599202015363485672971800123164317361632299095996873861753594106480300867874119534754913684304008735818041345005228777762270917941240533749022601831295204800081646556988470986737950414252825164331405987198714478238376478431210189887662468248380255081184703588312232064710204275599404523819429949071766303977565884271317561608056538982097333935589571475899980148009825706990207010451841981502267698438513392722245252630790969477123191737952897307604606390323914171363041298718479815858703374861786616011193146280997597510714663811268947235473106453618622213904567813934752897491780715439018753902088574308352704363787979869523366159859741729295223671327004610620937131740797613244721479092228479780318554040796009502499702701896133467342664485415213670119316242393509034264130462631978625499556336699184594505531854319223722506081195213824586346453628462992556808738393236789222825194075393584794777452833086518646892550518743226820151375104191971662650169022923721670727725512531626751527899727562487585455517644366962830670091094946874473929802169276972946011711690621504930079262346674012541192292636730207342467332510294673708001287086989402799783187597718005502250121128198891637360602289423817571172200139907769895918751238302257259879786721934060651136612498970765739700001822559973764871721789125498814572940428797590648914861168680938897589173851540309975735752211814411333597624778560228337907796912853590639823825536217976265318849216298593148239388587149171203053982612276463813404019780833216231903709810584556175669500945096541335731479722699719007985151304856722919159428166516694672901399634095854251574649987321024768514923829659043439860613442566958928992579545207558013009558750070611956494840616770358917711074509315420004080322230698486485949503365914703782494475421329922464210698053227678467993683754792076424226649350951379210941563460034607439689092723751618306387659760917012804767181775421623310666590419755754517372688039963165611271936600587878342532736076953298376765000259313982065494902863852096455211308853737422688746204897662273583972104442320231114365652858226613567664071396780437290901993646918284985776924566430943118510988292824443663776042056835826631478843157949432082539502142036458620146862691866993626331220354172179714703212814666766860009614504980421476156674182954772943311084490995105742355943979594654457245827814670589039976618651065479033044354889366382405863863789927313209120481005620464657581328856151043532671469360136611232350147029606942202464710112175762279942916556152951099459397291328535863332735365006255550485589165039517059572818231572141094033110752229095805025297615405260752209871049554682455873316916584409478148690923115049838526170432384847313252901800380559421788335095798896830278233721147728360435613937575365428316569767635695115581750004471718198420352386433427394809571284366756623030564799805720169488774277298619327910878598999083771756906026342882839633811542842563207056522452457670573172160067695366519449380834081586873698611479638231145749977599253657485056320247055667955632875284601975547459317579528023289079731744988226555380827171635416676723433074000162984432164235976883067823486748172340874467705011821007856597468811327383232578846907274271579960748906046111392408457585697551789313445809923836553742198595728396007116486851815319225426373010254541609721248648593652107644270864006373589942687632771477082253777006738896703793450232659157396178577107657560511708516891567000284480057188042167920201120026012001210964396739017327310900617892967939469397364366247413924316175188953864115370462167663024425424880959930251502883529684154684257091389233088346595916881025451144704828833009409208109854724142314134352092992779181846974202525103563952823384930996779365659093275744802252797197598232856393989747217304031953688077715053172520810650868850964037865831283188967159037210679525428757705020686496066875946131475226064865249014361061815147508800803040594602704260013336018630404686213391126109414488839300286379291465884376517711901381126197965497213081747770600209440452043839951472738773600711571115839549622623574679584530833404530049029440165232962731519175200126832478903816799822891513219674335121963365621986588048189066346208693144781550332335336710406877945271849734532899954528905993646338461976116027424918230933367004736474973108903206557381592851889566277252020746321603879100666344525681825734001801914953826298371417787542156024457865981329226180240013823645563223066804249462039473122567145577784917091954355553506852972838273147029964606262908893717824553402406456470713815780161509597692651307298990867468690798443901645789598932162271821441420221500471177568125449464531515683585631162949264875533112545552096348770908186953238264462428041325455895926265967795898113550188553290302082275330308611013009192682162122737708666112285402382465886091513635811782846491453582786208373807628716451309999531397219038393735775774506537417305796455097595378926481569878142978655596750555433965037508346803267931043276659465977661420462052427684705511069012369934428737571279949122144554647984737324423558437466045174285826374199198384110633006278898046192376759268984239196277115341728080347287343480904015231223113201969475337741423707208273463544908253209781269443797198997149901634940179963128014628996347358525679211394296181327298650468118933520285281619453634047581386820240600030541991951432828501986277895581673632107645890948071623948119099867312873575852606944857518461576726999490785443235457085053187105996820571088427373703628491369575875899817485517009807643756315353059556029934586988132190814954927797919189853742766182808979384713883660771924814031230602931566107855786002215349403891030555747707898389453895788516433751335545963284070045666371418798460604447925526731806738539760481642966605265366589874641540587206438272588578240256169271587714900066089321674467861586460835738150905134465212999582349213778613536163976734474904910587381606163916130163873106173068552025910486525682255583742582635115375813175004774725475738018122001291350649117056231021337344087209897316544551474641793865837841280168024052544461423987537820525250355067821377818737473874275927204031511960641575217553924626324513719150547240558533654610377844888324004428318334295083174025461796522937654834857363785260220948330442051416578430845537377667272740905039788590713529044066601069204438567895687881793249983170427038251545198819360730754405784532239877662971386921433317003532017434554922266232279948390685829723475354226957875763337806839592633044629428602733812381521288096277669617838505302714524519968855856705376970262217928334335317274093627327189235158104866290173163581793468752512317082222751344349054336376422683533051038236779727495166882605987365230810631816162922667438846510308773386791773063932643114792619067054637994173463480569749371306432918473280699281141578547585399386207008121333915670417749846135321599652676799436303346881081423866801761955887375283065847018632282231811672161537460693092422203880135564704029361990315368796118318595303159147374061930053076096378807136416726839574181857184406956102682529815297384577388585802039245186163013577763601680719285097293966768363901993937758705376245720606318514693120493676435633861814253027579653851999878146968131006024627825629547295500741132493156097997091562252241506084854104257097000792536283464030453431040614284129639719740600566732359857667536765108000810877510031513578601775231135055570113878755180752245068842118267287424703472738341464277967755483031482061763300242204387936335985786411948181791209447327400706501873551802365658997129327490467428446100338351852758815701524890696941405142552873750433457802170639834607536956081097112839841028710823620026023736223401602630145501608677595573535649644385661469169111661030433636691517916235496023998560184922214597142854795050124496158085061239346626673987070751890075021132122128497487388033272220229269311850026723432873415555024582528483798412388960392188482772283862710553533508833272814655780284392754863692887990064855924019812698012568130587346889320611635362624857561785560633832495555831832685360671152926231672491906667064413156781541692243870716415334849234461628181646012759335662001537668622935090716455745181225037172375059974975269967384164927413825663991399423854234353165914365644004352259255090155671189908276072061176375017916280842370030072755672736686997770363977324872592637439788171243424167054313516835527559671123565580967256060848633086520781998248730705592171830947397182374200433840614195559623323002738040266803626644248424571692653974223256631743664474723280273044156499008636912666908371554592179924525034039669626147067221647326435671766765645719581064753075147081908595542132413577426168011402412124505142735911521056172160806677377735917664253598544339448319708628777436150810643303811508242671094474384954599014832450602000332840856629170187853649577272280627212031575975211305154641715873976899579349902535648747355157794453945661910392141257089975262366815231575501359070837213049967471338715059736430728405045043702259288243227111716444883832527591540698747698377464677990190461429841100716884233748481272872584474267583089879238793607960288977695527680576983911122522037335746838042060978803977598687748702816850871524539714906852918809363789141877049334340383427137382324447934464648925659714624646723496004088636616441911312836209624262975543094120429838435551159692969332798855176913319567920409387565038841021491815788698832665974572249153421655643554584858650532661645767139149212647736297462008217776718417746850548566027793301028384645157355474758396305921371449143621450865633807032063924954861652596940243369040281369628659517367452487815087415400459923723778189192900121852226424992949053688497926521597385334874571305558367931466715203187377168863452647525137347007576250527557425277975078255009740963173488991020969818566846390893627195775499081810969161964354469836094147264211307293069990189409398674356585089092375175555757926687053694057599012539911740701308227553393515094881323128322942505837585320518049534574206636483558444773848921795757203637306983496061971103195523822739974330761831316356784649558094398305952912488606934617935777446488602198861334718407748615827758905189740779838359901182737432322808084885377663831633853088837277402340085289126063973881322593328273718923895462227415389304306066623287650471030285208095930479897209662450335809894181803943534918777493879376790775044612625364418621285663152550511786265636788721559807892308956342001250174611158628723063116021619340185317703607587463024130630683022292743542651874824391931482617348295872620186340184204607681499328640693728662444948819544040059298616049731676122870562222967398407763639618247667791862605466785592271027943677656447544200896716850934613922621599559245066091523163468923666057150517466690387881072782739780264532297470859032332102367764391674086834899812244438861071633373902666362520878657312239598627560172826082701660575306782407317047473557655875890614627217122404724440455102477708143742477497286622174352265844418551712446605640098955940348849647687063909226382741750079585320532387104930088963253361634539759746908420241737333188993980674853295419731386490530587709749190307900841792843994490463580463340946198250437489899283411798405696389963118075709345156475104978624926754060308364601865737042447297292656550650982982318267851907290085865884465558384419689385097747092166654063738423151644589274562347483321234890790521292941847475733041518987851655695355383185426221709977243019554871692376999989334976584386767741266380125907363460553199038029323805595526146029450739922745673830260093309221600113485995442436251627398866722464709687208197591066169797113213873662752721663479784199371167134076064941616268113909704210820686753558881642723599430831804172530335247133180373505358448892171861535995862343188296611526289120055550699512834343406774341827245656103833207875818283764611636510814102777922672525795295177059607010859554261142590723501537033253788686490167567226025291903295148786829231954522141223220793041445338099946660858404909362486646998891353503881202470095467750690452778386064921616355875914298312218770001964849588191801309000334718796108372333166051214297284124476531361359409316907635052421863455696059984812391585484559142078675318333529315364655103126718108486964335522724767360918023398085483599184711449316545828600673575763798522936817418073762774595792812715656457809450400698817396752521925920676059923173506076397830388752054378666052031341845138303489373086253161336268911710811504418787778117731597005954925127970659881186303602353807857926132581093954116895563390168330158146038709427394551504306404187434253186638853727313086550630923578426160414115173267084259496817696618445014449677461620425325782047200563845074820302710783875109887336029241662384829615380419897561398991457896522602752784063301238753667650402025651155508244529237950905931513901800702935075585493172612719100622173507150136148026737857737795276286929976069852747632029276870323187367868195266758607777473230766722199213547437785182173809691881048891303058168484822679225376122131612326572935735972008973524180771551299193412244141834245147583233492999420291181794634524574813436741351354160760882038789513918776237773023161209647609182622738812239725356026206288728148585953704293950771398081304026644698891306452790270055863376584737202268632587452068276076058600468917602927717067672566455831820937057875235527363702282194297271868550196352398639369532279094563295845345662399328278167893139700359812882948381747505573380396708272883411792686436882069728540778928403578818145551457953675705588330756687462942953326326692742231931878233539443814250277337853972727824340928580725201038802264126970309185644810051865884898862564811210996093929908942227319264613085706554484693708562805024703554079493318470903340843792884561715674859614931659856399946415340104215356697112820593339822181501759039013903060372297878225752805331786178236712499756736376326400477014447181785782892590863409984916071304641104059393030909668429773127976735476933291852830473000598540732226445971844912287294885671863928233007276336554385620042235333586570947976995900695514666697680157287271644006804726987436705869041108152786024932132367626406867308618666217128050207746029374506568367899775337709372662095818094933455005131435720619721396966851091973021073913327120301954908720848634882962869384143472303716990665869894837411524811021415575008140675001531465139690704155024105358718898403850191677573970358236011928502810118495997300768134361403345007675779605034848975217185357523822991869588476572211707025538440238829853619516302784552567011189861041739782284666710356067819077713943895722161009912363180837665644421924566272549123798247741686145325827908829794121015079152615204704630843625529407402613928145119658115254124092082888150833320872929360274708131953922549869285072448976841072804403482578799682124401545590694560062702778213520825689152259629652143103444102345696523267853266541047312754478807002750933884389748122218294576839884619309207129192700188906949778447566300581459053418103273943184370254213406596834552163677015267678476638409718184367004322276665929188614737736086550187668158491710468386833243656052805098171166110387058375559287724132481692332883967298127493688840527363840567986577756660542191262776521074987663207295270112670598900771992393351295040273095373761092699272102469540395459882538483690366618936469514912311426623431154930362488543153016749643724817278965695600264557552420810797105877861949222811384511465383404864380973667721197737447238104901284343438997534126803951822291351573168746683832896434271437041383041660864306372282243451079775712636305651758439404797325998925461163265907704475265693853506780074134442780507639646097728431363460078202105123940548410162820594584993358415987494993555853898449274603354944526494704930306117797439227688770578646291013693802702950064724773729505415135328393563680972327940962409042611291487908993432542794453297532817227962992439941532085903252715087150296549501454394290676528632788701608769086030046704235427945984025501042361485297508991721780020513736844200688295695152431924785928469260400181146693892864816204684238342148529562476238609093881248755232811843468326972346017031834702867717725408721663255430443005547303905200675320345053970109196715354798621229314235728209970668635772163871286525531305781583375573602329706014453725526438049892912144416009291440801363958796322249937240290916616048386145758043846843253771919957300754186966251128047741249097399070722660133655816569931458757364973220109320835989993631189774599125818099616934495416542289940507411778480769081269133388290535603887703080271737931150968526444765399852413344897860258669198800882045695873466459756589371432970317316399058640764933296522881398906404455557018295221061030520238345480403161173046140868798711606875630613274060395402075709109565424423269359231645048758938278206838799410373410169413693641132931196867654191731414873837159427681094035635988560356662718778828178242895047137417094761453960035942161259790664393390380066875335763915677998748053965509351044973224287067511094889865819383113635252927230589534021181712499630449266319083979955576448969465392693125736478463767892782525037840203509152920942121151863125083059608240033177217208866357727390167427450791582893805770684151930619464956788706174232907293715411432910976643097108384568850006831259674386008588651932011671966205601129583250663971062976707762198940232695739668531377632523992607757297939913476190487189512907773514549226421378030485732950727783566082335698847056595934590189509747898525177501643489017154631185849973033819239612051845543943996837915999101949409167154023905149152330790928868789791479992696226330034142194260988739208552109745948625470435950592540018044425796424854862906134196955885908710923277881554203650836490686170531691082997315902559784750423737990537783287283686338237156416487983204282559414220738720281907794829930207207221427074457442222411360193132764086437448949079635787324964161579413687078665977512145044066573769379690931149135532334766827181806636655452012082271270904678602745601041868468259060913381653067090869257718484285126198755938196380876980580946381425231989492160179417727623273170473263500532171929350538937185174119432635378187556387674679074871467411048144249284745168610446539003134953856530639366142473034891388233175456518496440875809389484010589222152889149105745230332841380953090396781122632373274877453454041256586156511990441399319341929626828106080063046016630797889250055785962802896183413510476205419279610579112251994030275290035813509756179655904826088368299722447617580174309003400412086131957978541134091366923615451254858422129775262513977957404477215730624788351724616104599429510256611538924332439540905203574656658082993501777830257985155422326422909013120153704617996666181760880995646592627633412072970592857810082756597002408103715417259495344518907350809789202016709532164149882550406127373705518422914109602834917508171450143607384350124345146355461112931970990150583231025266946288980042075093874664216772539628752471034655627387312679688808663905333679294357638355943723743365314413259248230343146626891528503304668546696007622825314933671506684725623194548031576273116407744244404077034360383160511976768112878268416509719921417317255765991919654471884341887559119252783913311211184104965911801557925598445872822953655615152326388046851217297683973933479108615368555407780374096261571132404021024697184794756106189499134414965658040897171789905424359380143816877438383124110704746460158673384158755736915704081410606155901445492526487172300427019667027635718584312529391073311429075958434750632290022934985491481517309882202336425791479467275215606349552011904728233452363277739903984575286737004986467391330556700305277180020568979340471827890206854830114213349353496283016079141800069290159652328219996622355571053432198374892464408390856265842503858795152742372974601042377556465028516019108286722875888434798627710949608023071410106488947511201440599813270573263335003735816367820228649908817654490064503151509617921604128547760825881932799201274939902215244691199747621897280927429389931871224108915085098205162276783139581497514001098388499368585846824891178017894208360898925626683569902841791735289118273607960367696009184032865104383106787478372083423692268343989349873512628483263946564926296262085064637345341958240314028166712143071181588100487560800297097129967445363021997638923274100801983223137391518678257264637459477089636577782160572138922468130804754911044402874067882729640708139869983100425699969504297287622443545186093920635560578719299645240224784158992431008564669374884830870274544747006093089294263200680360937339807812635511818297685698689099102818123205126772463206586092763052302838176183781220142327908408691406680405414631486777564082545790306631910562263406686080193567983961049904576912828063433131761295840050221359239051569990215782608483138601674251934889276379944694517348760739643879481420850862936124873437274821286582873008306657933852204673282709519106675582306393224330059925883816206604687756212893269507148551017202613940530678757740213843780271877847966696654092438359058471831827680635487780309504644482713606960226868874514602170674221874868440267640857170701708831910581370595152715782866040349117173248033415753738069971475765468851876984095253239544163389883349889795900806865195073540755622312452665024101046020359154436251354068009229379845426905679189354867291185162291675648734370891911388644196063679878817456184705979224505486116229092187194547977427800309857524408648868062062095415557856600037596396465195639870153309692509898253883235487550476452121390871094509643445175332934833794863965490143362685231236575583693263818580491821687296366541276543654068313026919789770471106829053779081300324997107843797684582090917606979633522071333712495755312160689594433815232011153494098327898387417710623156783625620838313924210661914300152129677097061416226864882477174209928853778334554022065249954680102915715543593610038623050035201040735042864480812284354632177838715536205383456993443097809114607989139825974035002039701020613060247979429225872623561568232315763094661921188448850450899526957438329264372799070007695583012974696059168758602335153414556636915583016184736916352870840283377455174985643449877564290171631874669272078280388267832554781385855963737500648646743431131801219236233551033427653055760280953160688246386922191896144961567160111386656749803405003528387745694504582257416029821616928917712558298588290693040844380114532237047981534737957113714991575823482811201616335262253246843283109797480812992256063943517666216831721779730054269814873224916600512032189083823523293514575118112146878831692158534931881474478785608782032303652760702474690396134433594523986685318050847583893092303393694626422124218551007284449905830198389573755226680861247489401843545426964696923946121553565173584300833536911523704032514305136724554624032362352403589836300392927406828257180235971545761100792763051691005645460476141931688398750984915083540968502485158578805274349879682927719458393967340557986071966330796777760021551220055029916919984321761882437865783115747656852114373755959977632941499216017087201098660643382456961312930743024524387288423234422521479968464000717402436803545185855011176229317639056714216122443743056709031632111496298061321847931972046911414382565113317940844768852923147308356234411423933363072183556058443656222110544646552209614305750002931455131463267713254338413758384444207447123146417796502436898230585323095407947212620267803210934187177003511851605559562068848849606814758372218181245298436476190192902066328081035344885769712805537568623203140728231213742285015314869703979551507778238044582211379695656539441029321302515300991922695067049301949688006776980521025311387299566817004322120786137984269743393848556204917118063897819478561370377474433379333077994918126079636637545907953223351910906770108547319228187298888842817144862920002559657242641570833650815862140769567963088891348793191405035692775796731703069383849023357779925988734771160282634306628844177127612815981963384104469652059496030796985828554741851783937210872630540201924663791426103592884874899285918258138234693646205879532405069068459988795778604929302952115635601166492682574964514786818180604385910906413143106142615139660077347086772057604474617662657376738632249428131490449613072113267133800397610742186522623117925490454436330724501385451640295924749296768903776817613053195376379743997022375452931501578813383875502774085224165053261936192876482267750190818842376321157285956467983639812182986170266652356353156230650555567165505391923250915058912960572863129833313187905087536372308708887709565238868346064612117240904590712065167968816355949157509418742845354884394009234426455627313155763339282826999970492398583899597697050923789265110510485314923419106075017171447759703693649402460331788096989446847585425345163242123409033471189926909520859162921780767772690229368392558943489356368135548929101192798740451593300198283762267427240822862372282900397778624550122940699832206116549955648143195844220230570045329688098654041391017789872299802319422494688944469340086969838651483616634301955563637182374421182123750997113889604376974335576708748370527540728237029183219789918766203484739019416310601725103065278600776558172568244121144576401030405665349568754467075056657695913486332533809177896919199836378087141756807007899353629047488583340260588744967870563093107872755353951556123268858251682818453442049594797856727938651030173354852664254274503335974254562700858560675536597902895680735340032172919473982421562675627714364791273923788347692594846586986080394894934803960628782950045907957147067170076823349497533068635398738300802130541027531461622983598963365191562983903454798418954645840710947170030472100083495915037868423577808037019817970118860011762390582142531431365231000879890979149221445814038418951496948981180829646038025769729408347862942366132158939667925764468643450528982802396047988893565346951090872001308711433912936190629640588091163668143691030821961816158941358109291866430920162073115217625088271406021139017325352923154213869276069750714409597012878513348344396549969999279434157659637867595609408308513008166405940265354750915981576134395237707668886317914928411508288242731948067559406448965892702336027066065873832893490105789390181280292248054173717798311221728826261697179257770177011729984834092237195122675427132379159234923514686062086970823572514116144343199063002279593188496849356297351357056530187486596707854061775344100350650814067280604430001244756546548264870875038057581243083049827248817774064948871543977862435679354155466628423202501825239413169502263561511727837585138491754700347621905409896316475027136246072061780731580172259352146695318147774212029469946641542250536089702983138928847454065734319558074481517757523683173595246690580848222149825888257336610877401283828116492810810138586709569298962604224294117234138439679785679058366194133102602442278488313617019900386035534949523164408994439548118536391163919173239264672375092945110936805134136272991885325504679947533638538552030803770221014518376561198786727816533587774513924008982174638264177258307018217983686840554348543564744758003831577015988638639308323850617995571354380261638997598753622235523808810786288881941774692002809044345773017305268797617546297378630737721859667484970782767001001613207329165608281809377187639829157995457362609938698239905132115528013825194692666237209906566774114310275615841369292917970597380976585789192865329327761452900122204801671358653922539881572149575452810986768375774190462620669022319595866901293397944207921587737393461106594773400974241035280310611554205117180959803218023412125602062936320159411825516942563978464797333279445501899883570066267742769690712568242005886391354387669014404037645829382352181507170955946098396490463654445482241662028482662995217335002445829063934293152993925692979323359721547471795253375194255922528970561514766169086513009909573384811361197630273089063163475573508000877644825169837825182587348993496819208999493686613093042076667530201838238472814624615155449374965206781043383930778190830136033903290979313939928325965569999682991966695126715680705275626810279198781944640302685631237014388268789877207309787080564961483606896474695443241584982870682289090911010637897343738139345739974264312202041851882483902880524079075131028881572282619604022749751259849811053662743540340261443630942251004392458151463904532655480299845026723351856898680694284939753068575524881952331244287139951437328358416296646819364142711783681210160039490036769246894784799961712223313185981593733279628702796242624995687782136134339661091315166278166475805548555884913962500308961832407507713562368765404840749170300721991081980911696713258387371840171063163675924175505243327491536329015347913318028377526717966066759535236469062755743242967757523687463937271567811913054703455037001535338659154591536114579947521212206701061942839606568562167866100213815893307222118971788571389321119744624914757259029340347912235236669489712627550059345357565651297806776072709599595360113201665193877356235927005423858654088219591603303803405964542351158008521801384400243190308698942113897660162629031792932282316623924656305156310486191844458518275667305351603279246930285158208290208093133662109692178086441923989196234857544416021399528804400917093965145073319760585243069934228982483457562647898862276108989239043747024206696259646699090385962197580917612493329151490083925128773717207005487863129293822627698109421329475354536870957888720432511558779425053159137350847071297572416325902832831043014774313880998161544204264885676427649515777847451820111987003095435450779912487086187426176461400101899300291034210434370679574310642830514351245139517074216071303787911528994607584387769523488712075666799088101399669921988377799813374574154888552281862986112434732098345377372922063997192255508487363306356773895181567606796572999595325130360361959087498653720364304442537374761160792440213249893958790716406084083485516641263496993907282303619181310951363748378492367145761595137771971840636488179470022975609832292378623813170070706657814890781614943240049412115753404504155400234766994289509287863486565092550660420923969474047410080099093550197058629964624936723570879872343264031061000713380218485949360582215207761560031291846135491997605944667054300232694402506434818970692127254756324389318223771673145819240105121841311140521285808828233411890481746263631109009524239295793061700715431893901642819734727609565322165249374191963247270749231878016655872680169600939504504953083496988536648968321105627359974969115984714721724277902803012525900056007747949735515197906374617407641583952382363234127284548378030826492977358429521211493192929693527116257690516434922660377349185840578855869315492958300089298486681134336261074589087565422252913295419082078399314327772058115647720275725584401929045596748282038766798336522151059900236866219012164773283488306573031175026059148140673133214221727794212323899305461519909723860367188147688040585187189913373392766464160991707191575135945607061762185647471140039136705763870532620638778900049722643676582309122583928063259230194402696886012476961535058459560805192820446004429000765330292401473165513774168172614566996442146850748612596484215028619396664020913698450917116831412102556118985050736252475454658697333694829328359690363364193233671722008662025235692440593860202237528044183870398144740703055106926852245442207790774391263202475522778037961058548850653787562155108420199750294969214988580485804268613650491333699006108092314518404949620513590629663286375126494531508864217609187925572907426821809800062958533100805814045204155748189772405304592333550693422181330591360479075205449156097461139504380982835649762095848775167877872168243878429073144457481131638516302080038507309453883578299818137093184577544640364930892866903712567763542485088072104748410837759326732825503137898417769282975915528213595651406740320026877003272854427586009284460862699360161367951105592959819992258286193179850934789722308688020054979701155509122657239914481378031024664710274654546725858539848987744364811395268036821279627903716165538536338111394980559509541697039656429849590523518956710075534583084187046298515144533270910803685141797445191844191753126887169446221892785857395794993397477133031467687731766440674997070453644495924832832535232146124355704442413742498524681307858721478138162339239317990172418196998535317498179951041662812141666322347538650920054592185726180169316950752392225046146839744672418864450878339202672278475276097760594073406294274461544203541406424620952444477226744657956187960497480808836187662972198230105885373653253863194180912898412824400709868691579697600494338718181886792184402367770062059851674432873261569186569355479689405909474625515110879506879104806617421598692336559856666066005950781718953249902165208029180390077430205111728237721933323003976147766125256860418437348393563212104636348478685507386453320730547110590990058155721614748017727492552904162127747054896850915973324439197428273139094781211570819222479074943301166143248146632412423220851670616903003201801229071568943000158230131932281247743144560158777590729399298010137836872611916393606339621183344512814972464253609574098456605939478309240965934180558301226514568920030794392403661010937602351011693940629941873709580004416623150264200799718250624982991758877456001192723566764326259305179609717550731981539242341803856234951075112992747723093396442175665433503070430645481938411534110768274607847250691529263282087390398297765274624146179990601910213401815133571309850657035872839892280446013844639597645885321404468239377707884695797439953917767846985210517404432216379035541739275656930881474803688031751182106315619669291538045537529551786543695335850678039306006606596666189422933986501082349931897196161494190892063956970533503754811752821658671423795675907105858671335439683164591294957810716562865889535779631491421607691480260136420517636924371233807238174592293622461056945036206682502830543900641577265547620377193386223954034192464748060883071684284164326162224470068908970884106181970637878156321816101758898773093401104820958287481713979661504950218666499326269864458531875179600490639480570875910368535069292214771747145780651817440894425513133561216551869201105382947361543427458690760237067519411770634806930712180498941258759789426697255169467041055529316001649467185298159610222009442732985518100197390524443987760732559061492843457865322858517847794826221848870277622685196721098380218539702467385547475409044100138399573276035410040534036258556265041679497788080739786623248120887064693769687220977714721364979576557006880106016734924507807582074976872628049561433919908316873029125245644908401491077146944497411475441948650937456148444416561798065017294867848560877705538779718946491365951264824565864810218033465945162546093231572392006167837648428658863502241248180115227948393120223537921369657989336096448355137026395906233261268187736836515603021772240136408318774471346128832090051780236283290539807548046060036274591821024525598970599242222574855740694633964596982339985131737266748507737738175552655076158720083649247243590136556140000567207505989259601924248121236227215373562392085285240567890635936295094074208020898596136994706372773682227350514951313862230326774007397433074427294706437789686489799360614671045773959739558511300411940059835140261779175512043220230210983902909195546564313261747861069789484007956832635868053176634853206421484499306531864922140115126848265130749660065481210983198143784658525825652744541124657854777870345139480504742519986382173286959621358036617153154089532698733458926554870475696428474756256132019795724295875568841183290890135376711389855795926547183157723692259825741221525683226568273501893608471549386209980003676518095696834442578438782875743866014402251879276171400597898774087427444010329912926494931539959350441277892521648227958562629349946907817457434169781181880046956004366720160210055924873861741887804612127267765457748941948694178089813300020615572729964943217650215664368009121739885654387292604730586225087972289365562325335236546668643733325184004652530899278484555344616902707295288710384218279629726059499851694541293649637552458816151932988436319159452387170326099685844278400635230405408832885639242179239447412684179412015664743776345610903132423981044381346798908086517191552382222320242639289313970297484592219310594803373720230790227780320358392684694220856197893042334613478141219124275870667755667304093241154202269995288951431705912207325938554830165419082844572656241738941350861307868515484441379307494933751632492077509701180638401921811791774282984860538952600565727409849468090346218851969621894961482550246840370418927850930390215662454282692493796438336106297876486678620330050935270226732467277900432935797930442659215742416848778483260546848648065137164019811601804411509822769158685327584185698341206917837968839536212346603646468070232584058787491220966381896154697641753798459984963129726993633047424426492528624765588784621913835359509374963868182289718547025561949039168144316807569723935569546242065988597924028509324833989878466762139696640050693375599322953937696241876261413428495078357498529523044973482106703390851365167842601001110185853503629455395812280516136133917799061011872803218427915271822061923646641155038589758300449408240804453359105800253289285272900542181418167838480939860137479752384610318964980049690941805682702522804172047877513995359901190842873232018069638342234073702333286698428017106429006466660556566850756817140329714382073333271550028808988980702991351503274251285983832622700573592233881325936960919198729591307844136640850182003289313173291599117937022046456952729203138686138763141540339910017430060230007080392965610970866445069589696188195087747024030450423883036303170412945359627155873266152919771684333617869974682687217662859438391309625523576281049344334324901601843390400598205721779015881107791460727187592761444502770830842172442294778321818826849818251316809923305901144140544084760733361491904169549003631666038707454934462452984830608623500634295879832951916746399007090359878049509779391709574677698505113949298871076576427190101874590700041964444596055324086765403181809327153964241006939578047617811113944256427680284955232030603249111173786081900419846886580716733298632552451182390219279484034719896667642202207361530595163533924233591564200353860685567833133472438475292456009794604969638534594734636686787467090535624234050519275576370631477767374193380393541131967103116753504168139915714711502305018132475484750235409471506297081613336086817036239723434503366024252645258924644458164580882110507952138154576872192519507004822693589001712998490314743629205062227872641451885441242597506585986305823286982027975112359997253426471092913972921749770151458181051483155460526006486809492726370777011989628896126703778625886177748403471076453274666288807274399536735559232474679720691672779283694362265429659837470171774978359375228001968673923595524284071931020484428939287466555937186353435720371262296398757067151476011680742821668331144594403187270841805679070510533272170964520621166193390804951055881696223898905512019615707880122901608670546955582376728782444569416074147414549921530807399122704886623219866356526173721101135597515002263672179559811451079846128434177579522855210333878207814163827261900746552892956265256741366981400886827081424569060981255944198143491792973909549851449957478730784378716430042949134194798955934016022917603401272125011810974153408921692322613309558477248270605170105633861592216534269762659238528532083386304894973070827720238898241982771969354257659061415759602953172869581690797841841537696447478379791399175421786129435519623118247049185152649853970885749975192289600416888334806743870181773853164547770421593410070712343953841409275622549575765966411157836053413621619717678728783093948212639309036814057176625381549621288353330521810147730582673441278258289793413765671896238255650425026548522565974434773170073613802242581541657480522272593320539731137460406852082396070360913971008125590406640622338114409102171440244843662314097103579823631360448954224221387199729762372244713319466928107496557592845515689116088187438295613520145750958861838178969892687211573628873260207504689373230602945032045929097836561854940776698363132411794485282603170507719005404380745649851582968748207639220153031201669733724506007825109585859978589794673312949425100330689038676005445321644092269351509416676553381098598302643772260929601667427410174148192397098230654136388539446566908904008556630246125417982428626491045870958277901837920721481345864987403132362273058913856462767253947744879004441762469214327529216705227866114635607212092968789099825463582757806728185232093502065996662424881314670994800483049321328194792563015117767372313360337813011210181436511785099390747896115755085668893013772807344245726618233265767759577682319761416654652781019582974546452543346252057202427200720487734504816456896360427088730530429292617211107097339542013367561089205652940239270183685833985191896127731726559005119480488754517495557255457330902476518981415199769550603636944290711162881635958139078089124336054313574163853522563000053490195955932573383909428820009806684466629205038631772965220341185237891257348820282984846143230577197095166721191902927543557040031159540989431283354694098087839072338247731973894576435020286493267811957971743853990533060728687846688466814737055507807913266107236089920662664579383004784892194224568627865977762339019428751813950232861162872157565869237731075033920681453687619605452047468368667489550357650104287125615856259490989624298356227356185048169140398484275295018314489278789319838371833116861298704028357960676917308059852311886084852209247478714064687032009053308192787358594500491108471822188420534204591411723397168248317175146814783647562015695414578738839221548644976991329248834005027463795695540442460477650182539156913127889085684602029194886322542447320789389310592858630719796680193581401943113474547141036078510334559917748765532210935891623548333402120194502546800088003934502540102124180616545472168479813753359572240762390461870376009332128436617286968301855478240211188138067861559163649541941276650688021426721949410062179482498159449150215918333875222226759046903514727881637745616535016606222863486849038731154041268822430120122505818142138585113897461205925231470478588159989259749660454772778979820926438118021907505571830556178527081945506614414115579649816630250052487797849200125651739152211326053093694708957384595027740807663402805463070894102552383256675367311409728690352049413887387494503745474339052419906821713617529806720397951856237432021387090321628697366659687593257300296537498354759888204562627672524622514062079628482346571551269657769724416652865265553835620488357381185639141538939259821471246803817739580743107992603397697385557666736912878816131039205732003285884850598597971987950029659368769742308866498557929878723207121417411351623648200787278717260741675317360406059524752531279032634480574513450040932641381087887008322346722480334345908156645464221889707706543108680148983009145957673658844925387786495480768661655150420991353045443304781721335973182131261479656431379629143960448477562575927869069277998815716084513604070577364010498092695223128085679616978515149062406997862386373568010686701701951389977385509292176226223280111718065598362078004697294546002518777146803588348187568050547811146358181108039078653548961558680885142896624906996086353288666219988579559056913289999719983316956615592866992931061559708627420512224280108032647712306521289330520906485328812097873472857559724386082188537617577830681988772385481271132893208343355023242787560813806960503182486962179567114451367536385257140319725937985098777477688826671976323604967364538309365847723568879348380803090821981808114461965189449701587015212708740960004734236225251093196481289003429628839255721336240735180596294382148094359352450483372362075645967552826234626218760914150754045223955234895588736715907691202247540351385248291969106476028301622028644450056591300969996189625874186879792218697264908964694984495039477519415329842858625449061072794372840764409308419318640291377216197095408647660737611138227210472302251573585717322788093340344921646020609851189158580163768412693820308991458475006124739455981333711891404069998481350466509531532231259899417599000047419069051253251529752706727298103731969501025263301704196169478965194888028205751005157222484243116090836207420060018525200235362663919748023944956929968727229647932045919248464170710803649164619590569441822284257140064172138165487482640607744467819776108849149885180162573941565714905315386791123201307879790469319215276014483378769528444498568608883331491387436212718448795251560710312372643960254718023374260458591316583966338252175359927622333412231734401993546711302456069398671445507365000504563560461162144036545233999081079528547618475392976630158845678527067460203268040299752353455584704330800925384326895466558889201914071894850048174405701713631420671512920858524516150012287284797197368026040185291315227742350365754046345713541570917862756959098904187172853398539607737471248052483767251740588060247339752926025202893393308621412731854322962571648179408156883613354144771579879944505162138218639563383463721407133880281702740132100567844263895216354059739573193608677071570178577076080704353448635108258187160857208191496569410556166197885393940660114503545628262985262758492953602986727459529731706956017208952737163191381342339746858583175785171343759836823788458530200234215264854096156746280525855713170912676324044310024838317428695554100643197044798112724738416133702836529718763375355212316359965467553603424491575788659540018320404307670606176656851480161775774628857678991740893390215591357143965705403055516549875725686234082231018471037452425246558508217332191287660469885444276254245350557667955936587574462566995136036422366148717864404957644389777691711522280583560310056185530465769176592535798524249483809148849029309520047912247471474095406222345725737893640748543435495982268842639332848952294253811995824276884906206293423698444392153984981460035649650946866833183982787548823400735742969160161196316268683206080296007852378290077505281243211314542281069999539760154561834183957481107307682515123026491179077799761180882949057627244347661617954953494952480565465249189945439829493827318997070919602210421876825645803543274678632506143945036592314526048519255102652503978517536778204000177040537542721103603463303920215046436405856008380579112454982153495018043237171295905645505742912410595587451258617615726261741557879363620916203899488404963644785016038942011243799040937489703677726073502576699075128370787283080715441234608727734429257584483269092827215987422412475318353246760825492905251688928184038403834895829052127747966003040656326841281765398526187226176547645117939597857607136563252504428284685134037895298004718370472029428312203310846648346428165138039456770646423110868337187765232744749388380623485505381845866002066673509195550596935251554342296268998969723961309477324301265126670246988579863270368117252223929717219392586918383079913014943190009857820043512773567469907951720392667673341481424649855821592780809111505709994046215915103994532324620090081696382393923459854997576634407523657960313054867058126041108780621778938039454277870372476576005806175475125245939381134963980160492998617521205792485695288379014421778511381613485899276041291610788756249775225261228472234635208475180471353915849269343799379090365222071375762889169735402665985545879193514158277553783186324584869882536802407127481372631952144593281786189812169977515731277806688821453465113100173607889302669267535925324592182774933791866064859137462561578549663075488760724412027585597362821206681836509397077424441766789831499210144441649463035509229479987383275531594077227633031262482712990485884345662133270764229808325248376865080479322762594910449404835641901111166724880029488202748377399493018620707270354782845335393060569466895234192540362967838739217031422277886691864356082677997250381646930297033490837889272276959847925098695392301405014832951825042628153841023927953536870311840116983600442087609887797420337432684128861862220403500541244600372358903552737381170648290950020452530723095548805057303744390014014140237417664825939775891297352117949624101480470966029467672180212729778669419305545344038147155052712577244908610646897928553992164168911595166821762928761673360506960487853660951617806660244618857234885828852878340943214705437501258830320722673229748412534136025719645961829878210211750608743269328956409539208785394131865847799952669923173068351579245906285465908108136797806325826070675424319802163223065197650842570309738806150255355255007023020661537334270573058939290892384771967096011453499706671585959498258695131941102043321913112130480802361086802836516442624554440994790125466991956466579916423725983996012593540320660140653626000721990579931738842953419169108591113518043194068696871321905276652830399187241330724023148221429662807784919415707964363111257031352610337330006921640158136293226730595907125036865383625426997676772014172890888821001839248220287389916157087986260030641174850724542822224526157396388945964268359536999515442450327245381254269289131717236254683049237737265090718277105539534711798395253007281014868291891926887735000874381774728907920766345505946850252309591926291266773660214979359811100862166432046110574357373620536581258878354161761932848603738073237893287304018277458872258437971397591145315191583437223556929739994484990287225332478405866608033806041515261894430114441742124232979469957759554394451847260802403723449391331668550822392452851963476328867183110517147342227130768146141383079687600844349410930827813719658928335424429257365910159071203167258796022630776032079954192425018655891041742498763117050487045501457608261883555029392655415644844673757096818091221730423206374855782039643961906417421917838721236583679386814549311024186264587492365163792998849957014191798005530344411305323358238858641126831659830808182668246330673037597139318533029902106199254656492541371709329986539384793119915929701300296143027294281813104074158980886730162083054527901966515039703432499562729852727470688540304612041773363767455627263260011929434446586623282197933241244141329316987403761710571576825081473531649829945667734542894676361490786600749272564552171131694245854229753462205863354334533211999377227182021497598636661203901788902674313347032003617777242408170782192899162070778620879370693642294983373102280049351253959153264434200309573849606716741651073183214684101793471771549912521499703513222129660740080423332661011786532477190149138063649788338460546952841449259743431052251915996564631489921616641029244472442490259879600247165870163877723446519901666911158665506971364748669384105284551224481217652071125912929364874653235370441808585430086234324364653467669785493248440401578728221926907019270964984182036005465857515103949302074629216322492497106676766292798778869614386215559463631571382829403804698639045691119927033855961706382292935683209693876143619137011110033960813442204461693210026218381749622751344023597720060506047310863422036521727985092027059025489440396229452767906542288970140933297319764910775025889843034501140985103184158580062235323774324676697222207749153270673260693776285371878813348771119749188192158579042506977840295523372739051441643531036030663298794596470824864737578652709096565151097769725678813194343576399009380560692606969729196201169387355538104825683120314171323872314453858498113077504779116974735149318479767705272836880804970575953474891427236804111886437582732306818002852503447247740875294055251512256012471014839417818667109024643038829042317470573720730535691771458429021741130735607395192754010355463509359404080759302500806223362397373188316848983578260053020939581980349125410586570206677195378149411979803225857694955429569921511932799185871132839122578738872522362908138194332409822318110135135935318725035211590483993255796882394156160216238141320740465794398809110872621668429528933306668087811282895141777354016176064394079679249970719937683163054464414280690531531191788996663854976109336230145734191508075387579612076351127065067968315163131493255813829939503792153240461328199339662146744136659235809052310993407543505540083198395638920569707969977507033642647091584810544698885635002479354524920885076173021034472086561695747443673091126110719914006333813535652371062219070052025869598883244431756972457569509900570835392551601622681433856327922258031493829457990323519370336609985220794871468731070473557011903653920020897804985736921441654004635806428119068182743960057361829145930657753564115947433172912136899572881402705440027599060758013411606553124047663286118820904271652834813528256683524797794342778171578150177788097093537362800752354844522282593585529524093639609546622901759724228466913818416155519939283659445525895774485944813081151783268909805732751378750496556891467998982412438338991815147406583929144550147192415405937340112433943107145781773982459481746909483840070746696440725286593092051410829770610156806890891384275914527228227638956242234744931356625543200380657275050118329048163912983115396464070879032808516891993729533570665226578573896881143919639280128849067148042748621510380246320292508544558655938308950813868678894391741594448987196861812574692959206446232233986660414242594345983726289708735858930489377728934494502335829675348446456783296925995348874207034654398862573700750447213029319395130035867772910279032973397611966153850315696264794512933600332952531890302407829251254699614900250458793362319764537865569701962260135776866388155759566039086769963657005310924380230288005963441197906002540367747436582588485467328316249463242664514576128246787468769058957378362714881141941261267797568167928613854630949921931553339811376730070446856437295781194805448933512547931247959854390682332880493905639307742243957408196273358726242664391624771944304460373592145841511422533184374990647151801049324749057249823119261941703656317757153186325339682050065389775003633261835495149426664046042531270030075935006254950835251692262504803395882295346739867313046665438626953820729514944302044178098282467170852593486229444759644597068285911918025046770203496738338762896374086268745775796123868245926276384300985313997201255934962319462906090035357454276680043274632676995024978240810513874824023032121819722485732261167123358535116888381458587508421542407343634395211726904987778557878747119165501112498858394522756206858643334282527257212509987664778792595048371917964712461960369371486032371042894412328849458386407525633794529976574111723316140261143119695333053057331170011741481446076821910332215797789222940104942813176518138796797509234758405510412496496907022043458895574308631715159068124011822771435331627623906257438461947371922554310141605415868008103969576453844918470715426541512383645276017645885505904003735763912301550962915732333050195976071029281625552004778347370551596752408375653233582036948939673991117044031159953360138220457501905378648885865929057485718897614558792461374071820505558593118443247577429573368678879187135820048791890775679220469194083429294521903082190058880530986282864850062943036686696786742213713220393053156816137421509095476381864089790687378765450746613526231167656955635842155445119457217157786550773903878051174037852387368821508651951265900197999790382444163056509145542857498736152816250418872848735017034097729342672932450952663517945214179278747017978137134721705548350068934344226591366209176005676987819105481441824432501928109526185987000045876969685265727947013591284211362346880264222195193374906517537845464954786540545831517848195449243211762709814242264700881955383614777158437076913791053535604827002470998345337054016773027393997088991933078202287671693512623915706251541854034332733077449320354031036965861904391831240754312161145898446923367382863511197243419910125801896626996356093276055952616088362263889990673980887892598094649539111377731704648779908717825698857603905469206169353758348825240616636988662885919395832438842617557371582462994365277207790884430550281528721585577126524155008892013154622640596376854057695274650604107897942732898248647730193128683523101997655260349297408598777693673745871600068502004095910341218924599201677855588570020782103971258769798337224652159661739319338309703619180716477013986744064823947924331609025682374389259198966535326439927346690653067467133944867004270832834436632413108670804602052004934625723558801372963143759815774021935584051983408472645833760979510307302330650354595392965325086747644294349353886908619162682368643292289556807499181637308730885487127583694747504725861644622562626833449828605626688565717936978020637978283201996905023595968539470930202809943097857927307174020981746453916596160305002098708545332023527036415679707542271187277892217926134432558465681074002489688048641925010450340576924949160165328293690140607800662787387440851901375899781415053285689676564052337687971382713179530569764452036380710648339048208856282235403073006756247491675851594303500290416052689887280302401781065390856840433671181856161192272715614252689534736117071955128324376924654253852441213028910713127754538191952697725964203532130214122525484976233962332426420553749629677259231408177590830074078332088666296769789415263879054288080295232832064596266789888253476427491827768576506160717137786627762214107484696016191067749879022025798354621184457289200794897226435237699042758636653203953819222203667326617747767987391221803071157705591847349094288249284386035577485027199126634917025476594910253683560101549739795025347673402680979976093264276959764860984123031191179789346695580800601255562110439760303459978762706917050616479662084766417549811131899755937015453832456508781111319514748690833500303625335806755411725241235266818014751299574747279598113641598712267838811015437405086063831922065702697231016992599602749066591477066462949651033828128739840906725987929408072436408434781447188043668030798698533498436601950791721334099969638748055763633880626449985882298155290435412979836180137006923801195418080887987586057760731564013782276171325348097107820166556439842089769956804790869168169960623510610260362685419703204017884507925394367796355221845617905157837009717135012313451517370674427082992405485848282999040854293737930136524753949619223641719725360641141963709743998561428143698089005197910758067164375036012317232637338534055197795330841142793814532818777906026755043364842981257867882453134562946606906710262010255443173955311618649632550118226930394416702149124217252043749061779658085208956042605331460673531958042460990230799894798231599321971947260595037275483891590824363802285961316967297545672938011140375793904211635742404654168406758518551948723536012178496102336452881882350923677607231384594379416482585871451029403407656051193961023201739703489171825735622870333380202785817402967817434708578529526197310664388499158477797423565910204144272708199887129411502945632845725573045627963072783975468215904225560526705906348155448062078796926068678607116310969128222114272095748424701881292787057787056681883488944186156775510564356269865505829191409459935977937069726148655320956425917373332008651062818608202732905436009951272569231460580777769488665099685392678060122237330555468953589643420986318338259762878094291952696629870731005753096082301943390592600437411987568899490352360006707378113509276267584382942048755984156843458948633958113519755495535625115252237036152805214472709970291243792320292375723427162973373246982818068631858392685603135423322652618323536682811595907485576943471922450087841174895698855504419406203856513053520295171738562129736028361806385717907163977004034680103932937226712585619087048543293441050137027433716708181128084203876924296274795546076080703368702755278401130420341181219974001650130774184431457424748773011062669047233407906699565499023307303912713817972517554725904726782452134680791867389398950187992863011817774662383674039758573276624416109980496370001476339867084839529784472460647182439325018612725262818337252426597887600512726577107045493312150619260960250215753733622353802925108915721514347794140146752049681846647470172001846250895772363775560181965984496116523855655776710249837594923244468447218411000966810512031433577296032356513812964545248984247698213080938306171059234082372587003625094918932304478931924689223509925493576678361175017877756111347464841202132760080197808484805922301890148119913479075497306369761093998493990539218711520101554134983369828494562976206126858677459367943961453553692088802022308149617678977714341049379726190251985085205154720236262433698262220081364053361004623863141696521799561212026387533466394050993934551687598912029254634542631258072320361719050489415012270598571372263394732753213473276507218691903034875329443477758734946159722119480367871747102437805436637898973051459963611572911903808232502175022152014265570390483116473793136592299879204087048625586680166042619231839418791814446657699058707720185336941505700294404794280318211246715022499267583434000504606511007819894305400948877332148082005410767062657935076945820938350562307440435367871982684664496384515967359874975070680522032841713905383243585171185594574528356908809052026756532566596157504769252774474014115141026577412082132510364491771224567422349939664316299241292470647489394875226221988886997716344097275014580157668830324825538243624549652063984021013950938879889123819250075362691881540592680706321201448159822897462417742845986412569617809718949092442850972735637379059484835211863579926337203742309354721956311042863684907456645352823397989515522656280505667886709554048721846729863215973297439333624739976755617911323091370143666796268581191785063736938672443669414028671693720634186822135551161341111691982363925966864303001452793347119512796781973945283179167296598897366826805569647521165307123006561037916008881570564504193390834939368427431211939453455998454664441657017725306870692307714322609451373009560892031664930391931465002245128507494255188006346797671721657488095303450769421362376238438664740820631263234554116781590210694935842695001470901999635138501194810138594429737817952061806739157215325521355848813273118996647795831577037418835765671159291655688987410717839442921706028478794793480859161485541639563640595505725554349318402833807707981364263210268363186624916076896839128453948973844533972520789601780319497719295339777576767525557179688388444401945199356931941688756439998533771750873530861920558015878255201817702593354152757951867980152191770215788558053261220062922552048752082415452553027875621298564966569145992876007576902912430894981475838422627123009161537296682001542491228975933040195383934842026222558017249786800095514777640282621296521310648846762286262950777114496902326094895906637491493041999587121406755668816372995073304129947548029109508486440648941949134675792003347437404223165089317107215092521491231099816899430986642415250296787102731934096852985433955541971747023459299283270567813490190632384129235337605590402208322591534670345627688489116887660089943341486519681527138754052713502187163692790316175063868802423541215540881637342498827909403881246538512503031565503251392824138890305744821755143895906473944952344373148856771853690470292551052568831368348733521185578972655084068015715335150277625138069905252734063481641554109196932027318748467484222669175315382190600736721811449977265571131129356135411350206296115453161871531391100873125694897196895259519454815855337704147743029440244587880058698759321317500077175134152773069398108019129465132253464439691877351417756097274570303281207032943837892660702497961534248878934843267197315107533234285357238156513128390950030184732008699483027800911033689205421223070635981569769758289533192216219962900151908588137399870183237678114276514626248104408567237926229340154632660117230506944377113442510595549062062739078584574184153402291755643064612463094294996581209262180323077795632384915573221397922748141308168955936243917481806921634948944418085202521944531310875607964041621546914375436461578395546138702201360651759020573948785339650159642234995210841440128801627410211483976318862656733776469542831755148790826006530032936451811704227344388610130459105739425226102222803344043483266529990706433851874947063078000919145804669012708938322246053704458091865156097834852774990361703920841542343608055333733531270696762880676999168756561298151514016185111527519109324359871959015508744642308922684504440490072615926297981380196771715995837015307057378094402323339307421782591542258161035307966209485170626985068349717371773533333405538171182003171869291623010283707766280729046352457844576901852625773366188317823099927122549149038894221192032459602577962882799467396768058380794940579746706754403672609479746994595427776649277163920530838795930362924525646255981054031645690702712702143080712159366837426572130277359022714709791365854758968639992771673060342529339040419981953827021913708814787685262690205560726751677480563538472216851971964424492461052408271109186587952877457826837759304648814985405589111382493826430294982040179436634397798982725381534626585057753382250248753844137713331538447053687001905526259194329790990899780224645864931399710302844449512599583069938223969230234860711212578247189440850665794851924400343336459052765567262448364781937528532406126024831965192523773428188215873106060096288597663486973639565117206417557197677886339675354032488266529852333215390466981090999255127261983521774122461702489263431484825222970913331129386706437737162538575251333772783143018852758094693711360116525347518782821557105920500972190915012440348806358247337720746764480554571879942879105237769982400685696719322743790359078945162316441487104855064739837590149787220322956815516098594250901487861217119608056230498335238987183585789922327019987516930735239084638548160298090213549845440208085245160405999403616991977990246472275160130320681677161357598339331618599043539001676353165131963877543140114913084303737616766850491838671447729855714972705797780159711017244462798818273061224524696053030812898432201906927155239597303339285457579033516288084730119085337695446737737209090532222679593013998000828519830417748781510770619238801582774514505307517914240057223743968991644045840887855693179197037114656744507916016366440297848448054419964891842076673781300152399075319644935013081553895707782491745741218742786655058000200961994169029730176392386527001053562017977365052011300276767784648729685020851668347785659548334798354249573822346998139534320717741785604984678339804345862466151720821094923402464839905857848175785111515496202407612861780664549954385624858564586174193986632647787407908108430588847495206452822641483943374121105073343366818334591256929462489323023092779948587828345790209674518248927608173898127078122319386966718462884284773364270073000762558123049195991815381529726575951964472161747290869136527228140877066337367789118939786194918474612547965578526256198356072712370579660833653319545340600940369897932429071551587106644639967967557415822128766640137638227163802060357545709761405278004633311555039391775317875219421523225224019013725830362934802516274356916764907468540955511274710276197823679243253428307997133432754538635986417400871123264141917153164322239548731105992656464097657132309489061124063026043345402099369701580200534093072019526996669883474471924772067496948472090186044573303147167173451272675121230867227006204362101072836183730542954696049665009280314915108893802425702671830403607106437112836505706401281814624785667847590200677611042467447887990498548207957114735695646964424057651382317904213646215990533729161629332074036829048793198037153309452026288050041898585936077140656641391424997268346885215686915963090984620340094226603288538352636569314956772151694894986483161911968357146876104661262423178230818645901245489495552395774587604364348908226402213325859552128621038059087723895831080683958651783012923624065221563257036146854104755156334991092795010610350065405713742697670253629928953649087094854138999772204344204343229359821017709964907069080561362603241830938475362375648318600047543825728471637748587875370895514398366477168565167209034269268384598349768723308372347306819006902970443774361774171223332107588831252703371195192789131682496275646299091183348334002073673193539329706253477773695233350842715794242628285453342212533903700378080901693846159503136151224447085533768949717989124246797758860430508551834087629998525682800329299466871636317085073287620774300836339490468511769456739508465000756212300710864647656691093229872457293518544330523690216631617085195822676669898007288711313202638295025086049374169428834812596364081383350306308500482190443074217617570122297438835146247448233785202997986933802926061743072277983671259345555867280180605158721447197639556162353137451436974750605794981993097005967084741379915251898207106517580041820878996203896731086166736376999486274405348564218109990487512454261084895475915108099162513878168859050251740348936371753763059361916272262580068499414671810055716011421924323142485250787180779750911727029286500234659206604766762280490377265043178347891038891740511586589443228551071661265679094556261333908355097550419376026407255452093886806963395142236013167503265524294662749490413105035793296993592728788221768486184549391854374084009921796156475188924025678067656330098352948561426015218987500154321812050922064052641185750508685396324947877724088723637446265811914156018176668708862336581677861631873044996041274435875424374544225409162032738217474185863721653073127495463822388859542030505100869242355130394632168239724237098527894339555937383644151798703403262283319364737200784462623933433606789723940123345925789180837138780882014444973425227413763277177360804180526800959389024274652603360966435048325935698998695157834096685890693236623016333486070381476495130417969671148262970418240939810768055016032648569594372593218650086545026449030930334768511950747693201559509450293790715417203132088661944453063354422748676206327656579782663304649920916839059855860423364747462621506287872432243824073736356753795115852495781104367661039688511398513549107490088147181360035733776394305471391822432482285928110603678491938847137624424604480121413417239419619140052085157011306313856066664839701661257989697521233526367413789950298397025778723438932873891178594285590532344480203717898750287915069397728839930319968879948782268433748076355040455098320488770589908735903656172550281577109837693571549720150432122077836791420648182514737437133847266122018040892195140811472424114287058085790363859823139461656493154757855493287870841366387060554288353225839047376693111571405129463903501287936299445667055712788660088796087122619653271217163204309790394552408980145944142810856940217808557982188862658419722905463248652517082957175363188682093714547582470621799458734434021949565506585844667318754968154795677898114591131643565912831913059604816808050084743939893873841961893862103073823414482213346665526972760354601982850292603299003811200830711044210892043275920619355440257433919818540838510003472060131795622390642363944443078551315295099061883081150040350863325143748005777722876268005636005756844815638614046669284889955696560349534602469039775461022284320944116577929027188263805118790036917232682878939715805725083746849597036974650277484254800380044166270369390744387936000128017996665525150739400832300633984011076176115016106900816015433431705010840723720349362141553851915856189051687449955741527836983378256045072143036686501787231634515821524123566324369857689338039572434861241208284211383259818261159599576803525106054671578110871882593214931326714725020830891647796415604611328246577678445878405606706566146407065435089583572770930535545971875036659280090249489519969714925482152824530341265623521317262750822385610106659839824482656079025872747559613026537069863053173197210656213042552358821952836954593404400180631399493928956519123893716339395857048109362694429649227957299467582643092445497054490335334661666834081217913340236450331337729845901048744457365613470082786347401253378401176127955363147858954129712729579906844056005217979225374801581922440506239398671095167082835714114288087253410228705530382274387879635794107497384377942528014181490481363794457412417645476715694639527002904627980938666688169176285027752986346953480407880913489634602221222975026451951918535555800808529410808592146207301625418057109828009592933129439561117222674060772196603921700755000056311665166345013082652577496845598056349800096396252662572957784402978690570654677553290410818590857735284852920774666467928505227737273549925323747213437836161655382891499686309059892247721818014567195198182370155281242427644444827607253420748780460442433289057258247753987253048387839098600936741549570237424092715608646193104797595723296187953380768753124687522127214436902380808614196458344074927028367843753506914455998888975853047990075453617441294221728253046473563665975467705732194180183143804746065588738823224814597297021410085099030541164876362430173510539103738592515604642253731985244324176901208623433419672412729598912395362493566436573591576122628726303827864623974242961514682348450716785279081389780079803230401308496068864685891667264272741119448110818220526215421201608840140805187205691270907015491521671220488979836644063485592319615708601912492630141054259710950835967314609499631488537217583169114809943304070671532278615859852447151981401169333656788054765111774493305129231473792561613765590976389786288311716473194555568814914667852911254641352960678782965665757354051161835542342992033238174596057350609421926016083179016845497277405217497412637422748892500447276697620235899670647034747109192286123973893047838361390297246158233361147811522108362447015632850785576832281200582858127259489247711140740794005491601822975249496434612539674980021732367380658006870088634670301276083991406269385102770406889171407522840642368823490370094854857964936130040827697034059693632427896090250705057250313813305362409219835726455521388936709115868471795075027052922715899992761655413252988598370559747905618594230330059467949068113732038426680433857820964909844340573199006368439356144085923432784812985229187747152970067560534416594445731770981833798617008326907723194821617555866163208818313199680389321513086211601090851523007346820116481465595757398086702992237770811280290716974454083384090469843561513211292997373363362472713342287007001698011557306236388755763840807390807570256170922769112331772033527226927536608852832604564476067530784501700832184046835328550557827884889006837899478441061111463657403873926074635792783688052119573255935691814820301923444936612314998621501383623189219617718099754470599576351702529620597387772390678898808139119760380327291175762130953794855237009436664607331966159604692901623854094991175733334128266088693659170687839164423701609908655765333528721079079464044840729499460721799044646275831074642860020518235962997087457547563552838115118112403296166479840663213889468837988564618319750874783333019793926860603807648035688123953947689739641012979291805948859545151894233546607520211752416779704448465485125250011463386909230769077438491804830486087454982553329171159784930478231338417838126980103092135483879591118500286205102968776442187141434132354920131423033869916148321541121227883141466246078763074187922024750850035041093201193324889841162938418499512062245263154334494888805814485934417216565405451482554583431070294709369972817675504654597876716233060338437355422079430247802672370533823573870670209756608016816936668458074091825685237993117331977300343343742697735756460235670980098165172936355210648169065754268959335453198890714803152566531087422007982672182399191902363593121397223577414058315985244411621791369175315834597336365127034283913120016092386189385403073878166133915866068632719839816506143281704561061591500873380575565218893237487921571895551649828301283264458261538050190276635422623701855596593530704773949991010830703112030545837900767372474343984374755802531803023915827983780069965984955524133158943865149176654288313793880783622940552794326320762011453060096226597904649706011467834410831755890443365475069082853562184197062805838088709704107392654008334807992363541305733288477996204011369371518113558182825108637737074267937041906819641931298091890326230235428049796443749546646351898911529009772085809281035197941706756705842701622759666785930079013264017140841956683646349939015431560873850752792118187866860582415246176110194270944790590888820490816984323500667000855763309840799892994253270622601197789384974144374685909591981330932374657528398314036002961797920188469571862776843769491606448697668681488999526018853067899488919522932316577363317009855834920477397429270787792605824928630090960969479578197510989820473655065221005838709821455263235971109882357359160306869101062733282252859478437797353717559715385931015802924956713986758516124117612119022253688994259991249198847003608289647390550432131869982197524639318158173419230608347491963014125538647409493203265112177436453865687382236986139014844191132436089643232947003789131197121193045151386773930221004211377356594230142217331132254279893009112233938465150905707166748430320558098442129017718710901870516236275257781107720412444345037229845047335519005667624772619055998717333171584703378415768839053491268623834828654235460069802657704791859570774014185892898972773688467609052545078300244543343832062203135935186772478298529980688055078446517171839974939402783595924434257062182551149745860302820445333829127441746320061679133387638341316095164087812746315162916507303411450540665679385021379127778922356012278578096209839256708865522104631548334452030151093762788607192747184962390505235215054317775801633702018147434983043243094524543521634151157852149969501356948306633042288686808012015852611459926437239983601073407712468232435601132711573225861769200841207090267326098770212685963903617723903690743514045296446657841048623902007559239626198141150766804591372631949219603617907062479305360125202083292600123175267191680063391167098701259583570353121479531120732392715813370234418437629460126901797605729284203458450481535180163416364178274301722187620602102297879256248423685323932173577186609210232633316681011202261028518783856291571612846789657208700113937141713831257552100793920949528324288369065808851942054504732939363341839660207613822454324456710121043482013184936191243892136966769364509633328300867739237288147399626853403652361287846028101327425161143724195180267770515116521977367071193111193079305875235110169514804170802823683224799405981352895833396026720959178373837243922164236064710225034913254187884911854030424277326411498243091300767986437536619636435202414643904035094199089552222351580727435620629931351362700316923362470774586286563247509292550345879534301158742942740506808975890616580331793492236564620949547269734197193517827834968369751681759570115924814244806108746132892977767906145487931011995853158266145573334639547214738492336860138906919682117546722649121406843247909580332261494526628744088458599687615507646644025328775773772740667216817258391035093107902413319223982264557101799661974723779863156612195613514333109203047864776700180367799401568550867501548887065871817646472410567202281999371728827006393214405456003671368661098619031582184257481585424798227067801327894344012856031697886823938510298549809203780349048924461130348915247641703183784410899566176637667967246429234629083816855606191967355083577444606345601083851603675213840120264799847396349452918078599987027773330782792919133360570200056827402328266796089478986897610118435064162043528745586737986835836721296154058146705456046862326348373848861403700784899231901929403426496944095529620040882974277944135285596778651745960906834915164371096515932613654301711275939379699486878526797705143173492235602185121634245070188850633546327481528072109390697165109062773760927132078312941312393416718235337374767766287763902719729291780289400623057954826473800277925399090975243641223791124997625394945640360908791989664820164787815989214533186118217971374210510779673535438347737492270465150490760519855821476006432304611550655274657720165700256412570477276071736837851097664924719999458247054034823546399009229196840568709783293078692467152012917453199840632031971200927706848330421077375064243945979092321588574098590725439758179047784925053871671954560033382157258393818341964694156910757807260747515622639264593905629500641953107112524074939618067708272916102029382107048070241195505899324973061825424735931279459610537291094860345212313106762456014497501605218315356887148292341653357725507112514427750799014833292503389847645121105426539342765668367238047517844160322420346179718947323178368495078977872590078647426671773601493727267076893175716328586201715554908572886714209827233249029015681490019650179364840575565632550273789185630165961141803513753336543575069734074172026705746824564119734395935560906466673208042658687674152580063260278169891979263354328545364776472317567701821984093955633299620672033205453225088545823836931284466047004108673930863279087670987712290112105824247077003249373219951065991416948588054222768035513470542378628016986625176914869812449356657661735484181882945516015125639787811623385211165538353429942001499402866003705188343466079346523522097270909780317658569042226623459036260829006445786875496352939440923834840741157242398574554345201581212286203924279443655465649714828531146579864964272168222453547964611670160838131849821942054409824692355395634473784831054989932668358108792133445497370586306636911833027551055265350535747308388371584287545283611290043224684769731436851238854555292229372285563986694333008416204583958288241591107594572279615152898102249720420412656316614084939098622330544521161339712863126289981772456846107157793442245503588968648051666840564886573999161599712353739636889530587255318172554899855428938625139971007879634013113038399543041638580607377181498026601260029987057264693952374330742691580700383714125092101438736850673926188026553307885807304354090107165118384085638054961051650837020903077859753058710374387191432656915294825446056291270839790769003478093253967587536655503277583646569692556125007580738914454352349041680801632970238656748134373459595021397933630570200904556868901625088940864100094014975524870269774851879657234866000854439106233482319893823871709488557610281647019068545704605644732587186905224284164653220066770850070912159436303671659944172691527606241177034308979949178161201679248649987975086010999677603234625055372758200208299127225730638475538103790221752447435674397368097790964452181386733601942602943246570330671452312990952891587608587355984958024504429341929157446375261632586601872693819476041323688342933167094601462530010747881481926011992673866641490359358079044759917289879487523519832968456862467824917059730066218733060115638311071003785689916275306831022850178678055067010263496002009524543488345552310444283805521539127435718790820716285601665560615167719022180920007628441275245205787207222274136762490327521194147024484640490492684994870183340079133993922963092631066587994968379220079865606332058636903956394742473944390439272155876407532004776184438796825531691516073353181587568205015190260727987435855328787244133067656329787840985100072660228617958438626483986303824029911385787545924070394072809261658964878894763294802756845910919579656747702028576948736790886068520295756451619208935927198891783059622007222779424897935380595985738743074797123239408158165685437792881134942679838953012883514264141749811942495008740641916389709028722173866068870613107767314897618304606393106484203652670585104887680719965608827132030050580608943331268658640961231689767018530997157311435833417976252525010984583488565986682545937411419538966329840959291620809191551450491205558522757612452698021746022806248748136081271395279623047503524879901560181953885334822871600962935125017933236901934562697641662609386510503891057204793878149321043336008899055947065210131776142021024730447651233527719032661510743237441436166408943557794886146914133201421994610430359028934312799423854138169610438043701513917651485663931470065188652712532647252026181498093595832995130280058306760942688517652122967022323848044019271618374195815244816622335088156437478921664787743415537994304320750334450176096226546885546177411074491354360774360604273257785045934336645259165011481839219724745893528176221622225979978897276960173975712832284516494303151277162925889188398176984505909627375068933900895112229883728917874952101908563971061426241741725848684367255426445816793567780080819972881338585749540671859322226255332688123252285449937789963886906025034894724574749023887800461463545257179571804356879577419649824571490037402137268344079728651401441585692494350746804324093624279276586486127906507312072792764678494659469616096033687125773676911305802759785365981606793686392507620431777838481315864654149139085577830932442739313093755296063211308084517009474752170693584769492436226274493927310774742923202508648835286032115773257983664112518177287659011897330283052251342751505450679880065830894259605045488854537219795432664148514528557358081721869551921408042717777137751337537754037586642799698627472595263146412758693983547971312953344532366700432088811280394245973781355308990591868513542513969546356524762724821085597695334790171903197566261284493635714512837701830086299786616426655026700761132363009590196764551654305257778706285290302811434749935703177415615298584193682350954171518844472307982385953975723814939393553444278669962693613791894906871990021387607889873770489859240838151627649304359994747137540635766597618663410299644670740231993836316439816953158769130366371834034147202142015894355701256744897971195880325223994078069658902233259033601425902913957054998629409573001914781226811327614819630732192085077358236083757495345678253663507321845487459165760524572803084490369328527532821682509396045804088972013748221535600429421867679944945296676762762535160167836429816455454404990005702545354607885225071784406267689727307815903315381775126984493462558939255211559033628052078758948853353302458218575110877450676134924957868710657696369288665148290187517093528871315142419774140140039074330484581166266081203408982452477530915982926274020667552228610570843306954441972258120126499547485774396600337971486605960677353021655845702840302760134183165695835492608016693299946602897666096978527334055103689300317068881670955693274723419484356164917458389523020255551004915037359592909408732513395067074377797206990010698019261248900869142272411049610515032194904147104378427394843655339290335768467164098744890794177232754757549746040447444771175634343558778961613613068945410676509082901275687023302860511320550010887868025054935872746524383819603971717476825248144927708027952075443420911421499009981403984041209717579639536208786365570144984134103024488714270038394407086228069474873936881619026422499905318109515684537202600187345902501673884644218834732585355282966657484187752777341367186539746869640872901320019128038493885971222881093357599906509754901999018019057209022752588002898025247560762222814308424528918682345128275016358718659887895048220306431454877632687768398143769049735204496707797575549283380501406395202363407008514193261912690146216794959726101138347816836051629336648812506222585580408381115851158508108303110481477629800479460786780604069438891521471552747234052337045447543996637853601747160233317369042219780717648468659927562475826700864637929091349135889675179657257711479662310106468747589615862151944867029316896103400984168650466663915947514723522988475418636018711027853465290017009162402026091227493731776133214481524639948561854100257523602970539975204930602737392307246758881830003061836710820689403558422136154052899507256774357013464959670867110599561144765158809355500175142515042208024756166491371416453212775923956561261270661581989179431705454269718720159933883747677661925874657095490357724462091677101677789657603092663970599023142831450134458057210640603435704462511016549666392316990540277813363147996176889033106719308002462861806731791470311862223253800592862790960705543592821668196913420540828834201465963087787956725560314764034081292455598078711849007025451191146799033665205899512641766832157869156332439227373942017727844729962407637562951347735135252882957680431584941355903593007124500029115503035760258865069861195156943838259134324962055279865406671996549802169501966417796099944747323280170715004821327436924589851895880724001268303185230037368083868108102748937933657767900185336237855847257122680911636442534239875335099843020558093409351455920277622145872726737814314360649872946706410375716228293574287628530494520416396300231533868448833487613682432533207620430401858014231561943209516032196441368594871090883705858681970445399929112993350019994068265811404491646447413081149212422286227747943600683678578896109030159350702817925626837631207764359502030362528208726587263378069983721841970625685634907884034414871446035287070508992549400303119988535402823463746390641970267476858997715158285098750121822897449835094361566427106954043227754956282653901058925866558205548185844037571278072938848893148120177928267467824352624358638507516621094755078090881930690610455058779566977194514907990954910739966669900497154512266606538564478718537414078860072491268923238884714233223863185848313853294499504040328627598672318123243484637808830189734148417006083646259506757106651849240205253328472848451083730863996770444015344852883263935783778958095297714899948282194956860444615599656525564484390476183774694939594076558556834336330518979867090550757025026910241367539638538498271341153781145793125358395676599984115524934445364317426591927366683025024769783611136287156547725082675884987553134140404978313141523498197756535122265425963679344889735424722317344607273544059475172644843320810621242638540477276143826980725644569097869960657434789863080124489310149279274606530601506927681000702172317763444331336962508754769001756257198494210846865561032306239591234283850674109468405696772229283341936471862091736792386306778966710005482798668543111998537972762374860391555478514428394290583512463633999923524316472609190025030559489492698326848798623949686330756478053407110496478778698593222444952056649034957277931081368469156661725501408692168715262273070104687618282879468413345230148654049638862498019082348246805861294434746224044318470084616255784318629186757447793704109478299291858962059821319030117052905524624818105121521304849337984725248127118967865551990967754414657611613623289592164070212100933768100344815120629706149770933845647614619109807559444025132730420646442149037680147605347505893618675757350115999410113047570925541768111828869362126288800997302833512728412047065831751940174553064169992410014068740624762219822533168728529642599789447712368287842615478862299938947707040306819555634904706121244982934193820869826022072573861960020598234827721271536770349632105452147362220362192954761871800903703687000883707418553722511348960585624967779590036848426936077178213717289942783097800669785328098811161228779987675409834354346080497217649333807143369494725657385450044844293275708182990711033142275103538001884713102508590589999375357570683321609688484775484546016045479372952882127406082565276823844122624585988567523326291744206836711043924778717966126578954100717085313959434003547680945402563432857607429395731102352548017283540204258867996475369130063849408947647275469261885787128930145320863491580757010953175057240589110116156160749124582132494281863191240278948749720612407512088240133182870263532204213054539324732081861611138353865050010886801725342675944749408622281392111686088163384410667019547473635048730854816040379346312113042675500451952189315164367080521442745516483203276304377988460484491519575800841336433965113071422266273243707575075699343192727092722720488875343064636535622908948892834081715782552818432753267078332042108474726733326871736027022406395401568489151882090537533923332762711029501528351873471521444099572146357309126346706348736000753408930434832971371483914681279763596591291175013756843271122691583602611234401484064054804093292124392065176512677246659753123019007222280383999515215559500379124454936488410926625675292877273689772549562149179004922332399089939689953508829201497907962041045601158292302169571706178855471786425646683681653943909069633185230121283845094618134499727207593421806386037048920931857113847718525664205134063595594608380602057617545807851799531220325396963423304215189535461044092423246380058038609183558375109475079660983493487546631389300577383745524040745538020711469287572010769043010142787801661667375159065778296010894032951635386040461908069119757303805212178924930728280609715207415829077620255459425257269550086478365209398174360005974738839271597414623397176601310271022685098932683356529616477752459099242451733172346663679525848893842073645902863452222829109948949378672335237270803271710808636022821914558711342428621012068795330435476669962188439950363778085725478949882755107174194917435275278876454589214815423983850522680787110776654281216649308506388289717243216359922842568433491853359158568701899435549920653156201429068291018842209922159441622220582234492023206891739995540799179354865002977789397415438002804140952132866550808633536925699903175864467877016740629063386740823553856864787809151468945739480090030105268121158132150825545698471789493629773226970162568626536814804843480578981111476343580843130737470878929076403951876329012416682726098388425708957423255502128185965809886543876475907297731229006067390214223575538561179461902713592540030186216227855733724692799013221180630429500090597046015939968310209660078645794733598490378888188787380794272460663866237003063389658763432512398647738889301655183842266752232636228610718235143644260762481739334136585918527231348716841910142639117929590074645350045558844205108125243916057718876548142578869250300340764621558774727235378720558934865336298024041614055210294868350946399275680052520337876481269388013770670988427844744131251175086029954271004416763712706485349789635098094459207088662733143068268897053235393539434287218754685435992652167708868345789765892420852864410761406749459052049542430027722990250238065375591413323809724120083244166917729568614102527279281773751034638241035269411618758489787639175733806925332958822818259595078508950993142520387163454516561584816138365366601873860676762824084473378851349924119580523145900293494384028877250940316555292358219828071070980341810366096667071716043261550973562631186298622134557326011094217450260029086920249066576058201789221906456287273675784876336750059965223299347051335495457692559381761455941906550955938103928147273637356412775618981430779113318998690976628126325819145964940540140933619514305116733760131459559726363024297377654398318710659600957472845234755415084041578747252273138286038567516632982536297395917938402858468539473559861841097203797688805977933988722391313908952836025535871081596548426756249099716055886176684478756518710365464862198485045599897342473472878641790151268797716344788000035571371926658264635605804104464510614014635692934958339322373029874908574019548311840734073373387685283250152964993735369647936300256134627400647805688706727611886824036524309738869057590351823111224219429730858440853948646019338455470200862313122344526948023712375477623989372885947826821924129367687187640034717567156872086655601179272957582583260607985283681420521948202984356954604180707855931966107548757542052494793090661968952924750754018791188172541498297588254110098359376292560066806208754386647960003017381147335754836416013101273039289857986698597809945369951753075038642500680389300128237939333969408665868047446404390890577475845444260153705765243206418321051159525725399922060837966531675985482074774993808492209673022436153871458051042764002225130391653106743084021950166024588264511483955810437229048154395027527618013607974097732791829247942739642389085191407323655547882707277482305392553722986021566649856610544236721896401630101394533686828360284928451088059527911432747136498585898829744796152054001589530547290752173404992920434856224921777296407472135459135733820112065386021315223187287346361019327143753358452129373099480097592996144775202409570987183224839567509672518576392727765829177050745075828597797142542843619159613674039126113002396213753256329197897429903268649131917227593550150750912776275865248387147287794115200408678597779500501834254214284349499793445321857813217868988449531210647522795078361310177878073127330978888378682162032292537235657757523217977013536710299653549172921765016125855274510228232284113201586696779108256226304865307754274314729811627760546973508455271083728659134694947877054966476915088652891379794563612825030424515395498116258395331488319325645443100456571892604514223850472711904177920337269054388955564531334751964884723290998934628107634875901218239821119707436228428596431952300179753153343151772378585869669472384976395193965908861172291174303401753925801450578943690224174786558514643289511292473509185912803768339838719863790241372044190295203916893785587164858475178646452420818147244955676074615090272112592956177270416099197985837980062488202870138099515057995151801667030497903181836862515434420817865530078439372427118407516868110255557691218033259305343865928992992204912698816051520712379775852045375623235708117288062739805021611579223249366231180601810710237972215810023298375465524112835888138346670633309716356504360078089630276546840740091239662319852853157902408583912490320977720743735654015001734962412611266801789413006164772626162903567659563772811786727224070917747170157291522891070062958051171150374854640212787283080671896952801243036996784198888335539280241621023203967737257492443497858747090565682229245735791989597256807882152220224958954647004366708228803436504964552843070347226552115309112154592593968057455716333143641666888903132506951697614043256431793581574725281710285055677201023952827087002188987725602800382203145585150110738032127333299938647369673487092853040571873875836418212682265597405761050780226108131457522852896289588586233310095950535205627583756396910163013723136677862549781891463557787424775564690056794132071651904423563126534129992835749727505295895919264938384283559971821454889599446216800934260397494422813594252220972802622524541520254577636586397377504558083728217799874335113113232207577781031590187135988766393937846370708072983295221799799487642661525230842595251259155977843925836332531651522219134572817571607092031418017816457048048137860868931363113028751528395759706872578933432206012485531743409204592410777309458346769448752795100954383948761708860165484458141738020021764812866524938101844760345834484126444573960313903364353573122363280935284193352419611851880989810145676105095845211164713438102173699757542848451277902030857915662825444217228447048739873376219176842722747548852166738536825239503111381496267720226333521373276291328741574481651403346121359246109359436404416352578021342618876333145016646459599426880166941903245704560471480398900284102658243144583768050657890514945366286384529029982135998559425890519661400383662548491857895614399056692966990794127790153160617894754577978374709683620866551574923780545359592773092691777335213103861975686598572207499647020948436972894023329040360847103486784282200174294662860545927498530843729733234199586667561500075204618199050755771594159454674492050793025923034480343667428416583229930936593114549750064328225801609832576670156794124887902954735454995865857003203090683172485075987852183086261656547836771209947835412037789798146783204623603280086548371656987202789266109934554826961138811731659344899530158372455445079737253972898100184256295435087494229597405123759861166136931771624291379067017208758045968933563239243677615936398148425492553489756672266423909406398970464910157585138051221640107971771848573492595392697422738159273286175029995808189680705824977749835902709962729235817598541710510579897759209581888825637796291110314236399570735353353595234457352592328791953610130426555710976946104858759600088447226141512306048729895201277662546002224466084246516464385877832700720860981918925139225775881670183019813078903590025969524935783917452261125137471690873578836565136468926597659399611774290904954986024744464700452151511681987825916389787016029146964563492683098973530450671208436796996279769533694635922509561162854201115907915501109998594205446285782455936904998692887169171068310336245951674876480117440950222994028359923216314985422879352127160855884257653188207116614641629630060109851997839925903820176857542492797235283779256117935120734880624013839153736697654609835727605755429856603885482861139826146584680527706294100632770602944870229172521429459803043218486137059337118175456240908791953037290381003041357680813957855450923479316909749141747379322481643153955773390163669808278016478621266054489026087349774835116195764755414272478826089636751071305004255644306804918711025499420179981483357497239428481092959438877678378308462490980856990659410543577553734379159900813515010763108901805723762579613136344664804960932787008227294251175926711459191216784192302406402337609193921378548885554935728673395238917540935232279343367374288948972933044114230094236330626934923170498471338148516154932994865863291667134905964659096608035769342194244564831891796294096826237910008243607135238137435596795819222993760254688898231354179964876653746375904770775876557503550938178479802725313879196035001853416201410923913477446593421124162505870064290868038868437017236398030206499782685755679998580756560981287193094685718080025002374267137147948982287362702111600333034808837807096447893296491249191031190097224639866184201682063398233717700660686649395854506782450262752077562136239162477643734781658438281986847209527322135872515242479547672337480510395737523333705411664362937151825612553721487752421688483517454868253172754446759688335783963958451738159288891819597732128779388772768542331388137197140738318610995589798191502179846387134664405332845293503733998711480424945685456496947415083039794025088129763567738327912882606728574863648727475086037964741368507921074435905394613128966382239761618416269340827889036745644601101110715199893892243467601768320277830713490462780937523315701053391668058314061982015173727622955092970220527883064184979637577873422970504034523635346654479814229631043262266403555655728682545554686875379328812172407799582187018024242266545530128638517675051903690386330168865183898083860868153890849845800338762515279581247136742149553457439545840390709322571973248895213821279736177373239855135452542632318779936920163111398107418339894155879781855728203432712949333400875151854296625438536611940954138569783060106410572918443948943473504535665340471491992860106178929732217801550691180857365742735796386243162177793186424301533761490811350507818794482142712219416219679408545142931157652409091107722072168690129221039393484607624882493243936790801908334271092261587525170641644733217450768923676262365813523044842159616752330899615317402072717114621514114748001791435608652990808445861815811867737033398914332755103027405807956498453595133193580216064470141672287639882031027031051809735227952480847063835439415457888495747747413936518504567421839175266896244583699973215537520927486766848873490087339533982367722206256769281431968199495891195602734825427548798744044465573498206751053079101987107723568692453148859778258673651709319368957458777424189506459481771531503940759548888602916929551077362186384890219500953123867671365953091996631693843464848994407440802974445981436193122411177905723869933391270144801000813663611041789218555292555880990174797667589269059507934299681903843436643286632122263609866323943472809893708898693133042994018125223494389419548734641103644271463209500191217917733252614514664257810641559385544676049932631471217668720953052802233506808804934073593364938822706519703765606624439204335451897809135915438048513784072753947876136400455670888416673275648532622272385584586404223860321688517846900406041051422631899798980744268113988365521348664981075852955435219045485313303460739189474069119585145860805858910995005551322398720613098328143623655622515874918011280942865247168202676434536106250132860199346387996183840050820910672627896505460656603411527149245952250000158772828605339976957943445572223563297361398209364117172859764177689607347068975970957010514808854739486602223502237082103386183125317380549347245626721155562972523695116330800726650160488876729640411473634326369234938679224552939293937676685681648499825095246823180270969382923938687044553605617673812503377459932800969267886327522482426302616905983565197817571302476219572017096802215912852987852287372833385574770756977191219617429660010154318819283268300853376177493747021946072000856742533120911929390216972756694135806995454056406607088792593671276935781298778068408419290387103104870140677630397743265552811899255048273686869274473238066593348904820650333155005236872328646298288068432325058908822596522748295105373682820779839570090750233082685184909082747565296428488470064377523371848035065441552267736082285198683236316884932715970305612576076429490131143115325682362965214313476796368376212017606761667036250735279967084183512819784376130159374051950284794248747769162533209059060329814344844026390332242587147075046818789290966552940448643994749077163589844729100940744622067616088534017118275337068587614518056813657627560670611053031425443511828952439742593838561366857801856345003514338655897561669605161949724220625671829819362628345543434506923248720645131373762671970776600480717558853111375966626717214803226801945240948645751765794533581197684263582288291448852846480944062070717299315764171439369570064945343964436754811753710312069733330808737738180944564730248614541348288696560437621996575435995221068125714466399047689205688491580250647382293301414138592418697004271120719983624836022942030998772427657528064365825185515231536999419513387581396610226049844300510026460436495671437097049751879811184792789062574579665914001946537708204529878397841050493195552917004733027605382951654791183800818168187597811951767020859908321100156012617244859987413582753930840358974437044081717568597387440522425457596654557523525967218106513419918920993263857155749190992953351722613637060650433748325757665736043227146247881506836822715634260485747687593354967117004102031865330213972797667840051730111427233380151722058269102148640467359707788521809701427706749047894954890020357555164355826734752296874340564152806406680900636349265074480737081732479910973910922631911156696239391148533107949840227394336790104292746750295994778783295540760039486287647692482576678144137508326913487800252251390122496470591261308196404182274435918088229277672461156991489760835783920525605184781515526078346867163541267555350779560601486915071560611403765646106574962879024149231913293069539962289877071562565171449392676163161169945630611267352366146676943110406811378866450362296415774722522979108024434974984511522927512861408558026052492906557520005160274799572487193343922582667942610552263837457075707092081494782165342468299819543954202156809572553035071769958843607277197092865694885759118013973640236027289096567814935926504547533378299971879621203596662954919153351387434676127294808899364910697947682077751322760291964230049892763966032605024190837215408427458071876843399662592061410153964230679206004200173464573161710057400871214141440159771978083783655485838982451527680954996189739290759809723377315518895186750235186967013001765246426759365879191825144139976200899352225847987223614906497556318877390804392569709673854367723651063996283670038981751172434965071838943898242395602640678772782746553693821624084124037441062559569895937598568754825176053929247323340750612887693886349995443900227040305702705571597278599808650767702067956787444123716743681508342270649209691425714816862415382179828053762091954451175852223076896825955799692965895014361834202664935181759983651263900360880978996855247650262573634245326567711850001784126589958768332926307247158641540091505411478123053111792892475377904223853727695253502594588636535639059563395522731446244558444450778326279456092500499118257478382521927424949046456862184724366844950805774717171023066425844036008649176119863327563839305480365384653222984524757848983399126037778336685398357073582658382849174050786642574296928982321052247484652717237360621775058670500596046607385312625486379273126218212880887429325143357718192209877212645745810189472807561245533902141122353376221222670952512175852134885845182282060868642586426758145046691011271549542274480684728584501547498104803511069286765315496126571646991793051490562968491405641081029187546683238852362617214234153584078008786773659167827763012012328452884227904613441456093219593168028165884077898181988286845591723059550304861788622897609791751696933461311279524192899944692526964058419478938372264659918841628029432454566993989178582153288122021902351037422932383807438490339276100211043689266643422156489079708919271774341854405981806803666841382571261643881253733590270647752814456245829936490418727044976313490008307693501104089620650376296079359818325670840309817962376177533991880464025957160389523040300242747703098997687969060531322939971397490390756793217933385287120130760681508316178497028535673505231195886003048692924260862417263964307011548902461249210825295744981714890855832119929347098389945049722048890442297036149540387238088477169069850002204488503437578952542724666372894244722460955017938518361979900768007596444384745223374064329667735505156305705322858140302408452623005099636351553580955928838435377066031535992940616924433776474611511985294194723091957033950492061674797462492109664443110415302574120173093048044324555807090120633891087633910463393283771866741124603643957369156962186301664160128100134706714394795717383663670368049480250583500007086920913563131358918117647273500250611390142182042039387465639665488974554355610937111159306719189720889280238508080615634543875200843567468139250247909436102583296176460434463146597003333935929643906825760301662377118444381645543858499176858729047536180311260794277057349160706219787541595003507326440871685770715295768477985004331170048161446139566803596654026966273232524790507068327503409802477968159928825185728517911494639767019545830606159564333809527836132168188820190713831089281763812245316311551260479528732796554531220082836729872794180619985070489074491642263019882484643825709581262153675837252190147273966412863721064278025199670005943040743196688296876218438092354280248507308074733301904703501938289286889290333742092361722119844758916411817982545190974305665478276816669147263175227499138202597948588478302927298962428235294777325790541333605369362311358206865112577903159911074014046418510574852562403183207230065687309036032149505791925895802118915236137371184964602765194669094695213081706023321440428081670187673382848638315878538376744501420453326494787566223734948637356112882668225397656714050550516450557346649973847183497733533562513645378884145409414133135303767702224702804570685378898771811916821254099046665179014361849931177434219143570564425755400941379863423304329494995800920951804897157493534221775592922825588975568531305126632890711454550987231891640388603633152002560973223545271178365397557949205507225529111000526554008727074178464576721725039456682567336013370842973711196408437635897449864898693671497005386836515454133542990410557021420804281340536995954000781640190981728180879377194021776834506443038448054807709993889769474193948439839516800320830219210597031929464765429853194279750701250881443964751097835183066435750440116172117761781667976895331836589195530575572523188435664498176581071536914931689629850778828054666509462657170891607119645002275346964870696037408677007955339757728399078052509730849090558544459911244343183706614060300737594132411308256162901140405403935914631765975806220315345047528881389711391403295817522963070646057173585949811803792792736902631544147361754357865073621429955641403121349057982173373297930361154450770101010517016132663920360958187691324030538422244537346940332913216892676115145473898434933181380500924709918472647519203329862787244270173450789230600109228871659946698325028626522482629516039239824155583469648085395795150279151870019747795484777758184233640780756859349487752263500572687114571152617677132866346581539132811647263671948219633318935422559799172547387235773805599111604430851588777891749328839085906276026387940281951062624216792358241926995678968022356305852396513791340488466019179722446586045501928300151998893362673303607187584510507602782273472365635370394232638392766710971937772174601166657712480756949441183946139349129786532551275937953162126002898734666395168204921501821667047650654004704067797575036369385915602789653882883507255650000035464194481257949642060569912212324587633196484655985548588349018690248888551410721555482957531697259092210402794275652844352023567922374121741567183320374782795029765561735932652550029345648133641455504096899279563558491174648617668063320926221460667699540007142903037915904323524613200664824073232703042853097468007366586534722761064170364144258409120880950400700032749499635648407386603727204460797194220427831115574997498551556021170588512722829028870907841655105049730218858918102244716172436067047380509229972262861089002813347115442413854951500548907556134665977944980286249955614719925632637371901382907214922251061108656621413669765845207644998293361757631144669464308027229607690176856847326464233313756508916610456844951888171222818213276201519284520282811594764276400412193144482285647438283186198756472269937080231463619073845868037663149442494694429155929161460253089846520858114510747210266010029200375869708739616272978249987858431925087320481392902140786864658056537407715325481128803026512560933791092822140264534315265122528460691751270941235237395719629458528713628697866306936566959137328510658053300672883036833370592585796117483544763436555543450455306959675628744929479752849571528975750633541588540753957475200807384715080306152403433357766763039109141096699234847738298603631482492923774035498413949502275020274533997808710777337334015303025571321656295745168812773206034533169561660938478357906660224071901435735790331912834673655273792706759026190061980722654040282459012627062894839069089860370404481015024480896415959465055412789707361843334359798071509660358419100524953084729475005813853818852773237687944490685332996277020145866722134051851353348960079748693090191240227419023447337260366247818527549220573676785886736737191810106709078132148792411646526666704264380929287356963618548725724448661606118728118102235723685803988780169512334278322772752678865934284526164343828391104392439457460952155849854416715904144905725469639402834778173532135832149712498790652119208149694282235477749594164300783349876308310515031152938433839909224556304300007489129083109803599270409471885133868557406557695047059441181304983094039512163554699843496203171021676187160724145647298461884124397634179246327051115419748507929623394370472260694904544184200197564115659554722951306644132994849079638814116722218274036457665293449123628776622374530545616798086949929912120314287829239038962569122407842416314780981596659463164536322743554400890432926648212156762028031536266012845316911526140760186669017863022293321916871420828626904974793761203540376533550057063724661081087608593169191720068133563567891680002747903740675335959442647027802612183683811211340728191009363143926392144977845521789321483972758675508103175096775527672785049081567518866200219749116295955186621489736503040597981019490983954982801727374636953669808861467153632955441194148011492034159163183416164384102096813062994189490391048015457815405220125394160853754339796338871419378698379108868371814716198758842297954302834459184559102928166740866465300259276715616888415722049418905042294478972410497108964676835480670733448975136175763307119799509442755965937178772461035526131770818708398377035590521476994594668435969478170690433387849204144641378159462347086981828691735912410698506293148811766281512400462875214856568362478003432184217152046532267850327929132352228326570196464921652062498880620977959101837777959567715444406887666375964367487991557362275669783793194920576624424805981519775273447469994811103825766426849888788704370713206311512034216909192642225702008166732237160743059112566387802398627805348159284371697844815751089931156517571503655848864261312418191428958510470265324227227102116617970366081695312820693987578134077024656317767654508137618924598761047122735868465158346877991252741566608908368775946021218646205801884053364418183692671112613028487006075819077138020945609852876685917885700051050957921141983154765014984222963237839396502078905234801619076198060667688089137115871153980629213669097175164822334858972724273427978766415740745800716240980187052228119709004877227320738571710981202265195332471174441934326717743201352208126666496325882262492448063731813951340125761746012104267666265438892049721140845677032305024905877672408837470062561228266032766500996438057100850430953762517474362441080501405769697147600389798567192110272107758535636230933341652958138571417209702481975444341834463101338355210685928832850343405327069348171847354579933379795894551746224470415640683509389061746002080174917554289804378907946566102851348686001513446017441897065978587235015299744785767158260824851850338743660366589247349890818160675124409029432048289700701205553486759058973249477611668529608886741779630742786073373970556901052667301725272415770247005913550552744707352015141902866606434831390411751832048457943948737702924095514124098106117422691525269936811016228786591676778200505801697070243296656440647465778640259375692065482349537639556112805511597754753136772527777230801843719151870669873749736672212621492738453210522421465866014851338881795342800496681628629699553751231174633640562339885135950794063958693135154358665741551620382202275099208946443993865968814284766079069501957263007787773226402928218967099793865347928963873796566425175101821546075159857304551604481543580528053817093920732381384379909349396582954736552256802014103307414956226457843147860606395532221061166318386251289305986897941260901761627957525859927961716379020023997711331186219314719778498782132622579307181396272836910156408653626859980247224771071951072868807428829784885282874141866142644307352321631782695501742468790132394812577655863651556049625885198077759813812176472337774972412541635326455142863602932761144834765860040787026302298368473064903703261423467999620716338371841130090872399385933299453123867531177323593095795024938623922897207469006923413379869582166179835017163792687104557820764167186917856602540776551522924894444068264839821822293363207150213065418153066075287368313931089037660938001993461252157356851553700629360477328830724023608336584423806623881570159454903595622935175042262195805688135025965225556236068896121853729039461057978227712707930239520189508906520835491545387906808043465547730826573042855763743534108410304941582526801837909486467865371745825877821205736340885233759541171182117450624873101023065253290768373150128684788265897229994869556983104911948003671794047716591125560662036481417566380671474166994313704939583388604452248900757839235456300952674785925273551822545828788945624395632333430820117425565998157777867355675261908377588089421468680299186568694246498297075468046106700710003263324359628059950455282423934196753036243752177758874771894492863157219613996989449590556175833411133127740694852673463561002648795767145704003401576499765296002586828403446881728428177835646557578616916206007299502892242668533855052197329706203457226043373665727113335494873924708298118955057686185947941808677739537062134218929206993311048845197473707532557865442682614878529285758123621894747337925707013453934441097482164911420275286035947765256236040442218814469903413143849877432021438335323183064718896365300317553788099155624724584750334602382518366471302740462178591922275855275823732635511049777544570042112644703293258388377551828965076149266602221030164491040428427393080227234774748670133937453950910672539388158095458535764794905493650395781466335460199500697055584912849258990917968283307207447581650540670234592462187009510232109925234796307452376871903731921516364937910385790128476580939632408500660218244797186580459686137011158937366393050583256185263068504408776343933843181571214975088902020199065943388323435991463803744928754046167108398719675799230012395603711989805844308987241199857167426212604684579283994432445581695573808110235308950620800898365762032023874257665026205266404654392389033144964387733249871600412237897515545458384688431703652673941919297603993837071691098300502113002917826048014115456064260299688093724771862765415786174659818989974209164547007948009488869289878054437465755418437217153305975875014439014594158722016041415885283607256816135302236669845478477390962839347246413839468162094446149045575784416997994859166770521265796745192857277666545470690912481350246053647550929092147526728190559395843153291100176526221893739436193000124868074287170738562472756280695095525684281935407479572629103238775333433251799242317747211970052643910177814413916383115052440244938753020864368813926590120591044705765317622245705273683589316358338210220878212112481675713647119384464802551207702884983377505435351879208066521785849207455318361241561284711353726857890819215268304537057735761979936395849998022632047225590707974262875740163781557780425171341272888965360031011819544762578001779240115871558835642147441387394831639797830769688753872261811641227656592549233408288942863077640724249055743870434238372371800034056804750617512039405386411750153126199398300169579592631208042053159460993492459021530796127473991094660961435445290088381298698395684367456382576913391490264590568662747642233219043060306069545269769509676730362717020939242733578600699127005200917898970918400044422509394363813761142239506615683165579304303399312910580631615086467297562254579994832888365149123722758852566380300837126878599522864559134815722477506266134076517323278570028173529808461087309090161869926323236534376181138854470928910706832432956952599503407830994036374805542460430770743784851456217047585586069553998842524257430358779142646352053736206193657486071689316635246300662757630764518738289287090278612941272350258272630223914481585909613573878375227448040530688940869059237557315611237041889819390339264324281184647831542602809596928120941446557600693657092605199738495989612856154565212087097613938087242058643431322559303688558080893268922539388936562404761884725165044613301763618534014557444909433587545885479690699530913339277675323321288223372562113006012754421939218449423966271283727057949913394491699216707594877216113751359613174544639596000539370746793942301348079933650943556308852582060007411117379816927089003666502271559882369594418743224655954033503578325025041047474797491101365824835471085534323728128827156086926809991826747530279180907453232284694890007292268888006422144071742249599724989372371212972668607741770644488267766511569874638863749741817344954803089957950485702145941316041484072693305032640505165533543319760987199521211840413967575482587658927499795665759802115125078243080192254470047211381133908446950660871318085469791813840840347336955798611975095599437357329007443231842475932923977282683606884716095892589543150221102218135473257746550739874780244136278597396898965320254307102759276335068446277770239304977032423896512654754224003470239357344000165350235964141309805255012764016305804714863738613912243667672715129473708465883653380048712467055567552307743278835493981896111137322295001459497666019403830751279770784932057789838927956284454969927785485429574104404379430588968867603348616833356189077474248111256115586486264687714146776630163236859260258872354983610888401004720378773117449335785212479789876707846966731476076860629142450522596481528607559206367331750124688830133735604807130862843045537658727684542047463998455038348719067784324870864240225177314053542324319430841133990964095382252198053286716237165555495344235096914280039878349037091231229712890335879742965799632840102534530019231577328462388545830142394828122236618070900571925009651499611811817985853546457820104174496639579200631350349757378268379800089638397410668001367250600909873748805209476055787294948166786407515661711892257772640497318195211093160510268657865956488125054512012437064838886860126767812837105571898313775300564887545308475640408445466073718038425788634253595132806224140416664685581497620823560639712381352245233337181975446833581076914761968326764772590837806864322406869407795166333491887354993442886375088878486229797253177047506319926360438954217038499486553085007310064876396965693812015056170671480554827863244394695160740723165153512531984142725947717696013701716781765916358680376846453700406681485434050734756184732624207203942342667706686302282278153726005505703702301589123957511314246671840334691048613646744033540073292996490838668626829008964626486189497576651102178864764501451596327647986407677453185378850142802005049270839812977182193629672231548425657845523944399756407016937620004604496944043517430641835018026263286939466666140967650427546337219316159685793697640278631142716138397418426335677527990266823368882068872199467977378014175092567930584928672216293724271860111559724563809823375097263882025813166386078173078196373904782246974754187365051702590890179065226201712112911107938116607235638565729453182204267123617498943149963692629806604263516306150268871338640055257306865217000652554899133932608827535312645325883718471113416776809986347018692402464688417128623552622928802655011613127362234984817828047593607021977702616181868129321793295909617410906633584873422294922510624889901704898043297440071460050907183364539414330536833769345978775568187989458756949251502890578624863263216530869486610139945324292946692395807567663755371205442904338870410678234958843293656685588360686178867004392411773758677924547378512769056921540366285321038482014348150039356322900986079218493259835054428655684105044812514024212519857770576144288523997410081950485369220975262049031778040945505035196602827875711792173538453410135626891865397317152291141893577823424623812533076958419658267703983272204857818282253692488788633252520277591915831958790839358348716528813856622507164810063713925785454141361225415268538198817349006122451767563038290482383737123685033943263484004705114703846349333592447882684610677908413197460111573096412515746700630290018067187483680111097943027623754606077983543962884425132253027403496565725541939109226143825255529719193698189491376726458636655215525112616559715020595654231239355274857128826044674128326044654686286225648444757866696295376557740305035407027211317507944832898476230401086458112056799323440990532415556938108598899588198180033130932553724196948011563128818250082056704038752010620731696559173274710280714702674131894930720501233492822785038327716632659035992613285613910084319469736749529630685648997988320126317914188262172924533131033008514407847034643073112801169383421162138986307235217078632298741643027666777179526877595366704713669344681876905661029756731334295244674952617643037107693996217548433979390676786294027499370867147623043515915297897450271433703545653336612386737659320635921960014083152952557535786283032669428709905554830077416383134284674949566094502054961114556682462675470923281416880373657472404805659872804788857743631546335478435479707204371217721294044683176033208715880755434745630652873907904561732013878037220457833229835067666283718064290625359217765161050251507243350788504417759217042261884939091979704608756679116605759132364512781068561009568654848536489081671002017186457145732112749225020435425029816005543789527403662030609949598496774586876342658289180992484473311189037128392843283845050537852602844635503709734846575172292107628046250498851307596529583178545402153928655599167036046994854730617653200748514548169140595121801519251324469710840439180967820891598089624224535234621343202264241860598409933755782793758713461082193448681097215035419953098171956017424214438852680364733215082818531184279432448912766061999805109150355780687905822022378210721836675231078109037319283520489665864311677202518884900182218810206981678663994471476312152941984197408070274367921600934189090876731602124726888691472790155234459620812782721241670068793265260490370139867963554337418139168765405066090085323105861190456655596639391340357098805716005225040272697917405338304781021718565752910334334874614756362302329861271082544139748763060199738475309568082194156335076669333462341953734259440465303807582092582896570148331243211252550753236316808028868508393229303779311100400581694961973080887993315338691315961447308679771241604371883898569889663329543313733293593517864038221800087376642827750562816014313876173021518144840167048407701497784217016541320365185205514350757636840874233669580676953377999083366409810238901857628984387699462555472168880665318539185520066231436230118004869370166340472419775458160559391842849005107897572709663711605278814389217918736015681776629000147399950888793476310680595236797885581127405143234718225076786481927505566883191024388885786697581936211309937271955447933042678863563695542415569365961856785052695278058220285980755812724873313123905639557080311125395776704378005247280893614965597763313995770378969837077512705129898193029240238262353782007669371687082321293848332869721616860056107988898659792022040247539303503298973621548937162203288636353632686498531176834836461433715780515109549072594906218849848258325967335755149671917687537971384557601113420142334860327841834472781790441804816077160685510541937947504572438127035482056615925745215237383160190846019249891306178635807663087897625714218855090067107782474139428967251924520837510727912308125835813310576672199411673214150263390319954144870201157692704529853801608147467162408529118126370532033708856762096687250764504935699866461677897019348957059205928651137545746484971046181364945597872665282679202985493560408155778629103292718752089700693736473795973994270831007992848255624370576023618447808906471992480914913037685584669907358899354338362679698992947389084590915997427072121365269629888770835859488380026004639669299989611881165490685811405766455683938007480902822447012048745463474330347867235519016504829144979895042507245546655130510649088010807856433241064647267196996960078837724402497814099966181921175463684829617965955275244363832922046479371246527973669498863833370407905888558463705054270230075242424962346434584074358068039473577878287980408311180802938308031143510468580508147489731486922248655619116123940440056218410698548702863247682428974789863770842725648871806658089764622854335126677368029166631086842681367487417018842208668828158049323527467955313477583262880989080599030237789243408087925675253105634636726909190085673568878345241925375659548470427120206324948925926139328166005978842038063446643729133840940911843098706291300081844655847736550370535892600875147510050706646560833632096453123078024323250679176132506162260776229413611719070358786238029548259089034105076144101881082928811605416576493090195503881890229176888565119025576974016218379924537207079947167823892997970434413619240641028683611041647267660781944775751269177720539391004554689869257804814448742839388972839088333238474350596334169269838964055050596261711142508206062593618478863232247749014856917852386839954187165345331244546757745183493598772874779450871913885555888018572831061872316782631174965057397991786603246263225577254964184241258912992701617691514298953723575552385499697666990930767597911277554452148264936451907298435253802034368674793148764482556722803375167146073622735920981368438970873847080418871278491157545225649517473522403639675042612631560927570531790030626848237881672956662878546619913519902652580598546943896597143789533917156567187547697435627554177856438864688902127424522681007506183610050419286797775209322354514904164534572006150777832799294769933403799793168391729066974161986079040922300780764303706251631398611074715474676480798164436154032795432273670309298747138159854268946716667479775262987939883644168638382073123853143155028122661625737517693439659857528412329291147713035498264644069243311181940198859856281840653278707272729829368687142917531212897509086148342744284179476084463490457657937232177475245346955394887855339597548379179695909835713116512556477495913827387726788716393955156466429242749367322457719571370113545436620589673654934487203151125589808519021203824233430694100426782292736802692444690141992784583590835429896574721291052157481845993645093846521437243909553809016985275787451223363552517663768485687618362293665844176694791253728937102503048415579435067389462020465518245596391377252698070373844629850299902314411589323973703634041318256950502969031101744114058710248791218405742513148685514457645178803519930736972281394746300085023700725335557309113750003310514605903951667764886035284134557035353063838565371009234806758279561628361122568060661550318880559782924110124158188170382508594727168432377735924866286213501498513713877168814049356011330170782153363073650999187985064030437754820333186007675045625556208084229673424467716149053870307835696103974183273785283698621827560019618223102404063518510505169388706809555906866445280770389179740186892355205786922045535942956125691592973507453463889426956550736454731462455388153440605861038281064872179229968667800240050451645691257137655843183519652552147006253235654600012384823040768038955545631097449241973033232484682248037770446038572409583438128899323971317451074350281058854488917663337397016236804824661596652502094917628056780696123745071894723086538440959979716520184656087135169421887655838678070329311736486950734958163581735326441033477644808426333889785921873162168800404407291706779521790159665112283165449969564328109967534019261342416054595051196345925476248810709829116536362830489427569289363214803043968202659198504692479825806041954792143513356843337215856843237738156117920345831194000246519008468010322975774594384928045108120477804335051802568448045014811992627589948006924025298734925377888911127399994876624351946070537751887211923464059712201476810097920166623805207078578063754575818697673469632400793424821885754645596581626198864697644046443828517725326559394106888374278605649174990711931194462303044735080040864277287328115425361093130777921581435215834213491553480648513620259933654042179078658753016539395009305453371950717182747783314260871027376447680921833488242916954505885301359934963208594144508229012817983181465062653429437760520706576461583249235390475649596720060417281052986487247001745928270987066287300377082900048296776659887893825987374144756453355296997837432540340486968802216122903970806961299335741621400961214071652023140885101694318577392202770519929550144776441551191835909368733989555416482959856729072810042645178275194098980181503234565041061885103889565880550376538111134668506845492797640406742897766174408385868016471365333131546002137862956351888347759239612932004277373344639131617396169323686823619527996686555236721888016816217889028714871016697068777403245044122409786201667004845957050806516878911726218669180559106928269960420915426392211909624877180275101349072578266492973476014222285336077913017489403088768525956318127126162689631056779065140289851263732438397676789695033400398076241692330913733620734334009445789814484418923974394901235894654661792351717033190974347246783199102591339670816941608694316462847882865364269846903979776009364273443391492760870797686452537585543318238314287462665286498772478317567483783903242728653772331881575240558391425056705600393781837106454419177679216263386102979648164796978116477053436480875108660080414808116989550295590811061049914782918014170408994635652506990048800935235373233477989491429727371024229512527098949567810537843045391312645291279523843930563735784345969218095895385901644070612852749733528633162225543339012429149120907139397328823984792272867030817837350918321221289877562613053794027479934751232570147385099613139323144300869226518407519976385658912821077487942879589873234719145652064372693100549446915463066785491935725741262170757461437721759872798813227386969176552310039280284417111486102462735219783512309456090351315224754399583378172281582810082991994202208516678502352920868500471629458776465500692773585550290341419414881288709746051788497891865974044832712231425164197747989910559575051310957796948773836832256163851433641678713306357889638201052317440266785022501563064015614123088311305388917559386639908354509973074318789229952188400948521827514448767930850692409883511349740192944595575183531690003469728749609470648802476563871460942419334855809549993258140697448419980832347846068037823344317540553626772589424808637420818704418295655100289363248848272217075482720691313771267202179876029252460310109922803335664464356138888503076242294671916416127810116079194669408912642563509771024806468653288107733119847883464192106455184229994408782078749344276413267510025937222217563857738468185576003147262272288032313125864823955361582164127947638319934455566611727528610310811945848956165344958506614681618937836183495249021510728209390661746340563400656587386706112928781915057775862060536733796987210750474221233460540554660444092700746934875217597746059117766874002115083024659092087413992303076892412467214322562722113090606709309454018053338356725640851099022989929481967850550454599075959836974066453618066653471334366445786093635383348487244607832533210540855642476028275589989957650102210914108408839099334220180897041906325921010355308200984585080560390216286870880054571195714721370040164229621025214945367425965983978913668488813934564482190547741335339760810603648432292657007966416153800997696398437096351018679937474952217262670592240016377006259181856054724633032688566575239210062401268724684416763718700202177232925521421764818156129630922802204853456071728615557673908582083879112190599915941914708852102685787532738267556972763299787890161078703651032468630512723905306257838288409080656365921219961975821123422328917906072284143510324426253289113616849151045228511572724902088821840798645026123985993172076070140410457631789565920131554348082482087766025701337021525235405445630734334573404339828164069891872122574161003174058349478260253403604667813364828034529401737264177307069315689414234793651710238135832680695365763649144554853929564068243960806888345417357964762262517987628494297378747407182928169549951291221581028166121452126173432873999754299975798267442396277023334909790174422635154070690855283947339954364707186137389464854434821777481539494403065075219978255885254550656658274271944569644499531837175326806681895896054180218424822811315214780260956306895427080956266895085731815134658464067193965359147483893056834292492745019998613182700470136638369346057896812795480689154431662228890522086644479473789053204321198768920950775571509820038006517623920180885939928176336459698721068502727227463785198776762481271951804516619229872723687561700949181797112549848585351496890867257567776443761263546142254779527164135312168371712311051293844986279014061155560911451286746713082719046941586880461671786940914722784042683637084077441063061155328754731301480106856307666696135785575931958794932171793412634824602665512556619471167537950502578733206522482342603524249745145439559963314637730169411225140508681219847432144027546654905809389483526690666268425178591700730707959036383365893476829441342284919757661550598980518620970691124617358870812505598635289182066975665485208179415511814807182129275249339771626279049252833345183015006689729939035212053535071185807371576589318212962426567087508353327717868337334925186578218783009298398387863603498410975570311047036274535923245473417043048404957274943347240527156205396412640205814775490406722125504757701331501087253763008921854213483375538855488713483652524163585914620305375985572358446757982603653775980324149070793509309312957387536702054316311007280286827238355515652770197708862624206012177826081002783517910276349906409928595728895706751801508003541556205955477116323028490468795441006691437017114819564535088503277342935301182217204304723967731772994113151287184351759850207216689632989280264570446874402337825346302798544237972157324222777994539349256568005308238738333471982437409407177480084962540723968527098713955649606485998787637510605778033193801247413549720734157273364439361073761691953204190202238141419678554814608687127702457187571670201351797668516952025980217768945979873581538905638747460661597427969345900666163821407883073430962532991695818416705857500766134430494502831637839470517079010667686153565616833180936286702714090842015206833037102189348574604220627072579018775022306334183833409129815142228330744649563445913476670109669580277200987579044336077293966521625506027053142646672599883237083070602782804674332848295837740597400564186084196758612486486931447812433647461025328477860316149412168978489967454593276519310212823126925374868896491992110761097663310559118891881582288029007428421776517559721515362830129542028438245968095570897790958643692903235437816358561905565415574839433306049461074035642203263266604419179071720085560209440549861257891430248665117691472119036334694887196310097715023812041708786200123313823376934573958663048341050063365658444942319029143294639929634857991805827708968855708457979827259399392132639159811096744655878982826955997225249961184858425579311096409786424831566726605615845878582823524284811086858360601435907464847660951332159799353390813543550956689284771737225930682847325281560850405793649220869175971503184654304388486094590668615181976916689785328956720701041884720296761210539574917883319737390183118806565071809014484339545467492972720690286627933056537383938707318684446083187832140742404821684223998600798339964049295569329650696778363021506396655134523172590704618455249068590646034899144116467494480753509653771689543214127360820741222603961000783358089757168445813273466569878036712234959659108545244590643524399711545752547580085538635963949021116593626762184560977871990064032141814413602117807448605901164308175665943339880414455736776716247434418209884674371196903399447214348493983553304621930251108821735709607469297602729420580208935024435804657293549444929454619605208232191419302129836304213650455857429265613023190641277977980274896911527668147275116959586542347700045788607773859445361428219589341370362874807191244747601885035531097808931756483357747764135000769615325036308101986223829265464969155059579065655253999533976729447020125099933344782817499612827929753321970273220322837017088979176172248992070774030872737451550694075885335757067800156584589354144541254941042511391800097476285026518274843426326975654119339130635674639598134193047344594539422367968725602832139354296135896472096212698648991303904360869014569652745857808107104421763723823153552368896829205300494366034686404934344937421095413668406213110464001362842580309222442468336872964716731556415151197856798178735038245424943507017275514274465097131316186487616665720974956569152775924458781818502394645347463501405526246827297585859671179366741174920405437046960142675336807344434611144376937933781761030257460662432924908606788131626863632471100724219003328515550818009621378552641551345288628163170985055297282199395547391586577941334834478092776401692939095897999388866973789868263163044534149093374125157982170513227913212835240816179533797041767561031114704637835890820373830068240072284546186238381822774635678196630044081190843843375294606989237696337579875912690284200391558477545108401155658205825098042719233495033277073086582394021091326451772353197674638297519076800264363300905881761587054399815249173875114870629946180189175062857913816202225790175182634247572570408802241688414496064541074913309033975575956310969550366302357159522645407496797510539849505304723042862996624577680027895489320591321175493822708279841887373032472503861331550126804092433228768427865137298657897898691815389212860297889645820682271919578348544185892501987950867255733791724502131721436576950840809486804673035023941621903648847770276145439430802495381205698849504572911377788266325128314671366702529090458157482218617027083095177686392343634042575057386752355241457962753358707550470117063869045324405133537344821690777849416603798702624312291874519944580226398783259512537805199112661736944659354279535610457672153039571233265749495280579427673875965492295504001166399313204096768390381904749809060922641557170204282041892373523180255628621852441720002719321094786289738212913290136476275951831737203420889642408453758360144116502706940039658224542064279519739572894315728040942162624186273564192530466953899448082314476135138071570721925774714391673010864755879285034398650795413996457068898854367873411259282539525533782615640414598787589896426505536357998212295632795857403053823761651170505262516857514103851778029033957773966722381631139291488985509742358615293883751821892883303548425412397499561391009565803912254967259050411256032929839946056618660082928016184733553516079859800708688302361591961967310486979719586450957573614122865703448289759533294904721911243282418868854433641170801262636757690462621615563823808435844549084997995861631139924841984017088582518891012271793241073420034976217153658526534666800035331381366774841189352496946803245258793583793720247825164034130029453115080265524220220116533881249018654616255655713532584918683054319550965267434616232827325013667107651917491903776017038543954951072679225270234656048412651861495217842509539742502859875526292660321015680544887757884587052055126648140236231183756280347125619843280847202168488870709521924053399077715072489703636937085537432010542752112532486430036699158344425226423009546238632709136602416805859464890886019842842598554011500869915265749478896033096031378911688458764441642059623934405054710609868825755196483636281664452816848020011230598891886020278836622002890835580214529988371287192369374010638136464651298986485930436613256847644137749544755964998490085567321954730513356273024351518182189112750673182768668876664491487757105358569271766867803956689237087442750705784841261777724273991004086224505349029553620390051416724795220749566993668361654088555353281994742849895773820179720749453840974635193153668205866600636071715385804645573249685620753820419915425546821847428597933476150546438261579598043039854139796484863125871038988189805430020134748096384478939127170579817004896911745484658489316807016619367622155765787112327391922980473422663533675522648307141807222994447396411191398280678284800410932732939979571985629081010846001547171605334841948126605585666042897523411003810702286201269405021659393531771120919278262056413457455948443051959245291343133588665276195625743949558269180866508407588119694726180979413773872771742475732053385864065013678039005625321718174011225034324620128568080292706680035133243582617589120788561241219100979583009415770057744059383314864862898894162500125234397175958244473077155706785904041243326659814042915421718534336896472287895297117412257258708645936497519770251794945750385432601486226837194574150200244990099282243949960562757043341412369432445539229174459159516166960565410070281401153902526948425275850905990238982049971435308671612769247014197551407612417312178397906383622107842019500731752780437214771456031439765098653685806112238922424924819124453449293884374011086438787715497148839045728992549008063619820886706839362311294445548994712915495387409828653391843019286908245602729580010579496647397490856871896815912623796269635593133580693587617777849232364815636486821800151947537083621490039033821759112898724243560914868325514350576519463229493399430145183524424556911582044270522684908224467271115319316488379457257933846561288548423677734705824032676686964037511276679576643702814511617276581343124881355928888581093713913858685289884184864790527313254020903480594615888749552077314703909034770494419959017978329811072335554409827604581517924481454203374793031456097604094666715354493213857954552522830158319260381388311172910423207803223771660134894862269652880287918110495540796919032101923628625478042439046647098785970274121394088892917314946573161777632896876965995471180734128487804561150219904969325267820347898757395931708702283654939683159301880961572597466485275989668261637734000425874949079027310770554357099071709342207448378684107180386862001756796585210264107580803973489934472237690347299379454988245772886640603609603978370896191376486345095787560510038939214496797165398040657196667538478316387637947890117305186136173241185438116186809130265166461362354665583294971680421609711210106708858093033616578909324747519302704845198839879921655460243404512903560427046069025604776510743037591856725950900775891824476221092891871341531582991519925778240532605981138517784227950273771037324839306299315702219556050761737889848054876582692110642808632876194022018269360112525892803498382097421992695356697221616392552277371808793867295273029102577542494224347091670708644955872076577823178753628387585578957150299682559277108044817939895537241274697516240029028272001132306868504138777757893360819603808129586548973712453128176282032642458414605537180382700936865739618736289592843610568529679871880175851099371180930693225838887569652287480149907795188030484296865241941218146793024292102997842101947820754978900701772395813685967869257929243664696152669779181336022637146384970142432392104897815736148375703375190674574507133317424224241063258388651534315770949408951120977477566174986571559961667972604183971324494041758495582619111151857207119783553485575642396621985483104293531282779022096310821238395699985341999054071043493370137058762732867463335908985868073119205748448436313593294175213385814019112517912126582396828796746883913750829243673585756904683314207419989483562960033128921365818575299331697867903069635121568562270236484519441192534141175088263365902853057458882990697498354721521305973388418866420247139148649075104827458475290457626134372823508348175435416853846807194330832003428392117359963025755626616748218564650270994957609285480460473742697833398366117168755336777669535152824967811363754992982091340962557142291937970981266736480416242150850942541440959795781871732528096240260341345325120727975385410253084335530249912945772089791847530649187913839461648920758982049335240123725729615265521381940013675167730268373095064479640248076298629928355991856032104776096394500899876020536444449542183633548109754149021275318586035714349890144705253417333214968808082071520300811252939285798398911684484042008213040912345236237889879021878301925094828319184594345851630986762021084975595638050771579323700567680728773248151799418472555550330003747758784820798845410874220008618776967723080590623291990089948225428793619488261667680902560082569194026450935491495441118014901458587473202021656606107150461583998474977552577587610669878320731479311690743253250758014923318575928650018619346775730151887564072948998755634770574056375949771202894186555030363611374349141170599533148211437070746432720705197513709967019502003682537952001748592593890898332162965904498194334871808278366081883263985701544987516544620866214633068829879968169663157343116933566852411999407578724555949929822188506743396719364074207882351365918324425186032481510443999705244467390877413613861826819260273724380947483729857243425983128365080404807365557566027155243169036534423498062756963958631389713192232486349335827870072643308843418579855858238566613609924038327332213380781473285892503194651487172256970809524696336114488174884531188895644168903784230639110388095629939404819174448826632997649679114211914107387697203998253530530438883435246223754940262143415192860681731011249762156967789500910936607491579500938064952286469508697721727932048814050712194356426221417162099318184115268089260654561314848305713797024275829024932714822939969137386548715349255281047644433754737587195557856822266978602082106858521665567670699870676500570869887983919893706321258406902072399249909305666175892223690067413755733763221594938454754012047595341961581423579983020850764321935656538495039979929626011157051217626317898020569273972080643944573566974505664970753667499403992586622965725320139954272904596301780968001238871090066288081059315786977629040014062678758213803986240001913682479715039438975013068163104219309171960093898323976616158058647368189887894979846322224616956805776398397026143312244112847937991634062208542559627118072787599469220263883403094889637957357639902669343569396665253206025352269848961947537992906074916665076422761927747418901012300291096620027039300929785470944552521981244982687232719468905999806151252783943602498592899061189417643424380099044823535719320523595574649252242544167682640362298058258188193352893490204047227783560398229186808730685688507444518259666518854119968537805966033991244182619752581258472086057494814834855094483666367814661977634176560165793224371255702397026308769111550903500669067380338151919701358015383903270303035565742133500274059269531584216380782445008832589694728310807273278464172541576237385788124507394419470047876064007768126720289474069973426969266012508124366802166118481778738885894190922578313956527335990857292102190537172399382543325615151103190135707621039813986229736621973710293469929287585614610892330905567198946403613668017291587133037565844736094020291778690415074010949520298373538587101586456375929640748253735963068640919626319511080009181383128105866743669188614057393312168691103670569755927767227885998457785183362346017316288085349870664767383480237344571110173510855964285720273443204415903619500574988182261993596429994968186701785063133445716248191370216322652912891226639521162219784669751113538536518287698663941967964830719822079381316889491292561552224834788004834161680753609487956144501597801236681299023563531515762365142005353300237840334955769047705507578037897630713378637214117864425364379906556897146363441489755931040433866620368754314411245430307871983022294393765523447536584334968915231969910377582983616666801605250240046516840988959086182387833954541529815278657411675036055052421673522119687336647818476059242281651439893917104348996545160886881328364139953038015433766211918465680138261848403712564356545795877649285355297432552347517803382514480040935204986005941790823622993514838097001149653599352755602535839232316896353307001396144267204064108928214182080403932912431284224296532910713807795354200960623743692819995286617706849166694546694244144014971979263006573394582592005735895840578143539087743138624854323910382618044950604554565429381905566761247686417211464153133870759339517235756314692735581506332356618879126714785681095169443395674244878908902103488812752365184531827169389058441046099841305220573813985324086200284297804692439710110920480212097582248697489348171315897535597249086378107761762304281420407025449156833758647056534064572794526742276324281957913309031892480962331061828020149353844563966327771795099651231149039969581572256848707497982911067332335823806072789439612628088355771204550113213227479759274343640402706681227305595078664717895302670985783176311647268888240859301093491359716123605011994520636275972396133672915315725145620876595582583963073203196744085611554994457463626942150129050919967215690361181818059329922011035441991763417948960307328593279562582236089594661962755427276795178709484990378684401344593631438354103653176635720479955516254582220881743721851659783002165734549839049747744325417440091917526500192564828857773915006943079466250220088263673102150313696764194162209302293480506327172150694130716184371640451284022395621706260231852029703928626022200896778764962281882941201550968924458916259319722084257860105876370438412098767556310989921005364043303155779909809538860024253973191368853903886032605470308344881801975237993217415369276997756289130361419450448616234387053935543650547229484687166293340756729281033185818194410543856432575919290499165030272893863848475146866807411469560219746469261057636319540730751101734185703014642492366398694777488061652383894424962634409820900228343826618345880689840029422611349183358745030330709504964298141095911109265729261275111710262351217840560664868122673086286600752532965903176456544061823883239935126012520517820232834878184960708274148819708538004328578825972057485896973297951227077606962508925556498917035125897313032036206498574216950233026494273072969213271058986852362241681889122883548068752917702221660513816475395160131278535227157111486960274253962170523311580576573069336481251292026708566684709095997371050141282269534125602495006779364797465389315433108990094156777909931482387083542964063303856787648827919208046819103130275838393756199571285136178084175154251759221274987595727976490592967397018231018681484779311941215336295780442019859633013733144765164702215334488625008440945592307750682542533889867915652619389911536446880817306864090220347039976893162412494283942293479964095377232796042071359137500992438975322530517004509096630622189747239490299653874799743290934945333910935188543301056111444981847557148708305911732182239755635808881095229627800352669597396967367614717031774923656700025231705085839805958268800996595055869005012130801653623696382362553567548792098652056505289669993712464574904983697520793714077974309841718570184154280812180379673233987640684987162249350441370656698554020741830338422144100372072408281675498440563469401724239966160911694811268835562214651679343800787080225325950171404516333509689635716587108342093302573060323431838429275149715349232841221223049871446096129274225176223337577256792950734619722796350280407350920814278002353515167567273988678709015109328152056708456451863181685278080192818831553719788445829206847792490593411636443693857416092273055535281807857169709392349840441158550341474580261481815355264050808643960520566093570215423517290089668260822765259634038129735777298051898789020908649638572947414287938368724722341434737090292083521414474140511923955869576205175892662041300457773141715307329771850986807300400973994601323401973996878833946151173773383935212603155156298831415117719602687458472926201462733547175093297383219672839670714077983292132313787101254701781550770594425711824439757144877893593948688067799362422012435876078758941304917798283370904422043104447809424467516505379958357501329650286082039242796585955989470840506249457811641440939907367216906761080175326151681229319475347656135435994326279796264549144062013976197205322263147673244338176849031694606323738896461458992791276317019347840027043470226403333859829134548934145698485760756199041431047541023144195522340853692431826436757518782580836780831861713864475290527695052587579494405062314635093591200955887931182857387498355449872502213208904382342722753769927492619677338856095679654281162561641376384265762380177861534580178499910308370723710568390285010006828517483408333739670518582444714172677327408429709428394658585160186615924589594379829805657238057046936558830136049722612465884920252018170946275025277091606677610618350694049803494700758978635012356170601262073317634569398685870616825697255353097517384280107966097673171603195538774038464398939160588749179747435803881256993885470922330772653051079494601600203146752888821132582994485990699668335568455654648778364219891403320853387617261742495109777569841978029503316253227954808658394547865867125836723586675773293090324924847213516297496110114116603187153198905172077411619968925885622589540966159914046659983235307958886018287641085599819640234654530930023345277331607144705942492045245394713952177751791734055470579069471138848879100033724581679148451172736514769397834254923698111669274215308730093511969436703413870020696954074436840087443647416404856790784533389375387717677197400505065081044751655891788540888469009241966295778251193318472523493840439371668280715291516673640781856557184311038704203090684404293838053339921504500175548683414827011071113870879986473838174828030759048682419956606253562148875329816914387461125099039484458184463446265777612030820050745264466751135545883472013864494044708310652668605686444576611666304539908878251132974761871872515498404936808030966458962882007096279830251005500952597529811259368514948417001166171868660625782819098122873699297794892575394344209386834989315157720253999523803116874287937285205062890995543552393037200386943312493657337443219613689521560276573029460003725265154387368719078159466453086364727125048648775162107283488089055952288378744082894480217912187005539581391881242341201887576579222722257011412889517890309374265055612215564555829395062663724325797599710521955133280657341694051355866105060001544926094522563671258218390663915537149151406739884134494429057437833244364894845576486460692792383682100343974670700873195324734800408044798347287713174735123472359201378602934264199087937307600290056812196936517081974883588037628162235949118628993277958070225452985533089502436608015223091926850088281559167684557573177681246774022177816284483330259518124052683080355798396787227653594066823505486954023451631855720006772063450291597331056244264304660045595291091560737008451187924985444073133087161870214332234096437300275703839081713896397058257984628327578717645121595571340457552640770823250971491483726953791246582173927628247524781289203843225099234927308289127835889012956404837670797534745377882228835569216915143983093944371637736058569716835143926804156739084305573833047499434035958688507437065272170257051344606701595678969809008653476081564714782952711713209502646173721639608405349847333574617369427222392620354966298275507616644865012948642024140596905121935234878507884297035063704614526876955683430224235975750915536832194207213805083215648415868848771965251375209538215578378450765751066868625794471395635382064294642193717657242824605205875750691355589369309141403768822836365163610274625965822794873027809220330255475517236816763142525036990339186670308343038619090463749188087565115002088433239249495480259283567870324291960332635918383433124462559771759922728917416004153590421066262978636416522121644826908618230734898451782164886525930812420482069873614475383503908316423380775192341892846609502105858503921078115965641352013615804163006775270639914260264263495553540892150015983690319733074280497977296917447002513021668954444303663797843090358775170613496248235096780085142857635901088197533546793997201120713766273742344463308012886181998837058540735702687594155460958749435893427947562031811510151131547865613192010999202591993791910698825441279915620788894697658632214264258341020553518376888884360080440169161976871764344852474294578620394636407787908311773565639781405504575477483584125484545890247023772261836479878077775052418438594674325665695715316949663791377565884558289007675560912119558884336312513310686491738042698033653412644554368860982286346708466620530308612622078959682840533378113822363126118807035066551707927977592159606978124034713238309638429962064093186913890362382485946580560924152646088456781334371639971268043632856488532347000323699398622873213453899821454421984611770273352675756314361601602113281103373453113051316874796070953787230971820748606956829289424676893569218373075709038455557153797620708791551478003939989396931377455518367592553756554668378627562315492177863966166045174927330542625029975716847478112511940524267667723170156560663993208231612601070068018671276820703748263624126737344312203760578660796861658611334746480805918433508447912198425711236711751349119381513068748580442216427404920754343833849948421536890953298049333273393986202444285646783443951910432858998959622931527334410926417665468591532708335187901019354804200314512120331752312281130118507783611161988851631822114660918587074643183696438448464343732265924167449054138002219971871327816856729004116368991596361012492611700960264010487388270500359731826040934608922518980090698367994772328702343971067169271146187734021340101458094435142501856408797859126524208316529510743736031803421622621546237896604838136906413935599417111154764911642562817151133725221157472987465336628238652565661417768412523949768890913142722266347978451233785127656359565466214176882654364237852383069094756290139322381763694389041606334561386854835619652383309133277782923301599335313818461610929220168351428186739141775731261377617871854877280654441979338144394351601429679696465676308626544551529424495604704657320189088719152284732695057437427774729655240276573697975707859763622761096775814540386861802134400360956194345588167346564433036811067343402854466177158651010257455613547484988357740453488557047228001026497367400518142063457278438726519689041660929813297998170933500499318637369004211704167591999548043761662740694855503842195376532306722703720492453259657259047357252309508454936197701460042897196572693360042647832532245490366467775187641524808151299612731197143181789948051412712672540374792817407425441105418195420180985962477962407802216364180232580386295876051923978417217145805077954163034899151738253370284685668768726556046699493755900093621564945257796452711477841535208650648296993953929232376511786274395129224403904238825790557953785068470040775452841585420336456601956917300751078211275228485943884274661773768658076439829885241616003168666800414501992698728413711292353866740768005533663527115437933724334788594532712666178907925780738225646260976403590586862988033502646844381711794942481839897917796961572789234865634426112012612734397934514993593379092450817127260309696650577552396107882697835116657698316880081264806103527435278670417518144371119025134552863545626516820847347823353174897478980075244020959852998896311410827701471097053940413928317613397605650788532652177799198042568711731112362186059695602379198718511461325304134438579396551752297971540313201796858425063712608025443523413905789248561171965219709687176846230125900121085550008048581638794928690660606901890001586317960473755241589094587678204307744488429888374275844404354800111818194942734261010403595560414041753997326826629715372298106038488581751482475886070532429271862369201694432862022611496914842844496584786753352695455202872620509660950143513800426220615723157839547209895797200131967857149552938985483926887169344390488735424421139595911388105642113307163151496692513414948151381445372064870959384658874629410156894921332762878281423210658762476938470386875553313033259588573420238409108384090415588803638925349208269971340669357901561731165897119369830322518974445135700817348838322162866346480015959459156910992053002007665226816740229532946593981205905723187258042630211218005846152168484710875368640232174725010659700288632474060169359792623166504241368106717449735435444321599956891887949286296523385780246604869841942899120117844692646507708633059235047736675972371352086653281482670194986939956333133597393122801401749382105189921857592657400864435672015517293082470003887421174381899510706081058382136377599056409101282157628291482699385409572660756375159878405488982855929426802947822885213736539542064814900790603581487745137919992169643566562856534266854969721068308150485381899844615447037851091965515429824904297693638814247159823797022079043382900696241927573043317111977390385772333469256374402497074549632046451343952436883089819265327327448140916205199806564290981865450660986819185124272302597409014805660209262543374064541937659002493091759213891623657707472061059522957683019996478292290996514917654469055523780359956666016059402579020402654891245601909096636889023682015430961532874915957342957077092907569001804498250056080050617838693443603644635008243637472720249869068505633483411786676549727984212172960636584373327017791236976553914503989724721371250412232956565880555751255107507803946252711243471122601141174152525261361349250218094906686512442428028585706406484805320121019568576611845059685401962297907722325604589078129836958300274142649956843687616416883688219964706367557480741937960437068546553797189098713758305028735264329022692664834243260365124982415670239194263744380913026233037224709658097364550559420106219358609873185371028919431465358538658084060168218839423152959214271039274281030790750733119837770387109349581179885074804161819814830247333656881969596746498160549810678855790878256665183136429342497400090001008777138363738422307749152545236569248316957162383024526336422911218079960722097837467185201866697070530084029258252811289171870314387555520164979125656395419051225392897950434479471019512373508226691131491240558110032257204398231508563829137185629492695043694579962650302923846352358280520514840668220479967364024735477598869650155476320769704032365830095366399551777261209219573385764561003358828289124337067744346969498130713873106876315170188735597278279329415973352715693883346227014433650781841285651161002490781236826886832915013628415457075013324024198116752722532437811335974032562089845485929820239430992087985622491045743560733745067525256573270775584560790265738880886077383857874715061557140775449929797842148430184840596239331349874110602985762091230180215816993240541229304745348306554967944486370528077465012835627272257048252691959164858904005695741905548233357857288086773066744698493908376471155463450498660451294915903926003204336795219927279201402534429387231965748461524742783780728094818037070692435582316775364960918808524120617301832077261520214182425033614255575777244631126651400520270643357171746391823189616165462448208496924722708820748832322056554170352703972081678962401765830295069790012994260458675913064009077255001894103459288271568194853935526911138253481200032408617986241012473596551924288641548081187766655825777274667673415681207290642477206401868764872433265876434263504705862521238511755319976564281925793323110332972705622115272310696010437948968903905323873007785992241705059534010564764516117529018008264850922970963874972492070515400460893208245892960932313801138110487425384606353298945615847826706538063291729752386467739813479012819964970456250829193525685613517893373095491873061093176682614618797576727838537309345923126141303941711420576477750071044139840536919816755438569182370334611804255418291487169541862481256685252181857826035805883177241918686082172948400984667826601453230545539796043579710979984696672344917097003597121485428145025669711252618023536326735338583063485363386674860381062714539170007183699027112854726374770154588952629279228116619366881498622192915950916395498969402433506624381889888520037318166824944199009680369636916573654038929306836629340654637474715073644943306041548172243498689605858367828063023212552953422157796381449149799725969071585099062309752304587133985023418857803987810039187284907770757233146160990493606214890624655009963089165947864373723076139786689778367601850489322021172264291715480300112089340667920743305892526468687490656033474153765083547209362218926152208973496192271793205462974794904196908788303285489884888638500353015059875857322189998820782862611767538889563068504559874892067771572425103115684418734619574737293738564301343521592202239079520116613080511203730044802740681681980150069217175258640264605606415662278517817900014829967275587502449138504013390552512946088353962167570830372694217294069191574890193578906391821319830932654480439428884821662228357782960218633846948531900223464751381726665358023485616669856443170813334385986086755979389255615283727189987080247937595775977341357497037839134600866300070836310202676104004128839491319929486896025168287251427014749988951383643731645167641417802250607710287447131444852605024624900112212807094464758971061469690721343544899433097829145211049845797620503704250839022299427011163384785001085123834275242206807865051468812710036117619622376524164170638776065663980472106071717987863418054872763239259220902757418798583164829670227556058674850508862617390218429721134060508926181582356571394587795871484453326773685219492370438858846364490006239721710880612176956055339215558071034029467875998155459992541765630345966949389443252175372668039645822979040647489174866612872368435318410642478130919063718027320672757783090839723584400414187893754389311534086949614283748709544745424445832085334076268259814710802322101835284293622975945898381054127970331848913227593552887625816161587538448116213198785324023358635342840442032876801555368924728543007797522402372485154906493352563086649041372471173001545301367973337550844763854972796411027483956488763207319303137052482283518394573676145592654072296025139374282936064371519112574072549677101887458814004356604630982402336619175794845191209084612092154926201152104983614357609971968237796524663774526136857838657033460526810672412679776858051785179806548556181949609975862373000301860884958158450551241456030987804477445624349069013541239980460998837623539447707813025126837865217184272524176712111461689367008663431409650930767159856696826038716890768847479013926377894701075853201064291050100627054566505910040979101782743358484960179634280155823418546085719882732423396847035319226654546482344300213897313438171164834323062762155970950266821424810710573871922829035320112229985194573228360850821378720485964580515662948829890173374740906591316002929163767833504738490107513007096867635476464939257094925323782012966561268410188895069468534748713274798163410788528109433277785863912996718733315177016415993144935192061897066506043205523861953817731076524335021868762673063121365257182280560577484246256899246953438312239163415381587773219457249732535742081718601192826151613930490519130953815691292469228740343623363470044183129445427022096219308790209279637532391461185910234673417188798875482740885626704408351535111947911519185169345167578176308773894198720228479313803253948846955986676806093613159509790989477694670072593978051110516137053949747067048374668638981410238678772894004661838389014671187383481849201987596864813633108442240230852014782210196067182107048846870807124125259976723064664945474377480867339979830600778660272989493638394287229446513582893293896278377113588078436620678440329600475617491536028252427024141447878555204842683543152251036803889890733507237029216644105249051009749645952608074150697962992639588244771572481102159751095666693317236607355933078065358919813708713344748411931166598865071882183069946897232308062082734640814687379573861831327457461443750575974514299409149457937890474788972827655072112234580865410179201443139947426685924803012222880516374627663134597984039797027382535224736825559172610705743043230870268600173314819045593019189357567474080562118139392955488121363092401105788991721384908520827947048093413965755249691328165763460321418247097999159046050559190888201460766547332803690624874265185758526148378694435581547095317036273846895558754515669366081124928205039687524388242605424425261883387458374509031286312793839486033798065220031081593412684191275676312597731732761773391997852958757290823239948943778021625259862703643293856851165166539721508397507792277492467881320956230554828631635968745121053416733760420416848664701923857795818072769842726018788945173710468389167491236024411017272286282706978621516113661792450912702008038028107097213456021755389276047338467358694486966828106506345164485842375975411806312451922781129851370957765386461824772102245296247469478422692659588622843681975040998771734768888813997102563762385262486802580004309506147825965902349852481899037724558131231152453826143447165107940828848197213032707131651480118638028222124294786365717778355019465102377020802340588620213113160027279735089996997829447225530721487019804472094966746859415398756830639136486030329073527573183048080882425545711845222481142738944917187812463759534361923532138617499855062847694051115643472874326951763698537977032444730385213160725196655305285631896644563165631465409191561428923726000736022215142819325316751925004514339623105699297562114894349419654756808015560826300206363175551323821319285330269414682047691887873154629708340999708109165625653873881810055462549783483993578158249329184194095945820159553281034256417968598703599757364670887831334339835617974629478875175203459210296679831917286146520466646936527843362099972350608950832804917113882501682439959020124250447616276910602392966576023169921067299737493963662527601816495775614873820148358249740162558920422872580616525613762390762982880259029554653911009204892139415084972150966579178378338079669346613300783621064898124200851981038431551689658294020211624166705850398932402409945659409241153251464755085662726672987304475202679470766635799132606064087057449270584399052977672736577036459486761686901980173622892561632546207732187597622666347574884950282100634083324608068642733288351767188760083989046070460945321203557495740800794203619700370686418426086389094989290411672655629317775303750868805726819644488993515701398766293649770637367835538429158538832831026568520909875606755413912123588027859850694973493891018115466945941565806587845242694149953756442045445974785623906378624712967377871317139291436765052226181216008036469415183089836508631561349309146602116735193049444679663943257807464206898314959393768213233302618279973386916748379544331388690887284186765563092382815886441582835326949711072123100288639816148028492716171793212894026919364887104657277456140622401213376628148949279364013645433336438064098929340100434979317884743867541204505463831808100640510376586448596913321141778187736048463199365044124718158317861761227581668180540772068991071777212526496095866014224121404346244641443535459420243203015942259956123045521680807345807545399444424274770642875068031377796010442469954144986719327921370268113840305858889296511221785603622740779080053759337840178419674909721160279268037638672561471617001026605506101824873463152613665642223977799941493740207248393951716718589701786682357585745489085791324168571593708128856736910779470214851806667072260627491060917758189137434742428277812322313893282396209927705128672142396592222569791170451515568944615787826920238606791536832288179257883860348148602389341483978244569323195741189255804233366025928526596278723557946643740154388899048085768230540604936618826787964830624207400515859941220026449195461486477565076463734825501918597444993096741609543567038771225053362641412245202638314666536763881367111516203976525042444864921635873770272217917691894942484593009594138250882854090555325957243809031341835984589270052264207738012347263444319391597185075184185710335212305719005003180478377305648553117580107839579515252040511159222749398100209893678516587531960439543478613591981910802273218165707304668620390727306746223762264730563317019843959940431830778459483417417475300106502955961952888083148681836378923749546380256007961186085547327995859689793643783218128831594113184748700598795818670258562574340878295770929939152244708920216497015775789319386066205025709043218682019865950657754018072293560312497864049493178811460248257237693704632993660435503948430310906923264700435942278644052484891409108131453526095688742329972755633968942123374902337890278430338887054664960780262583526267089840357608975074478304822247345449984056386493559537958207181543952085683853450147422943972677332522448314701638677732392121241641331186073965028849980026978120169474833604836851015349766402017882370513485175226454373457179475653611265071904266273330974140880630786669320900986361529775153041571772667250604773487832757306786029387517325463292724963447369966197187499054814894750946993560270498010104013819843594910695659023163203528542996649383776650862218356122530598369594952981355825084632991111105385324746642738691448010470692913639043036183176111776574973851181037722627244853391300482988764287524228118100647228169861898811925985832363689247087160824235638347956123093444927348545634282086310398489793002615583693535225490552004530669472999652927526227411685834549774652390252425403372902891143735011394808199490502796531136241961254323521706976649225514390289958144943507259337415290055246208154541963525555798894478604188634698308117793252583317989692823468818116468892777069306081940939429381764130655643638086034799658863618656778766505690878340746820295534294074269785816196844499954221184814802394064906651048188938599769322177282199093795237876272048515216334468100068532354074948380645206364236032883324391093374312054342011463428391967702526520726469618403647160239587863615739897173999744552908271591807713747771458452108390119190782643225414848405203339992282649618048549139980588427463318645474906957993063915492658356111657644762344190572333109065568793260931207687478401493742215482450552008395558546209050875352187401036609575301962311055137473604698300097433263862918352306998509669239830765394655025627895280356637021086296450100034672189794753767298126205963613846507223676612141012551727774904164684747957170708886648733856001945211195035716488480775770006650025807052273935041965311730770891034392554710996490938011634013507933206485237003962881672111561059097705261613115320166547520397967237752085912978532524818429449110934741181892711060343059012156547007762519796915540495556384765364574850077699294041023688943507484328284799492696208082257279979468705156934349987619923860224006074041008674877370497755715116967129524669657350652842846959652352308808160659050142325429878814802247815067287387808063431323512599837110486717203623627988881310818348493300239463258664612977058112205055008723019697083496847660749859774000266040824456463338732194096114933749278585705140378784062051127822412840667130955102554422938812072486154657084615224708652974275070237198274549011654416870724852790182536042706142989871595168914043771396357274158575977913561049686694198928859649790553879579491834295544765444641556718766602840515027802641246981662894165266852383053543007772835728817893662661708148418691241433896205216171754274073112705612063821319979531989585434329407892750919372798533877040014078893630223115976112542736673703486201067159912360854439050953748485482407169130496556803442881408410347413630207189212832637663041985343644048735807739388023760260997188264437937104485952096109337496593599262235077847767326619582289799998627636237128062584386242063460540728632359758080163715574311624604999854471789770610911911275953190355017610279563084818105109738511113392632309341214651083058834199242630195928621398270486614707652988040702366605923273713120505814030663585496622648898105410637048158338507658238850308234993015621460851996423153844404063822965039393763408106421509217746121502364690284356791279186796531985407954704449164510950323654351333903927353200418735420398778707709561364568118045005592404570902351760997108408359671424654030996552042797162658198053152564154308069376792508323553646250182581461464074976888246719713768068583083768067690016033048525861925741890995022280877008650202459457164301382808573454411484065330390445566123070093443000744340574846623429386220072461823678296555196364997382410677280320049708160051900590503731832044566470248776148437650620498009940880541895543298791468311395659509650974846004773801015008503791993548697997267645996172224867222494410887779375895021892882390387302692914207179567060042627731133316657188831680447141650365298373604534188159648230624308068674705169577118738816845171879192506338457562089038162335969227385017512881395945676316912337252612914817579922105533524736679734694997350956739075028291642901793679418538590420121134755324617766053239612714060134252038275756631816082029895015325329146188604578890045831856286785658133286380616812923588473617856458033734668070748996306928547319073688781231934341556954095290789827570910233637105958891658100239370144957420265250581815853361396916178026060537960000100624925117809108992094870648104421949586339540893759429620892658891943100541869212849992675181592040571287764657724430462569384609722267624553972656031359989575718351777153634282336579080154471985967047590035555056324060641404384082228099725081565639479138202478655108900710111243382540515320318918622527693769469357721627144627735284432436235586364893379549248553216692936402186317816022886398654297254611421500482003699622766409021100537813803377170473939499773677733093931750966075592412355399363185944872258342771253288834522918154949995287464905762013122177805358216873647109079660133782106798920833642866179224668443632565299901180334270080697434688861205872780695197610333304530678695864080957062321611956642898081920672381105155772475743796259654166410387637343781540863921483948846884916643365528609736645617210567794563415074593900243747301576392711971639243021728632496460131929967952923607010725002899108781781050085964064008691424625330690901217872597146184307856481135872376438888401704650123008317813056316384843655126443268880621254591199249406891018240883971080490853324199532041477872222284985533590888164120547892018858157623840691501886853783803277275366434634618332567923140335220257973360084849870192961965649223645135043372316087475511968841679654684158193041331283266647109038237160284209593853327225924658224354479781888057269632109469975084620754629452979754876959052133469118052819927552850019897377125651225792409129209323969475580232248859321269333543866406177986603477124576783911469475995333340669731445319879158010676018786408141695207368027399811159120398475842992706777684006095860631069033995156090845657132082697058839632593268590618370853488367290871946309699600320575456268676306685080810641806601888564751407955237638990764717741260340049803457342909566110841481110601609449454272639310938594406464353817931305851836530989730460228720311729031145499191135188520493216924647565206226738412792510733423096746904651371040096113364893798127008848575821540511986507686746312793622111316299567111500242505436104561859103606252645588201412365082971590314180905558769967395986545361136906310110797551957545643635341669210035498979636551973546841677184663062620264946028162969329815663254856005045266763633385350995230443593247364332536585626260467391184467537786351500983126892465178149263076457005726305702520090886887979856544226078806268931745249163089146723218658244397458728381590987256647925351130826746562661645040192526036376222375532696136003958692821314001967311180568680071762480655073242770568746217338228259208067962382919506916790453228800563686479535423601522187606297660300106073507590823403182336894266574857262486195293542090039922379146332421612947126547526735855753195054514148000094424742547111986343657699860389178887160274820215282750350834052231821304646807855694666354227423092663742266491154939274391483525269311570723457389675204213859658809198387574219257484600639669530078186450217850918124044509348075002693970806529179682973995318855765718375690743450651333520277033258545700219893272744529119257496167536864684491223651297667631270065701672947847571064236529726533307053150337868166719637174891540754875697842962069951561499390470927862065999750511651839890184537553733179593362280697813196302427256002929966005909771446621268899469523536632676652773622996134841039099980046041408041731330604536513533536697643043542577570255707840687673533315265332961049483897846880212802448872402373697600212429278616044005223390809130151976023176884016893781571696408825538714961747456257720381686677228182839588635476538818242532645274220822994686910118893288669913808139483140608343339510785284303951245436531326342704795567211834828064484401048749972438223547292516645347541085483083840741845700600646669536019885668899841247251902168065788214447627275153451206302405029047276924646575307801358593242024187781136143591013177741202155306117949892072246816470127085676314509839439448846085109058538497001981945557096207344744902341989127174863891440124913896793388252292089348111626960423689056854762867624009725880643737800737962112877721085968224786349564594224908150467182623189534483961120424138409369486730945317005985422305534001722049168008888281452329597671625784443735038812414790204400917850983156379023105814014004182052569258999633006623344279878599217587118703684181757429538550593526864693315656255920382634235994826432366230747603645663912527821759491190331689186919528283290147653265568091117861413699291243329752594678932301079317149230383754423535981156944267527296543264753368571823819514409368928594459194854761534837473423939843548416375973343988517157799523937544203446800404279747464772482289389072091800541567780593589499199525418834183119908991012634581036658720451865985034010902316071879959720524892623033889326009581614929336688644511591432921349700662163384078386289310778366642194566105252104292320884357346175195213499157172040633430608605240881848952902703611427382484247669237011831114525054002962598149068344102422337082335419819379924122964940793275481887717177472781427654224137058697943443087919838213266155708020510952247292044698658719656983564892245431733034695747409854593553373739886335099050480643039061637798587885164585816370991181937971685159343150232953297409229170735329043596105197693591910913333812299894205221762667076194130823158381357831304189141991014536169631383249299278157337306558394648494999727249353541729868757092537328076122660309731174423568164850697765814613586032412314750584877357723754105064985236005760911540188437343530913562179117208493188140869962785976126213254623609901051694281987163770642496214662237174244282756155450790621043069533384437249408394906877421650834174392688483818542694674542465529676392032413804040077948265259483272976759102699099850945912936400371507169016948221032065831363956391793537641975447322848825637029671639702356803193105521325589313496011797243139663935677428166189804041232456666431243155878949421630258353122534021642740558547027506776065489761043277017121319952112638905519212150043484890589657896130754560004327928480210285547112488390561545300308674642885697982970005618151192462387202784999902743647418114709276599014740175586141085351582654730091206857704674767745004493321059179216795101764424501116229604651474038524774455611589047400343617350206772562613780458466114905866704364341089469664736957433913324941601622555780112837061682529591175197132933085106691015324802102743165449840658365510048100035676351759348594983233430692677809751869875411042114968760312965552466403478192032585795815084014570413508871106139034835892762148970823424279881734444152345979927450014698970430335013167076913983293902651595107268678859843879113881407696659259310312986115286885767764137041383138850456163271204507870639438284099072621385550505426975605768142288194326186845524439588262462588400135239631314648669552333319737317748344384205488040511554770173806663803336915055476097755704848928198961862750005972705051859633413916677300037383636326424625884814642924685192477583706610976004077959476214308237136132213465150210943471532447165152636663700547248347613913782466710754212640863583512700529758387270688971404384854754698163022792351542313874153014791968674306745357867305089193515699982937638221439521751000704700077471803709306205475747856053950440915377132264260188788063130384246971327775205153744932547430747927487801418393112243991235405324026547623482977392409793701143360808678790262966429354851562963956331972824916444827333050794098945948688044300330306092025456855102718290872517844529424984445988948584552938428960830059263687599295820887645057473743881342186070421374920814187359936175812150121583221342727563825513361094508861077204685800602408408268469013108876466200611540471071604537752558887703643704879719823256459061947975415733038215779719332524831933873228647778531114135166307215341438928121551627024585030593788894832365063680014584423478618603405487149135967750512275420994035873501806133439870036462212605192122635696487409707478501947383648941310408672195821907236296639578464852728742560039159896725610423811217393989851125671963448908489027656505177865158470196265298593859357781746800919800881023028181426820800518083679985759130804026974958342523319647234583242195190341596452838866335869156427679430120890493678256173363944441324996187523592334715749045707936306408023115799145725142560026855827338011924854419328993763986710475216261268874014592328453321079320318368096150738465993526814399280509306743559811162101599455338468192186699597342613216722683771061423076333575053435152350278480486358419895835300521600969206153431475311928211543456213605236616169878483640712829832170903761682379274058092499056492981871360695330951500009760731644102611277321132049159670660210775490772694375315620303740195967707887295343154441664370532945626563109271642933706280290654611992569202653171977622157141691031708907893833090000248467099025851472784127724891151788529845563994828617467181469458818260951339372040698245540365226508780225639500302802038154846464772924661784892186312477492051633578689335116057902459263283911886066983033470762330849673104058182829993149531791605291949327899452844059567408483069029793647108469962591338690532594888145505423062845863845941036489599619453605312268943278042277637101658403601598289892335412744119898013572899572083366795976090854660507878311419847668723693938780392507295062744364195155423721808499994807278819393239774350016749559250070198736018707998314004066268970027217018784533964341047337071084860292687942112250690847172411985369924088379723857026099759821330582447433751591005736586890604804646063887765057008922489979137952241974815111513709699434852095099988219490648774009320536861213645758262804992322782880989327764450117073391940298506780261955788795755571163848840008470778495500004572522655945496403676031334556823701215116039283866363170129629658580312117484883655060856572916378850487710629667498832809494556770517641328941303624644723494694109605826120167550294094124307216330512341039432746398164784484701300031052817882004767405030483840520013940274839220670926799558100362170049208523789777082638102618876111683775621737732998151071282196824228306723377580210176332267331889954918772994101012435641565566764779813497755178690979222667015541575128075382806330024659799275917455651239577668301164427156331156643398152837485051173060338777828455859899356014543183933479993825910886654287412047978438029248937966387626890776125784596204503842803302837045032062058796413380907014309576915863580294362874037377171344040358840611183575412217672347306080683622333256852430215245912735421865161134205702196696654832279949804298542863718003095156107462140901705124672491744900527967318468851122123672148818670669281913176970108327396900447946680263790268954815242541998344106392333410771863524213918981670244953212460040208758685129136222515789214080093551062890878491332481171114047342593297541831697891531721552211587795960386879045189797168345778450498417392781017132446183217913077418433262166560015771980022805361828138930869520738162698219196503941732047077224345655568482532734904686752857725892366243122574216345463929586188476722653053786692021252218874898853194363978241069432570387402479061448482733285266565828872977358286583961660142587984365931136165378920099922489522487049395306692988819752800818648324284379278481116689335214193630032223495487929473008274480232584296665088855113430296697199458748898107594686991654405671847057831827438434928964664929194836247122436975475936720106452342154365747214177182253324310108061620225002592347330085681842043215509237301451099725343699752657234977480524697535158477383491882034552064771279647046991183291601800169856815214790288557398235902938715870312084392399824395222124092754462515856432324284569090039030774904337743665772494059713296367353398750099932146043980411551313737558776128543046012040306560244443469224159336454199077769304011004405814903867051251944297350475151282637705230959952261890263076584683076212012944704088736189050542686263002809345519137658646637186480758465950648002676536249829586533287479566585382610539445499609594316793053137211900364212044990358150170276651772979937546513681060177723547561691675744388033903727081587676055278221135908383448507796193514735697358736440301753472412821327019842244166008021502397866005482951170806215301900272877973047664616221236129648133029138047533824407634149379717100904345890511704634557652631474869030553318661538485405943943225845877838543554766719193889860056199556604131861700548958164272641805855419390881174078807109553562705135699725207656339951674115140245351675769266923129262350566855668186867415552253591269457250290382517491328811104748023809418009833838067998736702027621631970386635739556226122114739118461334265902760089203605383024473339265341993986457017974275604033312790738370341563408605121261436025260907550204450086326076319748348248954225027157400531094873224771602227696474435875059847441684200078252934082210702813397249830628654103538727585991926282890605683030210280631600029609929837585303164300150716211221627574493502164740454152278263945116911694059041991522603547110910410660000514262606915272474974199117437868285015126893874873303643333240644017759488690405389031810312149346691650019915900271848371218291409517878020897606080818440031744922628892784597400717855038016783735176713799117817666056946493312613882420055841547726565136670577152047029689784977168654082320733819855790039074084356471347814201659949177332805367247688913094571213776655382309656103608131621664012732335053751505346360949782914982128279599655685917178117743886893874416928900194643720051424247149460381556927322572628641443976454472805308488102044308264127145141066420752176216892373190919456982502168284432791205788783508942129275506268285001249204344148670827218149562716068211277131770736353281984048756763368009651809679704779488012780912463569429060242377147930105145121856547275024797694057312619567763884348761944153306897979128320279837418197397587296494723013362309874492334429404106466092804394178999753096950894625993290100058472043316809550655303210455014738994298625936136275320733721799719203365363380368705213227829584752970327719380775194581271980213321732862112452603766883261061779242190487513537751581646055693181419192394389272666197785200561889706809651740496269402993228610797074524685490003422912385054544678185525138678858200225099849737696103113048474480797108083906169254212472696574204947930229777918206952212279936045696397844570546057183881937223958215623631470013923955568079079892855891686484423044502254245680126948083859022617107571600282183996618540792959882382496616686756982999410150997751858259369044318106128674146787405412912687715383508500917116195347798538273011419032357366125936685865084614786834022428195416857722645812875934801311556145642262413854332145523705999130598766357135442973527681500544414838538900693926513888581046335080151171638519875165946968370345595165646452107250764465295848517190421398188744176958608075020954180972482034889231336346287597027797476252840230770021621429711264434360283138087262612926667921242796906124931257587853124387569494648946974631851633170183131176966990799009951821412801223662957792592009932738861549674189893367697216081838152426684295913306694081303086185811825442731359820663386695681873036547295399184107819035730497780701680509804821176973563728380126008294197679525139225871720253525850062149932073581974739688653523556251723221012643124905892421220650939655253548682704097425131120944890749073338487763394902302680569668718140786059861739157943071163497932938663230386367091294897013803841762078540408297268033985981463689225913021530713006602057680489119239155953486769457034909376714404094396457444037076450727337759122593828142871236102280950822402604621469863492372772734291908784082866138030769214168145399094949118717648075042686126562885705077202461175694229335684185233030304411929884195185877977274349967674975222831937331564167997727961900086207134865538897604836020850374223522521179571989874946843966507033853658230189069469623082925384770501981646577086079146202076808923781233791091911037393062690499470653746968724459044776736764863229578537974370001173357826888603273652796402047389084556497172844522315705136950170485093166363443477572658894042598901290449758075572504944690133379988082654440605680861354060387895718950239521172381578150483455352963631181054149685762705980492722671902311914752198223104425551397630441369862047385725334226278419402115440675751596876876087399142914630989260906511046668166357445000003819021134452442006857714956359976085015792491882681315271644231073263155010076474588480115795208250576271498697404653544454543500125001900841962456943660639279678471989999257954002703579890562093129413012301269192006958602216540685811427265913884034179588248018063854448839419124727054955210174933443025181617642937349888555325111892900207418021145565130816711408480415912409374442477437339991922880632109613153233925739128717226038093270822020151498813681762339771628348651768262549994875816178789849175992216250029278126920723164226471049373661043225812957223245142582723335337851251821295444017436285910545442172596907677301622471941126444294630504759813333581209690797791235105019690806155877735264621203708514347276966917116555570566678532612680016663046991779704113079455052435307771025921972556970096272284943167017680259606349439763164168342818837486020790133846103832636569634224727332175090259944406032535954505939152491201233322556804678381115046704978965683959056498281861784677207876163623025776219662233203466248716635107170693759990785278847776701465338962089684604209906674009414474272266783525126245856955192194750568410138890211081145148587766756656051684270746728908957561143359982006288718151838770557877044356239437359095845051210009657157444652427775295174120906436891090188844321367094697958887563371235267277046224687022808543250739406714987967426394222082506439041813734550969322901642938689397079072077904051676283227454686400928650863335763353255148374476732854480926993249443484440463343167834063488256232909206709678571275509909207461094158298511717490059397824777103612573355363711041077282632425930262259015597908470007068723592435997653995416002927466994780726248115480609914749145692033163655688934620677115691632815838697690387432220493925847811676946928699197951287028910085457153149041404266466511630811280232371389487835810581432577072698410582450356054381361987014301727409095026975097961865157235488530980792121304068012471566116294918064390650284158570875339635620267366955823895135397227696565989374429618569851132610011125999490152212307169236493542955021958071947519207604636023598068596833378868518451991819074755965660073556053678901666134613788157948928120524622917907036288344533292969546193234842917520428732300779570761168023859962632985304245768231652078363094013872191812837200145157755466758084052052903614655576264698638264728433239818978637655118611094633321219526819483067205545370192174365926817353958886449125777815025438803924254672228425938425056304785149651274153202786046387024890728466530237708517896033798285612260902276624803314478191238896798459213711743885056797433036308503325150632023294135581870744626427904741977612127336643315705973200594453980846936653068221604330586166144646979023934324199438170490059677855113600686870170765808961217752138491411124261802039202515975715572227033540955294893187902596273730881036312444763208785680271911000196691973346913219784578631506967435640979562877142381766432709643676101880152611655002454732716801638078236508118763605368139576249656280430521517361831860622026826693195417134244117730370025351073684993116731510713408205804625774740581589618722340715355887105443210350018810349170467989965316028794077988621409092102191181944136122625011627066693857383722704978276250960650158318344792930592824844120954139628482684028649994149888130697968251925774821855005291472412100808534625925497891678805936300655806341106561613113773624211688786303469245727423133309362687575680042677514798054875226302178036217707064516586031503806809932785400816569044813960889654084509851577635752036902548890176639430518070671280495715152223874392809315104147473787211096516200695979801563370582656035000256410937137879733690258798198956734603739650406349681393106846104557665754990080995047194490866775655985781060825536996303697224884577915288608203963567733726445678975700143281429981332901965281610603953221981623294242249447327462049726865142519668688802215225383465134368703079500191463898646117821320782478548898813893924154775663465256809332277915092889205352288852185943747393290823665560006499736330082578235517831512769737653929519833909088228137979432331286668027170256086701155520424205683211411322407996117066441279501849325913748437475422780130592567729836853888962666912302621108674369357724881638641866451409082616806588254202715437769398970643540804045768448773803436260082038638932955058591394619016175239767243250650079142576508626927627763845924595957406753724936588018279211604905459258266442261967925316724841112390975218598439738073063933464204611214041877776822583549870750034698791960468655732506935576355167925707598366849549925496691175761694004585390522812720189947110190710463118685898050762274648597312906077503778764432791319640357880731116744655041421754876141207585832145567675668845098540115867439333285842626730819627709314591626197063509677491113693099494918570732043214466998989136094099975664589680735613178884027549998278297388223002302393628994257413134754402063098840458602277690691454091587911988583508456854006204177191241160472369454156868590990919552739485573196338626064460882676073926946582157569516508480885659466941665016616486876296172987254796520725920699524025788558698485605160991401918243493417132474520154965058422658344759757997663196173200620783034142910213591787390551666864097413195740449009537086602219158532275438488628343491303710171044045302033663977314212511518195922273969582770161296190877385782459521628473320640933639598498498274703870183291315492921987387164798792906959019243500879710245658748101359864088203573658044863120833460213559977557101761334476750183402198702838248682491468357774659936117593331364763635702235303081812671803412087228953414149629310630220117362939165598945075963731649286907941609223519890951692767164249184065614950685550463364466022728157771751631751851054775385623425503888022795267708831954878408336759986678067150239946775455712287704582757303810763574806213446006219964907429829356829424390196646857407382616980101736670522125816361151226402950372015978670478306502797300605744114310471914312709340286792045252416176683863414245758740217765489788336987113387147939143843698284734130871468887265774016609017829732553104958860768827490822821612285015060099869520291882977333507362147847744623120585762783769175667307791796299653282686614874949449458438317253643771946634936714574130132930812527355589585554164337320216710085496468154977042739212266636006464429508498519517444280974444184979916695534130623676373213172217786066411081281811756929946038734224599048333197304373830622989503031695158374196613758407934092797500020583708273592099426622841458522104747164136799696219700078753279860440511452274284009982960349986379646869380061540020268051183598269869492047893823900748077978074717578375934136569190480579446718252003310875817076283373330262973349338116350605391837040498179795217245794697604274475513108246883539263429690777916707725448964322598845734818346854214786590278120340960825350929600134486829337830755939449597511616863761371138120074823368784250619760521898097436132865646428779787221717801093289441815774188550540345291937346942235573891436709364744334110454019727060202868995401702210131811398689200729719255863200656850845361592772071670843675006982629900777298882995985632259402127219151716345921279338263164258938011771628735995465403165200776447248268466296350432199948937247234774042943711727930409861102293952196433492403621402712347965138012763073831871620414554428002718113353672015711950657542889423897989213407262111063959461411077283372477183433284176423633239708217655890992231628779425640963055119670895468740238801520084557464319111602201971024431325252897435483137332905453171747723018960344490855247962075440879676188517700440988908320053391805468822217239912819551140656644029350734770536877790026655520413477173316729666763279582078116017024425012009989610330434982317472979559823346777126168165827692055193877484405012275119395445392242513012646448788418577595720728026145240449339970384382835426174416299276042558223127515283671709775534886870762703653059093792220583712153118861296917397256818053744590091053805766140595109565578798601596109679202235620310513929908300777454612483544573359052126589212070878409115481583781665528472975106351687509037978706717702382138443319474471079525929505403086662241563263586990187100401813965482572509781480614274478185464597107668140603472618579817003420425416026708298256946125874764193716897532853738790788795171501282676836447499300013252931149900024758135296005900562040107457354047130517391843764399803060424311475879898885468502410352784421880668721834390212046274604645413633939773153335013360634263739244227269959584400046598414293071406607052592051331073440203965903045532602397009552296395551549903985360582609666787642887479503855359545015751738186452287073896894143861412103084293476263427399668375540905676434362818946116789084478129938889717576589871107827437950977973729086622019328128143399397270148010760659487459116423646662142655614766602269171862741177936909312580457238527163489073054491946825843053936886708118080586446222916429542805827368393388828384646106682713963124399321273500220075272847284624912820494317818688693558547714789784625717672366614698015402411505378621203019896435580421332748489071941178539173414554365457421474037080430249561552272378811582801848886039853178930076653310607346920584021397504740123858597220445771250061053924406637403391514162819368350449807697717493178897326355540919181071465537625476957732403367556348259803357944566252347531486809081752383871382108923601274416648122107644473442826533268777075662936786843810507177056894830340760851526091241115322563366089005950721613290807197518847442458174849915463926118212786474372248557319155200601231627354256243802852520441702555852840773243508611943097247647854477040873087422614933133566202276510056389737799526694775484568035179701387812680993260675625830412045866025098885997451718425295278033225356343515343468845470881856712337631847593572496932957148029743752458981400144994831542190540640947447296175394788465519843355586350958711303797573329928938123872714812575649943548280325753802863778373327312194961610617771032092996836501549815180153997040023253724858473271324002797702466651896197346037359909569818557800306664342795984094291146820846155660152019270981592009858293982800368682294506845727477765512953667692794806702640244830150632149328179057359444413733144086378057229928587106538675210506859376467235641150664501393486268510209027669086219394059377959600158923538265724486612043877357931958767988456669064061302545914701494537205794038008473539682343077193202274455092713564454397215985584674094148466817638739213136569359872313678764798265445811638722492333899015454447804668599046454356786394947056927449934297216412828694396788107760713351588203804727733505751342303115915008477622505926619368900693645007073824903238968818088683417352146310100191972426090026586339431824054012816620499859691020248791823471508280873576712299083482137179618482484953034594116581360006500083175919336459893095990571668315419351110786246370863602573000377699891408580216251516119110517238725312235537672528311800821385990592204872443738275342208560204313277508993751633113276082885642265662779509007252696635911783536740466852192898910951693839081515685007293939936378883023972551089074088235479301801717169475068097067975677942307704722027572871109015654364685271774278181805309295923110312883411723406912911885555483055686496565067837580857768061223255583014644630165310824786818501777681973159097144497831924210330007403756397912293523027817794695040875679578589629680754532600690187858163486644680576733327976550428451030292609780399338615691984140447739145325758543983670291373797675120188976600566422641339322621254864857474371529333802010312461745100393451466799357101287948280503317764568149282663674753822006973474854848147340201373229070410249190664905181099817601602740275736409709684563002514130608745101847102449734635331469923659984737471609909802167685280380504892926828819708470270604184743912750160771082910541109385417242498151932501756871528385058620519381467625739934978503602608072489921360682445968664616759917301671217624363972855827289326780064768033003602729910951276689739026189961321759633670186152199257756494594476888998090098818688684791750546209568645951168200711883726419105494726677055811844398132428134280513219028091371524699696513470544243348146606687521287221417535197623987577489878396258991097081973752106315723287540614587673414987220923733783399752045739955891043573578554513234372254885761979504424743207695096774881221596502043498312579165173630348065992552896850672161457157060414278621544358458784444436768734671392861487746729722563114640777070697468679804654998472038715348246986687305710512225555450564036685407477472222492538199745467950773083939247783071554161258513857840469744272296695006957727258204051458132063523432087570991956839905651397692117838997280898443254522250434039608918019807822580723841779807941076468486008794523784909393702440718871549169765170634199289139584116639906564093284181220115468989715837032023633129734438842277175301993192942776838891605027851733595099035457295652916566660629701703305584688579272624637572009181867885571197422005517950369492642754063767198147085792609445193595324450947643406189509572321942244282287474233910177701992752964059024100074965146469989241077922306366552533241382640634965818318773443980367450843556600540859662786162367103661343192981592706632272802899742514705258675339210061697669243015206951200577303426934527208855912051764307832706545009240104309989417095485839661517508494711869661767388262365417295585982261021642916919727301176008737591849167617991822417857294337375460096312268183435313758370469075310246636461365746383946688188018577749883970702510720422543483303590814852224303331186402278774678758979555279336602224040028713878684405618432204180192799514826566366229207179681682243183567028120618323736833836957592938871148250826715442422002179374463388132651995402864412414414780151352178993557200699398809702313305109797557421579581535221600363779150058731836956644243494230349951148984577487293650777886540221841722795091869670134245521662286669563515873727432513578075194912021606668816962377411438529258198334929009436125427551952492584462126523135426400581728337190458616293277473952852000365902502939715526107923594399443004502370742741026347315780452433258630355607209136405629037175735223373577177167021754684554824508438667321103566721033693485465718233850174155484796329937706682721584298780397277827883302713417209139511710952251416110592694798854057641989177305947526874039714008683881241704421530857304645247571604422584299181348697268628587320810240168024021643390239256444443876156584795062483273142639835897060859126116333818457566250987507780979629620868060851211062763195819771804263144232872211355815396134664810943969136107117044123045549798108485236027713172747919819452366459434784577541109953800581351601570046944705200813700060484496761310351883770264377434681731481134251302972608197429578153884138301175252163023981592386078904366619901055332061039682020848833861294320993315009855726578473767227352976743603039238488409768886195073046812872749074289658418191055846338180292841223508751300861672923237918192629625588483075209251988750897294812600551247703986006552604372583860111963758492610235756421569472848101376568245717782758853097793982633991540036784486693435509081035999013904295562049152711320258345401296970647868526309492405254131119263954863128561134200794351547603046076373342573935850795168817238379339507760030508796679169620610109978046839624286694561484968131422873641686694523157211726095916887911574279910751405269528778100260098143005396495486964220698322946627939193796376096681045328806123789096925062423871013848041023230072205179631365214126249508659441756974901565291506625917448534899279256612938140009404063250309910674847021347603688155250011155944657491681398593031116720642567597834374246312266699762273748109413332106573251590235898649846269547114217965556412251656718955134903060268085071650838910673102477583409310655580730764000705334113804743216969211744155789085998941068198044448553267297531637012213134242204594153999686561142979067987395187774361940812017324157831501892775554901894477637719750059957383783492960290516985109376545391534656784030293676000418605187352174099723547967217689066569724656292553762881875170090394986309797146393678911056760013738680342944022845971192759340684850761611060077675371201567964360895765033499252060395784757680409436517357644606339914838326848376795690969112878641950672456173186847290354222106249558223009152375096978829397659496352770001584061144324510494564467803687932286199176686969002623262178135273871812033297205279241556164006326131896096244175888466473542818009044991387179193501206062068627252333759438893924064391983081305300266625785183123980328695353801640231533957896103973224338224577276762756308753434193068730918205548099854825537441427165437328092043248540279132115588568403874156513785586648894642062500002975908315773475798260496638071304711322487323106574237995101869063974809409201468333469272763168854680619643437506039460639266820223217288492662716644523208424384162154365159075368400070919390695708419625208702619822730436813500105331008027435370204973297746929109252183903291128150003504137668183942130361885845397262489887536829797270713257826581412704566455075760143391794786594264634819131050229174271936270892360636642842653030349496133985791372392271325185955637125064850377415143592129651470219605233648951444538545615114064283853106791872420303407948390204114286397776957911197017330131426017043294686265346401816250787556895987755304199513666261359299309275324849698680434081214368824183149594665266922288198562671207278574283653500056372174778317338091748416072726793740942869250932773952094694465342267118469568708122313118206989572675699967963030569020209455212925692249450513641252871997679082067598281266141628868046960758411031450187072081423751025577020455554597858247499443780164012362627755498030901227775898524503165780330645302730725228780595490571996882833745036135250030411364046217730619206691966516705966748352838413483302447767101414690135643398727097787594358668426252613261389182860448576956896057609344976507562359510612931950702828772881483548764221002994931275521323276871861287978380248336419400564702988604397363453916995253814705601985520889970932801113724211661036796398541102191590490341598639066957720038949296894146325975208337761866254902588852787630639292602827099838230347749093668835471426034153485236910330241392182300135380929449363789876475606908127171124313080283814861640613348036157445155706911561115036527346395645877618160717065263804721673038201745462226889575858071577352389134641703855057033508343134509673441039735830735900923901192935511733188059831261180032033239384039341942314058117570938716186630972804192605482051203892401220000334387449298694468586429688990400794916861570506464137145269080696770875716369954287474122193407694849197538385922252752069381878819232431754054260196249191276798542866664380657571847973568995062632490522248027574893881322180948336523038857652533132926421718013735200190176521021842996696237732267871448585044185729065593710237366979922692955310463061256959244605520002781024585661359240029922468805707917958977355811654059346231837428513500728905717862280704351444878808789768738448828623074986453155433310022874983749746346809906827216231567688345889818602434902114488328089496213048134589039204675374074553962856876223886629074005195774860701703329357001305783461177929352472335714268685162309509053535829687068367156209188961078406418446135582843961942983014918471806237007568172816174558840701705108286262685615051890556204474242408239516224449664868923688831245523744217896282791712467358236784437898889526468335566087858840921826653906436870722449736085219878294995034047769161382715115975105417048069842706636693605118709692608053183773007806457480404712465073039260018820916850071069369291603089639683934200075888990849927432813482660125048334356611424585916517519961417915061929802946093010608785435216997485279193711767745556381544952711873600844510640978214675004000049628934777326122329650215646552752863708143216191152577269012232896881853413221615323199457042209141586071713451539166987232444380711296183081299323014212203502180012353713607916770227744594175275427567213584794451188381105790583429614346277114704531357738683035732794941728245547068468613853010375174195952014682100795355585232712689701547088293729044508454028058495286167772842604855485894301813141093156830235041479391884106725761267969154208635993871034481291071512296306796195647282602419440757894651267035050848389928244289777783830138868046366526873161892994740619158793476212271836813868109281698493779914693872615507859776828518670772444721662755559582214654827648776586752575160798949079465929078085107802600609650573175247332467089519159874090953261837708991217402252464491887698028398286535654051448333440226797536687570338104192410147324460323037863857621827702266357533184739266403276827932253691559316912668377640388721539715431798869996287268611885553519967714291047403038912584572570431627053960789735742909574146069761711176847024153726040886932572658666002961020960482581986782216611273451870908837327022448527318581727076230570416367901345835031110352810110032854437791773750554165608012550554376314438249729208104581970895684655678582232546465891037418073120799739286060245805519312365294212895203456698224410459627932837850788540222538752683389342095380820823964871842881092260817072327385052484577895628625925886048992213633127832506897027172741463948919894727519175285807212336544651928684977119316743059414424262935433530400674493548802135778324878013975956074416092061862107068983395070924815772189755055036636651286412357835140968031102901703986809930976125866113830241287593070734729631882009700726667214447733688187191165366266623614456699659131191879425905927665594536431141338058303623409555468086481580387538082971891791703973492723719151911109612590853425823152545096498996411797550974976310367443376251733051056994257283505059493677537838274194114121583664028691151550932708216410343969447229767421537787001291420408201189187660502103355622497065159117901829336748147400814845424203085107074325396652738302580603522904399143292977171932992978264310299563768420399756670940246467448844114851147540683826605377174659311505955760140956547923191376806144729287967613132296775845618741790868717263245824046940941815476033556879079287088571465834669625803640675480565544328098013293003817221036101698202151058254129165238343608338417754943754209263912577947529570583869918146717567686256905360861280747492215010085197901689319109858054586222037014166324733793148633748181286007372451537698161144693137493758615221276006778989373778892443870305024880348990921691885384255340477439502968394626843341560194838049423890501710692756942541195997937862258156140127345207649931020793494830586721178908628985550476243725547957734959388682286913050264871149423017308992028955593689767197944349457584743344567554988372496151054752199283375091581729610753061001130230636959104347698509935656928219295913865557600027903503299003893209135670420565002217381708506162719274603646305931104071955275548737880404451185992968229681822451476023090896652107500877476794105437421685881639674120805347878307264973381644313301919518056024062004219149297293439957879688629021339705525246277473710100146737896265541460647148405049668016375134467728226178271996294813979512544551823593031564165088813681849210207036339541999264797131146820558435034133201683069252852497763374456643972369548298712266441925829319074973209940327741233634705723880831979182564509565744398406904148406393648101745900647853392304042813458463255689356887780365434432672972184327523386867209078594142940443727337880592316606124119347899780601818332272565764318489278894885920463583548949044528329996846982513003983475933132387279403776141416876545709166172637131106462476220822961320277737155201563408271352252753736899399718154133921895843927701006238652965154181251528263067093108273143612551120006788825939274759809226707635969673918426422445782329952580833819559220963337637148347351149617544973726624119425145163655134840959128446557222009935563085586710249179178885932021185186166469915850272541319159063235493926797494807147654442257120215538617533832018263167791459961496065767760084707405133349794582795552976196569687167176861886305576872629301602367204594988435695081607113889453125838716907892631302369469860779883039652644276170039281077679848921396654964622164685074647865734166707302978087201808335056768141976661357058632237204507553975940751830911992848647805985102807572079264607585508800847070073221369368011884954027780184785416861177225966593634493929316259428309717173688980979971761475294507160266991145876641184821918103864940068360865925903478169551706647899751522698164410977936649645324277674013118806796641055661699677291768011891365198944251475271624232353021965807558977817491088253655979663119987231348393512422002740513473267943419968985274260611388957327956914535180200554947709125523890674686463280855040527199327140150272436952949536931915690874472333735072998539005963435812366870226639194443508156686901426841413316796176233892382652846414749262262975326604449691699937657961752988049310134298414386000804862448413780496178703464925756515038566344899652348452536781929800222531641556831968710605840417835446421100736163904018851406518022775666652789180636972198005293893501214148050987046522899836272541500625198968550172549831989209314602587557056276118376017158928129552787793401770416246740453933784450923779960653082442375944953717302625427935776711119409256194820454408384431612693033983073366422796138198238548319938937958484242590682793705726940379734191459616491298059969920718660841655464825307756855325968064376680565782859389083939040296320436514290555963309995178580742193818291680474909527796652577025278353458922842305605998079846853578014975248484248068056477752110280754089679935407974439880552124555118862982186520198561598316770292076515756971016986376875564724467308741848678354883171735137740840827371017949310570216322454130243926132909493507071485664785945075972583552399194891648869614636947977648361488084030654946013674936790648693532070801185374484613576458843315876880257583108007080557201215611688574160055188908937753966354980903335629532847984267818117543794115883070144214377851030761526219458381256153245724500832067032547587798151338480100729625120131223666627810046307279639668400295354402759065525742826054579135847144812021890293611262908589625902434915452910893182588945940870795208429842429045296387167902802568548191282964459427822173331670507165330851438180287155744489953552471811669960345654357761076430221456802938318299078967122557821426175858456173312695235015069720852738539755141448096000343919827175864565481329125303472048159089587789728846005194316865753890959804104893208830677721118414248437788472667453671902461773766882514720065141473664571980528698920158985256529875717147355498865191140031328722117660505063017803571099806419586207608962619043341157013923326359400872790521004374636588390785603618302793543737376810589461634915940957794462277328444619000694815457706967652853560726173389171318548973988081950879999193256016190730886191363729834023567205822558312787382999044193725678030796834175689877944851606162731052647610512105771559527242387105497419630046772946697375651166804610155514211136188739946219906552544178447458838325595241581736564187601081195663531411254884131982481206116053813971585048696252565576977802570493573429367889445039065895422764785659260902026588684424326602999890429573388771381645246952804411277566289218318334904008742940665523857034158290984019546020676909626234898589644469869068526665786510464920253387882819417552034533401590009119698733335193654561863534824391597872694348897764752613816430576363002089356488991351589565573479192716768471652758094337215318263259543125682244168611831344722221864733881180339528748912678116343400909795531491401113794984334048693356663296795682805258672339120847522512184476246135193870154593781673992134801167679253466893940561788145693486041212286952953987689149365351923138231317760750901175232255103197684802801768307270910341178853538089848312424767619801029381758956400532910196193715924544459577069497229233601630405750673708925142955893414155178331095174389010518513088504070191671251463674265750266030334307864312934722345000351885430493407448044489276055666925352714123006024256725710908964851605750998651570057693479706030719321738687356949699771943026567483332168431303437883698804186049049857616956217690924822227245074995135764107183500772185724653556504674830402589631568967280680655167393071589508568941875189752811452041418879563716518167197712118859536257234871642567651907212596875583323172138550269318520884478072625638807539188207954822152351939952271585895497846793134193638618769646870950886794960500460233640047724609224173309463515483167235416315376468951519773632102533151092359224537161452561420905137529711520428958298510600114859632266126027065982568917436585175611364497661041479264841155486901285343629245954965895329745576028308025092880001548048045384800977662924448308533107208107703601787401702110650118286183050072121029730928363613314589558389288944936940286995640851718660189953952031719526060555226642705014505838323025189740070437552537231435791074031180710756551323944999393404065223359312603982618335576617714785650955973435562408939223850705623579381043112929111237485648012677332211358391132904561625373235558703232543889458475831848076729562483325520138990305135446542095832479081976710360806605769455087586293296724814124572103463034282848505998811780511767832234200657591028498717728032180801408115631660206836613053143750316272908360356254691625255971007704600642828694904408488916505586474459565079503689594231137948277979140586542963348373805547443304371051808427230704706568401420066264375681535938173514753446263709107090521240109194637044571129310422973467923599177478449635278290948330673505020629969058683924311046305226292591778751832568734039876358649346819727289438003346171631981508022688954462385575660555305599023853376451454413073352680376496605737435181866478224141504859241508791725226224260922521728516366799672449832523229857119169740453755797065480776077394962249883729386722066191819100700179007060794704717388195743912711790486991232703416163426832113188981322960247559263078235153212844878919679172214142592313649288030532376356893366015024742378921825611879463028599117333530368187615188498197196713115597640831281472216094389695121689266279356018360734123195310117970095093444501645667165869289212665449867535991306006357559815111792232221886720650172004668108074937343719700135835820382792351538355508948743109148893174066932708413079501176177471533723105447592092282397004104669764118527422963824786795726098168902326301303076407047001282643815423567139056448815879541425196857487553171213233457419133156592744345666760593038082660624026006924573120563643630568182892292081392925593082804610005713325841085259300635734959552307025224784920482388947335756520832758546455599555111643500710062517323409843839910821779999552060128711435439792619926499215741336510606006700153786655028453653497640432112937776348015023306694933878139260768444076971659440131125726946833287406222103930372400127880281193946050478359158125640122165999406080235143410636273973366834243496766150606791769942165108070332162652699088715892138662605564436669009183050618682096609844931122164279117523084636059799437011051904640028429379757406577510010860504743656982281744014210797247892634428057260778569967361100264133887289892783134830880877712514610803220009986882166544463558745605837750588945526622229209081272260737607205234597476615528312047576887237204311425305465987961860373640051722982706046172446057954540311412080849099150797617868974877882574981358863125186617395215644934254236002678888352576809376045210613296720654219737541308956495581462182759140258527344421086320368486206657819451243842946971070528340285495726174881086615352543142320716643619066701423951587615705309327228774352665287027024126898193254221874426102938740232320394345671653542641609172253416696694858627284678715440425770748499890627083861570384493827697226937749060136473554204061467816152269958089330463063073718185239634428367719337342686609811471496445959019383100526567074328644826511005155822522606993537538566269192160570317583631420788679675694285060959331760326582789182273331217716921941237969650829144938136879496327507985952605220985146962309510320760123391029884051116276977929622504915155602293570237237954430023502594606922902234034887562167762841669998752849057046282497450475341369788353581968372014417529906049357748062452311155261795574568133275420882128777626899027333485459209741766121671606872174834109659782028071217918840874339487903814678809679070623109710977246945561892509386838162757691946761823031703927435390675003145817255175152853616812565922367488438341550666105984196464139849496850522000098388486419866090797050136392228259135851977147292290046911900250670255799642606746988418033217090602072394240925448532871099823328741451399449175319378817968653737119485712575612125155797245242510899758486576704607010186951790477574734165925278336227430402616270566038564096577262702903422955896917581925084558576781182668063050157697639977760444464655879196332091824713254120477875308172959800681474317545699482285986648849597243812388815191568419745657378094831354461856497826893850816412994437479989741522832847986689666513794306201095184828557598803287822629214095714589900877729338172052361067748510297642303376681881707934631210161590648967921386974635272081340944434203955929410319245136785991860142190330891316288133662115656051984907545364641065901273566014742880555608322732418589867137356593982512982320540155526460616758157443593314220197156961725545319675832046770258483314271118674468114871327763050324718158129842426930998963743305359724173534111509469506025088149064993741403725469727923439078495205590579469705714169008843752313770424714436809079878126345226283916281226592313522542074211686761112789348641877620509019864222806553632228763447142886105030340301979446108496891994941816511956826138414494021651097572578924195639611685297757275550197709654100689799941722609400925787561756051463212150267005930784043129512976606937434326833823077809173722374455131388585393048059882367658171528481041167304269859667992019409086775214464592073169070426202171364543711874952957264196754507987163910180921718698002265074058160094834304871306047806705236299841636131229227242920993445633254894807185517956355003431691842189220855913309315612694778399931217920859151827155976074560222558321496482998357701859630197077917231125917895791771210791100282581970259727901728104310370618502111588260257171906019753212654334376453285048392759393127703891002713353697823965489583818778772662191670226589319098298970164689451029166605713347515589464826894514074538104421013939468281130397438893372016638970308104412902297068944209488203414220553660346619476256050777913900147937359763301288922890673776863156115677456157180362052249422273721301500205014596451835038028684787182296210289309012427074805766371731820728892240197960977664269921116788283047083834100416859924329232904027636704148453991870164992426381955033577402903251922447988153480016066930983942850976550457242208518053839242106284421155639273034532514753819275516391400940246855043210715894498014604858348478184089575129213481868436705490982660283755596847873223065565767103573910544823660620432577361244967808874507896278643567684792970130279291610173458339843481563723332940698868199180748229240426128762063027521951922539492882635618299410326724496249579451088317108518861738067999522972370108215642820340176158822448527923731121673755294043633500753244162941371395793561494155583601349459783927120909222351468265829628611623670298530913998105487777837600333737629834282368331081409360060324272403369225143188410048215848108561612588697953291800631695150787902124926991115322887450396203657628343725889971018120764859424222961896149362371617353048712091828351853444605597485745539174960775664794606383313410329548660518078788562358056859165583758659295327048139374183363877757643948185959356134058873074798488012090658962634071517791189354116891526490497320605840667086324136876883752651642712674192087462918149204780127295441083993283492033081924715979808293257875629882156367837545760859795530720116381996399011753998801356565753522867581215549969007010754473312652787846077935136313099226778763420886086956215924092528700955634216784895301167450405308613861762490323429256988502138283754070744378329233229272384733873256889620954585348150436056762883319730003292454330424445146554449526614392044913627934583664992607932563949719272079617737670468234576243980637329770906419724785649303206622825550468532961172160149148694937831799874151497501717367083013383536784365102916175141667064948897559356209247744360310152576067467617724105765460145301161040597998030604128986980878644277131744525065646051335968765421301227421067423123310951728185560697415691589384634933477838204846346271040739617916935874760533523640207808857110465398272576671200766532139151633502273386104567213043143045117076985243180436592364957015638458465402740132231558560396287915481618192983135033191557099598860872073830759295378949553965356381058966759022000659175811122252710394891442947816212190842781089959306194199271220426115953382694662018753012582258545390008655868016740648585621263331822411280221734473785817749384643822748702382456380030512837721096876416695214612839373420295329469412082841006620173577381698365766450666174315358544897172446012578853013951120950794356825541223498985191049885694480634971330023672177827682967778992642074767033238859644709311425319587395507646831667298582086755700531739878830194001977065561820210622770657057529215795747961543663234490285824277862840003520035657624260064490098564117883858243746789098905530797978531822123716285103499095094105124508256255798934461120094985308539998372429500481577690350742569675947629447287040660853533025804998792134206322953288888759439318591756667586076974335848979955327981601949620637735939002318279941049003381585440797785130063460615056685574585273771953612788260078721247586146045213376108825706089326915662913290032801112317887823688459421757605365596107367309468796469326612042072138552596676482077496245492546814752119129161722547998269136688073276444863148056823621348205329750209688613044984670732563074845886096243204436066594300915027284303146968430905168871215908852525732805630675341596491012400565076033868309335831568355391179190885166344090785915529207717696420286088890095957841756477193762612911730924830044217682052447360057301187490575465228998302869308374620739020585866473428725910401778570434212577069896978670723087612910911580617443894328850058456838235406115661992745641045457420413188956467829208999490014052457912830538303836508401850446551142897784907636220404548978644749724849957068465422841762637474168207197232244794522555874721420709923549792184774874188600847838933929077454645863503260438663473722844851797133450018854437323898672230956080279765667465459491932494045369247873361772577812506588250331909556846394271588842023159860512319113904340645637693868709512034005518266713227790855491002811033334802628195269432156827396011452062732809084439032015668695277180849242979114444441650047111046099274670573897063322831899885328603432026984726381311477237396150219474748567983907120778557947348336945226287632914540848528236516143079731996239737230513897481171610925611205714296717333499418884280118699528055213303031611099387167110728835401548221758659844161724677750946677353736927403298390875433921556069784262114809700179960190464782648148998433721728138750753854883760519922318801730615837532676649425883688484950278808929801369391427670473092118659475425175319325816904003270077452089383332988365182660309578206203590516866439648117033512026365210605447227226699734876106310423866052659303114420969457711495277074960246584144038768030092266273290878751426604898221126807825599461901427219700705773747856846536922574167402752531639728535475820763743398972889892673949216052283697271121502035183536070935312518294257670569800649731207025939933248560544888765551246125810927180298348459539035092893541231986436579480909678274148509951193339281273358628370070311765324902243827706954199699735276778943979620295768975607411775720324574172813764326347320779355955205125119443532775198093795740887057033126854623390137019527060940397271762432822014493371506309870918029302216253986817779365158903937313027142322001159167148409274133625751853189835306919110792065362741382140104407691412032361968646120447398175790428067336937076805503069773418715900611348971643210755073235362149160710455450901677252956609873882340872089326905679725602843199271120965139612754549843880098846599700679961533833795177259307318498018007362748457112744407544808192027965736836754697724863171357228203444566199932453058565581861346488215869685415637224010882020526104670904674554654337763995307705052502046486075210667717034101821860168650221467278997298589616813856924083760697351536239504857503012078806727553470077589879624157684317879856429309492561448529164833895071950392525593434432581644319045022390525845012443081422464286258688813733693969599514224188569774548352564620110651850809363029354706230825836452944741326843563252160199496200149911317433792036069697725288395980476980235095465663200078985499986175580444148008854817670284580787573229433739360382747271869509075979745542445579736677539701950861336052107623419430531057026375674413889143459265004215325946079910518913719948417155742813681950618903107105341598369087753377869313335741032275553341245992435518920910041499153925236277220068731630890461161414102308926267350037317387134602603348734722373048433518927160844593660417734130289000153893304094439596741630926259614417245326167662937968982582929951152916896264784403281254245848688633781205011035140068076051052113794459777878095150574505644136265594458209785836787425899157821791828442722793974573859052296298078169346905654539686156190297596173549092535522470874945795588866515967288995845069527969437846906179333975365959323973381438237855719504609964814302295418333022228800072375763785168162110538442420466294840842118176401147791618286546126651242416614482393251770703676411575887050295720084595972438841803242670732020353664046469412187083497363757274146590401985165861923567624932624527135257701538558501943613545058368553419010263507249425337569158000407779116356825730518843668707854995405014095702962920311415477255334498703755218244346372242399323398185721112506477729578236750779627172498167171428355470420288185351097871690485853329608195069231496758794246506213360227678166852920371709025067905170255124410493979610814253381426666117707695185015782013881844950615823352339587266463170402545980704867735706031494274040022860707959998868525709287294231591609140700293611044755189996191237400288882476234684577978602582963887081384737210397186133138669677619294681841441191226213020767511668323183956996394353895040926374272997570542974469256787729748469606142711101154699917392955003843707096078243508678225858291085656663169278761936357243801439132640832801571607751581328315771203357307709189182628642458512514268809447206178974674408150065491725329458038647356935176877049750219161644387440798981972460567137291505460307918312146314148740281301410282617132967726195269257026980333313863022752775986958504360626011221863914326367344016328849734865731440404703103621441360503574032555510645275178656721810783042089887155854344054667883482709852329155896932273448267685484325797730356856906461088635321349963932208806366507576737854853709709653550806033995225225083554108779573302043572346528645020483198451156570630359163366582262493652731504266712859450157983957318829736763673588838981626669713010025918388022889319290466953981380297915185811886011567814162039644699386255613110610591203086931808375137958888452402236135418290722610606415886831676969679112724223962690371028141718689999966648490223066014908759163832675776477604621307461108806685091137592160748043309036795053842835482688129151705066959494023129927031262666326804635682149514670244814243749820453775009858009001935272757947971418506560506508746617203152463613183535284811768944139124138427487792173806581913502144165845080521353681089247745366795481347504632159792688671281066189369449762924521212092201111984281046520366152535720997533943660406193827166126931421664007091150136699559243563521088901760926906589151156260466451212696918406734238179736459191868957468963787074008688618052045089675255049532599483058303451730809897398416515317083273610696247690914226473756979123955413049589841418805406789896202796183710397599709948905510600345723788948953069339120437739981607796447259811057722039314457106513369502045356084959106440346435003468487269038031941823210913088165521691151191741324589866474016836872241721028330429649336953404188926227873768901819262683915214491378661407483981876174966513766009191042103115628717685259533543290502791842971195096913157818066347678217315053750496188358764289003022553945775550010581677129236633467447382310601278435786962356553673965467028375575362339348449332656545732299847206112506373152129667967645470224920510137232275002994664346123224536415182740999864854432663434659028084115006680438328814712919799790034486187399981620657685429275593631153315679586490193833793780461473843515050436721173715645382186048555635284788927344225558005249387994305448150945752718231803981703632492352091301482283456683785584182952802485466239123380609874499960856252488514321730716834414951169253559101368213482104369261698176233671828785875382051695653790915008991560629260738964536593810279714125378602661757000194839008743994024036656620358829022863052265726019255961513598027833312693989058096405871150937865594565754286388040652458716304272630254476797442202953290320531127898600990393654534498735360135808172050748207671548616914677261858400537618005187745538396227641169573381995406669053785312892370807291341388023391746871618261501832895560652952876450472557218481594254062630467884534995168683263872804951678094974440815588132583763978992907663057084293782687892874972381717913380155174712919965209475751135647051397925163158915325128703933288008556111825052370609141766693435286918962837552267675686893429497996174129481822893753113356752790256705100019007938568851508198110980306007417595332707946636423404961904664361363196545411955261298698068228242653518277591693030231106536207517978764734111391003507758586735294119596914002286407882259000830659420460946630450083253232775155212951799505336908234795305158450879666599331919570217559832519768504492093006585833626396279720361637336170816378514371976507657919851207311411275983147837962499948132483582987761264264645239944779361456482272085575811490318484746488650602964015627765476818674129279194802537457358447159584782414091508597726540137136097481354195154669827337814952043767219351092801362091346658250168882762011968533007436084094418027359540024539665558307331500350855333205652270021196267675227372496722528419247658447441857813186545618607913600302066561378797170681267162681450942731216426814833681703929979056002715854145616647203031450422479269049122302217798362111696784438092222204207209111937159820322524734147744314878529835677977648671847482894864440812761041501083383882463613548799428015082198056512205335446239594797088675973865185604688237151812588631659297098865864945495875678231481751361453739936714699206875828841569106560446339490413775530476958868810421878484013774075286752444434833940440054046628578794484029764815123201237959512646873199244818934007931464852394458701785960696416786017364969038002776316080308379169574173598964833422519080283317200498393865471375708943141366468064066501360244503968073911550538210238753487148915141478648549584740144815027705920896601740006318182440764298360116919947173301762643594848130354595680452698295903575250743186388513226782517814388302619856464482636123400039643671018835902451667255367876513283947381662425755952725773093590121638219923947028535036020963733988242749000103529626697956903955954412511581896993393283494479973602301867467675051581396316237273888387981483895753466001175012531385645481945640381224405323924021464808307864698457091377893740030208940273327035406220994491762965660542757379670484300462901806751058550358826896287266085930537321750777283729540922040872338732031479996676276967888299514019635083236482537703906344349735948258443850015423226070953703774571185744327634909778161116770674685703643088162320347012791456850034223221044786548119613802177804687250190431564278518511020844189827122142891576480826282916089286579441973608205548678876314390609748642608740871970336890943416994026844428894606956524032666541959407485530307407326152292382836659661409897817940473484426849132053589234344390146874585570681132591537564250422678134135633482588829684219827249208367687634594147945280503959464663387625793967705630864417365065876626133166175074225029324562810557996227546363780596100845949594272666362774338609521011454150508455975863168609009454224496194050940741444021569473006460831806749721188715816082269201401222940094312861308972120655500844408242792243568677202751706142448146101254873136061165399122949785868984940716772733923647546697303283150059881719189191323855544418675207549860401965263419623119581338961417401451425087338493753193552031298452749554787828642477735846442009441073257771553344144928540762536495822797539599942025365053041692967362182879836637907211275706545684973669935535729764712102383211658541660750162465025869195866390020435601290322263760626027203197575089445304976136440723458964967949177324694839198551535831108889690750754650722116783214979355033891155373780375780312384050498843009190946266338063408025259426265762516628298766255558562221599537772587426520251840259986405235095228601475388346486449710258807615092507214169621097321788600309918468702474674294833945918509188324367820698546509063252866624422954163151954360916577837618290594304890486435751429153016293062427686532274307810914542495911610168448061032491595191926602719090784001530383296647370760599042189682811944699275231022750532917771641042658852844991698529629895736419073688075296589813154971323121293643157129693007681520071996580461340862516824209426553647076211620709183479629589239915283094297132748437736962041338509781431728945021186097597188376636492213933665359531014099896293623354478156732824773978092785943904595566970805196283968187011128024753649912895573090254341685011499852378581214908052552646903847122307779137408772080884468689757316710430327455094664731154637486799924889139744407308888924963925972158030107281774309406460371417474527050411517999095435238416822530796799059335035224731495357907555561040610254523664108460843399969844353623893344571932907706386382104869101526871917820496248000157572870283008323839461901845099607724432211481690430403979818153640760031661713123454305609035751858104995221924030083939346549293143491388256194589299132247402777356481680493376515446244834342815680688027246244944278615501099764698832532812207754857950804581527679316240560072993945126556387353264210635467513233823617824553862057491346334904567500871526125235804831838815633553092187974170838035663651865309103182837239357679939955439257888697359353509236203214486397637630212696696034742807882708088398708840183218006272547125565758589290637608694302010457606405701714486038658416224563885343931012160016989822787231233098947344334046745156212178036863399099983908050493536589225726539132279399247268940181744355340729592589169501648782611403590986643905439314846706302800226338780113587554491724709214276699367348229194743889934927325448966423284405395327289455717002760054753195650456046480370976899785288117190852556070385433388248485084348828300155617444068430895159057676894286428080459413287524862620484123817355841905718903990586595189141048501634612895795530091089404276308674242415983199070537180893770223733515395421820123884149128713421734176409587703949390489245746054253238538401398522872391050003611764410300123389088549832536470671059601146458321820653235427510798076930769045615584086507111595221999083638184804381356975117859258949693485524749187876214586672923902485816326899620875203382521240504590370056283771627589464575411930470651263218239868191042629961458387746493694884135686063475558461276362727473356599989053161794455183386025809405269737794841198092378328901839180015356537546577349526746924443367393638436405502651806844341197723892803182676086233318113077215491021296331836797555992568666474602121698251560096711459493527127341382978853822941721858943132547118734192221845581112283469656319841834873182781137895250586492485042077099116129098415087509302216937621373269083837168148317811069453373779589905025258936373686583051596223601839046474443931375183238333139735985284992364276463885410663341322718772411440379741930201248122463850658202922367750958147408833645547724999333325224727076547842195857651262143791169573653896135450131926309068411445151396802000849550461814763729022195734154652890267237820328848269827809372514462730181632885164816754469844998782107628389257875960617803506099791663389064922531607156022083655348595228644367672322561418724735036086310780373156806100016584126750195450507682164688810586070353554264120502798634015885292051547991883592612661123860846064741047603854060215204607852615041355087369469425571628488740136387103283605277501549543576226211341894628338073108454464214883520545074091549519968689036856996942153540128158896707462718383329161303799236633470739082751265460919230029284783082022514985777054992522331599538631037194709811927376438968608807506542032288743234874133311601016226036964507746883379154068056951638730248301533690239412566819580295431513594421200899470619696657596888190880596205278736012339249109983489397783712521243854847894056585366817547868030315518360342957104672827096520419472361246652938815757026384741414127133352735285930541926947191277567676256590160648265691775431356655957087541417078695645478748813134322634532229509243708665495114716055375672476684379721091763326078276678910522966420766642334224877725759351665951896341944760974419865660174530391727271154376778986152708204169327798860622406869867491540803301908840306200684661627453850542264147113063160837730355003372597590661522626893158997680935379790774552836912470568397462946441614561504720612724528441851096862461879130513095482833887935736881340835478369449490399287160950209792850317764753024752241489536964744015202909455186795313071943797390327092691607632699491272499210806376710669755012774175038080541098018767346998009194641336289471011934805867641892050328269878214217842780967990943269220935673379506380067543837580628371411400398467535115546338156858197661590029973616466033708875199276084550337134155084910653369555124457065820856343715358419590095627593517706678405039010784282169993700564175578562029880603092685387220458560067619389763611478504497292699769567778634764379306349053440571856388618430388747429280113425579976403857641975145231494738308875484224963574644569782264759223187489357405543918954457081635724636501305660055053646891176119992785498023436669894823732589501759058387091647865341695261111540861099521649110274892139487762206737328609946988902253460459356821824322625158840430994880162778820651328554113456781775488705879099077493638033789377309054657858043737006283094217500286334354938142031058861809239873704080759241439128974541952828992106930251658638393829711142610782234003289667841371813715337533509082580238895408732963886752152958743635413283576024788270963880927634884677104471097399009479165145273634755327516655664349862052657809125386176080366447988600906487346952781711815231815640380795288894625830718392736567425926242179619382076697571786682234977151648404252675236020479430031368123083675645889537594079593207944834500699488711147900707918361527223956351914534436932903982325215876792842564185082733607234874221808250773889971999435787151447435961178923506693633566633221920401922795222589686492284093517705000277161270519293671014285024295010283726295409395205874651106976086459583216681256074838334000856797680717569023457934099245583381113845553724046892845789748536075258821026351979043560849861830330545040597954153826579365236879415967054340812258440624068796299132439495878382570640644360473405528309636541876874746227839185486817465527444004834065503793856243338414926958669728751167348549718456414558349486361112087750297315436900386259805804918545194648027970257312627199568461092355064794175247216108128357611136567685107457926901337018736429832480446736862683444209346109444893469365722751267171925973083403401472066438839091347742891215333246880073040560233559295163279602164448083624379709796478543986822275333386552511696775878681590835929150604513196494333498644980008866529075940070110875429129764224799419922703629682543820250483740602549705481643291450469713540235176810703464628942617111998364027126229134709241347861541675838167512768292523241742635107753582312398538265478835886856198319600209599830494901262978394393599742544136880621169288078062399439624798687557231476752428314992188206894634181995671130516458716369097827945599205158626011199510772794628684520567000280086691872347360872664070926020364592891756833221945273120615073625632156786448135419260116548383931303710636913036312445282486995463355428243372693964360349381638768340284651425590250107308838872955853458965432179539541718281076396787453514051478131487311604532497983572391892312413337349086795174152350613013474747970526135234418748460932608382906596165239129522293488799432922040493991207207041605356415884936040333139226772925918770221527675253439572651001851550671776955306884197711647107584476794262485165694079183771054538445137145627992342713037541251813596070179939229998406700985067080148420687448852240786918377474541754266549776615682668360690555944133658318506880444788221829886503599506020161737455567872014552332500912920402214147681623485728296598251050656861210673254305435544166574876737746103974556832213841183364661793872099408702424669069566255285902881775724451580858272325727016059204599643474260714867127089447669659215594865058081934960297606382242474203987474249204836966633630169121399669458358913111028332642454252645831447958887381338141310856341188480104250776919233235405882338477224369490129011815144891516494889422095647319008356012645971809996642732350852538501784982221467412952505024454990424920552690142512031937814249885760278465823878278236075706792807002851607827201403300915004561379847625984722364851896979801702685977300117583355580340037494374453540251108811667492305053740799500914533738037061485998869686164236840597128385099201570633594344833085793040871895735415992777051558223505952926449009074779965217452600702639853839285252577378885537613855659614219474450398059739765603973391204038917042626749586166440138033857700046048035546288988240505894159791654477663096202669750500544236495025422701881280347451682528174265746192051824618868353863879739848848643413482411226715902069456558300232047812622495983116620382349319797020400632248649175367879709821536055156829053448281385927617846505570377332164261284885615548742767546478558673240968153015444052288895650046307257046404062534436001324532989370767684109437599389463428215339770094326280744477313506868765869898953753911987842691219608040775848096011238704572875584205972004491689828019010957041611142150382435857139703983332636808976446181753672835040896390862018208996491601243254593769299579069835685504583366848790644973589756035264816247332278778623087920240649397488523991147508923510540369186087760593507288828695952710330440744162559821595463126377065922803503046393516911589739585544544128221108132856207703913963897912358938391624788099610095704894932034797164394732280245056764231225297737876796300161378591816078749452118076984950458006941989089010343632985930475498168038486263673662846384771921454867208721456564557376963857189704589670941400730535548352154023979453809666510089691335205206812506488366010742157498589249910795420805777114710853797893444084584581661837255256154376714995606511933734188469165620702908590121710496400936058129736521694485397084619327260556473620687129983852858778202993863387611773681942604079332568220759743490810161392340998806279022123179135204196542384156498779123078630813620655948254811786201547002357731725456869285594984506514599914744364751661843457191214783819201254158409916204650425070490691459265246341072762311214574583610963507118704153051844447544788252128382474120487662448533378255430351871899575047496545649171610097452250371285057232103939839481245868258669985633528725851061051353887359582803722702955472922597371678663808501244164605010415580237401852460714632266809636952377176949371715151729707970703723487605752000892525013306700289056737694106734408097895972614304001438449485226797205889620957270152339624016416371771298481624810900262725047884268855426088278408671587724106720923792136933572959074748788703832110373339397662916980765569511242915218320775119648994143721904310765714849367770180149881027901650099277670814256791347593446309503003017432556460505670918955447261871163079946834007169309543794746312883811025188110415492602329482747199198735197075827825400374349741836947317487357050859109433741956287805694829749802222800928601064902072950492246164859078157350880358235887365239156944876070273142131676489052645447579378666553382542212458152615187150962939428643530842008922412407289891941533727448183147705135318930871076818136631935807031249840009069408940896702335162610862837308611554147011655334111956103495277139471000259518199665653373581601048087646649917864272658855969404864579086738253217502882061846307647767196170642336106322164235631860468690232362839696818313582642025775051501618670351976122588450447128994264374987229049374843843091312689350419871497506799985066098899512552503767806360340127764558985876744118889544374336992161083190271537897846465928269458213176602228572172614111156973791500627688162120023509145057639879246165990400884922351238994690749013563845925032863654023290088082551433041152745106654791799889271074611462198849534228588896427231088499079117120807224747601917319922274824124574514383840585560025863901684373188286485886195574684160687213058169129083330384003825463778120600127223183604727212746887217120538825818470055146192817261589760994932356857049639736915377313904801968985543314892623173951349129832682990983301770638296660712550637961930821254014047981141321411734023885479808885470312716277633205002749213050034524774257378547286461416732843462947757016708806132227416572343126532249575613187650902573136239149597222171197256385684952567516237257640864801053962279917991003879580428185961942543779008475742669487768600199454721929911153706790530831499136456375876945176620561084208164145834663561317648356004391380474101337629601960306704399116083976643218793949384931088772958003192313671096178354941584322064079643367616062857448633178944805493642882107291995929659226092167717159068015575624383102748877778552306229003461304191085589835449037934580841535026836849171782168053397940548793314921106753169256802289359506421105981785619580941661961278307118241084574138293965964197356757561806599936931260613145266922310368567374274968547537545685508194870494934723991433077600375273114248773125771900968170920785349419370916920508501062271349609548045304322856379401932396215801756555003475144648328762784528851275746657475077489692259593738498185421401583069902870833334507081329628618644850989871762806859114893790423758588932733103217105995286343934151747946255668521114061433917002890647941378847321579801510667840289573960092965763303770067391891257601926293307886279274928032479322262945984475941413670296932365386496721093551379521461998539891542522911938149497250461011098507248474899227516030908433280161241073453277015543616333197961878759125906929954195142542346930495470687448490177555369686476679540616581029109288411690253190041713312082270900149820265140845069979526804406023190557091928803758186901064539864254125771328317923989100016145884605808211181812318722479202379916794225051895696501805267802572592175232790345070317383824033796297579980559150113474302291333984127866502975062004975190048567734002841029003531469929774990445231802144450574015365168557238002659272004172856160148792481296209930143033593698367586588744500222100053842151395085544673441660535363949526482732102750767013763092513167291321877639923215945134834475922161943478682819235038040635570489243942294655282051843282454889577229163503511533310560375634334123743150878285924916777499633237251567124523762712342623847042601538807021480607732347952370269537734136946022766642964842065411561654089317260588488152874585061827410730967562672136004480076206463600702612221371774677473157467106132789947647824587425419546159027914681964104286718381771164855385363439975424950790198758769408215930897016313087786197361619690795818420468050598611548854465681419644141014071935295067831973905573211145079268083634361463527903491943709688426376473274499778100209572182272904258062032156725481705051456825284444579151220763497764490034320104589080264482277873886217439986957645055432192340719095303613352844359064233644319292346737636480934488071523092235271130724094892246340526638720502274903879912086190893391903083131923426184882184949746983039267548361104429928638876591659932564580716216240720450647775474880279077602444773063999413866342602177505756325223024689021404554066134163597011466900400340689448668578587935721696129561219485608656105703814303383329355907912192710476990395976154835919098697848073342386588967684326874984202134034072153074662031465791677424591406793695191497742403761484458542027252992569333100651376955254166036886171998539482496184603611939193370862734336929179854456958739544121776236546671874457153385065191930817339354186816648053772463309465133475317295135064886491575414287168429958796810574737708262735234098371840091069183795690401230650481861602044038150358196756654644749578448056737775590820734229533541609210723440667035877104657677621476990546524026627331473630146252069486269403064571727171250357496286900373730893316453757009345908008450721301630781204242884681452560785109356333439053058550721973368168575987455392232642437128553869126079588560935717103980180290103286084878647786961000136998451087605079000970802968034025251568420246164823014095970575822281334223278558008138770543900793878298217886767361332956183324600652680345158995820122337892348354801094820144807161517546447569419297656752126632054252709939069141077858681844433264748856509173329238377452066884009350513110173643819496746688270399197630492569429940702483921141445356771326737602338767190260700121084779171932205956107810261241927452020626452995701738750308671689870603260453092767303346237172397126520501033537908000804408148847556493192592581053631826254073362299000173146395439686098617069443987392522307033267324335702756372486875173407704004453141709855082762827007664377738479119172158163079146319941854840738483198104257571169031931639219630104933051231144937074699200113137877530084644348963920469511066473981726559632468063241239584684660622517480652851488810072191465986000988658167257349058378576596775594999920070639651572078147291117248329755205633733573304283725091343669746460816534128319174768298165755588237511252844095489160648625377681029519846205702805962571712733178536835299091717631267653511048897276559412069463954876114509709866021391724934345786447208133101067002517559303820034874488054105357098441771440784653382218196528579355584285253071815746258514780499430953345635325050225586830157682288259958722614409629172125375019722603057562980224652731936662115955411026494403028333790453724975963013371368769970789367909990729108060481792263890448260283626506938790297945772981748623190261763713790953904529421147699539675101276990451673892341503785975952668279202553620686803836812717093575723927546249045953824499011532797095704772616500215212726717866197408652049918831659853603611542698018692221951767391096560075866517533899928051107169558547529425181483073267820956505850934195887741212345255517993603508230012577371494174565760605358428866741822454883718971835355436775229228877054059830298644303260331770113841449829678276116197062854605195888697069757157015178599713100054479358338774473936201762042289528222418902155186509572928774011520658399870035374025114324743012575477969491343185552149934266976249988117836931182961409831519408671075891557133308537052997700911426745586285526950336769812093919854991990293627822669145399683958885454878048912439442658530013145339724271673657518928151997637781990887065509239984592136485590127447286546246967428831959242484086476252892345294801781814986269303532685463666079741525941347598713342844437153514257564399843309560620815408482119339937697913075441712863708544628020574072115739240486698906512810657007786627718299244197861264853607306566019949514292394176075072124387051041147596393774072678898406965823745697005183540421479657485639641152043582897668727320181620514591366502423775315179370458197938162934463440817098033114225400746303336978291477057466786472519433091340325357071348499159693876989849036134804084428524169042269854362160587901780091434204322967279481389916192425089845014770203907697079134654145528941044042203611113905454241926633621907518610283843776214810862488740700632816146980903463225972343440485143475300696940774958319881649386114844193086383001170428308856295014870141800695505987222617132502633015546436779600033992704783836732089530366677187416142056893867865072591939840798651916423217914690016049758785216929172983492794371540157667517504565300277963100651602416833947666805203882262619451393369813002405679135645772797385690912306613734987669252498323041579102406136039644419769153373236251104181708089711564757476297433257673769653425895303371331567849627958382510299119989068597752050064579350559089903083710685101574677045010806289174812132816915557472887631297719931969286982442267535913419015951850665115874657723732047204615242593367727088214704940941969933449466586617436643315282074329584799710252936726630538109302365879166983331805292668060395039504092496948130234555608832834255946221110836310065936904364436075501997342470029977578088230878229183575047335878196099313486677578983390903044364697663586894433552061459710324421069034052883686548502500968976079112899660366762846789352929826367787343850630708021408572013749957004659156255592648065935676335295404961196696140742516879511338599958733991622094653441667452768671401780384739262403270001554979305514214785224179023927283609483057268086026283105255727299095258100048008958150584414083780345292898872778815355334811763718108219486669049485896669502257967260970644442561360658386233631811648372994010623336504335821548753057421092450026469194231428866146027575473645146473551344626343149803835881958837072441368128991695622983322393898840749713447535991612918421002303796021577001769462528278680403279657833456711120174472842200291853783778355005998275134276156448342170955853857178354250440923137699383840033440819644706898397179823524549078138988680312478895326171437646906000800690074325356974905570764443060785018924763688679743999040986548956333655645471699360319353522596658755434640661407594271313889380782039325885860019853167291970880984641325519346128727470513183741163018990722435851548371801296090414115428912984002363523858124486689303968653901817363009667010051024207807785039436275974960486702155663619511917779797579937164221685973883878835733254593191438150349286342178406514517950829392606984499426918105366522360630131683965826859898456177425106252051495417336794675411839408343727726175945879587918900805842300787555206128885413277064576073556901618286423179720819457235095072258627193115625928543463037928012989973562345375317900312578884920843242107294757332697154494489697708925538542243219036344132651825756421172773202009201543498852769416884810997294951390107410951382614940212512021227874246630687784126952271442005964133768919019464007495801749161057049152786015551852002341772426816820976104881603829792788884754947674932632708009873493790002585777601813974545032117335149051883599605202557967884369893751200786728460444441395490394293620904042501336425111701083473342339994811642913603054247504694804107323518941472265668054937916182201009267117921830589752479587516802165071552469140867147732483921676588951405279266265003919090940617421150534447200032645624373907065516496411008194959123662568029807807936087175657108161395370951884324085916101991789650927809942130537979011880931027466050038264028905168042149562113345503033754490062984031544179691302881522574670856284590244351768363278772873247221100152761511022586288093713387706905524179379777060193649609604957733416093355004333516936964315674243848695335898330658717209518535256570189791479910983497392140144070452696047893913725101337375904693016114131765329311998672102479148289063187018275541845400256550669579195146364061607168628912162572471178100080502758558856549436157034733988222426357873562371008603933143054733815403007153255687103482974265997460047656664322961172109866972663834039938440847446942039103946767215154239114197824391496480005716656163472367782860956747328952193122330001073269635369397242229410953593047331591987091293348730988713413741485887013557643479098527470564162121291026500888794211966370720037378864554106974179499444008657758380267480714144171726818767392214102129186099669038331593719949263896318838791354897955009698414938677356688638023194868947981895910669562133034172774071978166268042820710140968093394790512410606999096497963321676830135360438164702104169710950248972666185226284925924324677247914198374072931301190169673003960144126290924336958993116967273030797636658959257389244815543291679248712813633482982753985579916906309479720134116574745163586821422159921384777974946616819960168054818305118597826061413453609575087321785188401375136732817812073110631951405016959739855721392405675573396619161892261283745882819060116120278430791389714353860079485613429652042827888447018090544636184090382569857971935671518344740164317042691392085666971382234732666677681921921328872399291393626290274259556630388735288671587874189923506527434059460399920446607419544517809020010577690165356932079912712157160983514561474637360620321809519631678338378324528720103326460486008704272031118482010557773882503751794211228360310666813065456201808345928934534613858523657668668744174952383009229109367925214232112866321738502110262522092453714288004079568577392025471952119613363868352120988079000112194480839193238378178189308127478705649428137892907071598127990517859748145728166259567894044144064927382912550310923519963606461504302938320331916801383120482676963076701932558012073959653816331807222726293299309741665611733632697854852132477035476608486430544254849238197342631704954706154769360812922280660070125584656036025407579223276690604994461713076731329607131450892599981801448924023909871913394455758078524727665468305423586693953238711338622304174408035092241349725437126987173216518511882946057294647767284508471635109745042131731185183842407753387470575758699989861169987581222893458344045376865917516194097418655335063052213204879112046769576117169380234184296729488164738475915619530919821660132386729590561219406331662722898836550233245174872945759970109335708129836647921421018613116567886959985381493340247816682298631526122823591525610848893796021778211824779876934595577636822412234581913758923697480796773511698267917452212492226068596380735900806864850232153829655984093064629299782484723268731311057277293460829870125726978752137430959998589397553423736831383785783619759448150467000016649995144736716908250575273557097644251295275550315044072225142646323311262306136125931893955839734977623592960702277811284816317336467794954866849469793351292326080650541300051482263239099675580897491003267669916862661281852659403194339563866882589683487527805670868922620174464822108315688054447238086414095666759208037800102351284966673083875026286203720271410689292047756294517664142695505566054328452676120840183745916872543712663621325084341928186856736476970996862201856344768489954808252677248753479391271367987827325811296165905100889661800764482018082016523936352373516830606707612385507613454194234259977769376017259936526745281650369233856620100121430237293180890334695973078130309972893452846785865033152204115764476363537953968696347707878104831757457374314663002496474940781189169130496136309895226512394508463583452471884846750230290713092242806720758507710166458645724089254813212288531697673726485940161096559104476462533661123114106695172606584658801870161496992657151742740723183361858929817015547921524786992095440432418183504023367708467112973336708281208598319045033841290598841928535056744340676894859922541385943438527897671377560088464154867400241365459092848292820958867449750639804645306563500544750299146110742263745581442391531336111494007237194924389256986354947420804374344321438111825838317707560629313355011379837156153406743646947840053570436012382179272778127930283092651244394172369152945850328591604187878442157729930189755736236959089755889208267739537437781766312277815925772376793716751956641426309364859429050275510065136592128702969259652037640233616584333720446617969781775269287805403339964455193522190594592781991925328008095298823300148689125385918994749087781137346782572676550087987016539958033488309126270393829567465565967668717299803789525347900723590014293629513553453738285868915626323426729364296550252641160492950301215252527056490246296615611119673328525751576211372611858080147138743357285867206825141351391824955987318038395745797596604241146389607946295848775176427496965263254536207979639245584795814233096014086601350778500402707098631343410467497548822596694021942966055703485463053889905567563302051298627125763785718855527869067820086022377998991243896808932594832050507659529535179395005256878220202269143426532190731340012811284894539794822705399155115195603713867062114477583622585919232930675086468129478992884511265683765773194705051919101895011811986892312220875937778173128113174741164760359352793160234869765301317787470736749616684512079206726424285894564970022493778685615485815532664866536460738469504364942470265985463896742349368617863770142027247176426924899140857899033256999134941056935728627941861444088633042844154576042169512553257375178054897227427751448552992094015130602794538639149239982319514053206545335995224715729639951268094540151641408452864509889538553388928561761252547617433769251214234385598206588836389829837267692746476604633316695227935823218911001915141134261309577529287662675660355998965365956759675227388531177579573188842714399632415296666151559107377145513861676682028431149018610358403335132577274682831530544374712376842982313836290847721155415385621652570754292460329673161263384635386944758244807774966283135035712848140145264733834201308593512855158261142933805555111988388997729002322768751362931549186811926157016056438150584942856587645423252250850038510184210798386153136498035645599663521763766675466904661926680165236398512174678802326677286931239994262854453468540021631496836313488598286467793567802878894266065609371945190380983296310265951541454523027706940671964440797837681118673468376974274211177703606272594730825761775540454832302417091805266627745491053336005375080367278852490459523370866459761824000521385481962948453917794803471305914662394091725191089195993901258371173897087017999401033538721981186144579758189492038437459512058085436918264341519473913135857624529965397469493898060692877878297821853255130745277987551948184554741542622267520273763365449408762776267768760682007547621025131658435235974609830120049055063067210947467978620919430064471500608949154049488890061398961366818631986787046289803523646128070773969874120934901712939832045876738500728519150697226233352701526125182366584779959685211678270111600907481498249072349766020160245672599303933599400221480005672926530300801031140700486115567174492929430603970295785563670330381474400871929428789180811814108546563009734846464497905163215381165779970461732364630847193475551529224396984767524734068793712285270382376360838748829426027599466215551872931064937028079410778987015251653345460292722954692244192188761839684918541832479642654719337698032335772859458817151943169505401949747826768764420479145609429607995477455138217492770808769010209410996856813786892944431838537976856033404838290396015096688182004377013711355339640480630310474440943283105777358128753815226330125708798380874660092220453283353878619613041842604297654435310896936734231987884521352910489926768544751965645306016261807299093757244225876342928335326991881951506264912619250209880678450625679054495631267668531336072654169564101235701976319976442215990292959993855684696854848437213240969709866105117536184577400791396569775853990756720699300246561029136800779370061766259879174626511509300869137918742179773666243757013087613821339119448102605733063833427818764167634199702994172802172143868496016788021144918715079497286846179607837592519850268198992811212861533268558496097297917736346356574672921520124381192381693918020610368921088904096554752100612394044797625426832019031189174681202977860538919019425767324905333134522540190028207781537480660009817501753484012627381443101494808210646811984291518870868011744289342462040551474655037458997761732162831365906223864166442268307176007515096170580021962654910132366981197333064954771598477422154609119005871673164521471322833486502949050960224738420847970093614423221030009309016806595042663283927676857571238371356461730126365691812099327882327070996157442218286838088964670536492291898153704561457817651389154010449890469884530237127647650781871811792983696300488075391755588483008835276098986320717974011433393200351720998913822178347887919308873868782933251461057022798672091460572839550357875145874277891618681314429992807810863436564548746864955629523071045695770705678302992792462061627923372030266191694585011909248570143578659347728805341896473337384942229268631295824713706556982791007710951980104489934497741315831635911847886791767471304694655146237415935453898372942505209558939738154879941977209081378975702014102187464562533527651474692339762467699175135132687795168288841990034657209946453889282612340837535223783080369346572053198635009225573257711293246716539288141012594512219346713065292315455067712263408699985328820930017629778578837451188239731907577226318364181949945866051196494534034608935235614127650707734603151179941286546658688037241540131908293928001525843054023547717090078787507578637327703572306374383991767942272417978435799658517408160636392526413516542558042744376750966977697354061838209179761137557053204881072792742147723835699870234909869342606929223730349497959332655243111030566737435467042932575306000497865987103306715901647332981793557276332065837243975235162435178767778497964575128462554837391059573862789825406881562233638781703112200622452109735999671003326494037064682920347029434712748082041810115097954397201161839675116399897832366863186938830418723884044913294632439971808004073882909212906916530286381722443894085358481977320353098374210555255536367751389429277739199834011090000615453867475692495113448220692666324645936976467918832348341792650381674516934588254223693323914957146184551759563256425378460254453658265530988836047620166959456053858979080799550384786256296467462204951319525319712689788073808475257405194426512250576499376216083550307499340256100820209522378801819076114781322318814604949664771521775453674300359663687815724625707321238876288859733981564121984121942371707751735152600017140881387480870431929303485639725256725378022369222367473350072497306519383348025061876461836091836473249626585506568646747739746792017556244087617580223759033164065954398099466899991059821011737662246409936392295679929235646432310031061936515811613341404148075156094023120052130021499582871704710253579425949234213706765231096092490811356322720163667231804260551039085429615393800916361230380761684757773240249392115927593338176833287818472832749459740334481716450695923349104716028715675300668469952994593627717262405545704427828080757138847905530273310507702723427869826329957388658892531630119061774582716392255722119766387241810019207815315769277274416148721363002154977575890656220725159201182348510191366630661277118567926934608906548288851672921980794046412384402721260364152884739350977059239830262541000314668816443087342486653194878201699206920830698405299143720718029738368055355022664445413077276031505455194692254216681345864943479774660649761877694230105329267782200752059154056556747848297139810296223330045872405926705823141120075087986267674975642316476841864931272375453366600241327829841919205263015610272636495927923890464363241440214901951411412689279759208523087868505091471863130531924321225246902569355793623591905686205602998747988980708484748820889831599864629832282987885118700208531309846379743078439285261855972816014203234494186618746442420406552315288379717328561206924348267325955539747309614193896993072172272472177085651747495021204242240175307330597140409447377306646828838608144024705634265023814530929743565769524543434510474673663092904810231337929931984388882048652647743996421720756725262861668322061695125718767671783029031677072582731744933076695543677631136745701749432037358896088698779702468637338218906956769132903161307022532516226990955012302375798149805478865498584271210375624967093886079947673217025541915479963995878455369173081572010254978655006836086789389438418372822636316570318832973803073393661008495130074688515709463352547537864015137794138007425930501379874802272408225625792465134580978713382425203659769211889193842196231919169093623480826322823290358933382760912999569944463083204340085578194253086614031366832626642877670454728469938090743785531402233114974894819422854147327668291230078412817636393148446190966454247041196569032877448259597634446629813030540702045830024214398522375893035946662840312853058099798510844601267268623078760058402750528511161027550971745002148624437713289189157715246367197251729390362922234205953871019508161598614454004322753410299636642882565472719192749471799038903660993493369358091704168881429016283664959252932621271004887633676707737827071256066534080216480508107861058904440255553959918419771890386613431177423825670336360580933648153865712535183671838872493328075277098884522969522747601735539888746877098942497151397906147367291412221784248786121495739936991291062166639084303428623561217541269563110338943773829568771028837969270584809562135041550220328802409502597038969277742448452875247755463706585221053390962720798438934556170169196300558167337396146100034129674976263231680513372368688643922495315029013022887204374469047662792024688661979414459837029814205501566747094517824221852872021052028453140627463601003546317303336325553576281511657791288948187860020256474561722214257675191416030037771996396601879344003130974205056753408485599625979924859080231169352049940909568283241368305129483693555967253869806241528687935599771548415833235379982321269669946502134489549453406733629218881864689711549792094137912759243485506341352814610175438116479825951593440915321223776792554410583076814525530294430054819355839794400651307881374301970421780918458206346386316948607762528425243779532526557517869715464031727445660375608876535418380241412170645454957013062343377048580206828971402903928433349876959999410713435713281578101070053694460071424574444610101388950799357479169186942810021299015573164762669371852641961681452052298836079498772722053273757136706281108070630197593727962281619707814184003051033439038560540879813438425292743599551202501925912358624136103470156872012443506229463917196802925336382173605724544854904076976179014166687806635213583349348624363604194150751221549761942568952238089235553708148189388934535245850605435144851066186211142115320174347770073326248290050195172074461405529702729516363846547958227532528183425335011822711163885055689009458190412842450037132381473107997083287013786513186885238246391927606426105215665653647075189993281067925129013988529987119007711429002639254229633817880756424034045454583343128361639439002256461173748094221620946652595963783712244365931847117899899171791834119396621460903737317614325395034357927132224882137356948680161197097752135399076186330810561361108849174162195871620158368719241097711118134568489424371035677982748620991792375168271072887672146520686670467155818614252024009171469380238921471362252543782003302473920958021209272680447480066199894973607739436072865639288475834287995395459646412859742547329228285974075245955095476288260700999788131787260889481733334652901893833622586646592815116604452258695514371347136611081878391343263131424376621420461371417770679864578601299495093233500124638331847620899774450242392944235843905270242751817800546105850582940660692894953971031892085439917355274562255511481445677375491147610404272578977808244069696878095912007548064943042476284440677961313469321758866136028894461315006666601588671121183788734273640335697169143130559832395431269462547193107029244537141667121667997819106219659214671161712494464109474464237902520597687585389622044513761452771367345550386317304308148869599123392613177725671309014779662068109334934313717310556830000464649149688231980269694876388431347126865517571901283448446325080265433893409488498072641660971959217240110610222803132645032753253494047374078428164129100535709984709026492570955965120987315314209946860903152561556391927854884258498105208295872105568434108508324402960293676749349634587754269914150239360116021650167668523664295062787027409237697275584275690302246132662301970340292215000873198571499115919538624142801969845688044222196292957433334041249655999982252343461833120727432553203124931126082579514952477597730692240372732287104996171994355600937949758020391468168324500643016336324984259616687124125895868583516799712616011192929889021221705044302335582996033956430809557944783898833682157867503684982362349181416591390280417724194930474515256176187858987125866104455596923184264680572994486237244848406151967051364349258574369616205323163238701796289788468876769190156154395035629781961937288893305073838957675396346886264884582496269717522757462481171003590583783755732846207770760650834532896141284018502482594797215664716022047265212819656588231334879512640055384572620779464679567448124182349139707573404426588640638927625342599258382679957009200205406865062218284025921802746453406070073310633285089639043707476770350913635149745713436162205079291369037210980924960229608613484538366617803590440868260821488162842746024907760268945436506114431252973736267908023818008326161867185033197006658486807998281324068853510450097616762787782409384108250980169910455506827342248862488852108312248944133375156452275807037470008365230583085967796099937590688260699052012485716634644435715485918396122364171400777848804362826321725203097017010266331232209470596513571068581506598036704687355095482317051554375428169518945166413535308549916121455643579601600562505227223295225108980892886573697778556843124649910625508311451286870701434547717482368435360597338105501894564731263182707324354660990838652245778405281779952212857922918841865472430464953593656061117463676703195244672023851623025952292952791724786137045277165083595417986706434266061695002818511285132055067656993672637332154099415913389000512283680369994100420563899610255143321668281551390966461396848289113411610584930251270528744883703538130402688462805529385898105602739319351634712124285703068922594059344934856440292754791111360828915333619778296518093453687072668634443514193369312083316101752781441333185549544759502420587697011645490289015414200985666946929726159045170154816839401173713860618540387108237985666144027997826288782750965209382135639996781942645592737775901362593163117359234358912578758616453727159939574670625304375983635930986989205830680635579563325592052878028871007331114088389583979238254570651629406933021839903042063037123156946804427949179249727692690579952842197590714209489814499099004434754024990255161868278507262979143965317176151910611045184229959246738131427701612621830299282588444599513154832922253490281722568848124269643339726728724451815876355461690803429784911191090902948529973850507204647006548225789248630914166175340554207477125383173765124055818435801861516097729646650972045816955073703886212831895382332863879594020410287282721898962722278109083351715168770788995664742037624881172357212631138521821459054536082445176370621391617355078792017774716880254511197719606341296763295296462328798339676259458314849463941293327686946400014719905100229281176084673314906003086295458355641223282340217945702024214573575852893245343053977163241226985295524576891755589339610102400682713687303343904754306134760998726713004270012120947723571113179040671290846440801425234118829087397270561938311572420022008997710603273872903303775014388002542364122815515226489076584189637094492477383602298555435027023953307307866087771021555326735875280153715542431967427904775762693504986480830974116391359534223867062291609280890069712372857870075403020317046148638948724526824358608709883942706029877611785308456215450860410005741910173825205746951638334752183017411064395103868006903490360535219732179979470533672589370544461350519876272516786774738716005563808338742370167517896925210593665226728766289899039717938703211525922600495253913991683635520337231896689119721449315132148312066331690224483061686218723868867520746908278723367989061929679713807811245684035497123102264761415536523874250384754615768154798633405743751186347608477323774463737348216253392128704081479191185503540584855045659585645188840944247821440454136008769253967277735079786867015984882128839510326548360295518614616369450538900726376251571192588235205385308403427573632737773058629887927388774203649530828974387354041777334809694534698949887543811899138448471862140800676298695870220465717120097973410132330847018220835170235542327067435753746993786496094684696022668656963889126845412752157818664713809941928699130753333852891334207551755119496576469315018563875860614014185033737444305225040059105134704047911592942691748737142384735535368528252430260866423132108952120918704200084380920230661796818757417577798068585006771746130649153035823995842010055712514723816133719224193454986065753645885608061980104075475112257273093351820783647977058489356078064401505731397581499123568205416346410948463276852974178319012080730566872792513781969994402162516369330288244286550433846556065771368257707728263683456868768741365089324743230680978080529609271909869740829031225425739281456178243305654315533588899751295114129249532016831567109067002755685169235753585791371435744990241733373144849403346265218317852710038221346645675261888835493532420398978367317664229439815750680498725049156706425029453148542335956385835057556558084793777825872195345230319465892820066009050550722219333396286439590663654380878001652853562549091898682817584559841580466330884536915016888692413777887550182450644422329659626556564348482625550088897834296115188073312335219531747714437226994171338092009045185793258891782679767691298448014793241000363146260190319570233201458560812437580650635987815830821823030494061303419447585060702497451207228787413532154639587520720750339470592970470195921362825259436213038607437768638626326561892613056465546332166822795241835732047688114160916761837425505263915474500136562775945295920030194726247356375918859995036537635112975868100629435428182545805897964092813603867193748432170256951064178782167453880432253653704179554732437731359029228761355229518357195819152721142550246708904733164336235594535648950138718013967409042736722583474832211264062573407724117668953038624026129464235366431124855978709018914571618066985985894787998465280549883126648717018822864562727966563820616951919854864727362864987813948290336906257482551578656997571265131828409276233577586450439867613897240283422311677041382216479251501821130391589203229599617381392806837900399461818098238373248395802510416869292214490715542637623930561378744030550347569720498911712021486126778751179359235178729433081417404958429510057084142461895604389355918953007903090828764150832829407133069096766106250924220518383831867759353726877623033613385660496408561940015131242896365008651980224267861025689268639406635909310866829092590478889679496703911648770694706054506361875451912353935750844030391413239498079426870376429686452866236109196457219557833333965335071963089850612716449038641788607419556916007964349343018409247840036240628169423663525700065972479213085242911382949981301260152746251072261054006333643209501671450769145104132867352411491941983241585366878649358576833269898267319180718244051899595866514812024593054589010022799087405750018882593043858475948948464576452548032495080783662480210053921181095043906656434881584252581813548801570495411378221052374439949471868362290899713938936366223610574166002779206169498506080312252620188345473401274243194053244665365426469769741199680120850703696813497386034810394634964211677165137702843452783384374992725230522623977518189907870897784643067041569112638289595863480046748230900046684903360350623581970049955476887457425145223348913058364188926156092583112010193191431735203895199661364913608566753425262643683574698896640310158585698914612537355329156669539003727376950725765609779372558786109338647125836079533241262163081325466323852757055383320337844506848235843508918445861461123737843867332837905526826367574393099973626148547335315663100848095910091736741222947035003470581444440129676911873591049764051044927323273880947698076412737096398402838662203936202977717918252284854931684594059716748256308965996523567808237459499928624222094204879641681469225161355424012559149619934675834464782057845571955750121758842783808874890299776583805253646543014284846654069633542959077958822163487351196865512238484817963056979256383873910684260011750162514179174914595774126597064360740978046458280108948702702148717346936379630222865852749011475015817564182614383003418836478080988220108292278048056806970566564186103869922766629010969060060520242062403521147382043646791155476681381609270442976711605380145652527179403100801168461279262648533778243769022153010397082588148452858740944273015137365705346960508019908467329476446034569427435136065033739264221324298324737683623995597295391337253559606067973385466007212277950118362083082511724537022141854644600879467178561737116391935997348337002451413948110369587189200005589992793833392608023303870069895070537907237320038711886190565155314185857723717216033689981552370535369116601706831538727451849233629843845643047629885571662891650910852327186715785784204627773203794702046786458561297420315281581197381246478625706347463497260306065730640730306810423112420389472362158897813589447149195605163144392239756659182618841880536982926956170469684049186721439204685213353007953447306432319328793870973050635323851670959063032443999253031812085168388413053487330859221669444654133155880972347527466226643909943003477224975856015911914685592170134149458982178059180115980652747745325593413134987330715837982585828177685864309047642486798177726113557192595613896474492936208329913742071862463076525701526463734145914419422540989621688714573897127185649038775541903586165792449897505918307388877980787240814158869179256574101549443190958484880106560051649780163931690262044199348969748046943337893933572249050342038305326278670175107182954161189767627722805349214789354533678070690263699769776355635932230472099245279016692173414161218528760712389276804084675284435035824817070585845779526778985698097356228853198796274124351855302551666772772674471726760293252428793133429669697767757385604275480358385105062185245772550273104903460374936552649593738864641718982958768892821362607468060199707469026238668688357718442951829057001017317689182869917792702936383646102442672786699631054138544879299926054804828539534034958420157425380597165003736084111973044278930974464623383343440794671273085026029000554722194894793771917102092195746340328363419173013885657425921339304830336648580624274158208282892108070500659851357841497105371103990251898071004278459001068773123516757732423609522872541313109826511330466905251115625203049157106379360401678936887159291670923265763662121316150150521566748317064284301526976926799308485798114228572106434022284320293740712638289798932242496432379307084936400222461868390337347972098195348992398304412694288701559600550540892536985323877246860769053801705492971339272098523684032725701056542023242156512862029235275666991155123832449077762279587634117259764236581512442667447133300087465645584124532101278569904840499467298188242468927508698788410763923792015883492519994239383635353101423893608933481201321708321938197462050116447133767444981219512992139603157104781936926882589233042384718034009719909916946572067557499394903626180137429544360455182646389889768905287119655481508515546376601267201990304994161452582527526371210398724263192783672815387290967001097737970056762456367220335612652601391504156602521111806332213247712663206058679789621322375454276424340452147453494449246129717493175292038458700970656112987267903977788993981940415978462713682420022715656114046357831597081765093097297460686386682593676708967896224322080958575098272095024283623452648584768224358246614498079666163452300582621904122494488086787125336200310061498723362354894356296216844489942457071176831494873523216383834632686994606404270273636906001770037462922490243703343009881911008783179397250871259893760489592270992251245559664253082972362450899225640520367284116967607121751186119635148180998871508654675631773871226124423164950204216635292482079574369888703397995442762946124613097040735549036285160772613838135127488032523439826650569170475406731556399100751180900678523230705037929400234751245749999777989413566916184264538718011022205353757228243074487395332909545543738779623020724667841397046846160066274164918209152209347858716845267628626622708689748156377580130752399277782503565434264675558815405696047416526951810385529059697992809448788815120598727587358870700024637783611296969278245057037308107691487612200971594103692707398671811676431741260511334206177259871498436815779021704393933528454075919544105708914519570388270238907092161692199215560608246819650421604328083845385522052185250357365507914242388272206686916012957167887691207206947087535298792875322868797627124578731612952833949485974259386471980667361405170637988762835564443844600114651239612842836257673202639887665645682293247889165246874730815813112073440886611136462653250263411044058003153899673333114756256821555089982108789622472286565681767820023699978859957426344350197032963901707386396660582770131025492708377021211645147329484664422778309558830502896863260255491926147339095861575328227969301096171157880426696679960578975434651233945583208990926925689632953342381185921362184436551740970341142295954893116722224520446188327014685360588992783873081902174146347358769294053170939315006084929336981146268262919063946455041616416413279285290307536951230618795106051674724346263743518176192173942742470155129457754978269672394946677649641990782561825625755360334182094025352880989798523020954994276250134603323070138006475778448115268872972563144068525142763943321010788718028525808544757002459299076865420139910009989392442826722708637278635251015072687483326876312111995710965155902549265050584562043323130602135101834176618798945337101181205703125846506551395239811900757769562724014246281748019029399741945779106298562145896535452018307939535843305510887734493539581601114546512754535515271638098768005186052282513486895133010512113575603663867341753318457559172651014793669841695715133251639957335665838658816957971052516008867961458413013068603620214976567488855430540533580760017453493734835683622611913285531011059779423602286695010777505708395481207248521870021056115239601169632641824816621387343901787393502255563773605411973554273768637824416674438638481895559038633443984424853115918622193617867866538721212323938865618719296319714731804210223063586718453532066811391377572760885329054647672576804784514627568111605844983731363669823572569409508357572539647445599115802045127133469800572677605519427591409576550205875524910269339497832080078427908388398353341431778634483175451820029916218961363554824235118478966723548657167675983479444339552278174115423566231276500619030490587614552779245926307600989830635969727257463031968530437964918978569508059141270374435466904644174569503901830128763942416602252746688106795810999802252347692471102003946593378516646010223869372463416784129215107285706108266498720543239761940647535959290011692940690121163906178999054248152583878982593739835852515970687197164974553217818489199356829437176581481932358333235279111635723426281639801218462365003570262232977175722615939642657619239647437453797075435684970766623681027578320943905061279966599372473357404391019480791876493143288787132901572222405650862774044548241947380155439297808468356243742163595125341954095484782840516458641049999298659611246657126520275525695264354027311868831047349834452001561317458966153808971411199005670409908650485806095461131699869095862248050353292214060992145400023469058948449437959731304997394329063999832751731844864252385153456927340171364746557984011565562748626056572902909913271828142165436523400588028094720185010021712026132476423474040181608158991112058491415304535162155524697628707293127666182037942203260953510713290274829632707448810844644342022692424136397043738719961951790591683616122011868378197954070199123356431930238844681534259155278340677414760172738226394965253525374270584291874664863855268801064042991074098824243958690146502706820291309256034144215406865188687121291518906657456621026253129942361573916846008902062077810537271528371034751175272606537107499444891214965301554910528941753793132351581527824787505902160979250734491369651566789691656580554587763409588127504089324716394999873972985160660031149554635194267393238376583986825570745530266099119761418051567380388457234093487348369149136830571044063585691334516536810465166699209574391176229368405702975004291431985208523973814035791305922025214645122890164525452926343229878943829690037968228193413440186242847160074070590526213915788689911819565996592951008722744160936217281961782953845470323676214461725188322127635320143430644169208232111477626175547029827687879879514970844371179467592687721476143867538552521313774844091941684067151580191222405421001379766722778197589282231042030064847479895120128067676951536296721374516553283551881844075066305736176345124855626515969040275827692040939618567916720263624995375710083868088452959841665885638199703691280792284837585093936582470361828212008674229788299368867142704558607152708755341249692550424772917671355980463294787041366202166813052365826079872328538608216008981762748692285216723285737501236961281480246898603691641227844176296665371990177015034756046614239968326433471583481226104610149450862537785323747618072990227179490070008982581867394502294240059165287080055926504667387092695152084649034870219169820544591045586333055047320609577471570604744297843921070496503614447752201707093373375604120290857230827121398688981571087777853153953112602790052404844577164822743440578405732181696052643765422847516649447446423152038043299131020160113053091019207795165334308347056699957933715435355180689370836830062050233777092085674535186652142020307319134236819638060353485543113650777206041196954971966146829524054326785774784644598704373069778637987295020023810229010375556230641315513396156514494980237572814965909310258190705699154550321008289340955567623481547538494283125436688862653418697341581173726977132749220260227990285009350142155017259511681477085559611205441750484566111370791362231187477778528835487446062960161953723045805913879340818456053156451409079278920175970954899608407840999313502768561149572682991456251481546222429386918077745079889643908159205856945551441621078492624400003558723017430171667668290106251312890051166223939660421679523079495684719091763513790255779033824788589875397808001613560424388623286852287582330089398935971130137260400067956441785035452951793116946847989725812990952152748050253169808222168207724458874497125156468982304896923255704564164366981640163890320329470057624835944154972531652764548659226289102252373295917372930829050125363399848215222847334708586173680459351235858605072038811869275177634617738418964740151613145276006201134982859320647889623039387977769587589734738325723404377497526511636972586326975675065585653962047570318333294309724892918662780286264928218656961982283392765717160455679143923873351861047407205797480151225344790076753704720176921745834473970452485524296711615063855796880690910550157392219648468640751534858551930771955085740166854444280906372474608516407472456850301476593712349312145417137433643048070227042985696295622440709439005661209673600669178253547078587174337044008345314432293691835522910871818482643353708061597778287610300152654701944957938205606962424971213861657475803858336457342414420609897298164005743494379845514593589292213278798710517756647219734722428377040607438648950084388081612418217294111814675462418090883183848582441877877224370753428324296389731635903425121952595363569358981478222410503469457031195415367009700989139765430964565576756899158507143076586637936246472850262661366280105193660507045636887092853141761810069345290078657804847530738663579666723637319498404443659730669196047786312967679512226663152415824762039097531302655197178279639882275299670819802742382353991003319513060959491551473722818537751923754513981691337987640334566788208471423864649998293124768809999043271990484554117070412773501577514700012112346489944922511372150728965468472608793500421447585442027415948098388770660470461270206408063846740471107468738504457674208156892341787982023598321118188974720148195546942733987853261892624766882632741318143609952824520715931249683409035250269392439426058765760745570054715379707482913619403787443744593534289817010515124451353959146992822215643119451221619585252802150959056771192466293518069437679518270679436640908411817897150241185806914307720495254240045398448009239003210389124723494166498901303225032709424922698336275271140739554299327567239971392263768290889222458902975401323718755253992169671746913687135158579847847049743210877528142305470821421976075825896833965939747024237710203728846546667688039478677406048962006925939887968861788017249136475471703429895436173982525173198413317120188260331561918665464251194697872102843217362411257457415259357565632428018712816180830485750517462833963482649548940991969172232334948385582908601945673440657021164303303220240471152469517551961017776976150837605783025196251005031286658427720173663403488230118166245545295411031255072188517960727921382651473060775296626842257045307037196067660381588483563979103758548555204732429372551271870899004289993515558850215358276104657110771810225813600954611465259732692476437235983225964212570167498310628733698707114690535478615265241124968086431111742619331499516277939487377419225025464797243308466880361263747058059619144035574920270440533577361162854812116990238449039902486557253860067926372634960709820510487785556208019051836785908582859225271412472466292750161539537546367297908458088826562680117602207536299947119809148815207513615889071353611564813939100179496900359988030704264738132750708638218227398638163883844192113852550732311335601745792436376603301254719045075785444347560260520661972541808210014796928468997628371349822274646096860192818031585432155706892362223286439948294648915070458269032689640732843796097320826769657090989295595072381938558989870466043059878073435067102341460400278068108385511612180506522022856419517850622369212281389680829779946410809395155883717334738302142230649552465677401164332986924847688516610961453517028394584200752917013073549472045260714842773031496547017625057063782385413317232321535294663537077458345438298611274847464919393650265951402610553355603545798973858143685530583734333198746690339717548648038286280617795261931581361975609975251637738933329607525809827562755590338635870772104746007275290944107350510057109550432673881943461307623834723487877860866033216761187715429459525530814978652116150579024690829160617998070247471504058360281543531341675994491285379440985459267040355531116335797195378176353734909204855439421208992420256424400819309328785081436320539371618440478988591969449713298563898148038854666209502640324692820798882798552826891347156157022449850644372533629513863944950855857233620046738950988885376196765241631635838939241025136567115452496764548946785932533054757983240250189490727508646127968921898244015963678120079931682782021532086696242765924583554605368159713136128790340456716382185122739021688516642095833839979182018089615841707878114460980716470032149640108095001548781309158142392643741135632292471396099033925535871741391024867843842579932068379077464735049508373441940792265243345008977045987191582622763589013197444394210744093813366452740521685518058931747439024001933553442633746624960380096815447399268875546656656966496175106161383313227630270842128515472584278363079408290495591058532802341398442024583102650140517113471720582295214085501713716832457715455780736865616216650273619901083831991099726969811380150934830342774410651434701264380650625088979818426362464371467384316595783930535707264696832510983024151274049378247950532255018103543719618516489403777775171051138715764696563285977064840954308002984591432764680318039243073250705990597598337290609125462492818971606837359081742646501763854495893753158057463018360437390396442193193883468494690982899670181355453188271188460198679492696445986774090260809345990748475285698946286706249579821966862695362796085984200338281190367429474173471783864141695061368596374538291427089420392629783154696943700456443639070689886440580304885540939716743018112291963963995684129895812188589857755816440534743202090122412838551981459949053484677122744770281939582190958686334863940982174626861007531967778906437058293387635257168784678901333139717098051967599958250735175829264250171405144091557812253511602857309062643930613366608519978359803103426888644501614311018149878824541696151115393864664138714637239729761991781213374004378901989484883027532444828025281373794762896124958081167097920646046623323960129119210917236172835752459787586591586105401094571710412601602011518486593176150192733708140423923098942867587169719642461943819874824503404620627593490182892140722298041366939500705367613428181273791143508145890425829633654482251127024965867081684251194275944268727976704879834286100882468474422141829010798488583032161005710573241873895319259159428677856435860552193570502247023305225182047428626702107127845112365179727547331599970038821403121024266282759738092205479426624030984532588209809003626970870947719506603878874200166854939429825801976435901647960571747355343616537442128367792450080588007643333050760031923590052522685474206416153327973513632733149077991641425762861290770287078829499366664429319644922652737943810286667170630286352275328888166215889525123250245438382635597113393165879726960092315784302576409128470144006798509400937678202060271677648570096222459417767667554529723491602773182632699943346003895000311947582933488565377617082962204923488684596414547687570794972204287521485888233201236560696854647049700933853721641378160600458845335336822645568956191474069332537878630913729614167110972963821904133847781955977291330509202865822276091773334560570020730096335845989889844510947143798947548165439535269160938168458263551864762055275195101997073096418016881925940645515324576171026834191107076369926460425717336816341141301089132680200514126732101186523487317545385478716535193218146196202931612635202310512570559380645871393303193627880025126639199108238672075891322683020232128576001675455034552585878631056881268565437377327910298684415026471034634338577909052518793023488623416656387296880252062788483748764788538577919541436349313878858409104210898265678269236623372965717105939256561744330441617448531227858658741751784338798596847728182714598170428459570387044834697807762717893089518698099453399048391930821001932119490427043139283510589064873584073091207678288801455346803604843691505128707588987616040574327734237064779863837024620580441340451229024432253601443101157484479018558437817807789259640161950227704546743875610527430553106394019629508952194439638096678332553223908672919725705620862602266602620639955523795596545402199716657406699110686038751529520021097862567223527869091722074048671909247351935758286376629678448681760445540495347222400530017570171908836591043678921789650594246823071359387540410031301391213488226328930564789447974006667856299469010908198583757500417040311530667397916656310481475688041496459690634513450406012048316991577259999786710739900285168081855482147295384116453260297266039365352659511277794439342881296563987738581679505574896499023408414013872380449303505084812219388231442571700642488128160825535275257560670233226060250358548794745422404893521105990657329209211673140999046513557932574576028647601442278398593692331454779477719090590319745544837369854396797495780774676110077408722255797430600604809735547570244368753952008104043990029347260271743008897406541764204759440039734257237002825922766185505863053568144979431970520087044214177314737893719552725488346171248973879780578605933260558824101914489562473924376323098626172103404738507528559858578457353820995005484505669892319221229182089916934508788424866690758771416548703272679938726122231758325629707400116740860018042430693090217517778494562375192484440935430254702264853332888829542923757284749326731446003671466349192926506079120429544006840145460223760539270245371804287748923815744265107802460459799422109324673452119549361312297274070677015020979948377364038087509803291037918241216538394396798203129335227566040476914669442785559429582512391918160616848519719834570976329621397998152320355603512723998642007122928099261917664016816387165507584984811304806368573695453446522551902725005990644460906810698078009234728079578967601590717294986059861408469468892386408879558072404936323739072906748657333715776500849004062313854939682446286071787434733182730581969406482762769523922114141402817770065536331678496696630113409698027782655489653329448657058604160051776562377897566712836262881786672436108094542489263706704677987033608517480091471750600458926095425457593505292450154718524984095222701573588903380104385127635003941526200763096661475211232432499670904316829270796164176514401537784471920185196766876160905824334273778195152089289231122546507982698524079403856635304313893805837168908239246807120353068303914487163549679088894039007559065863266847432786483691881606831844118345534551836338959417196485172280681721332979032809909106624249910943509975808516980084797955157726774412104009141619075934280588464329523708226479004707946960762127515343966234285637605584481735976489653301322880221480743549736131279241391258340295916527378566769690854244744756265595516037406995312619372113883156438706058830581958256046490588974755491911466563008783025914703595120410229613518901898785257129500773075384626235154908288788144322096723029990752840973890368238991347158765384497670850299486746096509918288827900073888648209008126003260735095197276241207730895276699242562777772301583916316837392631424928567946893757361525763659902028929363397763574142160585538362280880462828714588906848683040292069429892095939947007926134986078303092977322222934060730724889115697177929077522899933939444423577209376663954105900466692613064925862223764505356010474661126866425232489397539672047500251255037354409113380481484334405629608445216881901769284735997296259025790061542425460102691272015900039421616452475953066313340971907927448051896366744611822341670147436196709664885652143074358579948889935002058878863135302564330100177514624380539034194485297030957783452912180067941704816051765109847858511974783244628550935412928622258937588063632101295607159764324275136765899108637298619127497311212276893656764840469756759286095901372818293980810188253321110164563420518858740723824692102537012572348925604815071370364299348992106457787243748617529864421250537250910103703491336799601874373736555176065790037606752322932601128574552746186215786825603987430958819507374220773799139528025097036012168023311132075507986491081722744321873120425259875824243285754022068799449121783406273213232256475527706614616536597551336423154725155987708894197457096750606871242079127186330659693499055320594985424575738618785122207514015292436720078386217305397139797926517743983858366733659659470886443004283785777608625628419841193898652529161893476318894466199330613309282137745347847920698377358518794915739499012162612494527308563962931108520692127938593827128436993498635182683938998520780000316914880945148344818148569501503366002879158299441815545182083684304671701742145765038005178491258990060194184101457467593934708500657226622370888460731655005232156379304551654706227451013715176376967529735866782266715465513480231706452803965949658575483897537829413358502199116695063824727342989513282769164062427810336234182482137099456832453595139607566723462191259180023395438782705983269759915171951491576224250223364697116210849380738186899990641934550390073622860246470477613105604847531837810396252725071321881138430549167895330162382755075353042520562619269312289049490021108834639244318313551875858900754776816230803631428128901908827753367448048807140992141905846563223362082973556585732934345281396345432388955790237504823602425882319910930561478766380039424613401394811357741183339555599612022807765688428684746315597564696402674389580765899823819905716136607748226270393100936436305713408667887723755989904711090178442634486583018169947577178558913281138109590682968781574501985462022149629873278826087239911327452251042946644143728123187937075103782070222321725974559236577991464578008450534872812804449366919846944120209449881899045359405456185877845038620074481649402777841699526489759795289622119468411611247619615301783762210692843750869199751456606840690182526015206797609235770934188937986831335719446984065380047376630828564125180987720879944590099713666618740268827120801287201225159617534920708118672393420704303800817946467756948054799550573981912698628343899530291418543996746715904769149084538007204520587092148738329304961687217775458345571064721110394254473338548364810930409113273571097805011081602568140503626006455347969731235122910391978758953129023711453656813942967848940025543733844080999310434658883661339240090128895562599944048692280207678979058535544054541611583999913018512486243351512266061426667382591945229375759583010305899192218511534707082953129825636626685505104016558202386970214690509465288473989576445708660107325816854965498123510407543661537685231750383813066653640047992141746508669628690794521482933161389017731016052595033337186912643496886266379337193643944881119664028624185781987611098869388757341055268458688071600568515154783502813803270430830003894316995273165986710554296955605995497189446001954929671492329557496855211709611455839114227788885481220758489982380852504589004353387496788199157417595249936467154542594749564031908318992370056243658097586308171805389533419591454070117761167228398347540946111922334449649489867093370639214698562714375345894006129086931562679772999509381402489697650444946460667174041927913029853831075148814266721776611039468764042126595896756711455000728408499822403243749990982950233640756229190318139409940253208635463680002756418822491728928292055667973998424200757181713379957707618924325816711302046192783743922891263061602447310898959215890621307245168947531347215017694754938004423895537662606862335954084542956876616838064633064874391228968657898988595926160125110618235496150568816513540252196372918907843533577253005116782794191493765236731316658312427172325887902710658494410241773796754497222919442234851006725670934444397598409298631518592194078982820303960297559502846726253699693124447170678357833037425943801344360907111537880235802587426329551265702032627206575360380604155852732204531721727730889690154624977510763904883406976777159763915190960208027742664094102995576844372275553951943532196644253024495413869841576962652865497291581853304791421907039840523051527929379226798001943164119224558753476850381713465282890731175335543783828751616784032680463740529338497517694980302690086989823429866650103594012529550997086377782780984332916944083238627763117229967428642823724804957485529845755347751792770769686432480392048162149664504902956627322690536034442529962309471514080335128965758805137283575837624376725455178673821591390136052415323929037639064341178722751436543630643620691172534285129590194507918318776227157115586444496788142188497913638406319563476530540308033666231734987130808873852560922774140698360354699505104090169049703621003349391145280389171735576610863164574456666428883673668180182845191757176476427323505732763172671682514525483481476360922693183477283716657741055810082691101655247316590057569712587266942654048698234806402644819667248264076457458241609126553608486998297680911133935833063966515067712095233897108557201015549965336509982000606983704823295428689515241498507760819406406882758769878096225357796434271757827115730795814473622701840607091120893008490007974688573718992856556697775863468595574044521823778809392018912122963476543337290218908892683530064230737808165821454802933890446621391909097979661307773090973176042154981046940606095198170841732585288985177426612938974902179945877801997089938165432958393772250326426056230538487458619384820683161134542454020597337537858925229572487196256454891006889784153234257681000121065275796242669592314397508122211006251424568911154891581598934334189041597310361890511966923328816156592757995792549359446824763118827468024440983374511796948589715102981395257511737379531330445965336749090578670278937917112060418299824457704801877948842631990110542009094241019988064833325942951879364565630067571184836062371936619612458403654603577504894006251082291881680701813129437987986421041219437948488030634026241436484614849304749961804798338592957911487728522440739740783734855581991147018813368895798891006035679472603831473571294663564870035188940025514544970542906124209348174256565951410595964032345388665531739455484921082686626634336210892423300897737267795435202620939788645682586907880761758185480146188601382508428172173164219633325688443118638245343241541622167333563478089425075312270634760303609900239555050007563186304137065772629856146765511959891971088463024007170889331194131392768851259924075693489483826214815789484528735740325962827914455080190270956814752841417857614534260224390522543944857264407174936846578622998164073384129154661811392498649878638740800251500908961390562492929418787859674507980153842620860992713972176836538919740795111627661916336069383285977221007108728911583573754910955550460968673688538860609830223526677027879414379971529426703121551486036585006363155322368712400026669561531996550626167993846787085158588263248478596325679576502565327230670213915906061107689272770844342873762335927595036597306961475076650557326780137253433734810495176034511869414598731088784553919104280534274885783250073659640840850584121032107732102616699184659424381230199685739498971267134327322047263984096300584974497507346059260451643273979183221238269840913222151292879835543849494653589127477338960289935474417954881052790081751337879382154214269170714416077100546309444597055723699169549896709290638304861253827485801060899528244727076816333432590812175749278004140251375899703971012690390965933224890214488726816924648582870352564407160778579780869442279305035651392266704863285565855230309590952115174554296833018162549505703583121233081701863631568485210091924669565957725164912388016974660019887595775769351146735703444698822846154193119063264997532570576388088432874039624164433409784328026656755966737253367279745343280956543306529706636320041519956934503789625063725666491723810510617958897344640487102291862221153925328304443652934073910242769685719449091062893786563053867208657257115664838026513551790831713580631220945980675584255015852949319093007674207136623268940530451684889964448988793808366239081161781453576387575050981360574033380367413976270663330149191382079046075307128967709807919211505213675056195168992474074149371761165998849053241830015121298778818015235307014859463423357475822893959773343495173554326419723578455155569226228955784347918765607706243513661569577471393071464744516465364503030741042930514120585297099792953929538299810240457292186469309482614972140431487543954182790963810327364030830096122281780499864493384162216514778971760304072149805044080351644105399740028839786395523925259292084793539067985026337270827442135708115681977468590071145274016355593979786515910052062221019242664158335348721209723478031546588018216650333079753570430743178562848489794463893023909918194861632221138391162083787737484280519795395408705491205872914881536669269117951619957947325661319993345093674974725946564599505577120149476894997634247448310984551297624014832301853076873491584234744532157745427463485272316661949426671751304285033421194299158221410674842868915301005661001109636258494138700209499073778767666041457187392379659913458833478782564327654915352640854725804746317707852210366281439164949161844923369466793587944265291809207192563358931076390176728617972557686529414156195309466025353462710881728684203945357036556990616358806921330620703001315894195383185544219043667424923131671761633072804504061528740964910514882066415582051922518113803235944266018643583244026029439722762042096109433593684663493784627101532730066037714712421259669048158249550072834511441821863681080306728360991023630487264486421557443772608887427246164676764610271164809457494166574783542959415944546783942670227924674464859866058709167625127348259346124867268417621865891282914778918525718903071344188537776771210742674898467067764292203644729227553694607064290283102709868495341264153416076344491806769177702043567522424722722741587482239006652470507087296767480160467991646859778296112920815593095238605195029393490889116712346530975671442698683910126470630209478616279555857611050487190662932397394441596096204821505085621892869284840568490491333665856523461767082538668047022903451680823864510782047690521141991913506268582238886218911867254561694456571244910625048047526230563525456269639234751536128112818689866224142415682886653482369019203353666240660313812992786189919599683884282100443389184517207841376148728473524807995762782398938893129375387015464678541935047638129820550871209248366703803869421158085243580540297382775892516352500620534516182686491592666958095001283622798729646900239265013638412531865264678058394447032543322797758280781310603980908956039018545875442803503230420648647897868610227326997123449874982597049124589470276997865580432310181580848878307985301420417408301563025359029841796771245105761659195086558211983734965393008753683361366575855298894590227850782501029587695947775292915386931725984590907656594292984281762779050892122767830060845512795574912962206954743204196694229827064679894394979214822386005444371660299980424402896066121064010025034050163027530296956850270920693853717639221080426823695782329440888299912046082279240554814685324331954366945504158118039007088508714307892562281153839268517697020984578348585426626656043059034759984749052514530907300149700588196611907376088333583694897589749230410575321058681334334830236620545166760180515975741188160077605757007272884901802121159143554985210904051862022890891824934780130032557048559642501163324885728715933986067461647397822107749058675647296084781938755896343119144592971469953057753636725198239712057270055414817115057336027572447731261990529659375656107473821368562548767023527255437468475277117057708425545005304694008107078362566493848636094527110942327797361527176164907029830964685040845544661971693322000543453510597136153092653899704035722414110640923671466054462899643759076525368616482908732641075033890730995477814273240296919434589202587744450469519420469985137372319383266684103980138040416501201621484510514049276694382804063400975608222010388242401074457941497787056847427451324575903419926875443035097464097213394721747237590111162851798165394015566873781067642785856171297535686241350542526194346270687930706075137792676168110963887382827217116387463093787597398009046831003379005976929666672269423738864636193339815437656539840315485714784441183754019705641320778969187107703004915955484556969291122974389345705336740805760480538801645806206156689420838702445150534451095159626092114173701537567657514674442240881742533816784397215099806323012175412731818244699180186177028631045164650225089217087972664872526461842911270022158482850265289608093484982364364485112197218658236249769620885495751800384077977887051514446194603091193601275629683947463617405032459349644299803303224642558876935597476968899564829033792156374106375638797848579348726179782910553971125761800683643929982935202438297763825559068096984558870900059722759992997596254968078249014529068500911598275546884894468924980756782243995649653285227218159678538041948622814600681664075094138801274792643174483940359235987914182116621027982997623549861076613473424719331322569675176049547059308146584770014672885226431289933729261529669960282431904453107123647293005903463395419752585601664560448496308064745188234684765494897733805780438033608664624189843474704907798485195939425759627059195960941326309650114633404827531919339028229854947248994611433847147364043595335082537163294146952863690716910675166208436579839738445857452117106789721005336462872830634920622978271390957017885346928749830875612053901808176968738095389957697078778769715384589298950837676640454629026736304432817393482386856198227407444232398761563306931080240665985579472091476971585766372537251004505365365386038816905965238317071426569126131585597067155601322211142279380057695790951945008320958153389082044482495651631003838920840273275999613453959012994823238565995333422669796756280366741302669584871232140203516814735498975493954500649984384088851729439913559640576210975947876972724797448820949616218309654338361832088345455055207270654139304509016203204571450836680846303246479378880126551552345163785850289867087319876862802689844738576270567035534614628817357462777250554984101648105429640633264995998325222145285281785863948968528949818180217197841070025865356103766932330457060645160038132848200569950006979119008303729974125916355223067108042876156975247245393732560507580299741740349537444300606205225660843065720760273473029027340547947810803502997220437342643221617573205549602165326377085780274644976799265198623227524930686948070315757955270830095851040073703243240010087942620929701897969343937225284139213136204315569892244127259202119482616957344574199894884830926443257644200271181041416133538259543774727052547933768696837690701530622826671826116921537104272235645304216634778643141650257558024224316783685674396959220569464225501672544416707455506997039897627204735716832027155500908620563452189033982259649487220508471363374612961893654197185458987796406440505978582954589314589094302723464360346781481935815691091429782996441402648190285355142297121137361256508565815451968089554506884952903291116780223411018917596413286761721733085068117976124679573079927243550010549590938640561714087290116866557614043833292674737790845814303755451140624092457342589406467008995788889441782424273291750779344674582598004609099261138559173019012925600624606420185007108946762057124139856809983384067258161885973213289468960175043747473031331563258784463663986945302808095960110582129016201951139515374156628684768814742008828599313968940123259924717844563351823979425790872922050405623453779092694884459661314754847117128874528415081479478761846346330046302091665848460946845788334903162407281241759789012936864623938823867738953361021829582815831809220271798780441872308857316785308521753359528028241519059304496526380623004810514510156272855988699185884208749564793343694111061452060232374753113240942555479600666935835323021529425883641814649685823007258433953089541901698682241501417760283554445029114806784568618292737839626048708919306147719893920583272326357710647597587947724056660668050290559812739044972063286598722273808548434168666029644829001150583977113118434507256674777626266828159313308655417134743797644607776792369171323865440366211565328906617335585871309410915948125115812586161312668727744329058250585767035291587696650699460399010285055631732706166720361672996294717294524131401816737185160847721579659768201227393459265210930730080282988939613699285065188532637229447135895387149862705623195495354425007467890158397510379524350609164299578930226338126012794478844818158901210494407128874255008157438887978251449196365243937121539317198990283564810719140373393232387496418888427481075774739430187432026858306489611971344298589711898522192850737046341176555051345527865277608794168176882997503596852587101989291728775799044949648305068592268670701619272783785477665352225013491135819103025207144249523596865513909799324818224070964936682595356692940759547568255365381246614436582093700628484568464568872648876710624535652761619010698458400545872329554556874019011246520082324803000727532348760154661939040133539314029157542549666048325390862634637419066211126950647054562612564660102357708068407566716212609278585571631113221006277963898926007176493382981530543599380068474378664619387727677039726941962064469070561058197921659281898946427008225633813297080774689672596747930121891061018486531665692242616032243076019667002435631481764329277846105769060951166344508301752246942734148240544626685540939823304123779437226327405478060131055261272852137102429950677568373985458521866274454929683523577408174873267286115316205097361001197766198738964605899206251823516857881979002067995788911240234109170312308874468368334973774273054041704391159126576539160299455259424889412933773089366482944953670781976639016277125101307632258664807635303795397625393885168592824410145908893994939129791359804126681840586609151392502710543937046449607162420673002495657667078894594230148227636919683840340132678855185130303569057857987299543703218135804294317219516994876170467367056068317056552432213276910019952562488533685470655294340217789529250404353552820955866384777986591029538245533216577574615791464330531031094523502685782504123020295569822970338238630516409393954197826972156352215291909717489504118972250501019462396793933466025963239175687310228538159546296796803399366849627675423022872088647532095904500847996981517410976677030785751999818348137172026990726125425270856734306560736322102353173216566887102600868240896034392804157558024221829433289522081633894919012722362296024608236940921071930522137187733590368169474745417281501751953871832486464565755651894382800649647202843645788789628658417269520691810149055930613754700156966600487115522261750699698632680576756784285071696634477682404834815919863703551516122487121660313847618740845637986519660915341037514551653755405421011710565104367984044508384790701871211654089305947557312955197309034823754903703078058254993924333413515839455307086456321422751975052736806744572562449023701598467301045237894137557493155466966781617023142410759129979589253664906507677335729320888215508833422410659846799763791924977483989515840057615005840390548225024500662045870345508354522852360721552437529941536948454719299595899021568398607203072935774374698061278581966872771901067516530656461071948333881619360861771165146341153351971796510854184279961287522593053335717684584986187936024680250874390179732024101840421318029146666762236528332902550478026179558318179387383350913733514202865495247357804138351715323084746318008047541204565733642894572064325675270438405836659927148245945759914509947339583525051973989377892001014708163315099307538417663162290370150127140371203867044405316444524332471352263444289130776728969654455979494256493069441528022418853382108068303573468400472415424706936480729409117967506759848379129422486722279217066431993300670215037748191544037129064981033528686380638083629065712229717914607445641279095621350999936350966929138798192808887493737176380939720128252130939867979818681345131280928066745166855279054896524350290825009586638090994530425092361749433381649432881086919161142899632402408755333705687699975696493128903382217184004947244028261201547955167771226236956146433355164539800144312162047407934358348417486228004582662419939842276599353307824769886654690031516925915000105401368716614474328263851755658726588624960583862125534339954525842803074877021612870071469358471949599411973164261035440041755424063371708039242911894776244225879251201145934947245126132180060793822623163366675465277683173092252385726864072789629885658110134147803760217887576149096694527592205138555973466762993311578822306291997776553871549702680286768811751038637950613844542460419595251170120678375275525697629767508967650292945718028923288064253238321588952086266593729578514175101041299249140005259672653079322419321826686098132338777552793002817457394158961168632219215753634298315190084705771161893973276846683470823938826822016364294848646855898593600673147733833917873447368941454579298672789985621094562013904931088538898744382475462234667449919480328813210601542159237556647558165637154892040866734322579265893246711154341936003867816071210966198590351558883442535571787721306186957538849687489004337619961651790368373206743119605786639247009942883211840865116469120173979873619355900421573440820865228713078189652963784773187312181147258228959617083782600531453979260980439865514137531387288498186015932741313459335453745796286232441496395997031894082337146702081839794679070649374375750174478935421428205934835014094637216982937806206229347595060163658199858876281139194157673193809941581113052928556241946868305259494394815166773040545662606338108313814285973604061067402440328102783901057030980043597490117352508980891253198982189143371627807093837549290086762952357003985717508210763725173168825872455281889180853259596291360993067960003213984493845608087792396225124522114185861302872670662996869605347555084003947733081727815568212079653051378921481794824185013696963146253619662706132174639257606982219881168359196879229474912101327290847458907623796128537229758566906771793727153304251790815245756586375917081644748374626578680798147836420087407268567074090689890183355496912442749794056811062659901796783310344002842401617841997047295695555560768871901364373660104379439028565474967520334602388761697180118144186684946175947506754828476641212232216714515652475969392236165156793274283357801614585859996485425299123488823665054556725256014989399831622365628075031598111971432260609866374861274709990508805546299723161679089672089816472644829831188634439118189845575103701278990269324392292157565552807500268516136234157404272206027675305413009083551026360104410870602966740840390743046333435252264672477989507425360608454150058093336446394344850745067094685566805938183637598120159844701094593616194212081354918354628229469682517926510959359089356475809023258955178246649234556247175283130522134550208108570518634729923501726174745819667044908782253240783855326548336267099802188458738694593179883177232685308213078472555960375571783197643909713241453780438470146080741827357336170210896433778478881535573286714061676876708598614460551816665474622703915094070405161982015551246642033410229070791814834509533164068418116954838599461439642613837737660358634198432688793624026184917538046827148841913257539764609460466710714681536839818281157178135296133941782074661782590615657959249898521638102985653382724507005003428577621014453448971026274606405191951414614588368494997315372629761776356571645097155570661919689965377294063269751244418107484935774932959380963966399462828309421777013267892875138342855003006634978219367884730217410168191424866648520876057689113418255250513619289258566470207759069377047967676475084657242571503726856436484147007000274793348277488652789833780786518093923289088741467847369248730099724341230829990876687362221900929308500017875368931663276621535347763240164208838675626184344088491577119277157928235597013584962829956814135519100517192237145924385239624085401656089802509980191572411540041824833976582981583335303394544017130617218063996748825373227345009279781896188419543979419574089038614891441625731008312983967623547420309027654441051746770181121085684375830367391900554287960609746221954369555638589485999342541999994525413044681712707879079544440637970570569954430394006144317768449318148337958334808922111057966367740009266911766634834038887314661339879881825011406551782372748183099436417805854531909848611928429069431941448529578996157143909800718563492906286868486006693204265562195253214310971885063348870685535139213944661040801359166421866028394903352385755910385672052567690038715148030915881277423167053600080855063648191330268456714681446080317181694237092616948072385495877166207448167170716227512654112898685347214669749635587057407668367387774647600737864804670943175827364807804938947696218668483368518980091520726676864526982651047301397129279062179041569478979078662029592114124171975030787862819433765005619491101839160098529562403744206641420244129807018306411814053396080456541695756080349651082840071150668437299650126632543064151512447111934273349861703738546873502902463488656927032308517983464505564103348053083682579839170097477986513323895401805113002788193764074835422295397091393261211330787401000117381159855207982020947971087287355961509723334555214509572183965148824560553572175024756168460485900948328007510785801446608506382351873749286578379530234571680614515713783971827534319906159704475755582821967485278564602899494962457385581446102639831145008952755513983635067717912334456825005330479132132442369672749361356406163877198675121695827786898962054364216406384604311565946826147827821544130778541030335521739449920651937862815247339820418147566267608317673766780897140387571057395276086552079441095159715268493175084855658883537287913608783123681571956982348819279185897805311720444191484600752582725375579194925889580035370763107086344968220954919244689468416803448852926156114677718963637751145156875260778514629387719943944306264354300616421608402339947687720486471161863283574665404674772580996240429972084741871435193308845801827730979201993325647719387653702374484141426112070288934666548977330382726289157212016830569051035358941986987989454685185181908764578352249136871203992392000610522981752916050355918449773793550219734687097045550492012018181587382268164862506644989223259435497369634632046800450756784431947863329506449784238628658385157327555922044480937890705137916622981221154771403892400745874443954319574106227026973839148642177284245503743328679166605503561848179007038825460375540014193459009383110246467769661013674056561701867436229348130437583490306982638329439433213773712863486686220489627352210111124045445784041382717745168406943344573294868381598951103867754208360799752547784961199445313661108290752776732066039981791135981263497069522619003359502073807306843802033487750367697249043087381849406877772700111271646802332693927548592698581509968857189223555770347915139318783521841995524770647848344729753904886188860192281493725436034150836097330746827109377480249259830034953964904657252996676338246314673131138741919071365717433837355247219231494985486086206419484695870775034714253303652472012890037375133534690544515416128447940407991968241004793482728024510538903575427451051923139576028813065157175395693721572722120887926457701163162979492325379068386774342599196542229763114761559606403189585308207805742096263491159761858730277049550089720295914876611315595373475668102748470811069168563419296408508897362431477475652502763473168688927195358173069898106734175928628483572714733493363671500457313958200195346151367731277031104339239439720632571826096685541973221933815475301176614994598065494383223286305560790595697826422161655882408755323280266804001587686166461988930748576474803582671852975999136285961612983879512298077225008086763205006445269621819669919211239823889962898077761519982206344367624532338413481590259867797648668948254294944691320831547558139310944250624114727020119141254435287688320177546416574331317579639984421123017712517384442126064930094072692576418882092882118029834532828086899193110863386480867972741147531936825853012801199162983327494359686863733654571438454881019888796240516215895046207128325188420240130608129261628592045760271168338294999540469848887569728210592006797610195153980597680101745829770592896509194342984212918919898422793803107247881341617910962485989698721955974628294902795571970146012117631746431480515732663888400383398578551559773085132942394549007136122532736507367019800678277703457041511872458411564532425226838553519674621880786985504356142394982780429937494193133169675364868346759333369082283183015534681453556950893607634636070425697694070115238720817860026633247635864697177031766633009419178610668693330582104541157129240769163397733247071435949519965959033788934528282165101107955682668356968916403691787803420562523990215127580458609890333966031065611060835032935842087684990016235792052731685103957931880148533720651118221257960889704808298337828553713393614729832969593813782300490044626209754294523726844562191789270551588148062166534393760053034353537377967537038745240116021271924911289899012491740007781466175230244510617514497283327912831366619121985001783844280125657386844837054526204030440687784849476460380604239934757812069704200008430318843565227241904483918464891600553858378841873567600938765740718177379102550888560648616435376729614939976437980483160136914894815836915816597157655342318806183588116446175649614183142815668508584213684800688270097842048117443731505415779011181893030651108909052326286259720942060884319187284407432250363572897893637413723047159525132356288591885324405955500595544662045204901722363407261763346114731176923883570438162953062677945128314851870709934268643236339384203659508952689155755139247933203412842370154135202483343276910157417286664709093581657458213681795702489327358356560448504690163589308950330238320902479475314791633879374021659789744460960059821074907820562297959272266178403166216058357777046739530618901687601416537654073756494928914780250174635460567607912063156292915120218073520792273003561198955593778440744572037461690995896871893726632568258724918170430098976820260921924347105969961510355972169868639436046669375353762326066471575753512862866917810807011310542914434248176332254298924865064848872662847366146041143699185422329619078110052979613420977072991925478733062849123309848022216897386323155911193622147333072919731559837639018747010640432855971084219792688664132335116301088819253580297978725935167844556211243264080227404998599141915621286363423894557902927441426579936189376480696202124193776780586319401137734300584456827571789654831820888673711475591550308064016124247781878030649835218597294902789874461612669953152935683217093518393576538812694712917349039785961831718649860126039216024176799215395521876116821816150742384054888775083405006282460886204366275915154479404003254561367193058573988924669217652669889028306236826515346506462090295428998888228652992419987252848677160738165076259358674829599180336470656300084794943016410128327420570500495872239079992160666307399843251096099470934736541543145694541107517354973349098281478224455989589883558501854878054911093694934641726650486594051466278561137857759637520239918392888821156284565938962158721257892826969489561857469291294202331101707763796185562983887205410019873797955955475192108860596717890285482905749145028666276392950860391388085373692891391063231196763200556152402064902392513141339731654368794897555644401900111022976477656903743933236831704014895501109488789963852303896565994493093164745894435052444983268192809922478686887722206910180716296751793099167684029600120693618479592126487259908298565487032297441304126033699400431284727043675730657330334297867487789357514588821240982099039437699926922577835696194515855873070029851297481699253432791793760731619743691265425581046811676025492624754951758740628569649843352296548403155605895684268878016901965269178573649430112023138980219876667151000107084108588455434179494026576386379472845833879294312886186947532532500329600556250649903755459703337439292963882682685125067121623964290035676059143748490222604302793521341538945931807857001603817771953003158684021684861637938997490742317226439039025521544155510740783132170258003804724815731869382919860442227291188866041845334826244029818182060818829240122303695331059174903532847900477489822040033816201751893302316830024674308177577286548252454561785656870801572598036260352492745302316625103984977985024275808813961069008769932796760485404282393167055026406453276710531596077051900274063232589840316080557640736448142992353721892748019726647244555286434639687138772645207604817930848359234812047103509509094369515992107959090816248488774349866032060807857412145317189432693037585206283963917895500883568607269795433828000302966946154370530707856902058681641691249312036720644972348343334713992319079422044764151670169246823076112425503420335242694422807338104946582090603418037310573973008497911765512952550861954185082660250710361268576686624891518203034201093531778014117714245435644041312028314154440582163279593677622904500953722214485575272820860983319597015392288571949203381609915843005306784017332810738392903687427225666003051164880469663973046428606476807127822349282082197382640783916726404665356804351084672470286751584520589553959430416062828022336420000198128628810409184860566460822794861432729992322503473212499150035496559129224085194235148617323009254072939079943218948929828388210091870256670054270704499468886837275364320540964395224444344413911970843248574865735853373725219137339405228669548369223477622006437399446395168086893772724606809998148942622671229499988000582010516583489329017639366452673638598518191533513628109277073320496036933612424113216927913535462863914489786237840603069742633017223285002669954097254779755870772331877811746324029170415581368735846283346674612945408675416742250587874375023223938877250060795122294186709715925080088090572097277556084572896693081515423656485798804345673154746962718125319062590473102770790915413005858815866704758606839018403485059682427431410398342312639279287849318636781501740463830253332269957812449418358890932766186140845707442160981494589632993621738401114910793636411229481646241198743483309601195766095127810703244271066883203105939879463921935125148986852286006380304982228972820112589602860363641601084851455503696890062835321209538313814138292371918858754754734223036021079492955401078094564562346287276601299407315114726976442280585831513115004491937243060416816900482535599395303817974746972948123853224024449918785287065143414964212864759402543000444469963949845297221056462725840705758058251717953589209525782957420703449686010195811765571250456114825493040274056945475620687448814665663334293956152501208223387849942914494031958498419699826027204768026189731214470551685515751167182955000328053138228394296953137414577808218392233486690866858297193688435880474332861749867963878175368097410073437239848307117463867180708923739038004576847156005913966834929879825497190251266280807914047463307859823429678241861752571522401733714199905724339380337743868232355436139791953854407374712478865536380275211639971268247768735459940014272902149749253352548133053445910691896820578195189759746383424564504760858025228590050170207934633164326768609944067888488524219917007919788110679243693855399307940901326329314298378694921703321487112812170196274189543073171972687484536152617154965903043469275127651127710572266616178417491545663171254839157405175314172083661254997471875366816336769451125326169867323736607154074362063073004580864176167378204164083701862704252307583170457540669271868282192147165483109322784563804560966251170936084265924645730999272130336729853324868559383665442568546514514368453936557998331182282706730642748369286382764564875975166914756449411551718075524428071772100339496776568207408490338857031981149500130753122377448327137071060151317509202733357869620838017100774288206816787614296324176735967140610104751039821001217632762586375509751039344818365630309561373741446074618120090398471629739711756311240217999787324864783532552566624982722004344361804656000640186135551156627030898899433387300308223135353814047829297552137330770079457716167992939055988689041246918565044435106743192625284121131142551696538475897658099060404425445636742000803118201728809030202758325292150387500398873594959108439973367094010742886782962233875309762604865045738283653160708144088283064546615842856317701283762974554492195806455790979934626736311149526098918258537538834862573891558249951711457657185606393517505368923354811454235209086022339452446778376763186329565883875357311337184480751965167995893520915353825363440664833491255710545779397915701225017695287907926742330210952396935969881711993893894382674715591969627837978867506309389000865244264997309741570600054206991868387588450557304849966452806534626913765412733304900715622525774653476797407602434299709389628706089544433272143226446850478227647861900943571569013024646346822244251498499638229672419708728678624237991607905117845022089672161256913175111222755125690734684620392198861399450693730917949946717574982291206958062763778369455833969338384233427735990851936954884907287780428795172389167226637149244196857639324648048407253534486971073146276047645121672688037907239999432161641305239381893937513114137899263914810406904272739220944681540804960728612401713904663736900329223171758107559649318262260815848829727684239811737010249815610093267750096095925693634852053824274483576432325601622577904079987529549729388186096894298106070759294310675368643626254806378286637345015540420877650453020451593180635306391427631184818008845892117253448701326608328198624301788609998840266933858963766273087447839076517695735449827953435709440452998314430003667946165543512809730643834818026080873492276973481170489113062186593312410216670944387948694541258355476007430514578721865104316492190413984306258752731313128242591579038057433343736021486353228950666285552431678176923156975868114219402556815780696557815200819801274124123148071241590220862635234421915558812276992031379566981149319558959503818796709411185644934120156514301889577020898102162776752769342659400367615034085235161852636441454572005422090363297608873951371058987396266053162104474991954527722533078550573863426040171325104935791653281285432317058475517004526218321471405455024273169165462938394671575348511077538260078675254047077273864819511732386217577347205271392452101222667413692757119794960728823301904683233695387285482746845135733186348101774744933535197333048294835542520290103778104437190567441576119083660921818741461819116978779812960408970672204364155589321998582209559008306607294608189834780807933613933706096131712828889090371422872967661328871678501880395958926829471428644593570191768910261234269174177903170119368517014208759070491039088421892119826659504105395096017011901025181752534713733934195702805058675527073509835774468816869318109093089261691288061078046171461498899093692427349407939595518382213630059604378176069848494645822540575483158488507103031733131295502099386299134076139196254254712278237082355648572360797722496277701526637423015222567670640266701490519089819655423108289133129955030869378779611660441191222728340664714113129228444025132775846759132205896769695576656017258171783192934648622981626812444117466753613828256456045622771699334006819412034387500547891762127950549054209381742695664466601059929955162904893300077161059260181586235565663147236188212581601890944329744910863959165316680698432763999436267719572765581874826807290242694997493975398035838759391533071930240750540517280485440305090930319672289561594086952458727667634590035124499935326603679663912982981184173696756146221342993668133370822312872918471500997270251958369695801462875781492074696288489552013099827063081106537146461942202043887229533796703748653826138786462631432249350401779626305319764976384467413058142907723257544198976224362494986214412898836396881102635209425248549552140802816617960573246469616470908121096751341670407411166615222654047891562589479699027579089809966665208309763809702909347147061307633154655873214813128106494736126018272058708704119325447284690138187521829613889115467016955125225072354158156160305711122859668274626192465674323591748818872334182223156964980984640250655939462108617097908636831410369857726763834948841564607583127536382579461860990344719592827096581581662353882066913762717025076492631090042085788535613774600365228315856800400595844356179967614886612645359463727272906516001879534560146734734718631507634791445349017471557448990438781858709977368504614033389256718614073925081264325536513601636454771187651688381055452526489096696135021677791841912229007911944296278934931133425356846127979360855462959907790909670500001277200580144134343797451300690386062152483454317115995452386760396010607123196154125924870490838351163579218462344052262661833273113729666209314857717597334584920405819249144522539455606479047090621368652540447868256462334773856286002616303971350061734431824835187168703241233137014193639351150102728268711215302239030852194294631465006941541776901312754713031656703317334091588225981000005490121865670321986317601126523570087852130618646504753739557066380378837030143945732646391213187027327882878837936668061803348974013145584450813848119057073519842956074198287147044801064462802986465199171515045866792925257499702132105169000837417806833579480192311361512829181632475537531143663599500476266729691475863217779867505853465852032521258696829313236217015666335866553224202684717203109364048593252779812586375449600705542406879939422217747497494300161437636522342172474645756676941714184894387975470282752158626440206110238162391112653449186343148427909176596756782075067708852279905859065276414781270674948961748998026753061243195541509126862405005325564789180008962502777908514059585331890430993671433367925087819296116168647043830494701964153313149214588132814744482595289552849590485975475412478847004779032302481608399232033144156266902357686600057446033015339997232727853882268430194190368940979567700555011971725916114244754710161093435563675863811587916316379373419126376421694818430279446766431679059294507316806999800952368639077146587445597199484005740712831004246139048872860481010758010887329680665022282362991940914687211958066897148845838775325332086699975063746723337437233962794627234404681622972942202836827467684229862929678614059034917101537816948225115189249019418744086667067723675759984034623366916453297214639681450928992144523749002005684687537289980515188189507736654622596880496338170674416628978158331326746726016490435483312170538340201169376049934873417492659787207043189723931927932977556247803814937436480321539166325282751413027753458898322292168799241843545785960433802924944215494415543043691049199592206878089865751303573106378939665197632574514733039131313648019375262766618097132230920319157667394781094708012007144178990194165222303778808019139330321234669599168758402437092063698671430967951562788417082627081231832110727463591400485926961505150429415233506170962141923485062326806816450824978509484084540445816927133111892483195599412637462707926796950269573081975208796307460272402486213820008194869955741880707507675086476070189789999471826287642121095454011846454478466249133606211305354178994004435820108274500481847565523685003379258085183100493423959421502848761328857078294711858509448301526868252943663343623323185800116584994337594832919663401900179347990607500883931104998200055582764234277965230837739654026344815128935342620291501711032642447172600248044806630217143574017674319143203663169278984050403127816007686739100113663505321324426042473820032993805981579673954444920534964910209301561037859334290473740102708671737767633426892085354455102846969567284004835477041061308956778237134047106640407016671124884603469220335204066780032450389442086145112936712614890429059938821501115000365787200905754579416961955053951967344263122947417907363126016719133617415541676948895085087888389318993108338703112871245321905098457077139325999608685422384287230143876205924863518533474683908257479156921238386252692238192949507483464089388692820426201483365511500517012931451133592828652280556307569805475699787742834243480020438654607885103792970549989161854756283589431456085046620265931628650656518643161528647574759806539363524076449912352002886940912215471798503775528997880527177475515103404917520769725680513612708032792049468337563780300551112418083282552849141850612497856177392512474812577229620989409207852546223531314305000935241748537894605769800070748954552283840562628933244450447963261036550195720923448205486612276211814799168540133520777291873906073566877638979072520327153752592232399038851266530699393852660293574382871519718491435014148138588994189276701470105190292579463208773286815237142614691292323482997383216818801026286691593365901935536014886106077031222265316188323524540959534433196179154382546803494985817704762141488579710242383898266966639540616927332477396602599765437246738581646709522301538402922070403454848168099702646830629949426726583769800717871705200215058544354651957109572749650176706005291880234102812005505569001322968518680595090483475615575472275443696136932733797176186079059815566041122957879639725876724207712860436591891892717111200493836587304979992380281119839310032267888008673163973225051189625076205189820536115041876733598402860647381918594444842487733416975992533635423665281086499453871376214780434004281803767387043387019554805926204645441222218478449229462464923367694084958884927992168733557528246579898169224413390895469961626278040584506797766754965641070929892462509075975959225201240442771061887715594762921270627437374972415172046100018351105224061295970409715777188681285166120747917607310773126579620110498464054996458427752920447330682303217825123005494904731875964144096736202246271242250538146096073560558531630007741818099702130239935992373263653329315196343540256729376550137467985068546878150606777626790392515048697260544649468667482704737209482349611777826088012639373845615090614450364587930602113735257988154390688970880603552706862219160629972155302961383346616627206429716208683958323256335899236029100006558821931593959043275942617707145182167556797720575258483353432271479783978391865616667216234547256194265989650004984702696407124357136774889869943749785783407198496678053156165090265831622538322016091553869100580743433317441841047274297402800558960432990825117253295338721784102168051201528381654723158141405031659451625263800220718735980443244451525723610964765777351368123699348416330550021447111576294467626831436948507244965534787720403156242741483625373077076648656332202262464722354466311081567152816837008810552179906300813069538074816469961865373034168099245024100654195964607271692049255698581470193110756807189937759139552627592634726742479362877339783578802690322895517235153423465082312680797295028371524749380012645711361622707746628686927391531322679791685892904790765256860574194239990206600618919927499204221413542169406537779406051842869055056294077616022422708444483136614341048579726188789642478305884681497047748273818384409285124421415637146197746820780388258967487696160170060472486421383842341260190895833399425894501126277274527591237282052598013751873456501702179861171480181823174656131031405006484555743720127135252044131571501286830133580716200885186535133423662755669782307498668776159517445397805938573991617924006456874058680531420581654456163487485936344819802516263450711896882122417244953366691284923359932689769905690932744663897778544789223312914425146553326275403539004378660316271056626775128053004311536623578205234637225691502290578673103057036840901500024938283926271378079594308852320130935665276282692168656521209652458635247911395279578252980177732147193909830311512599643940397162874543923357641410114920451959218156361743777827146424231380248326662435430537785455316555849556348181579440880954386199138732087785863945810665353966271586255681294919076190542609628712094116314462903888773009979986531984030508352251993043645310684603837127283961083597016426677834804059158491989504499879873212444857281692204949627259954649093310095198887111412514331949736262651677242882028527310560267053168350720035780580938501364118146181659320477786697578449265048706475853070946968956629015208897396529852280633735181100341502572201950076918391498066743544743147579427419000462453434783196784017578134796821847647690047941176153268088197702083103188239411117694288433100117860494593168667704124400168152720451436953217178477878087221056191229456619908178564335427334842023195167359401014474566412790219981805208371017627378230048591521198936244685349256545173695626246208598346883296530321598294407540696558886354116276821873955618775623205213978040890498921197342007494781182832596112009131958825723939125461701440447222877249495772131643431764034981497354026848105604631085208423765867665527844997976739501988249791774333929878274170357778387337998997829423107685144012597790718834315193987758945251938383952443189464528774832097410446745974369407575301850847158170076457160742008108942451880566093745954228768808241777540352582932739658611563308540300059596798669877002852219381593432178504948633178852901369983888975738182334767797649852262076748718094577802698007027004854488880955595431066557436466654106132015325873347345795551425735229826840050942266998818807600488196922139019999252421179851955859379207992340912937377993280747335912678218863517232710335929701741775896781361049043347802979097390019842836954191445799173026819042736385906493581379706867296243957286195715460946417684084894787371041684625574347955021471550220468667154392315356282061259763454592012885334261396678135149799121469427575805170534139593212121896878643169820177805351041467158237590982122411716405780737021477531539126698124973296886511290454603368234046576175710183359253664622517977459481194045319063641971425643819630680998340903109062386511612244791027572439227463374089931401421302900341428382861748749368986778494638260494342742231554315958549257661913458424534448577024277492528546579162287134951330043502160710543207955501179595210019799744928910535096600238689807295191010100195257764570252120915006346875778101140674975799994098195130076443846894459978390231969524323273732919746686557479548784772401178823701671980543270924276748075685745706051293450380924905530308250361385377655195997820933354127974339789006340668344807470411528109834518352510085644313524624532616071363844352165483798508385985916497549926691460442952956995419268531944971877541249405068028004897092580857315257433735529203121332977863342697458317338978045116408679795875028098422806208339760852311036657211376609746958450886308036235409511817470853579530822514750488496790102546405117852596614957581669332512829489055998991004894899649120922249287716134594263923002639735319607102819467846479903515119126105514610146162590627628814993188627882844681576635148249662212172162856704189101106684203436614560433493903418146758137252715762802989677361081610168624033733682994368713759117341848420369319785499479797242408707577449146223250625911275736733490269501748366050967285090238797977086877511367937756616592994245055816442503550786325431442067456245526132240430884808224069224169621304107109589925446102186416075727544337327512905271918241858374194061566514953204354600360162282795882307198803328447062677609834759017565292017806492452185098223501242540613961718797480119119064383123561372543226685807782756563560128865762661692105437296913577137393743495059309987310093097295413730043850706945514970253449452148384003310847373408094059531561869157162126316965532176085540739122554177417893460675888103147123205037935209731434717414036731689117591746011003262964125022689889923360727524848804252643154951958897199016283746379722546947843833423663097753361953518717053928894249528690595575519272398766931977506999755284117891264986239663366004079962249167260078163570060906401520097340843843532455833218254010766983095697744302562770383336426440432009594403846382655884041244794581323505917771273301461614637491283094506305578795831738847441833263000622692828434967914869851542555822301206468327531361616766424355789956781017303955093363233961363079087382674172780194016494697558646991401624151512925001934869897103060177155625195430518511505744760508127006257952782174619812341667247377155500865495760040361710237377731347895726234792855826426739885662458717246789471693737520070018804180576932320487828198688884505381303774276521827270213561913553821443864350701120247318426445885208432409567298115343277925712321131598592649560835245355107992519171995087877339354081272742609856239604014887691508664341801645859647357081562306211507127696510831069951822914841001155614832741800131408104173995782684794390303169801710284076655973691734486437835110720107832536913032423793754678278461030572563659773565012159977883887117751666667088969249515345634647586346638616744155430278144693850546010193655923175468397814894146869637964264624956126951483687672081796125215500384335249011972237108689288750926885627854427585924537601271321096119433384706690365977833247684436904979457683757414863909366209262129667393494305014413796531235559561471121936620479194502429945461346448810524395531774451246062402324852602972108408709094384807427393014721842713399452979092402602356963889883798270103674124968724619970044613866195872588694329390461982013159730888675665139196560119409317999750211536090214384099988035825024727512052447363417711251523408008573169789990128435164653105595877739366072301121092180206476064861056124499715743099652906368726480863724697483758017593830442244582575946106470822918869523113270971763249518170823724241455522974088947407360762833362497255307407672294185108926801108795443171489777887824772930512695523123321027383329596960507311050269527290994662770136727693476102721279696977701418901959648710239577206687231893334138518025292314577641528165546946878042504661105173471311063734837744476877864995214451385224510369503679892790435596128140631056192726527365981649232324550527749994257278435009087677520948307345959821092538936929412895115924293842357069348251241429090472531897793803178152156993144476794005997485743895192071810492322904218980049056683530642256440896350835218967814042959676670153848520488746150973524045129956847999430778532913873097867806080054748734193017960332841998812589230083872244399570053751447844243265257194501251050510514918689314224798846110227196278608995766030579641639233952251177561949362680421573739520832529986206453001589684817067904862590299898832256035377152298701321072044083408457252324048565402935014135571438107905687151083226532438303458177089333474001754802954809321340201297946306205179232799661562667905695624158576809361399291666147375486489469469218919540232692850342928354306357504334180874585993346726302800634325761899087541118611675226741029801425924250515098808704599156644809512004896234016435351749377040329560578156888817104544310695106631435053608279891433466552485812402056335553178436843389765929266883029448279435054071563149968727160038185003049847966927018301147755357642476235876760795777274928111930549336815407108321701817893153102759037896987389162368111122469806811884650292629501410928570715373968032497624383927307733110878652050957414367176954929028833636269609282006141623572948172193712394807794342356834294739473936563982691172464600639966943738157627450280715388343064120849500844417216524795047556751469633146696273134495917226976906708109823476890085448131256392977884642324370565923650422578440250475003158652171289013071984348368079452308295674709732552242803070445920977529188197926698956774241092177095073710749983486104099836898796526124878619919691756093135937605002727862740102746674417370405047464534304609382590581278110572947346920528232770687357140578026731180174516467708860100252705904480664829746260937796089625113607161644567329857465006722564682982883158548308118276559770198817498191690109049250555981763519262314415186282179079432049354228752143538840914393557093274980012645242441101823363880371382375797968881706574837623620892895224510287352146132559094179927819002725837024510135719022521273245421296557897701902098152587372489308782688592407981532905288682513370217443440672072035470172832898464440886793689870439040834570672362273651170821261243659078207816606728639675489861096884268695486622210028015118092495671663375127302561693225225702436328674098281352667672060787806128765316660060912915505177455229834304409824869381856691113044710221707267196884929722696907998020120133053072869068786356619143612226494987645969858692348526488950787954908696012743466480346619663717026599300903550116944382565423645547523592390814632924392077951176309925699732565490275792637070876105638378521302448255703498578953727289441468180768088934785676686158052950821909959062125284306413560163142298382458980139383167828697954085995561068234514805348804297409659723944411176758336675922831354298541310422603698195727665454568042761793178062279505137750293128838804751911418697671154027991904691374353884089299103823034447103276614392759513761367018789610174190718512737328712379763007005831325020979122614083221158954031360266901024746124272990107624541702713281651795462452482443914010739337992496655779740713677162024917718883840862857680311538361216255923753317859239847717245392387383600100154785779157544120439459064001266745278967806546077425786983491859986731403041066858342974861570625465357408863723530144431468825653474256289224253222880021970557918491511763312331575337316213335287784194055507360020809607827559260665575825660147996949065189578610071357113255318743353425252433114993319168163996044481903648086885635991837130680695943680399987949530662823034048961323960803649933402412234534639980822049803610287049742297622834446221789217892398870451954826577150899257313567176397380965057411624773541726003642775179706318389234591496965808871407669205676807879414709846845100690784542209472106887416416396662708950049475865615447575428128364120795984092008423688216580226405915231146900149827058689318208515976074901141760950478147291335681262858747749466188855045346249022048149332756057418191433813771871229068764481600568075880168080034317478823343473314971094938189335336059922996880901921278392503102642045570248362272792465381002442943212484771880149227694255395301274826593086891919820444210405519742365684116336411560937681040956037736538232139083898649141447993025981237042214431730373771258091710263780160017592994594766634965620504629285903860275308610790449581351634667446229504180766452826935852193203252362579330446914738017723562205808012067418528844264667653289008856882710040434985165676684054838129728019747171472538204599946518607079031653929636876942493499797158464764165787345923552613301008884936806122737066507195652856309620633383414471705604165526290847087319654393952987043080333214118349017434387152230709270915933416850624331437853703697581527179313960949105810694988882843520658345437970115211941647007065259178700817409649913620878229805609719995436328833184454675304729872580538606717140946087466705672095696058350536736789932267685049849736577020097833221423503452144978602521630278630435890998327192963197047919282340244905071162291807767869678585743466754535210081309054144008372191080503555876079105644498033108596742468267688606519265565310292370885219567280595593364701838634079209364039526007309658921658747763751302651215039172958229271973141548892268899702479955830851123228338439181221953923816118728326440187320287079458327439719413467255169682555420296078973402757212310496700924662103460868893288548692250599636997086319549593307939754946098719698184376731951193494960244994440390472430303260316484823586410892395073983538729381564565912422481373993492749695034453169901576112456278374551608029044913921902789337343250775096048981847047142471016724553434333916085188945143791340959376629175317492894537199369313091365444775797754152716849206663195285302375354551455451287475072029588126482625098947990578757068486984546766779599954451429425560249226065575531623216790565853059568921259099841037045200358010752924377145127610966668934952249713513692132177089245782330785666697893017895853794354952869340710143227992040407098880754528216725134610688038521439758292615637638515716601827619992247019154352009577040020194299995378016143757151865826189408401765778898395720457434770369916063402199100792042313879519727879808216192864164761371111717799259084119664998943585190743610350920659701571460252126142306453465311718779806728796790474101129442259158865356316125114150147356190023714514151855824812685741750805392690155699116612970476164493830756356545659426738935149867843789193186822467373576763602396156825624461549755228672110477975340161986799699160444356866689192067721784160820654641599781118884419626665322715449312871764743645243765075696153304978531381362896228738692152661496818510174619969755090135701279224237471569937107477373039668390850791961769555905580288684165617069359029207559674090854159279438365967117645137852276736480760979740336878673787175837896751428833269223448867694139971092622982218970701690390444838935172080575151079751951868023649715180398734231198856288814582553810199516732514229507318143773310281475674985936723408405181221236401331843565614510671606058258144704149111304497909350377060212411142939203210333342260563667093665754031327548423994278298584765082412918742503619355913745181955381898131567001025023357319585873124169840314164864815430662561290167283223919177403695357309002032381841210161629907383147488264767101871252711099166661334963574156392917508358726778670097045071567419669207859356718186696874289943112550294289731490550899270756314222893911673510440855022747480600806398725177481349669601959468349147313932434778703374871430737181855103270175437345900929067232061812528007068318895360551121079961936029184655184023301577566939789231407775407412495281181816949387553877004053963763744657668726769097418253670844739833546688692058349235588056252761938452605921779432516935163981810090190453786996146581010939993650435958265749147118164380159269226456527646970950387013909547580704278121700221721664986811848607673724122859847356150439057581598685536773776803833090170983485003788214444072271266103517784658327802687663460183303443163562345813480096181525493070120784755374962962797477135993223457282281184223900375573550729521230924943394580532320023759341441702285966635150996685563642742980994765908891710481374961324347225163625943643378016690619259178298241631379667622300989230367444991423485441522354759740495833999167196900480405890453085889571298355628697957346775733810963447976423259637064553117336469410634100762604809980756621963268646082603019611761925423131502519937899299326177911545891557210384832919924111802063149138122699780700086568748445114474962480412488753510799138768068219911436459681013650808575909457157657521680090646758071586722080625210074859537022219030665000638683937122917858284136185940550974183213943384473845834625063442815386349454764498762345622528925552720715810933958933601568745005810593053680300087990345925323247791920928725464277594680841279150444641722901725923910690500647454465678200198067390644982885718633911583179759674042605874887218464903254535882634381266096464273329212804829662185411240798352307603778190167357077474512581824634642346876678532618800353410581933888394808548087472188816486927569986876067236308457778360756263660598710139390540766485364201474417626055394948841083110752078080147354439415441863227891470332488853852856458997683567653110471720159384746778170800689398574809001459141707569636052256175641995696749446608653342929003307145881497448619979835101857880128515570246913094574798918984569701237583106108739565959694210601553233431370840097316219388999654416541460860026426186382127214644734050434766178411606784783903808570695911641263871251457473660561850267114069280873767728760414332448664278932716649462212995900437936027604246231381994903152996282393698153782481514600892039501248701682813552442544596828947487436012009692710320315959472086758854940110036843023924216502848075461009284292939834303036998562620418316073436870154221280945164986262703641971964505497181704980454981688065701320354134942002777771850944548376291226560394466113320901896603609804750071808946226601244852219343159142852599644181618768911082634436066997404010331193530629004029800282598298215549352507662609695739525377461886771570331247939419029337576856119063724304134777237650615829564167635983067782540368197873945314366908586102155373934261558516110388554344618000140610585868138233143205913332548886093715023685453955977106141641605789453010184340592453755700871974553455649600946322361769601551276793730154300273738192925003423527727215863377386894487777948881592537157967740852306019406262944442943911190800661361957742349446571299801501936958577468906636768589029949397819773180510272507070898387647679189391139569566619389388525619155345340643613106956597419361758331865792173036522531894151867423234870372937848293689857272263962229472491257014496035628742576151258604951538798702567589150086899322855972613406246660043937764897724663619619630493554658363051385802712991703500370433532544995721909790480061233166140756327042561740401580267807308240928713016875842908158768008175232837128626907802801399707228934389422213986632199739143002102895619723077557831525411528872738706962080789290105281128905732574019854023014033098423535537308445879335781845315374606315920624166976324901444459403322177736572902923368372595231657024544881800002509748654799963874762832616764640725672767961962664535553992648038784241067067156616732462721508396200445210162109882320723547444887409670753342663231458136240259288452246125565710700877531004090533844625109722692956212361316786180107718913320390697097372993913120354185220400214903966007815736356073886285563797631980525895099019545178434377594205766614160590576970118875981067999629906042448744268136636438565512933942738780386952670638984593987365471510184835333820863131628295019387306035782870674041296762740373965015692136973735015736497036795540223450341286060226640929457548585952101421719860946138148092305698188550859887005471978003425241155877433804440152720128590746558198844571166363127156949253142059021838352672798714635569871209519717729164720996552526186231936176553038000676517537358520036350536996471376715505740128928832203489466043859597262831953133273702097266009389542697324490634053904915669957370892331512823530735985366428326700348736040730559526251639811814960168923048766092922008886626284505666684541915269229716536120925242736471038799282165948809938586268384890218547636481635421618494005013914565642123710763604841978027350304528862221006442220932994525578594993735917799603399374879260018301606815178899695023946193191909060983743168494420819856722104051329494574916868109908725265433554846370034704840766258347940503128366515865822723808754631894901608436320470656205280004965710809453202786060896283676641886062124963193340202315912837722034039942333822048674418101462105555997434630025885559825523828754389707181893753639809945338973937081011585320841199023889800140266395646955201655292702215530092945582978831761105817620573042932831594830359989850381333954310182663996946874979229201664784038828044606453935135368326852537188152388941978855347659428374140170290740767443503800885323278530883316899901320388325675395576228625872998997866289953346040791136635751089902316092587732599285308997452677794620989735091151892357011899986123039473361224178974516442694395658866389001377357256552168650265135655993171754263693863434608914133276823670047550892588350548549539269096281338200601861775519745722262092477769614716416065561484576319106011204116002497786411464026441105556431252505014353063825961343006956966244133550286222710646050237462595425841646904612180910559169780163051557075696453092469409884321577123655225303198639886521450691403531013279053590031882961437957527210176097666587651548844400866132248567100771799536750793556990996213563163947785435916889119550719966824293733067243504774827143886780253708211327750910312936021201153881643756483008935964446972105214422945388954275751910558030981192062177493506650474730578220647345126387406505612577737180442506360330813847628018452381318778464366842837973993453915213769202679324517827484088587682273028959060322363037351778328699904727948850927300174863422141308600571302271072167891290873610064237581193691654749963603214577026975202638964007464735577808449499565295492031798420086434710143338234059538457633167164039188180559133458953133641297841843166317867453686144603062441775370098205880455944550167710733371971998490000619165009532369015345327578907707191517786708565952032642899709709159364896854975343137240955759863562288348540191607046369219313772774485069537774298167956556873157638005333231244665878946207294257462573743503692118764766376952899589732356138068101220601962622311757508434898554769806994151513447651187109202350318992468684266633896691486233926869748023391675333960680387170628980390785608879562975035610711797881424101700150000473265377582553580503389671717600520493689902296187886259475613262064715111343497486977410491075663990361653442606939113682578561655345168053146308193247476247865990999406643297821956235969985613116657710992654046920047350107638309977863823291820642708570839416669949921410937107088414444860394531833747775280474911604805118295656969312958993780963757582342463527466955859503391421358395566953255718553893876085255632060419324894971211761409076018385760103559372069922930466257215024160356063848055184371674780780896614657810550930967345538348913942508367206237482052131066115684580841549906768079657026141116125165154686257586063267654476335321574816013409800216044150817453809020227913718604323955688484367060286492097749264300463289318224489704689944834394285345367771672526967647853603911138587597114683841365839461769129623678258898398097124736224435918285411406797123672528241219937042311099229191184779641387384264749616746103546579006892857221337212112347307131999074716606292207194053909230783774215374204879980163655452063422811306926838939923160158596471872547837896691312560136473120316675997352231397541431628792880627172089840497403656397917336109113428017601448212585399597593375948503700041170214369547857556480095220715161075355126134397472820001422954608902352186321407738591363606430653051960087050529832172758005720468212337971991520447639424073542232348978928261796519723196508992799576336809046424129991163969900907305163681201152688973344765187342308472814842102605862452372569318825824379712272879417929022523797383805976923760776883737016744077084992171021693606625038332023141727868404056582035712452837807102720490772999827364089866127435145551174736214102095538066703926177596745348084890341941860629552112220894260316186621777436264277820114576688389033510479862766158986868758677320278984075260685642238166844704868786312601358722491055226975376053290413230189521311969289164652776170263054008917811836559477457650447760295228004577474567142679273294980391471645139929115948916853350147477184440068705662277577206450517488337847813346135146434711115664872734631703717833917826427082165022642767547740784844385239535511751153892727206227575339219960956341841586886531400436222895125758636245053839901122964482337764431258753563486571336118953262181921878971577282993917906794876916461674990892773755734788797333504463909274053355601274531216500919930208587988843098079966039570157784924351112409846892730758226042393286024199733000618774136686142591322712561243059620677529023673803957630212501148126271158764002319744907838273385332209098467372900625481446270996863304292397640137762396031625073350788244229234971516039100664865564397661248622582970295385122006299624288754013715146308920490166040978562107991984696603196181244230067645009079858083103193766512544747175436677338753727133500965358628323625769689195972435321618222910668886879205976685501299302792422095947351849447706357381493820129432785475264508375875929002788015059247608377769090976829824474533414993081489601142456521314782504692703502474032187652185086497694296463707212387446541372784118654753686182666429503107768750995379625532674666523962576878750479973497821828358507367671058073186057382942791226215796862337920929906046839564486684427657410262791775896001327376070758316089252378653501670994448665684157472718882086734945962471224808932228128142171969685925208564013280861368860656441850666823277518052070038970826469519067974927023564319098905319267500581381484187653484847745262098542231014023210972765165780679995843175481087891442695047206853430606108385247000118281431258501643723040325320206144425030781719522464623575351095084933083823149250356326348730316763848852557644496159237502861355681662943909830989627867194408372105481401327571319306144510489071838770634949545945754322928156627787471308065844656101727990399942498649757008923427905292346168235712717985530717096100157205606531598121701785871712837092258318477772981198701710797094132410231385426566777174003558743445647616822900739499378433885312686833172578949677783125661366697348275953792821901621868235766251178772145379665288409925561475316120146251442063190114973342778611979275232532023129938260773042392573783924676748527856092941701713023676189563911481057216751413870077591858094608132429415408594250875542860351579229854381291294489271560671791113358278850263855538518049910996804487542793481856818595028069901935279188695531582176266274229832454447146570341199719971248007024243459861651182297464752761884110877611427882732962820729231794723105484673739913969287272276062510914436795217025913060599502035671250320197862073913905062511079040468403841877512239648765177357615906794596916974176878747196292510922671347123265550851899182636665657536143586995331417730292666487563795991252425133527973354293325083319130160906735663434023472654094943861114980622463641209162888939727864616107011024789053581214683005510045306328683361126549240016432772415104528613512461562669460030978232098507483664028736664045180175083048560048930483644187211061111550357686525483872240763191587654632358721331560770061216345373609140368717055980181288522100483242117431696920371497272285307350866762017888527984079642327870545174657910816765602879381881479753565419629288151584656757724632992617054789490067563625486296214672423217801148301618510185900483682139080470173353437020120266691006826372149071008928008980416168562812411661242119040398686211932462786660416142848488261926452420662285108856211320777553799947193564866383895373045909546207758900494714650541726966713556328975096218341732287392661254529295684041962522800944341677995014893811717849161026440457524346896026520227748635978884621678235230850951883183127816333999918559140915440084005876939307612757206384744529405960091534106618834219014483934402773762185075453473927263258717404147611231079776952386616925577037399986698723529245607867939214459010240187945893183808500854378888349018532167580230125648818210342577758120751202051066027282511749555312531753782180226661766302569677761687540716475807765639420104299361320245904436888116270830562406805591486991591866401837523424612238874786536399098263108628976112761544621970116302335685838111535495687390318105672345767688122348142711994447722099283482520923411497369128808845342089054192617987745963302680647183799804270510530162145188337449849828550377748744369559390314237142816230834541128459439272173771207474676900153100233371686793577322388002093092016578637107119281504016809379133526239212280127509042677471997372830661490004965790162912107995825278877425407472914461891662492384348023317195169828311400739632004409936652927568979635352371813002684845619355083652233564730886433162402727051358587599729622163327197705600046811744809440168284013133664306641614739670253057088242512631706785422955353111015339089132821200514503274578570842387100464333587557763567240415656896883354918742853609623039837170154435453986288904658629465288633598447647395204037833241120875619546550148591959041266129547299794410622854305025574219407770964645673045190626130085742911080614801415272897415730904326229112043971146480962043404138949340655546412394945727537130220485875364959359786016079980173285107525677379094663722786021794232720809962783212026754372436179112852079179745533889068627413572838799621141029672673594396093429534095689336479691321427025459394975901199649907433161398707331376947277367513000719859736208073874246557293427419408170882245608808481558742068715809925292580945912182299994394124400290487673274294688608848746305952374911237470080090521521309432973567429529867462732074923649146166583958658344621908399573225127885645299400296587247151064198360653316001895271109217457762488755321563079534006293719743173124435597856558657330044782600301310305101344015005341698258069114401983219773298513729809594375599305363785428347796413425726179273473788745140361288391421094715625224542009957462702097568972082142729772736541144361732871050493341522747534052597060044391193543125053881589272009030561898605746071842575682864291738614923549427260033092957198314570533440141867360673547161074674559248881061985085267255393262654354503796412345910847040604508421569641103251753351964641033182380621000362650203951192416884641314987264767935425226758113744876647232462063882950441608601436779587123475011222284474938148526357116738116252970327776069724762623108417663680318665274363349638185546461528229673171179063356417499435638755444343629136517870539421063536163122380340530753096524498930551913387678760474840765416026329347460575944373814423624879330102602990793741392509906639282599810625660868712941104887120794811961519945647610754253507142946422983702978818841394657697372506717330623505846484984526799245278958708778733722348660416716130265970795079624311474990839100923818268953140153908250650441699467593494462289623252936723806705858975102964649360662044698785191591098154906356902407931131553170541690579519044616815356823062415259515341358523830817756321430982838074852726646423112557799381182669046790607987870598839047810944014210128477986946974662503343405205858947724642405204130948868570356998335536695208076476527242880181290398869053909547048818239427615311850747957491740816435656429504003920423461074522279323875439343756316162790753862873979089821660105257186313052776760226990398593879374343552689290760422755624177433460846772651062449506768327647112953495727667669790299434410387599891299691446688860666070768954976116550592304731445012759230065997887275801058900226878157946008585760481323363453096924277552875324609773122579651492876812466329720142407448159012733016260248618846310331870612118780965767662298413635139860745075483152199368966343228328883409341278684568637697235900965343730954479972329333999638313823001177502127350048485562839522343327789002064028882772428019226554983966560756589339675534701764410519365147842536524604616311442719773918211103040769750994202066927331134694338331592154955494294913164512255827536695927416158234513206412515746780755716328474166053916279247649948439342527031303939450900567801528411349110200236386923345278747680765823065982811480481124144469411984678127991265988829572937279831571714290286594191310247661676061760734258429085801726255876244499333306834681504716527952775266872857846808980743453753598315803184555134401842210039127939622464598284280582273970705984455390353563525159883847702768393605188477711845314548252159312168530479717391942174498570807471801094799187604937306946475090822961519050905019743381543713988277548077127982704456183604154868237894392787515709750231285417470165710869648152128545387753827641594242077439361510400145582247610667773620671465141489949594518107652874960597535480003585202637278975910942215643669499256321736352201938511303962076020525088771611886621993302039192298977097095146664777259015783119376699720484913775732940766310671347068201917091763840347844333874163869691339666901053598976682542794175275461154836708745248588881632379011777840935926156275352730237701422409959393901873480783766963381851375073095049111581932301627961827161613649157913901442143618030093598718594949124841501911029752044301974601821088725178502517753639966838643196680487909756372169896026839497433338912884911807377710762748575703556908086067246280991200505307603239364246384630655829581514234413278128857115946246908608906216471434142777718992051662988976725933017988600258461111666427815551247214498271437363881855345666340167338698986170836219916693146341519515233992059794774898898765817225350721684510645872881192874417002509992300410195127280740657736008093087928922718898020656253657523852090730697846787789136872697422426528442750657050000499008299079447410953109304670526607037853810438797648802314510988133011494196528983685536058017511065367210955610709329512074263553308577764517380424204305494618043482413119359500408591021966180528901012743486213450382506941372743928302631140537014587179833322797725656142909440397621855662562209547483852413966793604477930238356160008888749877927728593105319738599968101626033847465525021760869421080001356072703414167386736640983325884053675013495945369007564293375018672501177460987723616522699964136593681074085048975118430292742151783466413375058765550642740566743158774932843054490589088928504926897995369058068515022268686802558955285888418426738741362634852154583509435652095805800274857381649480906467790882503554575892088833669184597777293081696617847584492468404807881428822388966003728062709375465611556964781118717114063850314402638035860549451119222705699822020322551621513079187621583916608883321703598258867056254793217906645600175398669449188306491450320923323714297487561774933851148156566877449784170134963912246303363843209601946189289875839639842335080283020992566686245967052521099733885360286178264335430017855537661102811358040170812491945387342522206648146429201203851149302216494523591922839703567160238621960273366278163413277961285906012838223938085064847566596369395680158563945754579030785208326046822532854405587433675326616332116472885426196044099334708115005386551556905707796716801573605472383104752220854634755905396905351917977593875056051023055700627697418592248799537298695660962946189939816063988711735962758388182020829263414576846772317044927211185923277000373650204960812834178201241750766055166833258343859206685461411060652480236894440791048864959610010998064496768733996483008859272222745874854520097993930888057642076007153636315504516883354191295509975846482373138512846549801067890404639383269033519805724238367309650823961737392289492594049733775673647665076282231583121156717693894543794601321651612809830182182504364935876692317198196262454243877847341415118458432525418971259308799212840861260155036823206437914918392953370278730735175658269305350781906862533447270023282131321818235220923383648002175329062839018956668356960078433703326739344144214209067143685958233689160721475742526536466162894498912610786902055817190263510155787005991967282694228253958158232173399395809951765757450291296919156028080153728180522657532944181225665737702260849535764936448791664625003531622214535915068654455848764038830268259643600816923249979593323709520057852440027862653458913214670286591640080100929154445533217594412722672019565215233388450519266702476971147705471555769594590379575223605709581327612845733649176237551380551082172057593646589249050137727435071199204343002741390987778507568224764667333332821902952868175741298146052633376175498075929370977374708405228558472117896362649062639868915692406831929990176004987108961269512781307807242738827014144813328599192872760583059392488308705265945842875611733291179947515952058547219337820708728517687425622905825931563490983574574828846267663756360164458794926734165990701318131634539893467522701175017420888241994881553582117359874737083876656729677077971290227365796489566777593715839776761416730701449863623558308805674111982662993183417592799376959354024328794528702051392215555665640890116933843641476327556611705832708965427413430822067741001426834029110355386217304369363238502018888785664132818490276101285766861807020897430214690916971849860848932334346101794717072590329581323438594261306605713283683587053842945417918485555703676658523015177596194042618050039327224899688565925568511005250199597246462472160701377881827305817351419648837295859030929277361893528580943351806411325051269844107106327330601600218687606158180115650163125159288780964867238031344723979139468305590098957366514348901775221909282641951183161926997660524429128323850890634902303946991256253967866553127229356910319261461547811902606626614507881034283377554274856161329351322210387671923681987333406351064444422809199810513304388842500155609032091194094093395996569948421698234929551221476936354405910686512514072534534927171800358857910085149055768044661485216299949216568576709742574292069336252855862014963515470381995355488622744307032665910606823378953183658642136038231860420795762779586340160909839416439159133097690984807026504458107118856770873556953342648365782336179884220882734017276416307937370963329139229573347666791633615574945499387625211519371928370120154815099173762955802656144759885075626659801840570744479163548952870676535107363361177598514121466502010525717003006725896813140473568555081387612230815431777540435652531050501785713934396394983281016765222450282204083741187367028299744508609191148669058998719698142949381506599915766675189524789597129737379530588724628278128636102104047251103480502999862079671659874022047311674943308417399135818692791935772682279394795250317290826630641095610203040015227690035147645455559580552523633819787543717327947336520926538955469356817906186234043232197435373646115234516691959890472018649601351712808552213409813640933404887538806003513801716961691362317631440198060944455777852607676490784408005589590919181434873814825658657779177341178390984412766054677338021495088046527304168866405319677161773076424473998649764603970591423390106523783266227604613942404771463851193750079076796579034670333814250714141563315855829402366718138329211217750001007751665543760379537766829250808553432543700431747010695194820394985535882594069269601896255029506295480627783106468409876705906038685682277193355499841218550963569760415001114191383976293653106782276080109210199342277728953148833990601993133140523105425570041184260316604161879403161355923665332259610768637113400304339051032257277852070993659766420840058313037667811245856005400016617113358200291814289734579826168780850193519749943226605821233571367042327566333363946096313022743031884818140506592654721548618948920683403456321874687923157593266207354733337452954717308346059015708558240738509939081524870330280281787860663265251781555337864701159567620578026202137844212814924547350877125441304074735028092875536870623540223097179438137895211563629046896982608920532654939312028566378540007165492386958311599048910465939981838095672818883511483499254376171298244588980516813068500498438405488622245156359437699800181194536092814890131576642884908213300002719250458198358097502776792671584642665424277240490774132886591738782930613885994415490003843921497548955516937280018324303044008032807773589588199609034683402159173670372832219533111188345077652444567679374883822252400715028282355365801147052377952457789801556425284345358430601266118889797864546246644359122095618431282750294716518516684767910540113174955017917641126940237202362092059497211707492537343669673967368771105079082062213683773705014174788666789650053817046325260093130031473754331295638618551766364251632590404533345166439011994153472998821064797842559433709588308785432182465134168214593198356885255230955552639842496727822077384551174928684506635598965088707630248110513017424218382542863569779090724460984888697452860879302777955049725873696217075344271562275355970508122742212063180031169590781296054061367580937810241278154653053371250836018415689316251521050800150787269385138159790137282500119330592183453673357099276055069015354219228362549130658037993124850063765304700882875388880526651460313384775001467664217867883378390228091993419716715920495320108543958323090389257131181800506117888169641138884949639806870219349960935781077756416282456669342372136397827338648696695763123639125729813051812079521685532900485007088195288217075761876041109897561575279746933862857716947675652127737303780576995488807363262737633722869410845760586377240393746146495554436055689166663601254527391865131475318388948495957330268815450555717132476683772751061019427851364504866666218392489903807526623053422802360742573528370927305931846536747641369081521379985315503250250245394194744488270091806965614218228657815380336296883024064373251908587110385451939775070647051943306290890737024730593432151669979189034223446045923998037074900526500890590062797100433060674360748338068083504747082901487318560284009413459458565622194250531686924432763550470530401421247455804356812581420942319263112646321140824166649656521380650556282142731685068411839133005493454608501234072659811192360418612096146738507747195634850159844106710363513082128190185620861275341106906461699077170610935812722597049205999003457875755956680744718843536270655416897980343743220699438737068574856661190552572911145783710101218989156301929559278201711099376352103613276618158927918216928430842566441036292274109848215035536182730158662177976445986502754898190722767657862170564351696580239219910424518609532550799712141815013990552670111346124847814407265187922449299584696683405089704484182156286305215952876093921864723252575694571058550803601895917799177994978229001427079787390627765976237027961809513422257758556925453885200679152280281451984739307537710777990337227878694644772339585460716135559916693012991872458402127965908240395492241620881795214030614582136050699915216542878632204718408748888945502804723652571504086788296220428027244683236697918507091292970991778871571264318097237684631936948001874850551360281901580454657279953904367272310112548318265367480096326357315481241583458295223548565641234796506427461821241823768789976619728651608854409139838146055655584125893861838095009676840967050834447407425243527979854039114952128192408459996254239728028896516946086334778066551099115686196384966018524589136483597094547947055656119616531497692642857325326557734881993284492256616589080259712866546359076811394594879133937829826651676829114940181933246816996865004760807274369886193512477196501372980647856619622504204749005239879386813264776478123065313830347213370646403727959927243957785085353748078022799779495304702422375106970626698289239390022486712314956670648205386828050041979562972410320360846246760203808145689179209817880236358541592938829872939082106624516030317156636637622144973599047515464554176450096642506518934130877453170578040928036668053203666302989007492316862329425106537812407412008477252100838187688418471712237889411150874623219986210057731609400000943711256995617167063419204743193640393093051053903792118775205563639147220562474624238971250629913658663629475524157374573834682417087076233150449283123179594491409080831930337873858960197343060870019106372822264345602444505216057028723900768279443338260305299865128065395278835918256412977269058021605308717053841542106481558222781514247650048349306630181806054346631012310577398676409330027994977888587035250702631957970158785546117220274371297459151335654235399211803436627695554989255246035959856746769637965493261067988355764860181622672710419546053019284032871241253013023715849619612238266520794380066446196663223980243667315152476467211137826690682236374600990373764167227557093714441198623965684072808938908024976141129374546563283166400760920657868334024592727778161546113601864412007052245055486056028317030985990539813495444632043008728396711756492682474846911336047230598813141876962303702715186923846370313664179010218673364468127017139551328742301761662423805074785906993843124203843904103530474317672340990054517349141650973127136682663333562439692329286080254160932010330030024902686584156090808995315758097598206464727792505032706288107094098159339199527467657980871397351068640834730224163660478072095515804271583391152493498632348454829802407753117371858372616453770194146120043550941033579426723557916120909555826488844792221564957524416598785783286798644717129158790195633636322025894010496489158317221333337025028343465909570818015557196208295359679933991002442731326760628366248170697106575208516160015320319597648401941399969407786143565316754755030033275538088092864795475702021449122220377590008041581749152749267630758048074368092983178361601512992472076663996585093813801549250481694900657809402110471392595537163953105706735707415359480570484360722659938351619310609876900737527778464378343361864730627835847816978131293664306078638039126763593857732153810914024712772557227251574787515368604626139703011797301300634941099057256543359621514668741584157433422550903793890425099178975112366937906773052419869039712860561904149586188582317158874256892179638557794268865495092118652067685738288268216688724721389982987512233028691750326480915020731230993113436090124666906914641519052469955582503823274877432829142520520435367524409173642429528406913462024916661717547051914363325781403124444480753533674359251859450900418864903372450239058323009224022532579062363075454910551158786597786219176980714244926678856873590475516315011380731264128370851532813222584592454244278201370134428324641385296950392425738796031002516782280323248504681100949422499965117345108283391812069231059704997365561148841250862671072533681853117558102267010728915326507984789124245741375543372431248265869358681327645774493132663623346933829367397667334326149059573793044494394862636641001536369197795497529373428171985265065109638952512941347204642486509080564785272640388332451927147020007629703628637893163435858328467961805824033004271365349302474121169878528539415562980635939277299292506958690184816379675543384149269169417331845199357506476055258990360849660019801220834321000283812129997532941451319789538658403111589939822515368927919537817118050915582901797601406208669789199091126243228057043216891206500514753717564130327006130760385598200477795261483489196860871896791537013985804467796537742125927090347668519018608710567840327490899345464624053130150967999073940006814650171521284756987109638343428217305168172332342737432230447417650203289034074486400053636820070592412614308281197479595732396523722616186355722494712982961954271412425734144943637140113579874631304438095808400851577929562693172106800696642997783840593710652392557304838048900030415495411452361828537051843286012916804682066000664683289885725684392645412181451310303930354232183659458239405072353270927911988991168373048123823934245728580467206688554508686521957206610454837537495107540875128393145536135252857111327926120328122128900220374329717399808564283851628914156876706065939080321727022229057437144757502090654170425574207783508413106488821086196805978923112472886831216814678036760929035192139356106659300085167072070417857378965034278462121110261355600511286970236604759136117338713499981447521944082981295025310472202127169782337360071847788175950497751586425116965071227298019375332930698528118183714092343138371748757580378131503958267100993561827552991623943876462719435380634321478064454305197121301058136745334468397697838897373330765156962692978612183733081154576444982849284055094174267919204300693780980028331921708680194578548364598410089208976665781194523440405199832555505406849284229647446386373098021227905367236377240601142067338337319087577371521860337635161627353995455835834253026045503766743719876416542313940832046022173613587972282220126112508203307317722180764232549312609272414864150213035481596883068072797870707632152914222124829093987626448403075594368054396528379210463645422921330664579513369632579074292596136754020488391025821978415327081904330193788679991172390389359832785913161618587756467673147130941434578736887506075187444503119058857269899522873142196558908720701801936613721216605926635785745742904061879022919459225561849021768845339146470453591387428755576573128350862364272905987159754783809982594613772336893621503554888938044428327057108058337478236465002276329430273916613812668581290802310422728636016176968170117747202603048029719414382822346911618415135431294962176359533322879237024579996349176392189425822680508995293842951542773474835658387015287474883726383641387549862148837239778698054092719847466694788348062040823982916408987914272028878761527749300797652919096402424166106359868036205933564609021745399405810262704506271513910523196844100450958477339295300353858780813202932423214890005847903830773753900643822809805670590964486796710858868378869515984446612232369347341439206722965929331815023153698170062885784775012804487055524137599113881347975687160239908420523379932097580452109270793718305928030473333425372656888017488645550105910355156510123099766458134271353372416269320899870088660777500470715491607047782344703296207637437578863178694777206176470489430431037458865878123774350494682312637543822831296032885319915589428802753356399270410821238318445460912051297225491134852564006817103794382148931605182811692906243882639245037189729679506367624723644072008438114224663183927251925181538084073853951420013269891937261221692836606019818109535783540479726019792645059596327757727635095423465212002691792604989334420321343544245474733266425527482794620966441607359368753579174981995951868182456837499187834819548761261219642231774454801222250584921755984209400260915152687826865401889250580661470029908773050336249849972364117112607899708715486640985635874362517020898134996937326770015595151342587195938827918424295280879612965855119495722987764945552608121632465504886356283334577823494231889616273606162728370669522653004264670603241664655875768162883884402404824509304122576537900365781128860815402407626132820520177854616607086466826338554513383676932071022721184457221088465931892057853940391658483908372082598520327498898058275482476798224658426393529748559843843439947277132558126609285085728249997505043937110506264542815093916674184641345608330864497444186429347048365361021087818201258373025464900882735346994077993187385451595812735184872262840466476121623413535887358861906364768384887398949992241645313537006954663206614077497337864610910405053500071206479390251486224271342567844983447145205502272215946269552139741976200476728138436856940278635235742224748012820634973715614711715990159632756154343674141012351445773933531018299581242935834277029356977443481548092127654483894753168420660950575625719984451719603829540312232834378702072787425978207040263107067893087353106901521051423213230626043212736153940214190633903739076285520964904449917706188766252658797931153121106396662333207466065690712687929139143799973611875388971435093425210130678857927496352842503009136316176480291308063088130824150234457579546883432250285307042454415921235033989927057517897381343612325280080201296535919601513782045023535272019069593643546579401037151924878462444622275761398982912941584293932579877121509518832201831074335395198176334663630841540917364465064990001583137628272700964049198268185516457027434455036847204611541692260486785022029025099227135863340232331690776821152529617666751999988489256563876981253888999786359251002916500138677900945774409654484826022197342437164347503070802129636059296571283545148249789707715547979771789162231326599083818622475563484395406190313314764167440564353013977592320145548904199413548001585878205303825949800336855813149635740965660685835583608365272876481235287079785664238288325482046901461476594797987604629307891011057181189020043038258062202711058301179568246565739933721227801097255960521675506927205655986603070459190766455375852371832872968577333340677250580816625858116813099340944438268463837769709150291077002253424265961772955585188719694000389364775697609019749870727550473615267394475061061341799609670286981846129355969379957506230285506718489776387628479912476858545958746837659512058570919366014799455808431875690906975619954177551675429840186984909950786970254391732938612258055724000049001679049955900564412534236905596960178785799073774997710341210907837305160068680731054992892935043386472165553650609417217961713854091640638180660537868473434251361953454720139624380206640624785733596067676694198642105393589184356900483836180861274974040719028847515366487882687243879934930933525134803901345252628457518376417029645451325453337252638702404405745520065210560691305800456346405003142580546265768541395937260788784535987446079604678285704303565226588929284940412560272253799178224871341695787833653711506320764721534711372844093282308923691344610273187091776855950595237347526781934127675220535562071259786458028114292990448761516733599839792491141588938448634473138555466566724309802190501319310175062194225969387195894149297746711996191506650706138989104087552191928758388660548138636072861326330383071204514774893870513307352191029342282757913340055425532602437446078504316194728546852053280247955776545541951237523384296411627344937869080107542798904552748740970007865469877365683378489810604843408538553092317851342340095461320368178480575641325727031681795737667083103113117274822784718839487279736397087805598811712644515914080725909480065413005099822719621852100560517127696141309563268797740948148224054893073517076626350571446160551224725039510677253839389483754637427233442367086641474267316757481721921112248851874352056051762395051840580978840070293667654699838638731315036314862553910407695076841755055225406518006108653874325081601518614714836263016776005072031432983319075274303106943230555446522604592505520026696111465704977493805260301832578536057274394694081178936192414145448741876568757537187507389644562807499811317322236727323974529237833563012824949611659311601370146490495582225950013653487600873775067495109077450014709389693615771356606591333828074718694573552588788131599541176319982001979058193422021741227019221446657208186284124248666146937035966170255772176405378322788959457760934228755997353230912010748483752508819510501522984046421238242712730876922233879762614673187588426124180100044409989204843454440811613606649333778378805970932479233449116568041545751082938656396777176352793223622566758656362478636683206338941871604561410400174414525830702816430669350830778659361507091454266521356524792259235521568258308774785274299238094011932846136672784509700154190697412493789614642577743670444272105954832297543156920233787507958969535018135277754795580471036170620688733883689300524592971659858696533498966383991800019671023600157158476093181129683483541031306556051240459472478103967049954195893322372712603460807166965709156026633603151396543665429506031471131364478674602687731911853649538342521502465880778182714031762418391442187797105744221267365782572655700024295337100332602716122590478173729892836011018891493261698994191654654897165768010905178723641126107057637820458040158906269033146866851037250358234215499351658850013844902013888049559560578574686652082770108585322383234390362574145318447322247927628403532787006814520301839947137197819139115360968515521739818716791537830601050947600254056895838216005701826874359884757258050483655786075011251280189838115888435709930373256220227070352383793057892689349970474412848807957281284362365223054854531595612872498945223403958750526534963028007772044929596159444493316202209889897545703395744931701982479707734581348234307954557913835395240536065795108335249278525765850250814240410396789266759280246312288109016065344526025904459665658044794617826704966255860976810370307925208051281674942912247975611517235269097734160709023891365806116211239759868747829463139918901877271043676516537615405555098684730187792392771984410841246656176937095124682779028071268401262685792981032576324114125648387239130297382726214052993427178847182224573118191415927326987856759070974109194986836066360304180635336763289821266559736511956600559817788233396162890206578694089132422543004568233144622272357927012775509238394536086258434964340779130554149037254217376676647285876534040584251508179435060966472759704838239375134192044423666722582618816115268494285813514640277586432572911730165817910698331498477433582497212370428743793376553116799124519598435975079087462265565476066221337548824930822686096765206095893668267219912127929709391579896413214878076330916757230432405148643137474167801095263420912712339862270103679509640439683089099287241188787044261230855163817436094080979393455288017007392137201030724595885873312030822252034008196897573509830587185124632051084986643444546703211206473549077550116138576654539417635987615332899857601988308884891593226711258102744250660047779334662781800687739584933491218990153784494950370021682458248328730751888267774158276151666044902405392564940189882720949596386900682339571131936812021760375912966587827731958085916646902645103268360616170026276496623746806861069836557852407107155027405107367095852082507793551270429019732823805642100931028934927241548477576246261185903285123587484735686674568828151644068485661333755183762624597532557549898770375433012999991948708719090771193730342183235181118160008737109515237028929344270983653297966085885188465846532371100540786293833936413031847916268788494993577531526866124214735170742881608459356499834188158438727763500581056406010431710251794588616099493255315534308232156946551878233608177709062453182325750449486824131702383277675532166090816458771316142809607995193394672713068313935471566499344034496995851081318384117744232010876671289248108686322673124076096834953956217033590724639077070212553521209852857209073903115368389215624593907277547320983333672983150718785681584275402161920941487875402800479551214772094298017413967222941149197629953377713429176414342193946838889309646496274704810856125436566152916704644907334940402857219996807700766643899572714856557653930414877881468461883176398434437350993495824962405450397019016135409918214163391695369811745577751043091460578101599387113739728913890898146448110075187516969524220441117324677728727607799187978269302861787682886712687071599131220494706638796042352641527003683613568979155055486843357321959828067852106530547082373692750019488113278340506987909321099051030186845236110999813793568886948200598850371303087571055622947325974779473351499834795586559357490226978866471177826179460461843921422387907479561838019585194485910806827560480981830076948575889794372794238945978652021560850698881241675876291510993587749546503164644181363417085369191992750795631216200840667862721725988644010550178544730016599783044386227904669289208295277039152117187358514083248645172091775021037984570919635399031317085827365372357241830678500878213524550093963462849679033599983032067447768465616448086971631166574747054662349945990832705700163997641019516990486035113516840227701218527452442890281361841283585485691150412914912956071105679480148849532909400816787741321297352805422246486278088242876789318347707265883443831162998094356223176002144744032184677519529837941004702495400580623824546524986028649312981716595330763013975690283406571386231484868966073346697211712554003162139799940891663786140463992835509026462152216071583048252584953065791022220501957342191406057983309941087466017895541647130888376559379226786777099502625962139652488749856703096337096127068304485668698846348638066063533416607019726474000631914274541641131577633808155450796470624185379852980135172951584200133085203373607876218272423418556582409062388056900151452147587433001012167931768151408421563826784247819596530860687853726832550832372675876575224885576986834293344953885533171920372827471718728146401115868052837694824795637068304602772841956118426687079386446899721471823018286286239310809484033136041771171741838422866488259777160418825439398761835340067645626107992206591768237406079200970118662439267554577047310695426281582712724994249336298293708649425941360631967608603174458564257308710855823051557570683259026911026114056690079353663122918499995465740451064085713211055543907051301502979459925442807970357145769331916843654209682228577908909883009611509842611923165367758493570581094307736320565132409911652354854587977269667499902683828258667339993319571283147851920271550465724688079817935506165302626408256311659986334360236071481633106201447619256876943201694084072475628449348359201284238150571352443714041063009895742538492985900192421553265353046612800526781647512714974894048113105467795441444839010983742892042120956953706122753703924179642801453131280496083073934372361575154723717592993878400494638342718745775730114741231184704941535534340123921305659129215589836557003287409378448463335105555106092673942541880717960116209632262692430042977078148628671193615252106333987463231219317598380639752974625202618139303872763834226566593747745951203963206398044904738302807201023306278686422482951018451616904501027168203666087881862039264660352141218935615649131718057828497835105920746924010689085263775312752754128633408801150153789394565747494298797203896171453784818108536248511636740592157952844163724507738526798741530876740680310832879296312689394462873868040361741935138557460352963324868199876218805668167047542979039330889661217947471232987823628366123387325366739036915113499271379082502071919841306536462587620436977470210068348933522524690738274112654374376202993264012341138722212389628166529101093397192774238391677369164777079225592798229261413388588615152534906586267683941184310832722328172339433887788929681435177536139979742521487902828428696964092400784779974083753180936388587303241505589993291624745606591472229313123065102423877840868794515715783135562263833586528267189679419561144416050431676495360531947224171549960918739920757869267951902361092583307896280247116712010281581899586844800275391268574337283352384895171679658249313477233378360760427822388116510854000245273320457098129508676041075978344866045551103359265511117203965420121289115807855663032339014788417834532092912029908342170937406961404123264168544038648783249625384983151823852499095333781967360543982612315033111778298036018341419830206187196867982529223875443156046561070274325202917848192299873748229580796416848532771793097001210867309213334071615080307136171877169172724828028751718675000477695600488069441926147413372665534484506522270020055308374750016041295152119320367567904501357290594983800804027648982598677385441143314627882699097394554219571054629070308879523333902171659114482959414119174829291390725229202085468328781612718338772169552876686583462397343345179474473329756475554428689600223696923075731324470543351893141645316146514045299330380523379609058071920365497975580882744377118246108777608861167335027079923112056221582742435022431675117734370477893445586882087537326031339368954041724075136930641341913875366084849846068826820933089486801256240984464381188493151967514464688871763023324652594362792898905516897999444511797603820876553860951577269648999872904741480383565233747240777038069051003598949728457097183583559048068322075497442625159714525211744223363950201939319494796629311212689064050450266143049653101744469309658295575658867465548531272329886950977127922342289970065664093806961320470991095594335355673894039871067503870555196592422665765325719137458652900556219754915004599827806789421805112605233134858392922553544672309157597557913866185704533358434100080562428836813530245110374788857522225898045572884768982830762253500811808931551920706754101013504264800500341754745222633271665757343677050853001032427086912844262688629323162152875682562796707982478538712016214541808396831200529321749568422056984205836869329841798260566297652482797641563153852955852173006674525846141084019352454979746599741045653372263032859203273928847044205888208323479269345826133127561349336253238771538280621905230699919173245337620886694820504726791681362962068392765554117570604728731599698244060828536184126945923400316181738094218853908134302992807532463756989637949351408989919058395603404357865965124801435278957367025737869757199837332431304806347244186426451049816960819383829784935249994232454759065267867875830100634753063348704090481294555533006076409166839577126901310401248547340433759940522822384920747793842110892366391106068887494239329822224739888600867014732404778659640503149341927994958767247432523069484387423314082865857293234865958275597198890995139858016791652353923104415634227308931816426143003137297819009572727960954628841409367754103546335957984025059361282556513434052310068653707467079427981764988148154091369173636825243194996906393284854698418594810398364772744264709004702273745823272042676611157019647987534867394838563409292831159186303719214273588804476732723888006859637335281804988418281423673669977525007088607851697998159002880188221170176285647364045251795069444863623258369707230777163908237692113195827554960397890316451685290804454387640033072642660038803423272273485377368889101473538113640311891304448904703149483977084228990345543825688829298023946696177233009324050699231783703277122828283825437851332601496730562261246400601220094228453800459232781449781048243250628285058140933252439647143487821127440749708745249478970252700370660844010745206732659640401704069448844869662713139138057834653446233993347745933863498648648203746786809404455158046442387418961219836944428821123253890393789934546261693481796935180974913898571895769845472681272787110510384575550751185922604185794858371937372669192306936960897090647396765379994439352363967309584614526242210189722998828288141090066686971422232177959440331993382420409802631382409319311008711503036434506606602072209687865255435317404256975221197280154754863100456925791636383755976643939193697527029261840334308378534246486236820256421504428835181685825034728846322512400408792596785253141404394971979746087815096682138093633325984045540389261593914324363465697654682153082990237279548688361374685194873776883897218330713811033925127756516906274783630808563261887869008491526461879294148334368852401748914713909839068087808235123381937848690447156005101319373115045837215599887361481675767367382626544038781135027569529050668012930605175914441061789742681136420742085723563064297083610981702964212993177807766794039712634878521225457775647513897122636075441453858881773626166839872433660787736185207302149147829207315137757032983184054776651960380666499647045730533107185984702395191652020433414921312871027600791021506782156011268108493901663724508403752757280879847584931435300368066751493368423647372569671452644500467485746914065985356299195308977789331034738273087963860123787588160623925963772423426800517435726878376909052504836616392211164813663971538453189783508498427376696255589832272873862101718880870100324959563594298615939502179699721985143101759184463637946563012575209625240790995266234332848663689336335797294971708507874738596223285345964095635343589079894947881611002543793090292004163445372651069087565729746900582469837293073436421146096041323403727487550040153689332147561214881432705927875470046701283377593579904875940405989446495333656441502074214512319733326638932194146527762844280747495292825501688621122020503947533432074075768919392371290046272700943455304491240587137390027531234588625524702733684153134644621397977554008025473190221797939888487458077605935148013610139168488456875730835652132389597706916726110101854240113800310197393553968122344937982452868552249963558600222567873767184142865143810324009387076330793908078500563876601661395942626506407858059940409894649749605491610459199269025739224533690919801792250566341526545714391544603877223985322572856230063379090422957028671027777544899344728093160414512722229654966109739931375125066114888374020480449558075830637527526593318304435753187642824684692343510847094926324216575146087680413078756485948021469087055007440777541087932123827725987546597641322761860879378479741065588680434366151682743892756325145889350905162517318423169579573073014711150567003225590522880038527789106574061440542975432439319257880300478329300526230908595438155534258113747553876084389950903588250313452400348961486628360001453111033600793344034792036181643711690977265579870811080574318985160233976763760673505647758796858812238518285153994348392057025795266996742300074741879756986440981522106461160138346681686403449244238099879456597733090167692885972468987055284007288924531057426396358965279343802103589876542351400924147442069697086927850129129768952382692494455059639840822229992635907330650119800537499325985627854947072293354034318892271178073436393010419185975481146632084983464671789952383978279229531394330822667840938510009742491614751251458359123345713507911863781748587535971818879382204106895423020336825190272929646958273216577085819753627668185944258097276440688090003909214451952050581714816250510648019737775937287739297643927941447328966968662983928975555296588893589574831633956543172388844675691501804586491148385982028455573480393784788665423283061471891374246165206348283069282343646034486756362357991546423858424856926200775074915787905374109122096877198093895696669974058140089384218428137867048942157729793918372442527574611967920173735043687292401359897610756637873138050480317028755137638669316576272115535324495118574026495517478433297350112858254106319020226882050842466642666628745759416858614364093782176491921681577584641531740261749675863805304838390440297522046418831093130511379683734399742359775385419678991427026586565679197509608133335322547182510635434228635068747949818102613691409360470885730552947930343770000590724262744840679263931099167146165276096951769380478643105093590729984477436927590803668321084205657162298354530748402066374594901213788776405179361426422986082039955230495188287608695711606043058886698194908135804685287747905565793195473022162840109204223667117693570426813813149596022276443362976658940015749191884351682592263870070427867166290318074661179009549156279250469457293766316742015866110278128606982232362203214380034392311442139011307343863752687218808841569658885485226303051069175694091412711978949404669750741227883956139368078437685194280775069778595270923400139440289516642302185639883710944709420973724178898634326137763536043279381404300109885509770611696666749245319071030216837042600255020676428169351615323498801229168948000691152411702748799396355616165406003478656530332006973524552402697546133701663430483256589243630241871953608339413282558101736427982274137702289678872692519874041716765852951896420528013440452064717068476771489013096932774209222026647083920367073047613064631898232254314875401023765095049066112750648913535473749224442149445774513409516766224837667434775565599339529002834920663749866972542847414851899863453855533901016390996064922698155225652378421305752715256878036916732356244844522238037628546607836615468797521252829054157723597979213959092186230963240708352191872040687928985398120634753435478540279776274225148548328639567056696993647923412817966731209569333923863173256647334351953934178897059999441751097930108860128388163706317278053330927430428462318721549676106388862151110888557262944373390846319260756367346033808640763376256431693027621405363158135692430755768640437203076988744493415399005453148109500119732700570736118047175875960760865739488689164653264185796692925707985699529192899358469552231234160073859340962228116285783101074517742177887735974301014754285744772504102706121613252065621480720582359811823828581687706476878369206384054786204180541647997572911406155734549181157218047273241367171124677882005240353487824057221577878874698586573643338216406430508347896578869951755632739787735623132328883562220743543724090300543857488269305409509958446637983738859763983455089086884207378554080098564486682907452544022405196720759088965354603231224036881666655506442392766194663879241582600260237765502690008141245022432411672812904822065776779366589205345993018055773197846824872843817896380282174610170378692895406817621184343836766016509800531435682664238946237280335075991823081034068196611562272908136836096569489623258705579151055134592458126360141387999808106785532951015595142036640044711670784391047875856906299714041870833080846116510149585271369505321897968708124519059597841050132797727555371435482040598356049056684870703281550582834297932356082217356311741790897511611080277159556153207460380926917678077000253778430995922911052024451742514176563605428385554584739947432719119512539710086021756851353283474770084566594442615091158961321054727876421103694089433197332721546893602998271361934106899029231775997048763393499272819385957941076104951228805574869110982623325154065848943206867508572495962224029291906891495916276554790850894776023651597991593801195998845206955989345605950056044765549333888376897545804434338058414667082883108819089292521561225881472713692513139349546758871781365527123343469059712357836263013896957217763524890885167605823132107861340647925964282764536468084234387171108977577018901802798823248256818686614869963988027830939408312922328653162370974599184222914927805295448211578433640793201061609379019436020268586558640488056778804496282100978630820851451990030216804529298271911955175429566821957158437663767450461456557147474166165825281995472751179914946145708066564059888996526615873030495453779332219704352386343288513168827383944187932276678648936599287851550803661290337925250475735209959151672469040214006162016656951578345365431387527325367779738892314217245840406296820333859696513987186873872468220191843172127565661955101966041592329661633334519723868393744804918440580169513440179072382632569830844100273273786446482922665855799604084015373189062405296460351318340958090107734402285100619756451404759347053724373627403391579799703611531729938790689733475525071791641650356292047939289845098372355082076679638844602965363488701134522464287896984479784316131930780266494762764315382358782896717402669500704306510957258135722555275663760036866578351949769305972218331081508890823518879542677487739955398937566094783827786740008943788536651297419059478864788334925040867816418376450232353657846377725435445703658503313401290696772763399403989737335710286281010899451533298672669865652165971043743140966777404291012920334035994842561739984983303899427810560584456800275514832299181613941138834651880707361702959457223083080083770707278394581793035054570845344560163081190554913636088069764370503701869032965520865329047795429459650686246313795770800303088432436262856640622620874165406798228077413908096832846776871951556971989787800565466874123132629614487207312529876045021251573542735867522506271966486187672645040941927938341455622509077739942240770080802121273308067277485123123884526475695071316924435841043048831316578464215493956913148872008220952444103886553012481370004974592174888537691074355503726291828991476376246813944622541501921055943328411909747842548785182545727008037001434478672590344416383092105917058391601102903491278403756014415316311712965588210471212473820284333751788679016909617459106442067478172752691507013784296354123955674387637844557083830474196932134000929583638814949209243332632261316919110797902737725310896738370869159318111266422049189617447055719116254888192579918985914244410446920906181968842391184081622098633125991985311690905862279166122935308149023956943929161064745217666626890793062766668240627376057997292438281392684006575488885591563911444992662787122337366944191941739853028717285448648246082649000048752439368172331393287509403143771605405240227095793704175409229692037437929285825220252544897286672630061447712505789714849355359964644551018527164198806609129005033179200085761721393132085821750638285603761685020593788186044960855373700141413840351154342920226160738195089617886787848050315874971686433673226618912611673018510515740406197636540143212883019485322485111566740454004882031058992810569357694696637386751759428597061503113423868849411376121057409236003746938708780383691375730032244164198447140620196735812473078185467186735508672878920890551328718867652424407169561674042144076857444051582183310817300877042630557283811658016660808715597003525683413212233651218489081293109281132114000173123179105174977456448318967248415759440436923380335128846881801655846658290116045972051722332434016828265756410515682472079318717420398725586737719634781242528410448597776999277159157621126246040000521935959885221851391648763696403585016737294644171123944805859003096351415520489993285560597035742873565738088671114832984401068175067204932945991630049959011913460116427641965686125832232889807870377615236778479022029273977001170517774821539052269002787735005704703110834305023126795375662577634510457891966761444221870621925138379090694174629406266607024036078482348666342101927771197440974493853011740038060026156674357173268709404604477516253808747002618225237453653136699790223321969201364651641026743534925181438812118477260434972170813920987612316191370380802786557096303311032167618907516389957427451020188955024610490338255542104885230985863268205743362426159828369877123719216079733586494066345306502428327136926527082285310621177451827020933862518607559578464172549763103614525201003846929453335841322678331284820213198496859241446504501214598929815350067568658128024713757129688681777651958928802218985142152789507994840309365116533340981932140605994762212094931793018183482595073127916148801411973889932047234265328308441410464993426932129905216203986090618232516805404676688766050978527388181058055652243806733036313593712307710367380662563780270235757977538002490545889213529493380303579324719819880038555743100690298378351922589765658548753609686315320887832340854538986047188172171750821531182379937204254117584656067744856986753700643885848826275485387111252684359013724544190081010936148755036207328217549569634163351639395066689422747228937447580350027464772715240454747894921385430058116885443395866165871383392460387322409306041411359271799797385164173424635575413923415532636647303354068546247246600075306062630177581226975242326530334369933243489516219789905233545034524958639862286635325115330421039610893234040388616329541566924095410312168540968293234509509563888947258185455369659384859467103782091056718254355321251517359449185168629036877124956223281638634555906113826943636011802354659569556254472149349368690167595014030065746351439867239963633581929091617595617005426158865850840877422233700547769203138128607674656293859939053925803869862593499738020494965443265421743998111328377041811307767856727085240247297640111204404516002178211581753486249851677590727273188584437957996618865671700739176774732573852717173737578706615058564841124078765571694511844187164269123919037840541717176383123804380676107435116038578380280125274529549160451721252154277839348386037283234965831929027549557663480804005607136863867336075208341960935188725017808423848530524258116868927148815817223798987027691342235403073216376812684140191951915698377377527339790668008950203666844624969315010218911857306443324041933000310466789827880916995496156226752802693363874805938823645937195041869007131325911488784951346766067962468651702155755753944757381403224096551668309423993765995356222699441276180039773289021603639530485820517342945576791772484088819545740691674901835428463959059313581711109313636101453932328963730872757301849259126158248418994625926043188728480248300220339305685035292437416786726710215005291541262185195221724925888669303671954954558290807702937791684168264569178573955559890352673213783420392489003666367907161076964080412089186635842150501743049370312272719189504779821128722377468491541168191955852290288078258114788232297693218720288329946990541192623585821086213260571034955570470606075658030626235023818987117192057623907865870239112665555082348747598379327619632536712404515591241637776852345880797448993692508188701225830218229825063514063067193147041321200963292007301457790393606818063229419508542016667523767019752474595792189413154781322293605499136580809357348689457283968221495343668679656522025552355443177888953031386930136169780810257747132163936914697665100978891477197104813291002284854656601064892456302821287476870815997634949479312932731219850795071650761647199237737757166900110403758439555949718313481085253858244692144134620580049783691313859889682746005524555242940377978788899765055735805334157559854441129957619942454488511941852100641720972191225273933050978133341945574602860885824551514063206563079236219894431891441926499725306946541880083859880661570384735696746740822140485639666837561195005872315243105333004393876794594154986663674251651903004973957178746814019762477491703315634147656606775913922466140909900399475480648492082132948023506161109812359416281911917101055777546471075793290399963669953406174688065543403119302837290056093264340011221853150400379859875544785228036987784574808252723055918299892714509782108372365836576431325132461358175245219938561046202645504740896975929639678520652764909177500617734636003456918788532790423924960083101272366135694114643378394897354143861729593022172900078571338501298345776536725579397401512849376051842055669707608942779602494246996705190173648405203570998696610931277651101147296645913921393483480042928593439499831564745248193375938944500392493011281472555171375278952730057648483480409965391853035757730926041843095395704795755506192700455334388216392304841649408771307722412407466085525723549845041587631628657780082656757265941139043349758910115655271200152235695145958106108060622176477586058245903075934547136619565767539984101337474806960257903710410457300311462399497774386148244553496341298217933161898903433876297866068061367331771807855459007958277541918680824917631546429753346073108935226049856379982606483010100121601739601316824299180722912568104959176893968952397830755012327578958932923181409633142912051166646770714824871381537577934088783203154770312283623247585539137753828199794995226878864545976245193063058066550917433737691094046280793484529528716711856747355337243495686536615385076586778601024757529860388533890025648488083652778305488786364852097644689817960877419821512119008674928098366092516616578757638460289856935077090498798809773566402185086060700799325732819919260299932158621591456259280492722062957665331595726561670593875958626996290868318192120443228651710422199834958793686167014902006107195956624795882895645393758495108623667919408420180620416309894025901338323767731824222002715106882050630941370056949709157048177896444360536258694697894324904181199904352548975043445511782355462344294417431758300502191271725682391980583444638375477492361686709201654235161648305548409870091521550563203345287802136175111275164300037173367390059534503200496931079763305620169367368266614008752954613969366746859897321378636775725966179876029818482264227299553188651422767533052905045668140833490598674752928751744530413885563760347657732464529135785246242876310866030537174466881450132530864850203124072392684456462055658458644000813299467178124491695701306320012347989673802808275251397894304539285010940098835713551121079218116310282722423036617915670316073928705143565458565003148913437737816323869103948780756274856784451396097468606129399873047237112440606266448244556073741804206032204866493921957874939165566736474167557541762332198152740225420762516129318717317154350927701018691512835770737502308554774155370035362984902066171833622457041948777561460958019870198258438205488217888389238992771693033893195597132878118787650157513901290898509160552376929108562021540808101251014445799803834800498943333692925745042179916808712817820631571928450944944833867720404372829954636901714903748383404281820707155470897445134554404818325771753901728904665991144166238927030271106776976888342594300644004089846624433968594308874079558951789585649773047059243014899107979225066265332078252839966482647070304935514761898692179691527011898996774364173958823016276047259224724112114707716917587121375120913720701605893966943754559708495940097765839876805518935873085371982487972967831573528355438434031067218236742730981593531012940440371075163799788824977726869919238448540228699049917189872933458886054600649779402485353062634848270067231555351607267376160842069367537151310193114381519213795132566226264879358404470528591924467229650219192897630013020609908870302928095536769086321925455863829444680438141708029007181736375277187879106114948684209847059382588745079578413387056780027114197445650000770277803719802518836225839630424914929151101087117986189901842103091334573366784699048183484241426723938517418977059288282248250347747022303806575829077217035983766774220852369166187840081506409893901252409885922355728224883995393827612280824203570999370169643256259857940622268884747965089030162646041614957529575349841223974122020336137261610047403977332546483193315282132187464656699219134614005495666699755485953033820674011403836666670451979570056621342741484478569864556013693320510432155933928155011127858387085836129455676563396365831231573123134882791352198263533026758788216899738646461269100946247488131015911113463569923542386327528786057294080544320696667039641072363615114031608381721466922519550276210810415789360872868924195786054842736414410305010039853075522777594886747418316995530806406565245865967191327385127325949451996823572040955946395707028376928847670542611104677845321137135372043782761579348659002641651006889397457151435192950498751362588463625805473252622816700287032734586766760962757582779874607821699267671894111029198181595839883243061597840749835368573013179588346465018131140494413291056139859012142731698557008196435213548501427197296400598850167939737774600797161717704504923273771944882647661032147688333109241416000276137065608595433219206273693277978960936920883878883823457279285026712056532754397252955303296805708362015735274085399970833909327903029148049891376589473975212476478303877627863742557519656047917899443134013921414387814248985001343274687597034757168735593552865982362764936260714729968222767174114484942202121198869192020035708181976984055112967700634924098812180556472095325552680266550058617124418242184872997644919066442135215714476297416462684451445465960838808451863382586099580479163916156077172655854188326952630479652215536418678128834056180891960896369816198842832134941947056507657022574833682849793700288106420585146425698618644065061405730995106513881337047111960420977460808334256972168182053635458033335241784178836166839654578472142424618972922660221474529372879344408193748451302634799590714745007368330458795037126795104547795193853451954713242162375519057558119198438762098652261009416493335995796637821773307038705420467144851606857282691758718433235965044537107983155638196617973460085909350813398086505050472000019435950756419493363198915334403869463004461499794992161162931341583975250284930472209387787132863996390754929501054149683280326840187492136730000337535278764966340091674042590356159696099283445146934944708677418851828944655469748609501914278069473065448639884997248666610854671476249864231092387072802821019812723314347801545147903448980678068804761314655261697672363999413868750166523192675584749558450803503651894250751325546692723293296305113828790302800429999681274306390341322215638600682121503033155355806933085930724396807771553473478354280157620538899521958511905756093985770630442802422165315760087696751991448370379571788633222590202431135817979418926647650227902905801835961206255298333654053327174348556282869210570117526729848288106017975809854191823551736819434865706644575367887324563321936553916720461504113386359927734664883259348822625510563400112768227592105061063714424143710003159870642259665959769542677866628256293028486238697632553534591170437868710007603899486153510595715278012480592922632897396385710770005866898036743959291789748107502360999534830564222123512214511051179813616196578861229049087990495753792704636172078136626307055287434575082744330083724340881258230617538729957768651385360828143107663816139812028170005502676091555186271663141714988723287733742844807256619481697711857912525214716065472859473459174196767273968091812888752381747754947336716342093851075329911420559362255586606991236862971617586994893667250113004263999383291561898268100532156706674729474153024848134238974170538303372240433020498145047320780601206016204082705128086668572629804829388579956084624478453106762431553358262537497694403043805877396867320858537660486403791138221609536356835451345880671075383408194613817043250415963958200176818741062931542560180689288794667450650263438804994916419966732457321237967688565920524342193972997490266881154162938042321666233436223954982262304321996171592739869641039244724151556969238938440739971074103459865889977985166993762007165645591513753903728393207911284877125169580738172323781165953173066643180704021648050836528537675384815431702704612855495948120869013049034293678461305452498063035583697506789996628215915287181309492252730393770628015144134433423312010979872416499573281049416070427562535594319357017933434148965915742013422776125319035045587629631254170308301857640804545161376873298705455006462605558568864852749567608880682621582362713050369532274055102485419543604149000082611662431518811521312547350115327282544300323476761280466019469433066225744994261881904735996889020191786583173821229452902379936497384838042071681373823835287659188061198126302754107661116722478947007288032164096749838562425359147786330256623823428706578964626959392058338339078511613907345891439400573801924080353478366000688864564172285786856192495644764681673722331086272626997720342677017470769301522395329630925933367889492052052423633460204900525953703373365064331442170447851662558192706796703748949991202269258952959940857337707140859008221611169121802449458679789294797811729951171271679800913263595942053437017667752413493606833068214872129231189344301854111832860497010997265904008417712103424478922045250037320214714769375781945199929961223458402164971742121921398969926794717920412146843241159927817910801232380807062685981526884451750084888276793118332490373778043469552564748386020550922179741940133634784356932872101178370923486093238432716024055155910068345453506607892992560614199536656435727519338574233974914150194979584135897576234187759863791417451727130147840172556105769133452105462771801457606643979962379001416621079752119307831903784776026334154558111677869381341787988532796141656302966396550433537927859779065264407961224381376429904641132749694538011684718488848661985612780255586319788061757294974548787551733930716306606572348484256005365540997769396371166663759122293186421899682226984375578181129895317984994000746175110196824077546165582177207746184211455529314161624526099004532858225614877527426641134143108911044527634551289688691117265723573992515988238749262729927742058582250099275675134161966381279046135504640154137779721320650068774625647745046633590629805717772603941885744433688034934346359469651743648712338686366900613288418212023265859713071013664605229143765521781717263084394531871608411344976461273243707110586582849410023237336121810582467108957532456147949779612256137065676665874744027947347565316394439897104877401301291783993246047923830312125399529341956984182236302782507359962110933044738286703403442984428333605821374708229671841850021514907967250756077690792658058960589875484975202230413919414890081337800397638631608528689168769325849137993754328243719795082906408163610235475618002670208730883325243600260639689374569487241705094347394174274040923055646095763395239794224837546401721119425045935946431998341578356083679706003213520028396945424314761739916779668303558624253252327977797848733645965503382648007495355034454398425092610832618563694436284831311410498133058981716557050051256377896298407373525522104135527408038543781213852325059556566275289905567403399267712767013099930506513620835294329888235015530623216605897158358712293094205708104495127878314359862891083097005155152452587131349319440127720941521517707271097702212393361663043649976351363128922217408329781701574080563292137336801601063116870814408162090098184364660684724984032939017864495126321619920873341888908908713927006870014694094420545771508546023085746925469173435816576185785606237347274304538631872525007577627122026279117004138674028000363920325365945261745571312907463791533074477650708598421474337902822130372642607546662322174063567024812361142705555749587433243268101476249749660441870699721331119819140921785690309665605325461416906456689731358158415886041465709556780068811238084339564205240386203588488517715839112575491034124594560334897368021709250419166138035343171602125917769143834472110657079539142342075064833186172902475536718726037877186208827567436836018417649299884303780900914654288543065001602615291498620247214046815819000258954662365474637978933838872072295036182368722490695039968200216153175293780864111776862484459583503909094941922471208552516709206178660126205091870462034805967738840568653562280030544380678809413578219954437093293257394303433573463789704284150833204634413225015946620520600594216906216204008030098667451274135553950456692399658049887253917263868190675032881056357087099966987322121382752344483069935642600519238706279622805813878047824498552146830983299059532083025938190726424719018552903555962220303524765757280925698331279734249927341023261696699735769857038809051452559337363418489652963903151160629694348887965725335317537356873194236906622171143182065951843865819827958331090641409592783108464437077550309528631443559225681270743619873476477408924501463802963644323902568507580562146815006996127960563503322603100506874773043397931851676057222237283702783196231930320965949413638090632264636672898788475798841556084332710592897069365622258035644410224502290529439824696907437244301410374807442006944368838668540927283888656017265719217441368433986835452319056636971283482453898721374219910442735926955890318378463177862943586826017020846106317199521149591839345343376520841742011711980524147469799530204299737699604677616315575187364396245234900836796909139303968708034287051241187122341465531502522835763336046974386030391695297486289000811973239556882358049769155022542653156617897760415414494995598024898630237913293421213843362377405869913775733805792582680490015964380024075544117284321355859664767152058509849919858481690203046540741566205606358450025966817323227748114737061437949215425283198931994836871351672436579398547637612518344104476261254604866171968172659033654098660945938855695509313830745129446539109015787655657811686478551861325475843715795789155063386858180970279795940490047626050712342628112164387323615016732223343305951307220664196973753042809261516959162598243849889424701709090995869433209550581050059814379867525272687420803176232303995647409752640767247361208896514380131435745173037448931721178411447782496788841091143242165463840732430253375046163674090557214699065959156522692654099553693365207461620894328523655049459196217842751652664427357608840265600417365841438514442762042656537720967714829682045893088121026325723295734099286123595249253358136188847746339656783266333204311092256565681230189622644405790276881222150497038127796401974733738643038491360683416683306711235322690630708498182412346912000997536390652635774226210909782515487535934607627770147605470373399652155260219189367205559713511312718500361557615617894000964102266521178178159564180873786716996764681747294214374932790372300979921919729301617429422796576566119731966448369328025135906978057731376631086329829457393038066844153947521278976241965295586835672711581259673337305557083328066853982877633341414043908069115281520625244279149005057804902668768532930036877098425737111320242427873309787429548961924658028452736508274881611301991127272327178532649374222218595577463374437500814466407159006163519312805507651726521755102207558123547249192017819985985931157843496381430745287602744891411332834136206401321711023641196904278070185456777161768145146570389921216086154405081555867998039582382556402361919210940271206662621911913133659475634064362343621968854769106596115275329073652064843385768249072232461739823805758259771266802609788605895713289433876783254193830775437991312994290206810606958922564165301505346579807994266351082912754047631200774662657423269258491554020312456767591474515425917876108193858772469948874236961213073415671591060965999334331481102525360153023069735538462761250005387167933479842515174109827264062316353226720732408378107662373683292876672218642159898918996369984086961673348700530808361764299410999702714959803653596918623873793207896860401181623012024658236862188012692485176843908082069142960091753210797408687500651664677807038305210605399291914611671868667349193912202926248059138620465900443082761682303279340715145196588981920072711175508771935312042869937326139945208983570983885994651997762818785673390856651712882828601637315250817901268212536616150573432314235375238438668019932130321755842584876746873172960742296503626135498869541194960235040953804423372537698831152565727619960033843996542915284344689220937057042289571423145858399778932514155081761799925495758774130713344346062243741423113713816544757593516606771235041686794911089110891615627304461901165589681651611944826928501263909563530396734055839580434097873789597880117296815622558849148398035772418420155793631217781092499926168681564382600319698728445802408463895530271845098731069563055419200915917784854899531991251542142485767022929916013888054635081841482667093853422337349361373661812346475087686407655279996447474437854196294110939917152592040434718431906953715863190752848505092093418610821786225736324371099327809805823464274562949407685332252988781820223001930763285827519738558606406752109886572367079805021845025155571596849715369765901652611340658377584252470384018185918547031706483745487378886780243339296282786876794301192163384692872663178609953756098968296843439979817732334887406987765402635039693923900014012430556125504998960689555141578345186145285008435219231639365219448478649331514997148108482313169336161196370742681913804479029327462427424586980295653112536386975730207306198501937724459539254536146090809316639094698055722978529224394486166154164625191467988159876549550866449450885563134533136567036290945620811502642465851875714482559726104471303503435786153259643198993060756723318553352739941736232946439891636272337788010805894896646048017778228668226136151997023542339629672979864484958523535735027702380944386584224691239454525531158083725858052832366766977922823922883983515555174093240934723753075471245613008875477174558412545864656484720251641968342978748737866015402654964926338196495495917893732853703768258175358431651510626338153554983961110156826263505746130913742528747649665430148261607497725161283103578660041400649154184396149566434067940376654960663389062180636534514468273095061498314362005781608192096793492221124247595340270281133142633449178602910353865477272992140709886092009002414241089544611147492283207707797816660366675792791578660884556695902448213727462525235052534700351000660086002501632599958760133309392677540258343475949821316854424867479474287889277928071294671375122392371034344145410172612347011644818704274280617510940010739135291182626439373547684535444004291357615135022512685618894952409908271332443902870495667832224329761807721035488688123884093134797840860497473935670154199991717197344014540301359159599065795372041022477230379805486246014686261577168264722612930436892066739038250217491151175694074226447043885654698760501412269397210955610085522252823020791280097377564382569673936188661468014359170800172646404513208470389553509043998486555931979203363840341863709222055301581356189529609096088522418971526411023729412269108916062439247753987495022874049092602133318007604784600615820008668735327486641058479711127801735337725327118113166170354891935815814208373099069519334317001879870276897450665099800015517034329758469136763710284291128863011489453934991033267725721383195990044124037956694124458015508403225063399186342513857931002862611296867418951468393262696552601692549171023366228119055313937406733090956584459684290327728055607275472171662560669352786990620308523612378766054466140654147639480452190947213854198925053310020191218506845775871396916757252031031612042383661069423830465699813011153980395439990821817002672919443128884554939376602643404620488009193153143561356331047997173693300635952023587167328258377820892858240208635258592383145525213859672130721910323774725687602460412051014901389621904632092778118414998825325133453699993805507588078925241712915169273945939892025255780956834710927525678511375626792282488162549747528426979342104944417199078142960844466564051332430409718788524618288567992034899775640591915565450229509782821719927891526537994341507461741580872358657854800687237828427619384476464462044022941727993442493385304078103457519475821440037070758166972359962197178783536009006479741920722761163727785946560553497236253374374309994342674832285968360285193546955155383800735308577420482052732767316642153823096037340337668399221719620221653604576089467045862360263949133094537740784263461675127826462864481712475078588009242612234861408332378821457881356588262227389366572617358870924647017715786350912236280358190632889487289854571752136913869714019440246216120848099311716766579354071068273111233728542476300388707254770784985222226102368437768064790539362261620717934648089394755058099134169925510001678047446913828140690981432319550745855034401166525516580035826034991211785468277468570995837719701808952229395455020693896730346416638258897077560610047823946816726080374056036352914173219464253403019289724197511829146610647180748856884142318176617831634136568409561633421187580903647172921146107152172178866291881010570404731930578612451933625419051802938634296952611178941617038823748653962107999882434370920831361855449603985335962531684604602120182823867803576632475277088510193644660520463335004740424236931683338122773015587913143440786077239779567118007403820951645947452220787468755987765151025760732417174929251817884212372074830740592926698284068437505848977140959526927778670678729413611063015499211390260482559803504382579515556071954832499998629072695392059085220917865093488756842544210415513004007664894933950886905034873089166700631475065517161186948917940097370429033651902588579957638767173858796097500851203658645914008198941514174628608830472494295742017395431768529492098414328598171622411758988017123625155723129975548314792966179914140432777343404101152472958152668928130949388186465907520535796061800339100027719715389810743271457034360466201306778732531045242648141860899261278222921157648400866897816313938105474355654084785281052454785388964894241674014723172203157963592230987251444952493544733260226509884608488654111858784501040587907043880848354296037270008606340747857539211963858554468800684763061936914832830214792394992730335583716229022721011036593683097076505981626017950045427634462879957178430268776122039021008160714310093523004061866918981383862804714024486857284938781997426551859023187148927103553827132966601362596805438406924942034671875448194427798773373619989748162392651128196740561638364587463428120119948009752215538443228336381104984668668706271513291780162803413747591674790350764387913987730536285223215160656203156102717023959733407109752775577425111381607855479710834691145845897538250934326867734433695201651720283970725260251825830241398797409887870442296857453454350180345168763417903799971500355310812179181173846523350091461970906128663594126952859070504473338765689540336804239367998225035103852899827412735852527665773112207295233921639535562562358228204625464655964067009741134664148374767134601624433587930961616173396273812764879049317519399358445365268091902566980823055095225664312811104858152224436937907571682518159894042268647555441384723083392743896262814891517418829037416948704984726013817203223071958493862733731139713196921158794360081438037288761846873602096066985225833078465782204822493748078211739446024893381255719976963676987464375654417370906507380617837110541478139791924312124535743892697579678858971085573327257387563604334913174294384171704948964958673973320007932380328405360887707479502195248304905389523110421679119542371846119509959794091950097554515100326988039964902179306049002550893829634450484026974730704480029067545510599745590660945795864097824272667487132356896529260404310928902877414635636733057099378973675041324949479264407459652379912751326990895414381661924047161706114624044946620507395134964750207458408220090539715652000965817564249407473226763973580380716873354587571090355937096629605819223222877653822049441048119349497452598582202570128412920624753160280294799829629199008472631548469315115162234146793231748542887393099548476589545662475908790668957475308671099700490811559889621978332963512167677351928677508274633473879058216669736769331904022614709474826576594526273476072370880768480800773951821176928654935794143446756925420875193766518572707123810220063144275770490991297907223789888447981694587563343497436111433909481377932811670203996533154233815484403467734743621273754502043253881946098611804574766779648859931250189835272234349365708192310169932087819432887427618248433793913197566800934769265276058890335548590380730796323307430470051043335458734601962853301017407569386154988746741195261951397370100415430533690078278115321632001423186559589176280434551623663675052321635318047494940165829729750887037681751397506898677638817189396102888277502865937992100209311143431743439141817888746463045920698689438755332711196199689820090487965126217259762518108217041234120108830498488458104825063919506749842431685973608848577172315093331673017958824157604680013483437935422165495785568443243452123994094606556308884863236638391029181221813985046984484344834987054402204593807602916391972527563386420079983687157134945953333080059656008152109232140026542314025623608882396053374161603642418086995742319113176241796319360464547071332606160677966195634636682811587372478125034852365136020483966614669349582946556860858925370966247165510712984445395292822393266636876918749853392359442319400239238530371246868901770751690708335851992880285418396300488227317714596438470536468835885948065068779873615116956889570900174906733200310773494273109828256628890968871722405651281873610765707086911847970701677269580517389967979918038543129995363484567923756274837383484127891055861943739930040125201908029325006399155673218799396487049704579676401896145676088258308600675047465022870544331590730554904780508805255012439734783245909380861689794293155784637788015650488869955919480041077291640924961037483438021681591470741382709313783235857493645418100605260238153994461385661327220564274100467113310553892944018026031260018629926316612447430871671868725481867891174544270900435904128978430119273404016322812530704260965399657781106108242657666665879313689679880894529279468392203019932070885527243332671338536942612791945622989826654501660850231480717627595704135879158620424537929301141329912540915837410057421847419048328954770400257587254832776349943209610215879984667371975890038473747664514265824476749526235811631992369027862516368878735797995101249561212293187652551787291273839457403997844315012992542454219137094651026933586202673247884253757302882990836826883729471517174423979351239768554724249742891798965663658096707950686485045110364235715638913220045807150607081860822143328175648020795503842486753333754650665798440032270861041397817465479989491940472719356437499094248307710052650246192560421495191190932661046684900093413412468000162458394293035436525108319701171349180148392774626208000650792804786168498650450948797826629948073837705139658538693882109985496979540830296256773111161716825931660394980407152333959210753592795445334687364897343292666118128529334508430322955044511131170143161077900928955230490688812495081134193844571488874617489166005020645016402337149498166843806867708738203170305809009246278348408133432603102137137748818783666110408776892378712828881349585941285067570089210849902353079573824168503389394477980306006972908762275046662233392425575768123741794539371001405773595394196530149797348178213408474396605092775082024344280387005639104786913800831018804943855399337265577354617171411486976918045646621747257116839735321966582654038406173146438177049694005233826109208074574953074431107374451268629782557534926290980248387023677778043696940528780175588293938069631690321647929898634592261178894965291262176546797633877643602787167855344090985193692078099075797890980680463372746185827628521913456456313896905633519114973506726540092073220617567912063618540977211104608027720600696453672370100528739900369108527422889341095151516648744025679520628784118614928200222052604484135678431217691877213098711866284188732219420708661066570420503677944006166118807538950452352344906439256230851491659446808388831562360005466329446476328899068613789353426898471388708633192588325995647996425392196302065333465238435992128722903298264659346316934348992674750499711727705577251951629794334966856473591119401634890410799967751180606344860749966359737079341442556626039351825952055481243285418700151253877055177934299751052185819516941459377492013418523024195670696147573630820226814834537630457803903232167062096323109900710718844200389951251753474988036193228066562573053791485073995530501937766203772068984809245299742127109382765735531545113166491081898015368807561142508540711097719351379535279905456750767728586638989124598807335328236254299686801608797701309048965910124924468087893248191591142245970118345061248392243972613233830899259008795433393906132744797063319269348707940075809250853209686981125603940999301341787960039855009235458467089842444197979997246342584435960353928925950629512708309136758462983293599628987156450049492387585066744655528575056133155347707685761871243158103570790577143298307576670847103521556596995583158743094500710420260597641549020000578959543548786962865876956454653896953070603906479181857553546442638592667856783180437486629834993809558799541841589322389191677057172897716548653281507793660561238400175761565834839667499050904096232012999706686370688370815022526825525236673472775099035102914777385351781337628284977576796147068499280617183542811340834736439056416029409848270708572024445255881144350782955419090484499578627207894817959707910282754172660119918553120018961055107833135444850959679893189441976668987588979693302124717655149266042808940891835419636964632066196049973686633085302569082114378016563446618098485604391118482292750737015742317348857653989223449392004424943937991225223618600979875210001712608087000034149843845573290365943584123058924701347548672873510580651018594482110279295957212573417998590147870072579416916424333180144019999480572511721461104962092079185428446138855080624052385615541550812490055341264573496807339597548592062860826814853366998569843027812234003318952068089457693208462033987293668372050945905025836075814170460085127681438331290007553732485043306439730295857896787746992419149853781607133164728904685151795408158633743228036884537147414324787049194977410930503803633658332407473357065851537019448784328163640118519088159224726437715737694671698001354774020747505894583034839704402397812733088434333750688033336518010850262834403031320144170066837592723057299438075064727910974202888695738206345711178005468541520261422531828005746904596602782220793385977834935159875112074056242153365679553183619007320994032070454622785996229938687442012799707031267400581019325827877514504603583774490374140703999180709809759950053897276165292951344680026150428331532494744847527060206310751683809833011179009002212543374296102987247705438544512084640992531423858620921713337620806629030553821760909968341850293734942106173531610956841476501726002150135365629926721238315963653177321636619908489140318087448108018515824490940775310283316867743544796976785060158083987302653120114249807631235522188636249627055700659368803291900354759761548457036793894082481446042066483712043759840087021608224900154432035629749998379946193621959113557458021394556990696701086391315949766976942893054396853749965538113100987142707825146359590734474395032180771704613555356549122144170448184111176954340159611612202398099419876408704501344414177636468853464492666921307304512814113359296176077911193122675980877589181961223500110942281254440033785956299842367967460750337906501911495312227413029380285115034603517728100742599591112664896613925975333105916345900846639641990862323133928784157998805794019425340506759222899609750372559014699840600509203910509614186742280983158930089937060284772758948978402658952192047958523873339911300086078850582471304633603122450000960485765303455641504344749575430981642365897970455160193497274364487937673798803853501570201312872405628684593140941207982087378074676500798778428265266413481581325281491783319400196629168771597286847315441198338450593726418733692494471393139216193017144696233459900549425384112420913081207372034965451916432641497244527604294216904258669620911326124426193035248845677364317473349145622646792328696316225714856036891953634859291602754454486565268105731751567190833076406305478280044260666428077669066942580784394479816342265810915213674313490319775639309707194671347759294068003760969652958228446564788123348567293038232138416122575911395599461732658856576336361135239152153583632963849280779914893816705971769733489108132146518734893507552478723278654928014123932757155941845278853651051988344221715114260191339719203733375923680621258161131917494601984870179737574912682293777287239480508904762016231396056833370390062550548074445765883702462726086486640688331468073490290973731657781861170547146351042848748936230887237058290526503988816777903032924092137067003595904300843206176044848106520012687831751185768639936458377991747567973143170684281422120562527423458080148464703860993756905417943696583538119180564771807104434955308154737914245136147731570209124208624653616357221951958467603589136141814082345685667826637032101386392965861833691964417692681003475285323684338374882767355401573421890683018601666245417549524929314531688449582428803392411853714545338405376155986164749117489218659818032646893004397858665403991262719573229493623831514628441369307418728964067644265867459020061126118583487102429724748696805605832609465993041240739400402349762021305917771115179020907435157756084041188208729130599260743667405532943071260621386179479499910376138800969979907873435451630756268564985088042024668807720216789177804055480928468922690486040024445076477785876125243672195206875314629520435815057291141402662726395277594389750900170213229035336831834590977539526077292433688539448665632991863896450949135601153844612042515822803549983776911129124511455935940965491856174683218577902793731053475676670394870603959030104887964820525177687246526513510606154836057843307032293618834094725118407436713280385569005741544413673488959872357085394388086060774300080554768753006393840709172283395916061683891054318366256027215658936071348455013225436546652124178720793430042086392142380231793398394469094185346491716892478600424898981606514158642018193608544088912635560265270784994570410589235833851096628529456478532814649295678718514981049187315839466091406962009318505407175350238970180680442421109072980648869154626224510510279400534526480119942243121244432994283992579339256483324454754244765028647614133084756147587657980282105312104339377610026944860141250188749097533953689926773692821943897314226457782878511794624123106222370457026320171444070506748833204958364783225851046332662868436907287160970926305309031878688591673834118074059349827454303929690564624635240801655731724349325232290962998296713270170871116134711928723025129303001308124135966950727194019902975184564347303674974992180956136682928692754762874553595798267439097123856663972744014173963283463646037177819746444583665643235817805246309367233628684592679280108084262546611327397815459347294409931904755088344158433914628999295303097457094531069405874067662950608004055046804734456634549262792127654471993219622281202792735560027035437472181229543460899578365481700540818564606916473172859814328984796675233799223841861457069249984149714401393253587388977456895064047212647129818283812143583572647980963302727660929352975657596991511432600351115504279480904496182799040432001757439464638915991333849612244742596394063763686591524754414316146114984936377815532745156589165582543751757468941303762759196579971923536097256973089020118501659230557025317350056052559240409443756822155642972694601004285691730708335418311451091048055779297023825760556816169366837605733839869190958277770973528321407455705963004795299633733617860760730211478434788294017400719947728810273450751452482109869952370325135411821736046547609665402140488277888630963110436038053446184944706084004802596493163885445972789392258055586883544354890026152821234915839768166225137122602104552505249787239958412672156220646955415823812792960627397202392771717920755102762461033495150484491140976155027253025835928432605919006876451653625053347318597061273893138093522155669758300208129928960618955174923703263131157298489580812635776791208754641831747303335298507708416620931482475258030338252184867073710451352326824832852564130822947038877019782945661390368886794533767426202392944905054847363629851509233837822030636799444147748456303861437396876788867290033528311616643744911804096550030525613902832537294170057438838561137296446543723755595597711987888909164588835193283237652672410510339135303297963197071905537049787641734498488668122047760585703050963807315075133574277391123476818238240868062888522120519997192792274084827418406657046636775266847212930807074117269463885498978654289255228541614729122279671179423439023355133305549249386668211032610015767332468108474750630982459209439483953488524517642303041456373068708636256644745835207657284286465039335980775925390436788705046947980638193745787476596828545021524876374768773992754811336744868112883365655564820495290546109769789670949564448253791406491989626205961753726920599845536566411131927818076304489005567427188785509230900813244024995722329434708535022370768335491693337195102795883978690866726519182862343398332473467137575774092592697389455584564821867853988925572003446635635149567950398671228013357508998638153145642103784246131204840145169019153750086944832744942551503405397826997764637652472558169869265452518935891728266370351824032847072067140433786480512869055928013056523521351664671588073485966290313175682850150813404540300495916619549016931629758862074266388714087017191910877271304736793942597806483902856794002288106734212307745285431527510173889740790812311460606191670498363731058443017243214852927746883959433529916881417444423967887146668670906822069988031888750251218669581944309328340197102474157086289857649004773960731703168520384938993963921262306103392207823306134488540241988962588420983254120566695060596996456772716591740059303187654732292976773581721223842331610043555914546034389078021652883063608395214946058151315974407262274766831180263705503203546688038544611428376735005496020780069907910583107950353033182906991255428610154909378570589851050208622377742860661926606568336812662822343579223759679357376673721118132873838058864255332848436128559835318372204896436772570140021983256236652694934417137045237911718267622529622785619932926084051490901472822926636063187768890099925143724975304898371447056282152962363620568548854631021227695940098556916256099812268027039063144383470207390475318469495118202547267337558421807390738655548947621542981895153947463699180682087505590512019034259201037521977094242557961783504726328162153875406279666138733297988300654069446640689057875186740601170989838519140442358484236722349269097261242624251834898082155595762297771249516460484660401789192852936427125531700335208020921448925811423364174129652147841709497234345713526322693214662309815950716333523667812771713827836475980134322264123197537191711217900962597261286617908105760017412231252351014821837181907350669299143278029948710626762256544542324779671816306278812968851377953575983750584324696270085883153117844174605674381467998909426131920785467070535195790890059183583435623091511386284656856031081189064319513882246652510256053155773891943308294408998177415975575530411078709889942476547003748839498079868297126542000949337728092864944364762603905664498206912590547957613996252063429275173967127213426611253547521497500317717113245301497086126084599993413406162052770438958667232190053706681572322155359732261162335430323824078770077279341986262628156629572689220441434210159021027259311215042798998096856907999419206033319731688097099205680966691306888494974130793159312853321450312680582826948532304603423443339508856788696961298972918373728216301959347957647756388057096959250220110174061621229547394453560927035809060736761757792699079856237054817462237090859537837558160333983084215990230183019741152362165677810063660649064079034236011154783707668240518608649431790294872853216156028413120047206001376917364286390674969798053537105411150906759514794853377532868004595299695514188053422805696219341362632954781296728708969867306825754595415753247599021797700963492178006519279587661050062834502055450092614702442101119110369145927371948759932077257121457057686138247929550268383594237714901527118008550336269484286559197231033625010772078651672734242054322088197232793572821773817039980793605262782995518046379955871666503920561203523000527134224882910968466080335542199945045567776501865550631860598656921416300953478777430395629168722345005302058524220774981098545815535533580816329922875512812204051179836240409842550749923000895204313316341211963937083298931381723622905666337675702850390698174584635539109297561415686269766233959275561759453448236558472811210074694269857104230731794379788795551283613148158661000924307409585163940594570475204297443620329612784177820954414772767677182477209700097055672800117415429279665849612099559523591172574752888522041690853077501610225744911719248866502856992872046858676561313909759865292605579123802577837848643019881474026192787775321942017248221912979585015402908547086599350966714069872325380915339577042126467873199093130363919768957297728226150050712983688023849506247677452870057349840208313876296505250807160377098276222743516760540808420882970972332659178814587803675849586849919905213446622804364541297947523468954963141417653505763708623051001901358826147829272197239437401139234417398792807857983881417328323934816917354920068360816852436412279154973065976692972907093631788581265806683260257009055793360113209062993284254593395779703419405514067425154616253379151550952686634908700018475211052318118682525714853452025939422138132854841763836318335966711244488618002045948315439173985355489912695354560112385330648567886862475577974638269807302269553969867883745875130682985246146478019139627446129433210070743251592301630314228776388077043437642334864351843493250669851147735107698046863155319620511377592634552732561741795976052976156566965323783574340227759775264200520765870305281735487373914748485992357354284728970359122508978500873463067527431837735548057845092439810924259011610710349726865674538383253806735201194952726122657890889458532309464010143683362769717159257142204161207198692024927284147106008579582092017780434087502456720101130249147704147314794168778985483934109390608976295940839010017817393262015424013230088889190497420397672735969171250721858035851925448143079750869724710796505347121827307586953755480621112917946713410981551282756495366057311101027317979579798104715925513856216000987404404145148648514372476297537977265763671926255763417423609882993219380331893635627299352337183683114693726294737443113986913251480612568341393327203431468770009052179274959423307891948798761818078350612253703497714943529175858388549786092420228255601687804546409034174118964695366352958900332826506442586509538639706622520650088743108979024014106285695631092402469797405929615256980472777145794556516362894780414865985940848916691301219528408622002638371965387379613925900285805324177816616444491077141367020680732921089998272409415976466457336534591865463083891988658810707119385905455056481528291385686880535532174249353826182236341194462804185008219933101724692150444123420753273162729433028973289758248664213544383496774842782851630776879385701242000566444000890816960260071906710687077950569541324198286517626656514611280431004481929763629512002280081512530958827433834999509311915243759102175520879970920149007180062572544552955053057787999062156670392785332384975111775808524051967787206942305106481306399074018892633591304793082346284770689083969625758545959365593469698839993959025759151270564203029336432857599259949014628266547051185582340755348063918248019236064092601986073807317707423253911430741448847064458192952047134125520275310337608172129411061276269565483222645998830638103748409041189627087915781795104803524420501999937870309401462974532232646774501829804590953838977112507628992012439100743023535913743304455654462127101433646650859214679081246800412621412229782020845570805478244254865035337565859626953482833441419482435729034094486456026474522009113859009072010625402986379224886357206692584364776996684700723049467271268593134351714504979819788355868759426397161073047696417077880123958426438881769691177025680571407089163432781767701520466195673813418476105697336143376397618320087331361943703166356840635567844568934977530049776195220804129808058260189027186577547859556275079891502883193624964253017703236398615393910729436116077652170081231368682002769993341808462386274523449474449653688440329039600699878591584104608380285181224973190809858483408199654624263825830539907106667364329811997892539620385202747909895824269098212967427011304073935486354221400797537970852085133504604456457226447697294017390391271593863470988341448588392479332490738516802507351864663926701809710758203654479769471339812816381912823942778185632836553604630259304488441395591574421265922412702424823527651192399339146232131130868618658473190955163074002642685327988482006854809503954821894014890809234122159679028723025901605437484627525052314384248781023669862903375840202722463245098456670399591806093534131827052266004712758063216027829544367631482502536173463795517237340269132704579190231428940121816931174860040383128736593968793715397481343492023937454372349189403608057370211097772478411796342897014167199497387097253809221985640625961313328422098145251132664733530235539502148764414396362756982112124017201543535113911358469175517302363497899135791220071648165842418755067373725616704358797561704600398621554405180703017394506802176752157412652919984938119206507567386761635904961557744485026821574445893722979321402389813349101228346141443016544945108557932166505296627003146066567940421252617838568005074148628773994741637781030984102216050585706680523404079901079660489493347683159042390548217940340045219805466814026392066264587746483892412192574169987969652606133047851976053666436290368319995974035635854182069275304179696296397687141956331160014173087736828073631464039215306707705645949026281216947737812327650229587745186888472636464239086741090454391052010419775735541936312957655782209153395859996619434831143211557890269825311965543291625453028981260498642391887868647007010259392517604632706580444122453771246371017336569822210788029617668133398532409348256826585505574672406689353430888182855365124217440260578796410889833797303523075072655672631625911709254526167937315675872232244970226678472267165245789641484712161992552440370477880257996093227842356936148246178854849495826414763537293351821075103364311126038937682439585595197214486941480969801071152155882522782046635510982140923094980731509107974171133630089689159328935891881658634180868681801954352057538612536227089196373818416167881766929361327676718335848306149157476716191702126591333989478282709510987566272934709973652899106048301429668592159073380202339363577826400024063978820845276602752937477886631874532403041742573071683139108860631520808522686168212224754857304863498591667164410179862050846646749000882159263852987415245055650841033253374149950409396871598793082182900025800601188546309083264798611114079556350205189851684017979681608904482422141416069554556219751369631543071498477236668492192781146816302037022967886166510219724625279899169890466524914592118929708373471830443935450490086616043565866298786653503688255721064504520323185007158438230128536071072212537313043543333764851528306089426547277418452247425510727070975128464925862596767801770036759108498172124201821258672294847638699810459353804993195160110213937697956651766622624276792266961843085187409271942605232585170217793684208694510234195761270471108415069995408522943909300955181169583837335459781313781466635941409213434719148769012831165406730442071596272584938705024610483579828768340364833281859323846732473478444394818964094409251251991888972695549111038703509117134240868527934224165970146866276013807377292076970938039122157604133293054644486980315300990141395968131072725892876902775967191958925878094342960907049495726569440839824006824573312045667005110803663561111946605971813655436578072119171561761076935317813457169781946733102060727426747139487415995363906847173917694186726441313021720733360577347318658106718979091376090462429017031714268823152568655551779223362125681437478707071461228135997466567441282725631363520586209737199569319325073560210895804395213456290537232078944531411825423873071662981804288205696765224277309244025878498193121887208178784361478224574682148600115502988445974123262605088520970601093923020849351924339322822293432462264097179926783673053718938593209661322692279995326794678859298231331848270389292417674506997499802464461933149158453742197941084351776694873977934026940626295298904567507850146538820986878911390289328574730530320468226287741358597175056544953751327690735801475987049262982364649924478124872607678281280685695726606817721110501249234292360748631549702958712121526025668534403845627663378649512810853166079076257848571008875605584619461051968399367432999297371248527964696054839395115393029234019932117615708550170849188071920432543753194690603422696546923212392262352768964763828429840857764235135001448206280042084919155527253818970116726547544206962106904733865625998932122523651721940499049842456740207175520405353748092880654229210057470726439686753364926268135730162719898669908262655477918336248696172221267624181140186636230041336458993116964322805690584791809830337393435431200476809027070143283954410189841368373996491417846749185069535950979620643605313926143722161430518807341282159895261656860732997097386347382933964650940546204852476971063170089632875745070609967673388771833029192225904471888054344328152565171428990315764769215072340587947356332415115646674932320211776644203301357498242387353407488643075329401228182382775005656618134738398138415790868230566157251406616160373823492038580078719749082392535995980088294514838558390889617868901798645502339682309536229953313390438708869925007657334704035964768789278438812999127143400311014414468431922889117430588693099020272796383262729759967304465828191177890707801991525824534083146082062120702815362664330003509139133705338985443985716373469045498208030686451177991913925886862109472763183339455591144263542652400522259536823294858703443295457757023083585642566926778523994631649498036676759769163016464039374350485477562512820734972766761992727942932686095923361888857711859507725206008997413360026335898480914654193154154177216221690176203347667153204292695917342393682208089983678458989865354060947965927997918072545752245941185203925691612022964947678431007077061254301338229345068555940557879099990567848830787348424040092979819155272826386053218544679697655989846362025483055917102521710982369060454790992344223176561826274412237359044950059431035249672275113542305586232124743219172097978033804444343818658017155197649468105497792542804529674624485563594307614654043205525583099389869109939907452086522462287192855216116245578372483814551890209293066249905758349937668401087133868418957680289984376047671550032360162490124834169613227273438219160487454352639793598305124213084374981733159255874255632145090715590527177359693984423094938124381007189557012781231093329612672638126884242620765330647253746781017445836330578100595410247659123278184733584987910399713910453522011200428277385486245580228255917315981316754681625942167956432330216392894194705997024421664288516953758538723056229304826670253890505777015387927735742516984754331650571153769085710062897262699838344864757740302369458320905869228798833846573901902493065590637152032778548492657099970995960224038940639084805034360389613527294144530829081383621519686798612125051667888880603163252214853694897546611641552538830128250122487425293471169577571710294668220501506388229459044775587482491766456855121610494562505691565682868224848758016255974701304681560337829404622181684622630034973812229990951430885924463937787843858444925268262923054762408260442476239534645928498590472717043750098391103567480593097061228830516775757960285337032021190918555309000003968097911901333818935273879751528624720992936750843795584394824010134429077406369322898545817454893832445652188894442189556427990899750057808423340523510703008992927891974072456727839913364572559832505246829665247735558733901059502528266487337498794474780335179026219430417926197937585559313516807777785017952874791607064518638635461909821796890883123293979545316710293628784378949858889360406066583783143518614433897091779333365502514908161970630809464116556080504076225734039282219695153030537941682043316006536955727713171826461941843481393488538421933964616488501163151759038515342577954974709560449779416219455087049180244286713381305190361526410979991761428450162356030492406432805274260214012358681748053354847879471851464668816983442923598789780507434018797960053180604026485811862005991760108146627215958830450788642296144370206246120072727664440671217514099367594538545958074851762884990722676598015043858452674627811636270945545717896129922473289508050978354161133926950439566502031925972362437942456792359085025419573693867459504365243778227626852502950426731164595274390646836290869504174469270082457993121258735966445403421460048181501293856576905181739430020471697270926387206904319994461290233395193800531703207781415295766734400960906547809661855608534923708369615712743287557349150854439642898604810683409453067804416724138218211119861674040473027801727928303427510502651620915376667732859686950237038597804184967060003378314164803362933838112799327867011679053222085029451672014100049707637109313198331453827898805623927515500437276316259971794465143150397640890001115903016149527696067191793354279052581866458447615986943642163476602087447960958031202988733253101192709929868210944878074288058263060672066019262887478717048947780141664732205406478581275878104654465648959881960312252825697799271556787892466419946628082074946657923718527799805181611904994216068250820326801616313420014089397285917148684034195535000734182585824914277433884902992598393946511292894072984095869598371026382597078694291389636718407957618585690392540467026481394593046671959761580667803250662686801932479641888243381925930306821052379582851393963877382360558166373410171076566207426441603447768433261960030530619100459135746735966787225177047118556232349161377014653863436613144575626836767636226803763883034935556425212324139977648056169224964633372377576820635518973014304178801609888452118926442714438011803932390816015046199411865209410605857679361435181154884044172417451196393829743384831159206986412676316049955199765898856370815526541547951229368792876176366137710004729856940023166643969981411167969913994780225299810636396763832372754567828571795636503208788552733923512537572046484345463787646706650818606556268700564595145488529810984950125589961403096893236542376525127045920814414800112174816012495605575312034762155289042893775916488500628530858461170789844559049455998706106159563995452509140881912349709789323822123422941507279638753271868950211743468765037115779422123958802833913970789867193624273378518766743360389071716035788885213506449174604646185332050056585918242822408943385179770945547707418973952551355822663829411717040056035742549733916714130397899502185145230757910393476080225696492663176249292831393180334017361207059933626436011140601559071874630271487954122916099943133278284596556423583394597608034097983751871574479619478465094648229586531668243421259986888362443825318031870907758577830533811974956827253933839928056792301572665358378242997610634383176673154568370202151675956300358962022918847878850432575828113158404002098404566601366745039312147703882930374735190206011491377008953863665020215385339437038522416193716721157290122774276997786172660758952505963790264900450142715980705254333948065953830326939985929966452863526486882642060179587183719805371151017038973420321255842323762012958749397554282519663486860371020428515810922825851607785757837027528742163125345620599282449692452702778220212638014815376591502864751570739425865137370430845366696749407226402687533812240702342350626881172808510231119729745155608084621352695026171764061799321263936672657066132041115738722300993632743587343221837960552700680931625401522918830770910413540125865304590192312103764096509591778937525806847190743548438455541867037909840351417090844835842958696045588689380293424000629718086110318419226182734198334094852017849902370716465645404727215755245548285654067461707991226882532291809240120843799420760249804259884442060172445439348607951487847140110184600826777023674114244426394431289435437377123199348561350065659578435116451481176334539507176601032391715435789916066927695793653946380271676057726583846139904344855690208257395986295349865280533757479356267433861949420245569832312156149058104146443464226619539056390599179157135318159254199450547945812008317207328700572381726943215354801208196507192158117674199374056551339774618793662380680193252133849603291544693434704649864785933396892541539895631142842510641697713322864867694251043045310716762050211093099845973766450840914852484986607361398379257340217574647676811393145362015435150187826004640127229731706980676241638158339913111114816649989058651800980032485744319941831090155932643869285033321200469661535239245056247280935749908474654134657096063727401727437388147686718136607302200831698298761103411215342849637922849148869605758771897431824928309175802611347573464089929526078433443518921316977143495229999974117743904500053079616547857445128925453140049895596164528084214537061078495574964927380308173996081192101110927543466617047546709843808332383133965656042627408430512660248660887011630445073383134312087072675858401165688246378682042242057862164771143107109513868806238805772701949169047912371821438981504844315506024199835469711342815467385333965830581754537845472110770666788596268230749770328149777191765775435131841283425800732757705247462524686086570275757243865143894736584776890207879048350945488211083312362184764606617674370116571888469049102058023340012747008460830806461293324081283669466288996719871886288812118670533314154510776482075416437774199195599084017121102143953825813626013386018904819959407288061426990838131936561167382719609198519145288803216204071222412363011285719299320526861979663609234367690246216092441066306082729737107423354605751358911908613635298786625822218839319763209197949108623967145377121214231180628872668363381540401871592555699729493726025531236495810110012046607595215878484503951284476135032039403485680511894521008609065075577591981622836046446647819871370502041251306469506822790390329727620826643087873195400071314303699101316114905595132921472290646269153818260462409946759520077125417890501547392940155937110972049128498848555617371028092377296869394173317954656129764499506851398876119432961572892965849623058274655329771918578735050176047790029501027204384175475933434522690941483250522925789415567277599322599208544330194616722052839177084270966059880938757992768682212189185681353141873888020707223387078381353660361167428250387037037737139540843411774830487282392532895230223212701004489741971878376713633936735128384220522096717062760991395960720158986846444767631694988857769594247807541695306176861207272361336828542551367000842491923447540922387379696625351738812710876763295933916795251233394811518509879507164022523001547171860986628985378176901543564558540061285681661947195088047130079342998610580355782439628917561246936999053974623214072392690602380458293432323903399536431749966076324065493713772050255827184637239072560687263154201336344913212454008933148757369302314710872123898699541780467938083817865986000481503300927964608757725773711868924149688394564850163975856320479005876104122650886017265497611839336853060724579484010268590731441235415651110359510485833132259341262237099694667745230683540409559331225733304635510049199881770533883211984219606370869834802091657795014857957842828823954203090823023517066892189039137678539375363745235887536540766811280415339187968944712563674314560342497794932229001724702683563320237001036956435768804869945709168421989808656026651548979210580618484173882319287331689614702692201948863012012894160351394460915350822776834369303729275969935251056532704094870241267857337866789060309971746630407290822057461295440966065195895443869238957523944559656608829190850048441000175307629915392490388838968550895029247753248229600000260769840716260898517408142504075374982013033313452802612952486391235899648285803309033961629109283088125818346939560775912728167862739211159705066263103844337897643140076651065346603627845716192010319263663688801505431379890351344213580598199671244930171547249400801905032833434252123287791428886193032293429871968751277873904785144387401003458641384178694732345838454281319719052409016728133115779823003270285710912443396050290874883413074511921550129628659577442943197237628737935154261945598851749943208445790524162404265191285334260572753944922834293666161141036555558486174886606313140520125767139795643249271942301324525400186934864364119458539209594833540031746948011448301727433498382495303150846019245557906107321129065586002626643932923708243858605441471954717183036854964673049046591955838884043163839623560570946144087486744081966666784253813053783604652747617505432941486882243050829169931142149358279703373805098992479017764581682045812780265869744425527777679695239148361213344848594479592121579958226481846433957701428285062043745397638986654897857032692153834918028599056315921394852780250271750761466807951391486563709886032201235683235192226154006784885029488530935293894520613367098669450967181870308860281816954855386155720755163260051537908272118500251514789094978772337301566618324914137316165206565687409718558042612436975923928001607182141336916683087265800116897572657218013466470121472135111686466701663612496167548442044899364051694314204405800829932239646659989325057525817891140244494394290223690198060656015182555955121999872680783282549204562020578992341698342906658941096504314667196261721344673013083583704961297140523202878385777323226497612012197453138260525225430343859930720496736147641250054798809636386273597250736294134337309184371584337168849609478400458603738151645033845360177588352373945551078554507773774933798091367225442439986039571588885778559663417089973383293320152554003857326850336208418880433110307804172330493417875763672894903355437696034804984073374356284749242465007279551950620533897484860264792063403684984109306971700512521091476491135479681221692815907229007056866932773715648418947604339817531038356307148327212883354833586933413667809436935870948254769624318826636430134262220457755001736819021876985689061798874413483659772742275323167293992734063896523442624668382577415927262476215430315964602039833107653294211140743282165070465812537898929081491892227760198587505726486119672576597259560280183380533166095730669959372268712874212609321835026180627427798054317794763232954362946964496558161714905607856812718891459273322036058764134679501445982324980441424839083988033213222977954169690570765072263903492947926308355406448985127710790200022752291271752559580226027181044813802769134321370136428607413951626286099160919754323680357905680181793861225212749501268803960920132315541179861732731007634956092881440073544533294314722193624221295696828177120882649876045163859111301673577505891638184382675412510289772298405404053487148660790181393590616147115346636471551251353637685472004547605532419729300872701912204433781040744330466824433344467463402989125331686895273137783608543093547290161959777678173284014619747087427568929695146836105962733190255842531691482564506377761591828896890279381164368672871056291250416419622034860167057607049075348638411075788154726406241054780120368163341818037500316450555129046850277047045650037008213505627636690327316324986228409635807030422343258503032222465443331086539416707302442361696395866891953436204122501958935535742518562147262353956967833274885489234256620737083344581000307642596600019734554330603160329229287573333391146420202607766170094518659816794468755926682635663979134894818829088267458235132537657956171746507652404206091046903135345447987671014007855356737184544914777649990142157042431290198946649628449206785345904848926743234645318045676275032878858935922989093879170463232020021920064768338851654925406395663164122811977802910467893715058364779459945229733446707418725947248056694015825059714177716875955470724592016509764948925945653028172437168237582068559480349917725490185303102028441897853586401813492292373507996534785954429136846267326607685703864421379883748946768662453675020715936195196383912653581587665642750759074326412193776815218727279424687600838155785308910102509182013968075575339890712582177280167526484215993656027143609514296315543423754844966847175789725303607924764014759921189431361025184512488692916212561229799327752253684714369120833361327722299502802680897149650541176174153343357655668217987907167150070049551300204309456560566803753015319686875365011020284192917698298356190045883052816774515398216440788751452172203583581370867462892787499254613766784003427357941336178319857225357894645872150175241493341173908650757793019449118475466452834905709110823916745772984091867076704030161445262931025338504382641062210768388310685751931191285398694335585324709708223236513113173390447912455656516278952384500191692765172376153299501061729137516190499274517602290210441174833258149574792775173477472372775043989084895494906105253861329945850099706573243732737020853074032898858001132539812307579910247168891434455632595060217061959760403255101080374460967452595167578442108831482971833795233186497521174867747440560029596947907953672605876375356623653923881775014609502417479545812641153789505486791532348086233207412714989924909530616464677338880130461869667945612670780822139695586081959106144263507848658566937706072631913054717143839973706185618172682427215774802242980491731215444285660718368520438692942435774346948097597431535173806909173941450756277554186080475016131629548845442849117936564377077699199678398131081612786375952067379611824259801442001159295151105278723860567997876504181247783351826409304410147330708929846659997729062071814740060489836597060042184046175594118378312138435283567811184938903954276038860715589518904291470441422087987703562157886105214193053430381922281767617984259263056389279516855964193312319596835669249119056948864165814917398122207369432077936271684096574299118213460227859834908108405738747141267235641834852050923924864014671012967660343864754734190203649065583252430957726030229594457498554618457583773548488911573305432858796525541627589158938231030726307274490875245059573127067108186956390800851339083983038567259906393612160637955006111791265043543136017229141303507363360954878693784280421607685622761335515937138017850798675243666864493756754448705251406179350914838158847461814745031563564094717377238717152239960845068873843428719754988254358227680467004679298389950253952336380637261031378031024668956342706178287317174398167435323200235325880065264089826046847112148201082673722307161153092593908650881783577069176180957369611671491316054620719764636516653540004468273571082021192721559461345609379983554940928892713451991973180229931032148083689569421641360467664642000300460778653735946980407312665562771750725917324981568118506046259765356263104113739106972235900569381616347327622402260246811712799265798990218006521431674822984958512319814499981802833064715136278666050288906986790424442478841480761221135753383851414868348248587625912211135345441460343338807510904526168083963105949440036284496843108202114262130018537431120668255992824087379973389075150849397699834245815617195419025606240547231817155693429196623778023402016865751427164753429468036146561216963224224444016856227769147653401494424041626939246224631173084926131064169664250494486731874737223092232252335592918811804521474910830802691075211770108000828169355426311602733967384975496843157923021435122269584978967007251056593491694392047017090908056125994072399669917621896755622661634823435273818426498027770473214419111079166882385931937128941661710280167320324117755978513992615750100871388811646344406562410028011796730461414082220217338626702177980306178214692963730442279499849061472168204993652901717908280690678658276055967742563989867971188628751625400901021052203588672385552059703395087192017365081827322157739166146503661010264937818321232207116639643023842105569825044588526539161347585881359237093584658795075658037232188188264959809086551945454583796685948850220633839303539012784216814555002809633116646293675550316427522412556813806316655958417624767465784046440223906486715525539242827794942241856085760372902474861367309964428868677624789420199739458913929203675504718945256273423607530680352121386509825667223780196686709506603175178398325164417626866780252368411754910598502234765349085177392563939213424389583566143508671848323136742390621518591317086947800297500567264372693948542349780193537512888480338122671967395826129713659898854958220256829977722495473368917607138152336073590502794563262704091905707394777621775532592877276247157135831059467339813865395880027162733858046124027182344243768368537173236721939595235752823038815897811453811796432183857942120240878399033448880447945328621981160542848478199684261773604190607081670119382651705315122025731665230652440035551938245504295024957977703436187883178194277939481374094711714903806637913311265140583356284200986713356533541347830561220330203556618424186414666944412131234675131366160575958517250117621763440308587008471424976330651858116017227733093441373987413390599930141258681779120105321998986579215674258842772146580361889992577000105189399083040967823636150575452086521716532434841771172989411331946454887441749547174476679662392218692070936855104422406733012612670432647213287848781194310923800616318173371547429919492905851144419146382988592243160753051284684036158557623512696456861873725201868278153149882227042320776075717776128972174231769039816726642120412183875187291634463296400464843716222336156511551969220457511704295574378311616399937394161293804550177496853423821947388686020602062604822263849995138726869312270709629691010402378540758016203829679680151594358693631779005744299299894370458156991670097528124991563626971835041749476704011358120826828348611071836242716748988095324670250086879614104299290752700558635448077643417899670738860793535968255705199373046736813567881144730631117478338178170230556852247601039952994379007829704716645605484186752744908437308314620285723582902236293444381970622232475520737668726839742391358685845751767980317580301531835680332952843937236319722519913247506653196588285989624687585084465854412851899244267058972645531615532925254773665277967512671344337881208026378372417624209002977570553276084461453656845344304349458150281279154008000952275074795017843846270421567819704151728590418755519063381528672637369023699924259241159221516264627559199134311153360315740761736738010392905758580310754135855673843523749158990579110425492907253598179598843239117801346163008365590541500654592522671150691374959215860049869975021912495093364106477846067237516306970582860637671883616896853558167123690616875287179641650729268616800462734103560149432647166601866939081250936878680209921692543226280686379620806701272378449448011067062551311617679315589318591446772533645190949459530340477134900914752862622016945218696889224937072121847714773366282159177455144409912024243535393563192071146563777685132698802788897370252406191493755362988392996224157340613193056950681216701379442140216357890899751616141357105664662125132984889616326195887181685891892405333302960011331213454360990225151544434718070814203014891129539112458067353915922856965813004746687699170076391410086268202889926652534915032882401307550777123598634398189608258672625450532032924958571186080373957767247174029384810164981539782550885569056306944109886604349642281317319777401849942008856944889191397257341687117656138085459108746001282713828818582292834713996798278656003759928803747357696659037785003391686705362647842389306229917921995279555883681405554713273878892754317696173290674273313157677848264964287390845006159887187820257025932563809735041682441012167850266034964509369830079462117491207776567767495902388627663098035953296893295401556630252249023705374105654375109997538591697294825954898208190210196690668899596863277254010458202365002767473900050018579836393825612256880637346916913120663676125397076056001067691961039470227855786656860998218829717455698945774310406701350665577411936591544056228190898198129619938618528095516378228259060778742962764086304359795725446283866561461910850605835002594923950286692725480229732502028462147509986557004631496317809968808892636684043464454472156223451930226428205872924424798434526925437913457828521687655585820613031481902714993789812702066360111434067834550048385764633009964195097110125435982471846365274262883151000808601707609774753272813005030027760349041169334176643356963976091551489681176153859118822305521606228497195626974770631647099630721629363192613432317618473934535427233913773002811009772236466059848623704408490171674193329072570564263882704159149353132993471259593721995052673108464509777397038749150045602841379265409644372678856391411326953567551062388035581659225886001955060705982734498863149535065521654059874972882048771333753459929197841321423665796193122819790352314929786483909605311378189583775896595567488824322011733719168295258332691970579882202834192254671246663392144436697943748792476510617927633273892982933288416257455091368306753666552416626026456902510028300047259854646007221770813738730111448221512895711395929669159563124472527990099313204187071891860946832951859775523159396725926740101441424413966306183777452470582583571831316037394671294327576744958021290177804686788262108895430507263242755245290911549639129739599830730887233476854606996645813776685830906877900395786692631602555419438240467477202311318148718387930632505146557309827264046855180460707160372331612875630970443116338999554147672960568380484548619826290356952857134587338114394911140127839389044754213440159180408919905663305049574579657312159174981469678679915591347206820760392507444849046262433266296220451213517809578935859701409820628125498210049801390897374562627498552098013218079171560489136137324025846825523369882136840358450676672031283187537556453658446160112199779283529244512107724080553334803040020704787382157214483596776381202216051920121399941757423895431301118459732455268418739567338116006100815138300612405630916739070732069948426105612979056979356013031372602780509214364507892069033541747206894504490781385831533815270533945583511850852082136383632976333095423885680348159705865394394103924102719908779147560848424443219736997180009847442895549765962885251073111333964996329103818995862263745829326480387418318310852915499146914068996459229660863646020121370976268568588315156730741061037083254164892212221928042684250838915810957968134049469417852211090321408089615429097478938445056138865039834080391291523860013384095556505053916732798790580684111889842665994025221875002813258414488942618534370835121804591122794344817308697360454680269629273714099812632421680915419544723644585332359397700380778875794896010791253172528334360476855522816116345086342088160999717524200692800538056872677487995882922239329268144948627299198707066985921940875381489537719486059692539046568510632814162807928310725306638153715060154603779433170214411908344778140679450823328044129362254753797994268684424482825607189037773266273752609692777439835078579815397055657338987890290282921496426602838505784620741462057565999186184079527295331238456232774801683274464907219478975352362260904499329093791313587891374893753667078639829565285119542934155548941837414888526842255138295497119555517518728288069807044235793150676659905543722613589688773900708268549460978310392080097390469519118611845675473074710522535937124119913073749605409171753241088596794460643495913934162128054113725009804043456700116707761441250135209330117610476830881118169783901039521310954261998028552642118183319887695036750798323361910317987484622254483474237035012385873274527711770378389787014552773535672713904116640810034297629863694474503406205312101336801269572371160140280636179384327149828552537675577623730188946084655851226378630861431018771881336738907578545553067138526092407550553412909504665509405911684405407326914729747221735525698520655802988144108842603935554882569035941682828184540614421183357064289768173893811202417118715317452620478321120155980956242582049212445096007448193445617082739082101241483515978293774759994990043698018728840803419888206826150927666512040860705096987118097612357395411439069940697904346524143011195974934364520560715177290963405700373781735274415030320961223255251914798973690166491836651243103742898735587422047751111946374303719760026591278084896082070320086087022516023587498721845824327943115960998377403403662246468131066614100218518575232561790942459383171837316255296291905323375839985660924493699342301245533039181900301131628631792690463486269773916570287304557403047138523967588657490242416543761417293605562723420244516175237988882397724358582463117511857089556016335772173338389749302423659611127519005870440499428768264655159954620549336669903628164667578847735804716415778180513978359970574675325741492326165827971936903746741146720954392140543763130561555835726048655676406759001733435320702188645913211008379936167773982670290082620637769643548452079492287271122517502151473827116113846965455916510827635554502932920845025392299643192514378187759436573929071580124527015961503258406106713976921392145377881431873596006100520577954877803136406909094893806024239886110364329977274638385339931930477674759670526429322824195393317538802440013749743743228530221480213632993459216451198788612023248612801718971366876288059188030797511763859449669570197677231093420421636766353915223399670496538837595288232684715707479959965747266660909067974811920922686213096444990479995973342331331558269292907190423211392727482500076530967033986036872115581861642536689327475518930559181694453400645811023106089070500033806094241997247624960892417849305424009000707928741140389746896917804002810823805091880918901319783444039463123597162298775502968950473371757321920334830759003432441209051636284403719637427330931854866463789866506746530034033001686651887943060578498883733359259958072105893038070327706939184231077439497193513485543234685585633248383229574659872056738464665813636223477469489688070218830598482050750512482572221820763446002965557206824479039500611614671558931339704308030072826723887426595520884186271322768668159541772191243240024922046266240425294364460137508322024964236241220534053599423188321545257639277917421417385475915593569571562055681769685563911197477522237841537995631103023961453170301640374869296340416207043237719881973940370607565920429981837929509120128047524844258806186584240858116319264259851223408815218643922406885675124701641184900809368282981673660381489647260339065039033389127895896121633271475936563925466298309079783571001234091050474509255207254475670627660416992145976032065162368428611908540820939030370788624891019482383651731417217865093460360081775558864290615561626156363387187901266070397272599595733496223654768569438661346071176052347397835930421364736785656902717445197500540768358518362332917384676128690781169240248184572387146564385505493713602027890673347557948960412382973504214244651319705276599140468641537773616961986196332506655425745615009235743310635215456096916981432105677142167935160565046635582897674984958172971923229798965861900685856782449756673403429658839563009880879592430930195397421681282521497483342562955451653467729467183247712769161640252764293721713959863359722599276522227624465658443265967967870721161769007387662800705204405889346940666860281975214989380660767750821384635759084366267819286939099525241595697795151099550898523929918331172860421153015843993696848390037667570999991221865291054409261076803556560516957782681542986660998720340394900836628371099088306140877349506368077792758103983013030420202875791797948192081626403326811992523577798414832586693791113061730293960660099478283901839604183363201786985903042446338227716133248412831227692595222349684308394913076775082763680448521675663064746642243187531929653192543739824126197787814689744586428958892351954499100482796146224554634838996583548562049589693605114616876523979709787808705418801477302994669696003920443158425140132190901805052566073160182838384833499245914767773038487701976984539470352106710822320099601863516879993356628146650030481724581687836266222679075614546130018614009595073757239830055745240667082053853710099413326203210292844450700806419898073578617584668718086452008047958998667735245308782385267856236451074697442420404304395745567554110922693304568092478271108347971364821432069038355158435349343604810602750215063287471430193492271975161161470891076895433555877247018062479086117030244659855745870236317200597587327488414057626391825466856088217017286642530845724114122013881662752685997275280063937340634427769594915277870689288214279741249431619512877603997652386703527916039724456524909911060063665878286580142682387439185890532127132288668350917205904870372608646077921567615308935375339772361506794490913726761964606081953462096720113641943435205916903582751490946510728342854083420029101994756184514076102165118349117749145313610520332300451778426929671584297268940719767527408175563804798844751971708814097987407901226056102867489136355974386291150978429064748115154832765277043197321177044935963736623614976322243794309504931265783782737267156769671006945318737079062250058786583576708861928167296083052448461055467858958913920844278633436407047784277268770352767764909237812105826220475246501864475388052621468185784156278554026978901627439693481972861940964050246547107368381491056534226633989448077974063873867442640303202836385412366982927327004094387688451823353786813930198061162081558787373966467110940189526086810887371969964667570734537408332727754344923854936501459078964803822222069487086391580800810552454380685437248358863044012244202272037102371749316785352874976062154613666522116793126892135309110947294450392642494500618863648830557222735556204020725717487041404837440696667351971087794308460405572656892730173365624901567004903433350160218234336615717044343547399900726605310207158350867477264812331085538245901021101176070524776707032677447920417529767851872708782844140342834798082028008834139086199477713610075339836371636924868854808553513720087115162169980821230738581896137743853682652366763203068875946385790565221414544670264184366053261156431848577031288604132316940052415021934001418332764267700459159302177422112018539589750826994817110720348526777647631662865098813675246201422423041006886952649166404026819293689259160486992975495305877781306361832892836088227726797537412935799012517234569123240695930053256841961732454324284921239695647972396145442096286650965279484093733667953680753924610219484409369219228999474064864382835443263071766595337063224304586139414207306847128602378841935860010106123759511224775616958469172697188728968495715904355745671209661745167117313906189783879199351925850033287675265127354180588570195060983379268322524484697842625474876338867687947256744278526604195121486362187780519692285197201894327644174344226408383235871532470668518921509204275870300746016678365692107297794111140876695596443486614001801360011494326564403797677640794829758994901599206327074641128898189753926971247565964387048941404504209710355426214107798486482554630716092074727903119682246980790220178616848224982732709828758282332811518367157175667187015449385317124668371989867696324918943531559475408507276916981024806227148136144472530247639439002431105541943593003747788705993779307520423017941321901656213286141316866632830858524010091316469869102403126655356887515473998988787440659899700051012216863649915944789835026300591020237823936998122716666761921570876255487716184467691338454531296326622024218531627309701084352630476773188877073515375896854224183877685871000095780663967018111092345811844262436872639221867707149011684525997143358707663714243214041787805461498591245547934722361526985945099786502619613101790399532365190431716077284003132554488017108628261402095818684615150932245138793946244892238113369732977155738885849648896720256530918396800199453692410307459622895103897861626327389288287534515781133368641227922499394106844598932726698712205075033107878873165974976822822196274819603474450943305536177279129969392894592471769567156274154036655644283102173094876232291181468301252434711462937813487726860218298767128461818004832376707267008233834120221633048153875287971588140596635368561634124164157832035897748137361776909299445601678832735904462508558935701095820930674412080745142725084580766247548540359247068205714880065248950602126465824108816235874802660648060670778224158349898437458007812780983701907222617749634972923120701245105142060526993224234404601919352340734759947531843680789764731213725567864167510019862128364272572383436665782956813682572468130096701023524622532873105209270126857643449599193165481659561562582390392210503944977245374987170138137036227156995502892447974088158039673975839124049002925831154294916435671918411831345492753053183018692775087830535249347668301011676097443848011948410293128319919352457580849010487046321116300681913698755220392915854176992477131868314300770023044604442646967312218289349555328636952698632495586800963977705212416154215909618281711447736477407364389187143072800306512880609061642943972211578656822287826688024233603012577901327974214882688419794377059079941773435510851923475566968561513142927806451856142981057727348106013892833996260278373664559627418543378887544551266462765979058974147325760970071316374898700158228449455279622697455611821482218149899036334160504937091344857720759015291633688531747838456067170953977857097443703030517550967736692186417007437465940850363754655421233395327808972743217394154231399038051921269891757034576053877737169210730279365711250304466327756609956685360377611701178051999087550594319655182120762585662572094659430498825263437266314211218117179735151994942087407567586770759696583708833233924664620170061763254394553735946380493516469808757746889556871538558327201187850646102686673023043889950318754760087964991902788988716581681198598268374290441121807567618119690392177453016667211960823573484814240698950413984263169630328888909000723717299737547124939270908982315898947522946293117307762889221261630057204274012144364723963309376567241049629389316192092000403622535029900258518721809425413645604531520058660956048874537944409018743207735031912359158912185739719685798137075807121898296845993778512134918113559947009095407124619350238497344960375602595013381648552333159515601304756366607247184392687694676384000728157912643780482248193162106411751156280212868918259923207085997281435617658215222067654261622372359748172715809061281275159317106255106464228341925013511830674843716057860632906319801575837800016788511215827469129247970436018942805796135960219277132318153958144670565801409082696732973477038956108239363099730103760959271295809137946193169941533568324402373738019232787790872339163145938669613535560709491994264886260896488440173896010861146062713237112691218241534199491625593700478779927351119555171156673212680843601569198297547488998606434126584856144471779030475741814724381631402627456227460028198095375000195270728143949718599121123702873565712667075155562372892348707569463175505660685699952241680822629418763348092611610727367338468650474009879950530239894668865398725474894228229702887889433916122168980646254926535241059917354492849389615112044836458066948671072417382972311555840961181487304222671138628457898657553013819888909088725012980007092620788340932641100852209544787084667268020912922728597779336311320205620294035901372784526130567223281765466702023044240741595753259831960636212981247183227094508726309044891474834173001571632394397675422064062298086340027956221832107755218663084010171297531233642141212102671860936284305976445147722645549170840424466222925915472778970516564581418072305847267450278917339366102918505459348239178797738760890384254010896048060391041063210598942875437506998305226948569160316438076010577460925042504024324381463625650117802739512459069636855196204106535812573872744437752868657986516606208364962320410507972979007324075880644309212963899623754904708841492085350226375817653662396439021243963065592610659366872055541533903496567837369988651512014891523128708948075957053348316261113397260456076309366707694116106269203324315393809805632234939489443381666853042373710254822185716914721741311567694115212498103572729858144950406081111694087761716744505091775070755886593242269654326407223009038402584464774042852512069803412889383514612773748361445493127502662393110450203125546657805239763258451294507311300916245463980797927412476862847288365533338577874167192113102868582816042461110563191778047133752210056972839404867114948762035631419594114731713303606402568806587124309260018129457713913404251067533462862463494959084311601837211198700838163916811371177188964787453931298357647882930630230446697682458351206650226619459739638154842667550003356398799499207668174807217298338966765870094521155645467130976056580970238826879078075259934197390695272814343659895695185258643507308393822016929282219312675184098592178998333613533115499100243960429320447974056656448331700948385268883676236764145644120028964428567729255565474439277789183360552743825567980130411744852951219504235631373818546956230417596683320575988215517213443968241583114543092335816540734118100212215090105527222501059278783875048298584689264213711686263474135640397543774617937063121338866462690663487315422240088548520867630163473158773208375002828802292815150275776290054272333921868122172087497971133797126328947041328615661942424552769052127539639080769119267954361078649201458084218658272554521692794027373434700659221101255010918276102576340920044688778438755038404658129017319637736645611609976212683401565009081424382961459964459056822641991596075930670551697092441928017509055321373099798001957570339051921112549456041281832579344500762616307181916678409865618278738394477784018834688001134336180056602721729432744134178242496837898187844897209888775520659896307169068793089738773767404690460137096966149960727328754565562903835487561278498086124672277558020056712470795004680972123499099838317909248451785919227940611124190122519301722971132069724039680353599098269678875915714241069826227627902647296445042686875053378453354192884196112810571104595132025747837795512446667964926936945118893183585419293954449325076120562947305510128071528381103994459061804734969846875623905037633979651199819562550120400530342648944780839446822273090751812792547452324576876318668506699523247462259886219635174803008989423851529033966095586050641681311602710748698172457017864800137670840376447494365117427876511945352805518367316531393429992017293226219010752320218478834599401871520851169450743255095026244458712474390974518657538183660306428601800226831933867608272883942730329312729152695366908351644362294263470900838134802540094840830620397406379398956241832682548102529079608824911277191581364591260719276426828145958798545911255273791844607881614126485694814536114485113945854304693035283822494157660318789198180082589182168646399960914242317312018944119900055857167407166900484842789266517981359444738470860142040101585647147973645267015523903962734143451333273099154712811340823518482409652974497287892350485180681758901564299021544427131057708055107871237455661258028854632245368171087354388809658122207137568780282621964026164444869722128252020389788053469071016404482806334814668794319644541814088058015796487563156425160095965793708815915146633310347266778029484196842014574612695277141485719538365404770760969181748203567810465087574375815114865157950437033536130976017006058156425726044187604580219576746348925168448608286677020706635639040293880210368995985993207339843961301330230183654665629827590928327222868211380682086476938383682400331518287970684487987369241351427169344646852774744603495896630477886968341970444968869845280292458034592153780614838642772642441007773204426929477568659830145689707403746413637933662777315241624367186387866749071213459238320166208856924936457212935287142780246442647221434363868727164623807872495369460626033931213204814493383969890722594500601122702512504263343912052698792188307763371277821674985441334054220006756379147217076139477954436040408374412939856678511575976326900985360588041571722310600782588438313372803537564801223281753212368112419858318478299310456597466601926040197232972580541856912625654182727495625835346699123628811759996641422894420614877356307009000745840244287701765777008354094198831942828900324135224752132893542215340040383787192315081428110908763081806471900091777729141389165773635277583324700449862175266588836510903315071802185441498571666254015297910093516140575506568435084376727070456573611254772507900435300476784219296994640190817673326784045129647359876291081959730840256345218930958947515501168254227489429917559389710819655181541836131795678760949140584979130359719210669485352803325186694267598827229938033816908242345401003069860695489093321504201571741645551107570633018847351128331991937348005244031131869214810970308580391601968828788680502148965665026491697460187503042351363301029709075117547647996083837855657736570706501968878244060543542435075841292728798832665332570347615768064384307293603798924532851064983031589988219672628592713537917785919442344317568103921914110930750956261346152091512402876392997104948043797270784261162637437344783977696138077101410134597615894110995663509236435750690144644731770569000225608061159693156008898665744245565233524986253654472438544337961704069880654158464380924997861488235256147830875578291248351304274133402670460853320399237740803882109380945555568832838984426275284969542169842331505359809508315874336165332829843084548444702820083193953366981367319280223339292540239899856108522189281090671778978657699758525953101379192891722762402878757515252222803429217882213259803152490157591236918232539328871246253621765945262641675471552860036945103820991226067383213368182220784444148396650355473438447210781495386036844745271407910489568166625580101091214975901540073738061731333976154824795569895789396709646065518149092638202583239089243849702567282703996340526728883168664986693051667963641462420595156249146566439394310214429366084119513737111477696901515941416973018203142332096425019269961266435163538511775103703363246555179008240442375458993761693920986778726147869515557283017781455100525001930443040224168424709836226182860290490208591828697830565002481347324459542798642320516573571983911252304985315826919028408067107369446702359900445215544533646835435040058359818576179487779926358199093589117029195279498396993202508536168061010605734698524016283666497163729741941993012763349705550881633872730614512435037330194540173918287831322423730929244289007566410540432484418289231085568883594395359255013986078805540634748082843349779574404496368912370214271542458087857637849980306750185114705402105157709046773398481785774968961464821377310428547027822847851496629703184938505869510427709247617814061929154876804012444265525453335354647138225340669583642182197317044623656016580806415104512746531290309872137496618371318144519981088193587890606954795342183723273667684200818009842160506673405712115736666420876375290848824066820491251702490630932980606669538523085896103459660440606664018125729464428330996383904275854724591215365010735853646552255215074452640254618201528536471671798982933135717024154186694984117874137522730893863962645678483097073231812240851204513131782167598770315305904619838697550772667459849978217288034190063939190736966147719314547242178870424765016699173794597026111616394972605828492306013976077022571641121595908804596041195119867590910718436917827429577699801094799368144340134481549544472195008540021054322613023156707650003881061361925754432728061177246008860143620027071133599564805524856343268671036970788982684058927056367311417886904035535563364190541373343874272915400040120482036134206688058907255260782526484968588365234514780696500554340007750004610018029918220926356365700533334371385454528056243837337991994689414202555954486711594961256650873777277468515887979757751621963110172943576140538573560454795536076192755359970691614198638520139467159296542277724778787307511674851672876841978142090165963237591663310240185282551356138460554335376554047216141229410849250777989737163933931838797228105098906575760209362235652705828876604988872367524347597323679020146634464283545814818123275122909624579578858807301531581014025676705551736844316347774075670862868223736600140630461731895085617932934562466383765676609579273409749760715542599548324724693480892051606390436311278414777064958612374993459500774539896386690683290200742918921587807750536199161966934043977871241248403137789933745289576333562824698495950249650613875147642794863097226082059546346020467895777257577127142286320751717646956614569807377848136030095321260574323751563770817124648574484481851052231663921589025832731446212032770029642620803102507482756191085748312840962177837539127985550418545230107756252215204404574386025234951210239263909333931189777362298376967729664492396648651986524674249877903107481014757077291378006967031844492139099461664354764440883931237838888044237916058066395053171802055934468711239352133688160752046932326760117852683022731918331202689018501244122113708892566901286434915591796376892818677161040102651498871486693105398501464715738592309774473190967064310909001133881250978899243890637870173787819546311045389622819885857469138533203973057075950013864011519629606584486407133436953164735739675088364853198621212500650727814576252727476897225293886957875410993944039269366844718953388432097840464981455915249197903289591476702156893589274907970530235759867542685175995237158346588364777298659647397176078976361850631988818346533149000074662058513509275283031631917389566084451914233554857635838190156706863021156489454694827975798416002026677819694548745656297769693938597654721137794834333901186564199382666602678983844393442850524076851599159239099491307269491896026790291004975231522402458195451359503438536093197152155705532810217617629081135937715752174930070290773169681532024049441312869871927318003393501000618401185910768473867221826326028275047140769036614657360905156066008584548362960582214755701326149858656719447618376176808548092927407020589940281546355828852928971140676555559729399792942903219606061410870556965113469880005221847875867569471917352685972367937799735829585518542522762850724909607578242430366805655389503591594384725998605739892618628201306982277078257571198196264271563958664663317203140784621044598056464256521556662225024251485592160011410172988023006933942844866568339583267639010769909041634609851664284713696728301040510593206769662079043157044541698061154382420105266767014823560820727820530335295565118147423068602873265445570231793867493602428930030267804543009883221548281992599799649241991978689292971843888981790509943341192222905907894968041024214533615490004787556490198266790452410037161535363302619711098474243645035642330068138311097406873484962291236060611472263178270208654721808549395630047654962687053065475226474052123428612982691368128068237322951151298880375754733381759621186449431628817478687561633732694320836976206917774081969260057553718063266311084347124502361181526763428775049949881128826178647223357297796439291705587676364032314347502702842531880070590317745036272494920348455766056215243803386346882860647941713987612442513243970890113458171970035504289139017912484183924577009732676139923346691509936945310817670431799665674638715682639770292918588963237231458427944326745589156551539554539277653191235099109144566190402638618124109484808368773799079989816708794222194350413397290139841565001501292722449549265628239116633807466810375752313914935377818557178515670266900727656285759513787623768970965750797901342346689831084472442848351476333444450481260590868381237342989224038480507492564832575886365592457504257680654687962009404159948589541166540665348316209760878819240866769317749742513140821335255762550725155357862498537406931753788819074580239287778949169009265702404612009797036204960571851526565536064501102041666428160318323375185201349114441793671446898453880250870378517888606321270926879887730107114180643155300034567677296167614280094196059892049081558837920175741395942377136957761355283821496009309691371844721945783029738852062016074097960308712540718774224520282709842282534397510976312879574652451951137563247071320044802260265681114541688054148719894436325230091676683068464613579862073747081683472988819228001908038050906228303711618447144764446779363812067106819284788510570057237140063618468894033860269037251641627495067130461464069690660464651705787912010225263272653702849436021535019621925904378339985979155862880477432378717611487198249080725361740730137164068190732668709731626792906722496568580567880309741671797757822223900474138068025403049968651359197422475528312329846695333386703246628149228142158279400231852371032265424650094125374293888648014462748977975260006572814111311969210284034553493624265245564004538967574816994022276447210438338408292438084026673144682421077699805612628162558303608158580360402457748188850563088229237645383582068008118863156910714726500769924166915019868907447530817775109953214117773883207505293067837953363666597992702779796394587118710591827881539945816805577290184877170529434164952006891043120602383112045448034685650099617731563050366086462477100148472273804003271104024144020427983887124216313478949081030160606262697001992953024053514273773234313834499046285233222571029354666164280548599839793364965799675497439837462156550459723944407678939717967966821024901255696092999787353637742047293520993947139354380088675411022611474205910403484945748464106033488848794797858825388068853989159126852287857134454498952446902142649405296715418053727340896237550237561906751389867330752490448990385915803930611853882614610309616190264906303720289296346276857261165432934400624742758256868548643884222421790941552610231697733298528247841852698545897553444066497691251486082433623260254485091842921112459934389517257642444989536132291632730344638472377502140196895001379995574756861185476779483953356391222901941049392459849100686936458536417736121859974749138429324977328523485869031212962254128082290287477853033723025320361211176996568527884266714338466010365617718627969223197015283983661907251569451196870698352794394205978395162005894331315192449987829207085209842994845145451701514554086296782508771835946853485969795055816644463289940998393583906700739854221139757644768477628467582401427857129505929157036684461413288617718753734913297610853565956273643675974281009250559154727136739099736139839345993489634039294178074578919360523314485240067479048655465153387349795126565836364282264126863880849373415952947125435674487004637995847613916779891464152917273117776399103240172815579271637183927537776989677290619185151444852772246744049451179872429238000673243105070416403056116005506092656531173600911156469273429547748728088165999465428772941208804423377682317643053560356501984822601195857927265533614355754141714626543301139937092111967064929391645568476082656612822271571273330650361395705349943296273358999301089444961326980431655446422378225045026941317686803329678274556791926317602578647546603812699897365280706583259366627143598573584903048890842572791698204545383906546011906619221297752337679053351375884541535770849531902643984814078941369855662906158323827926217109465874909166585424554327047716868564461098057731859862386174078409167759405227742513411960740397107500858243878560141365128130588567803687977276789860287509720662904840552352517499371801246997278709546169609298195840700992370143065468609285265733514498015482871528031980072369641265776661629157210959167328062094686835769867392349644601697892466283769513022939942349911769309680918700559240854968376609703381586362305790151516239548506072312162585506112215567705587795093418083510097797557931682295290313185762856907466644768835844125594005550190513622534169903963835623714566230534625615547311759888630094424463187308725262305111709875671801690472509412365202820483373813152947038575204203109682395144767714247628654051130996712958535226315477306796032192835683327953120983746683449009662880317814404691721827882712005039648005183047657170918333007760748715616732304175731361144064756037928068489268323312203846847153743924951385686639329245886560862569441101293515803100066257259045709290178863926281018029401657447342817497789771366595634019616716817539471410255089660757455184606056783927874118612223299145308236297001438386603294170914979917675585810608511205306139897082049683937444445790826190390618112920983920526034782725923357751726438797567711568243813713005198516881865077985591824428913982321499349526479271697649918826484249289857621232340628172223354039518469682779752376097419513974868288375136877180870305267740884064277763618955469765544629894375479710209855834988855505292711466240055011498011052721329484739196164842828229752003523100135379679546652062880747848629501385971572459322364201193081848402855307948462573013875236226102636172445574624943516755746155504058192464460185671620898902091334644851613167003754290212748378520762357448474917764210764999153665503387081482949450584158754624896014993720986641130027205604716733099636599477975202531376894066043528232397619719344623717860619078437977660054790747129665985340152263025928816959428609768614062621266057548066355663614840720063774006431340871176509676089465946339864537576334012690372817559301993501340148503962140013807778596480974797868657220787334862961450687033880086862972211463162469688444966250248338306128998393025669378823169106062056596752401916753521359969774468401653292267221849390872229396467442083421269663844931138369158665719128565378724121115869958510954827144394726785685925344315618925661994877581488262031511533194048364297733868520576628787899218476856298832093331058578801588266495080325234738939837507717786682684953646637486837555413677732718791651841956914507435287132775936288071518294548750667351576309941128442362553987384864156080477448123068709906713461994587953205663822807003236496483895278303296914814368810966992770743680896702641297629552882279274637653304964852962192341726308693467421731815454019621900374463556451547387671106584563502721859745589740589439612098789448846359233651202368413992698946478666727318234139951535955677356140942147290605332889551182370825404566794571330445077838290954078264938066195400355016065938795143535824373364256666371331723607614367481941825391784387150520802041991015949779935517548874185510209395799860829189181925169156386741703028303203961011530446784177032566479267590716329548899556850106777325962721393987455129721690632111800247476002838983777244509864445514822264353687090033166112380620214693311691499868158655004286314517978665584163099286748521910981127795778607610281247086995210582560999186876273660490860816869691106941922222280973767626283105911040622545972023803328697385746799784696469728222218248611692312646437806579629913183572366677718389473876702317126123212850941329975114110625723292219309851630306056401345592398764689163749255408735500445986390747625505191504198946542614312407241531094246578684420222187712107910997307910307659846297582701607237186304468230394393464333722081733981503459511354435550762381639719076905204903597425000216207793455377315001364910701836659917763367466331770995824085821441300695339060151408885538106433817906851519095774029380528033303852938753315307084720668460425916371352862631801139161107102518424982413201848372076240147967234738382173684157558699900604517872892752873415685214454067107497797959299100134181565873421972145619787929834277018871342619816478243145303324466226215291340793497522428341936786655359165854214249946311811786082473419455704118680693412397792774674025193729660589358502397601720090974210413116624899022826901640195070510142744771929935967580814808483330662858042858875817646059957951351309968843218608076374284083762125342249843471557030175141073248313643085951090024017563339854944353333551609076143293081370149366594592575467915200335464121910185963082653701734381690982426703066146668977934402497371845015152410272265912263006708936936263599107039289356335638062428423599885790504172261492694417465392462186873495032100159039090925461525037829156875874105411433097219473118715575181793963716861463872227087323367542213470884307041204651504044908530953640625416432528297654767441516446898585673804974621085220177439536964002592862542389302714149080607741805354707863048583407781877472140017236036052571098561212334595021702830197867742358975926708114571902073791451796220105263727787885932465318365453402040177636191781915066041511010673245444429239338152708943520180992410502586754644088339741243229627765517897450983132934494864228884324432498217026800788223150505912073641718107116229032652640279670252260367546377980792154336050390467601081164973056863392317465375891362653921860516885338416752073707802092475909775158362665244531521567754681304334981562361389290721772788141617865270005464962165741705752865681088730194132637575873914555744357452752470334800868277230273888260641489558743816124254852206210312397141588839769079039069091302754798340446468591375842254540944452085969916721310968496122815518383820213175335918823021576278290469176124504273662677085848691609778812846523673654819306559430282754845117283648176298450507364075170972565193218795404267016028258806381688457745901544873351627258696118376460616487870575670024569250350928258583202572448062421055657418060066272809072453482266239196486415719226727405353877543383053104008171829711161984841531719711154982757517066103257283116377424056825662702363170432254728985819290510984268607943327855816924576715114735377459558574239083964429122738275682432051707428639047201865505543013009541858435121796095126767733647561736268028497945902725834958341011835147068404481836410389554031161767071972604093743299158639096825124046909976773598849753711664943636553384157165938761371856832458669498562992629314672759440464890110349889993748762710336444813357871475256543023028837996389682281719509034187477017457197728496637137724261940815858145625315730695181790399689049250842641922489916470400314692042503621817207316742077135958651832791131751070009824395950376854848057632079436637848571711563661493257713524168636068594196803079033500753528123072879202708463390755866013640984008093375929168263029761502591663997065507736761210476572022310836723417975430809197270758316676851399283470733297671244067250963078867802986151279892348092469156371087926843150537061931973702217186997983447072480571053622956075975388937263988467347900968118253245667182634625566629806546888884124046549133038643694860616539614468364779414986386494275133549180298090985750886202963184258824088518543224130044096497952798457695217437090839577124779818968549450279334526688196857312536346399491569964784063732457848270349136221149115367277686302392344562891488361416252027180407084784481694445790017998439919791356655146921733196361685020486501536402577421929444757594141569345215686269213554547357217033599023094605419329732266954305936282067053748370817623248736904710746062709030546042177435833927673494626210118712306738336523714631401431496023932626673059256264888118640259374612770097720602199437037721859375234130342251319831097207787079007409458690392510385981201047712108235415826311147432570028527634096869593986686046660736256523797334308243594464025205683221200158056814870657518063462485021709420766490268184089491873293049160535901076829839142063921420466859813771449630680304679086301789643008128452710846377014702894643545314603427564418130873496731279429618808574344124939783004759804707076892266379504753688424932838477060131880360197733473011899276053029106739149897157243987234022557364684290566661278328244652895183360309346777242096705395730568016361737771936881852074636388673595936962201074201273333794095451581180280476406345020732531494325413758024903154657121177793833418248055750927627841984720088312963623848106228900019727672303710633692053174358817131993865102291917149394184113230999105912128504030750006237843037687203534495786884947947359218503098818625307974303978941670449966996213352509752146590578221447495981475764575897364346724660201171894693597677360995225354743749792613562829547931034090205655232305263716164835857299601547122305968261905508772747585067079291577271292775622656972205921045645467788560101208832387771307676637186681847076473304368128147220100746845708607568202654331644576735485116725175353883650969570917134005074825548490448889481243235634899261691996749824743201228021114083466305207921939448959016240460378473392831333205404099596792588853302846157649421452949456421532872542508859648227205712019902007237804714281834522019269541319128448436889309675525350730944159150730259393110328867190368541417028647117407681475254751774649386969626124068591075554769854964421528063327150456528988412278297272472067812827771846681369800795435385216939141582383483503361317624086053887434057580888197931195954618952501444072143488053366075175236354878266388635232968578556253317798805328989921945247690054869182087815739226503707046748140352699365141512695499094134487201670665710950659209322059714167422047192588371926812659203017633513227273755197289815748992055362694076883623132404146387546382404492302135643114760867702863010744439497836398850102432558096626456892239782755157329570154424280426883677703686943798124751981060820893626444477446269088365542933034679007299352081022619730125886998060028201537293538801392617804671373640462990021301841885627799060669087766286758217225571039937598173152043224961801728856361004615774825824923352010274531392188878593963303767793691139211631785397547206596551791300407232398728655464299643347420023239834963211666464842962390355562073556932909631522023283312443905918532941748387728654017548860334758697113297843092593818927813963172304997461781234100442660576423080279276266800330066315168720579749578062330459668540617442271067098871527522490625400520006123941349971321976751088307328024699881689269350562296184596102193690338954326332736211489742148713811000248088859614735387903800527359542820336326557265185048267385884034725613545182190376525424163323523329776975624982097115079805825621539008186439066154665445422593405810281840385707298053009764263730317691535059282348044111821861906846214551427021244406547930277570146729801184043446511474923585704150431371222471413237988280253094611979120332345439038874620044304460351253440726710940004190412286535220301013139788148473693034881587600780801157249106771512323744895388082745763430025286406255996948613735451935066919676229765093458064997123624690713629182135340096250139477424808719375504112668356147920719068863501307804509831624698900944040311854388190438516050885249143808747801093048261291812732277413739416657696201652848056267222922953339587598019132023418595209476411664827375109205983729621316211075096744459267843479513899020179526885704698087476870847020292303479585992477859984352789394224260240454176092258257186733557268066025902510827437757886017918347395837575915866974551100626211217382925419753416153791349096637646519278445403135512063722748766688527409506297191835564943297456754223108859657512436750604813466860951643815066479666689983808975411916931287227416073766283049447228250273409989422218283733207852411592975995780836748171117973268868575078926324244384266038662559316065873196063103358773153915462806174157926831310343121510541705688325798811019471124924699016916181392630108936986537564021008635524354798966600626767308989807555110210274395234379737180527686994656531729277826817535265499806162626271397713504902071373791112383826768660540569295057295791256561199546795932918394690786226722551846662534317173321019956586454144195752163590190894398612788003459764948512114521646352534108701905315911943888975176244528955613432539285981830809341332217324141117900280416191420513671211590250827312646433693986833282818850588649682947327072277863384923124497808019635842962454933800165076447313347533258941071345638964637283783255331774934349080543465624074012679728578019899809829239271782373561511207173695648516486363406847300111770504708675939509738746170112224594273720550640626781453159044260291461587558680878083559816037778693862485111129407946954076980587370681593417550835857577274322631414350257817806993709850970794073227234816704367635177743133975515711961317981446471345309370996514140460845803764836519781004628326626356059735638279222347427006671663886608082918551010944820494417934041075155867312221291363181674239794806889543843606703889900993471059617428145361720069257761454247323160832614812436757034268941293853279949828619230954644791862489273644452386419781326791393507080399975899011567521013221420832351940720910918673857214731899808305874330103422747273060759446237022425824472053608435879956026171597984535160565684722407402629020855104536395201325003416966326974855881166904641525800018773367585573037169503424834824981871195608856843268747448432680090255251223467621450830741337720431538864386906115191834698619582636922254380267564980313450677996039334955024976976187053468723080436166295523755197124674554689898876695616895062694191143769721956462994373950602428968775995476864188421277652802748881577497315362058535631497164325284250100851305644845227410597210619670115313517009490502601712738372869818021910252743166530809630215191719058881125860895120506869997086728692289411927903564716057856731833362017715950897686815783937571673992915562287404763857787074636772690522827848925172167517672692249835433175391674740733127968080215022024230782686527796718169735250873460170651879005785219778517574530027386904971014609086550711227571944926721392429654978174090500588747556612097295214550780725913510077068117013684942305704100294017475596500347402856755289551626443975387789949872897187158997668922988062501981982768231976358429677150089566920158864999646906596489786300420494986554566415869784754251666249697210516496240199964112312889253646778921241286628798807488549259590593452527330339170007869239702612361130723599436436872325307280068930581799533629632529267287404989718203975078096172153152871178540767697561153322922670314619839766585066883591235147254219617636782673372063857329505536760265895642446041144458505022590542693202319207166249808835306280933155071514474822850232017522331955065560858567746545656230574930016210532786093766795555735438496353300493890480369819250284889609779896232535867024329286380099916123121214365161669407939085551583107821319347536794391041317147759894827622616408828416441139408026331791271329220300549629245208798725568115630101428866842216329452940718778870033412111233207047070348050875430608380763759002617261660219165602971732055591183035248838840138811949235511213147871370011660855696758976558377362363071830834313903115257233185985926529199196838794320782795399102139283126017517708633687141380435733143610220846252735357581757122581821427527840476255924609832051220260108561349985696686352880575119710162251200787256912822988589902433525363372470854699634862292551170428615792732652669095924192466130361556904521177799498768987737728091634314730087106497366975696179881397912094504245380853176435555143511340748780243957067637366521464680779882841530822154142204740637918472259048814404759648888592121543975716567032065312053972900756000379319300529568829630216330106502102036870664427205559500945916905916769316372113610586116465595616297991853053587502956133980247664323979110331211636121416868780063891245555411116513094741428448865666111882960944805849319244798399113089099507207695508107328633110646632659240829426634157059359551955237551117439769301675533893261966613046838319677402656843106359667867256122292046316806899935609993081766733880238003739292995867080653632896084229636598976382428293078231423587135794434451371519764548034374156463392439773639124028359283982978396606733980729868094136882343265913108617862931609434214475923558137876609190702719796797787527124063372626568010176153814448387223009013985457157839041973536605771258344541525829831130546172287827355409480301164414528317003570699243110279801018758573933001670005614613491995019312829837886899376867732475325353164255544197421444063844697390391055211228753546899344005622237493449293355469367119329792134966179929118974707117355023939164253449804886737862599446081500131852149366537024846553019847504535846825842358311600339304031128502560650457729508560724773175829643230890136490412434292958708869849976625006713100199275896651781524351104756957125567358959320422675020404395977988998356157497197183618327450182799788496334727613293760894430537120687250307182288876681660127842480192112469524497815767755915766326753254447783075340262842529097384048370999221311090117793849561873656682505460383814987127370852554035898540918120520905981805034815031688263578490030964618655352911165429568621799006025669848644601478456048305368116647686044444142033949035556524987781730270813270618287657235962510399127321684977219040167664716786249438166016952552972705516222225514185234790824315335451199491780613667520230347216311318994573219259741369583228885710831980321003473090953418180376608413013393914960406800582976614809361382583114592819174136340353654628273781760694643406595311061660461943390352866446425647562084274297489802704463382997173293220921315615997040239536702406063178501247328320544529146273098999257171698351261333769738763343221599544067257247618120464422665777020001345142600642786882537554865314502001123346639190875900584331531271842051516562503538050437272042201056886141866507258518043834283987927636544777312516975151979391267945884787710461168006761558873346157832158462980600563361249679487939544010692657677606597478834503450505513901372497553188436018733182312205676303122296527092096473531616190801839768807587326728611832907190408761200451034415471226607668839643996712361318289223618806117578360323602441690831446667341640167633617889364690688964976509734184528595492499233407368496944726260003400705628528087863090075026180162297866673747577017265258830614106424944799810780874050840718740202636615382746373664794956603596135091090953540881680067729352770615978923708254619122581743096026008917059425092788001924208091546991150342593677828948511729934879699260004357948719995546547688552044596490662401678151266140058361524262065357355444104181934538189567828018224992310607719369819239556470070259139236741292737159491354638600622831444809180047779235319027052647628297247225496115580625631933631613687207186933349814870124284456361834802160983052446064536457094701841159121132016098566729578155564110623494244329247919235342954376768159828734559437814883509330007126684528883419463515685668638843337179601539807365259710782876819773448012174225311002100671691157718238253919414638679219668792855883583873238940485279446098337728775944818156970028255326166664409242226386818163230443805359065780149317133885284983946135697886703228351901267374190808776088604730792054735558900986828966593601796362122285553731428736751149089385495353777026276556783927183909628175521149256379335003864750026176203668676681466101025041282803463739437619672334563347538628584123819730594929116008979023502398760634439425428138569837061845184284506908864939936021764443129707294388308248203801622885131370164142441659992757496389497765602559070382815136383688923353547405904344248559444215760633194712625141009202212859696599055281946120879192489099886001035710534770537393492819259432589885489170276495517451124483660676277399881762828955576316940178716273771697768563738977977651027682517619191585642507045099153140698935902986901070023026374013884487893970364918131350236805365217740571460370923896397519708246564611547439785918124503962770020458976590783812264224178080818811026860013681407898744206216425620757269241774464395294974440336436308056714276818002539154608688443300343254535076778121710215584077495825492020073595498773224996154717847541864339158172098536463358230953618411413079776898381130131810307390216140573919917672329200765869750855538649338534597345501578555194395701230855820373736647247491181796303093391138851619505939694628094722325345658293884289519191255846506468422556337318822439870058575390732594048803716235804265567478516870374987860789214947971917361325064245811530160960948392082886735277531451750748946833415299654633385193176851485751187715061866123409084558117588051438972578756716436572452375101989804982410403680053429682637605904656797426689278094232385904137694830913509565966230965987918900743489904186886896366095487782195873937583753183529736609886055042261479017134378109422734481599075235571803669746183189777203532892118720974412797461905618670064233865661233528880618763109946101875758661889728004075319122809863082913374561717355252906815759864029721767237054710936871291484026935522877361078083002540334932969506517465265601586162047864127790743741653854223389087752406594310702911314281747280404020846750923910747247984178459483730362462426841303311183154254762142085098919023270707927864288565615467763139912463455218639391749482023046163597939219241910149852231002149632251505060755299796064157549779156346914357905020754778267120709916047950477520175467399055974293095843215593701565196324601254443068267418433524845992348379551235496063175416273035669847363585070867858096859915146635698738906957657020853995873166815760338010191144981454972913864766704148198663707509449876343572798355949513386239134147932177174880060037416397088856948979472168416667863893636642747574830821109485763680700574850260069607515090593202003783451305556243370551224444429321205147930644444896638152726139914061903916123534919787275877686699767743479545670702954028807020416558924604102410088420930606794388700060296414639548201347026215484219763710347297461283228800282872172842603027409090118977931054330777649745277877850831876301571141325390926073022716011353496228572980229441035780495500106209166005243083713105673555130595333486587228989566745400568326732311538177873720302277373154143575135760488878939179117517044781678215035489894702165874741977006580089397838035459285898614982460323002754225519092715286934712537798354375231483528269743404556974062992860608108632043628140010563140913638824535619648331664438224156844993376668266367042032648209672900093408456066138175605380584210137615451907450330611470539565020668974694634989243310307037329779278497076909595407591877314878022855938155670059253665536851857655979534156632216349983171224726346755725862758279511284448227005280910797929676237014534514331522665273730299358750788411269927910834370947775532110966978515320814643018533897163011284372467219013694994789029156942530681261301686373879725532301785388161208799397836070991160774540869375486128795819704207460291688505814219056289402439508816664278333304095456347846694632663694534504036880925533135504959490756358778251962168223454955218522697673296031545093887569514720833121453868749054526030191715115488222408542235601622291907742636307251106455647036424328605422280425769162560476606674621280515076037918735174560628349874429522711869608174949326586203688905788958554017958386691276546682080495349796784963110351902087853161021347671533997018160176393796083454498077800542893895379351922654393336654392938187742073003259766848948329827991310104796427539628797402165236760093606920201409662301002720280571172092285003439318311947477373786342574756813294950594674570784290801271622419095345154852394603531112543691754779157346844466606547326692295975291860069901732793778641991861773912539175516805214659107082970749706524494450552918605645440533105093275694759299208018390217856298637618269085974355232476123042479226939095807734683440924818678976260833404964727915464072022914450424805806799388829014106609815448572508635270276306546794458494954254890474914428786184304647197015280203803842628954138274026971403577614906137682358636093772851197912883813274742045254629650485808040721880819227528843618141437075758652485618510310582297249224550176799924345185968003252430949097825087584459817741665112093040575307930395314805919722494168743753647248830824553031528293259437070185836594616327296692002890406472112585414967732572336408242435698996925694403097424566123352006316240368430224476313132947802790962868302937514020722794942330127112660878859039748769497803854972143160436115366245963060171558393281953102913915831700563901119388947528626048666139514698548404464837380195186814164710195297372578877353009745597689026912192328177364756099996550554813621400512840038505049470006626287001112345743193171762740520186819675073555222634513748445803662943471383171987663685462681611480357030195282163542913853938781978285499047108262870817602769139872817707447102860335810569487260319939987634515863682396610257668984450766030907995334657159114925283641572723725017003978681981035244488840915314022522522045136107356465582359999184177682516930670283215784521218899054169198378957052669953741937807070430739847424614834828715758282180542722717259421652345693001380348316855473313987815298609049589135863650817501512222337262633426988490368854240470173773789654173183550551690184505297693690518989849084720138424567312271232979730487689414895145629004964905138687160361192729277526506830797988628401383880551600545598546116060121769203178622459332022846451441508411183233534467172369446688051409512851382270080736143027789374228745352274739711167676455813395768673967428031159674966455722490864652270809362178843667582918893719704006446019204602293218260693505568510702408220850007813523732351425484966946412623927265179763886612510964045552160147285645621461183174235286423556218288739824190470505305024485407828969259326169237185353989943971398338187758636484323727657344114645865041569780831435755373930669510545381218524069042867086707075691913263522146634979377266833560448366144427769578502076292806165671103795315862838763484821933325346658190208826475801090023980411774715150781331193144302279007161318721296759177555352865412696534956462759767905074989600421752953791414837294787949459289716830152752165820520168003566350436658617817464683625950719639521866674247382226203000968988276926511990088715856462771972079513876849998231491101715110497050479650838941077511949065333244455937257524558067278819973592788501973041946174335151206785120364066036087406061034931365346267577448624955168707460526131309294813668216637849523715693123994055358979549985780604805673704719071791049874811682733505859768908660945119601343507798654567994391319909172671578688753855475450956869578270728233726583296160944638015134327496369842833953141863677643487897297546238802895822901110187726944034231087198055320671751730509603763385706331642086441413751452692219565573649568816335975795289807858304339776653474681744299263540897730004329264318068266298003076070053575145056793575764392567918931147354746992847099096975692306250833281689792585704193614395647031723078096009567706366118501793081589718904612935598643472991734793765075960396358211013854696268882647865789021773601978231053023589486920671040838296160944022150851228424863707155202825714924148551064563034449447966271186324216521123904106556440850415403922738311883766455931900740652516656020730446752738318128875879997911064326540057390901626491150195742176155935199438802390312533975508495539996783591824157132793368338001342687240301323503599203529203733984662869011257787060205097478061216113354963746597742004110567020325117126350869522003276013582205453785381223458311903418727167313865733133088378702390723973094432893023228713895696656494260519163459751153023531716890893389739299130581740006404439180888692391709565839183051647193636646847228738459839769888034687496906493425420346493307536521859846032743242016631383125476445348600128364049463605363864372759023418138398460861650902584485952045129641264731972724274242110800361929069386803050477548543794229963199847749711699217566216951735184174132479961088015065050773695579925703011011847854800223217725793110191940162648552743174003431971031563014771431895508658857357925247814803450889823581370773034221258353718250422927224430473985538243099722491828239775228464384621033279331276584978841534789366066155460732244383441708442971709360034312377757119271046902980722943551295051916645026889397035404037011778840762012470903335024892822392013448240117758622516952044025314539692120031929306299180594022874044546770637676439160455387149809832416521457479329241761460295998221967707636946960403177203802733074238871356307895551592780993844733165875739599178268159583270740361465800329124974423250946711516260287156288307482170896003785553829885007040884913716474366616169644482901951312334502647030804760973179930705350172782973104162402381078503025383710435198596294379846029523791654690050496959636144975042057151099598688770451846009526072809191887891843211775013567120907371019863356690950431553595345007835004426588211130236434997992382260035459625550844925732980936805852049453534793962617762551711792217028360679885127626277359525235329768044262470273070769218624699128361050817897794195304886194308320649075319259426268131091584886049655453588554159182564210316017097968130886204692375373381597956916513357356238613013800255344352246409586173918230691475969259551693759406472595304654111134283808261437145171886864438202673129130655590866636192463752170925536386414504659967686478463701306324578275595947359628524255493060688822574772835613764552437029363298259874944766716569223678010590977316191220185685982189918356229577863980591503175974179748916532159800724338820696660300220121166183239791711095705746406617234133169317282800548751659012773542983161324666834905545099078924804455731176509197924134285250852984133039467574589980406178925629262581389970073234194495318024266461662377043510285937496937342783074618118276918944529981888075449592743589876316020212718726588590572286542062293118401499648035672626251897281294980787251114258612949417433273182198195790319435868280345298812222553391627457896080867644393667917488487110922114645625170598900198697832479708320904095758171194535409019177002686908464396882759926912377918386426728512526402369498886776970747042099912482385659061372534866816424121885021551164069446609648657437271177809853521754511222995549979471905473466397929516868038050003914364648040388998415629214157687998267320220437719015976442814584025911321242855588674974822839098252775179448385174999012776157227688242086983604000878142157567290114929131046160831398985147288672686430501947521170127574673692766104083966559634009744053429262005492158499561891089373575047521623925659237925416932214942994713236877880744694649234617033378640555983262401432045088278391327457680680056348009312026803904137718758283111642880528103005544364504145551005800889902534811301113183031082007717064022773079309481475856994399519690420868666364736433143955896529119050248650605840624287752560465541977817513964935630828527932415517829250604804178792341455734469410715455384610963497332659071579706636570724862736085558976903175432551436699402988035000746111279254629092378549564946645069187620213112993261145758888138884594034925355884680158242040595024123061657026688450529228578691494693358667118103077067937109400182848699620473264556189369962258599376701630104238487101884447570575969209774696759948286881855237341430026576108389282414529255480826233574343389407946919889754377475340513846951335737178973709532352149633285636049608598791626687402924931727018931449210508516594568616298326495130001328579570418457938400092146159988329765981001930936281566455665169513325715281736406391401342869040312302399225303256647774030202505582112742000079522266005097090048137023826749575431147838611679642175772941692301074349116557934374365271283343999032445368096107377071387700476592184382507372026544739902382134501726837268935251180076953053930006295521567982518405081151710668645377111689066453632270429140179326974928397964444592586040296775548392590664830023215640557810221648850107863742298666140167329083952418438275924282809665427120827708285357508862356601638621181119807975231796326894932908037697977842493606573568132582297567832642082261678087125499067482797145984259146137508723935745957815288710542025699517911273701079439662746290558699646724437922857545702750227647311938814153391479048857083694994532699863144365218230108367935417893084116621672701604639395906919430152922708706146111760108460359630295379123474452408333296180127814298723062720672945001611732078188612128241959348512830534971241031828650895590048398786417789096189651934170590332867025648061694145835354536304460156551873570735702556311412581708710605109992817405681448584684277323705164906968911225575209419930196416633514231100183741022832012000100937371983182957794900435965952971449952202928877237011644174461489205188035406218929374490497200793139846494047011712121089343029281093419976023273130122573951395692350204344664536687569144546665378298660689948362855844522415020318714017188693285873289724601942582224960782599513365253160290262732682892460976109105782221693084432978231129638403044485734270517453504750209630896379846645933156184648035323535132356021240848850088161304488389694489538660292705080787489790343221512234391232167163561783206017267163736767345422949363648466475770273584503732471417627842495731004900629216115288191610006227006442226017998975546317616382429892215946635867435002959277722904598765165935652737679300046457076461438588741989119747667790606751018071304384016074298984122225741688121109968038648245342501573607666702931371000965535279791605438445936980021994757697333940650678518169524391115627359142830885998248201255909772135306875828467475372066382176626969938288707070377693155793027118343086392862987644975293605551861913889206124763504383621025136132354748600591402743310799041527278962021523218839941743710832498214231289754514737769361388108365418747946271485028959776905290991318543063134212881146391724021112463661913256264007790384758633747617211739185095417455157743075737631098589057199199337547932830500241162283444129368282992638349102770383478925771670984200977303653779564042154779860265011391856750928038977377587671355668192888248791412838615572975995932599062856261723939700117459336347182204851234046735124847593201737591595488437306823226615491732474322672426952368806150489567682219045722215000677873321684059395852619985292785908861359365274480091011250447481503208194029897142731965563471216875996759491017578936200761063418147410426178733592875545434059763857155603630627670446658150032271312723455426614274339436827110119311909496599989917539105172064768385725290680048205442046347401302012122850595952444972913100347245190742243765477625766549985490613805142717826076108908478269984980405565589138370686274241180716925757172840640996098750456821723669484151723522386429914595475063593883314513531393470772993319684814486385011750268033640359798659601758278647245671461475364436387140783676553575161224216526428772063899011463529658639625424252164363097552388893727130299809334227331741139281927471452196563051738751862473055715243868238147980419464109446615976760918708592472748769984437037624759496772414372241741474958802622636633645319393487907105122620225815849516300461541994816746948442919157325030339643956678482188483615893662714674037890610173686744052078917660829781991328697788428728754695858040396614979111752104243539892677799707615084371167279336268415926522143223696236781469539225403911369000112099705550659431265714731627615298028326997619471580422217923285958259451215717968895040405242802664157258753031682121260148937093191069813439814984826449275207224974425569912448154986173907116650261370061316189190176324443158568376423812876433876550969744006530352425555185589639786801805316437481939492443306049776384928640322955893069550623261277325706774710239537666594821595715034349505004987202112404511842025594971453188057820084961888748706707019550872654079931078899598910933641043483508631743955311742670249141804000804322947802733425374716565269127263087657234259637309560803582416607850759585163636867402591490863610210243778861581004872797851137074750776168293106606437619169165178272030545437161690869165813220690684569272157358410690131229335176743454114092638917898687351527822135871773170045822836652524020938011306931155978169436137508083362917061692787016880052506542721315667783025486476144533008974127472992112275809246623741897373659162823713661950326363922287962824339331774311833439649378988805350537313284440169468490026908454445602062068489783701021701446075441277071601782130974596727605285918205985038999351305958352174878524398810048111819915329916294482499063326224985323167651252262797421529187649429201593913122845398375571607382034814491691564438035252253339321291994007222127991937722795542313663371310694074447292742188459256699683556253868951792168627966959112439334448139413677635439102755805750334425554039496219265243396738868497822343386175455938143947452644669653068209000336371604056804581521490882349115770429873415835050826765421630258658519130695924506537186351610302731161154784118759655498861469026574119112992958486694151922499916435680833910573053167729320826108526394728407173414428412316190636626203903504934510493086933841909512888813940139691903506611665683762655446415534832214159062772318522293005284816955278022521279624496043682639101106465208436006770780554581905833567978655476716327164579867957162791706195132681034251695361308490313721384316993341105307089316146254636528890733312703867125024941399346233518631483721952794361444217127283976613214756765454117945529635254328874800549407777025914994695407155118167227247853612510969276178339653017103596285485682139515639673265964901451691191402774212086134746883723238001257086158992306751086551958101022510686016758157968769549944132609264084835410193195668505545933972797718381689860436387615010313460723603400461610800141331039588200781748409733290068731975687236781096384138957107280874967896911293784143660463586682604200313132145746972742648564634870926577018497195625126228136923315541988467349609377493289812871646469515114520053852919299146383600367745231651726156756667722681179702478008598943882897388820060376433425869956952822194950513790309861126157151639283125918062498605554590927784060213314775361291476754613156967324807596490364643231348415392378469121248589416657846267106214770753504576909606481122600033677470162023194835587198753934754034851663305232932358422803289191337120097110358184157716687388239647843626275827594332242843503979200230712881746598627234971458546699239868255945258949406810055093112600221977215130738423454620872413452711695229530372888199063491220913905652580350066294095604908247646641222721664169068768307599888797861602783765202756538072781647964609303639308709163228176344006945802863549516209536607721604823137039792231549558101113634264103772775749604321753403121351530319342813403384279709000353151636343226480316551088315875166807181168171605254573345059084237754231386256874868493459795593303827111722125835337508275136557277724475460718052320850308408994984502334395757830529441185034959847507540823569764916723239766043062241893193837543575549256516669750339087523655873242965764261327817814309350565910941856864332866751788926701456945124498214719869130873248492523983474901993953336291603167405080940665526600399837923378361730312799819105365013104330966338167148994168459435906740811129929055844932326804759808223564593675351271761075542002547597227152625509812648025348277130153829780959081679926203890379999239425918895772715424239955560866954482735083548430653313740677551425917115974442190356618060473098738018058735207826965974471465604085131560621596706659238929197176217916008512799607489114420643253398732788146897205398909582153274109429013039949125591451203067038361849786964128923165465088162786436065820860779279194138993276466717473259521243238069009603726078964970994529802268251131213415154483705992552477846419555997281361461514732595327096833487174783001991403056368120697226819042425406048774437608531219317322668959899076316313259133478593878712749526815405985169674867317273796423469742635677605096866151399186734748691751515308218273584842552111321922326629726519413606801629771757678449865002659299495430956082906160487485026804799210137979779808393714081943456701545516099289795461425961942427481802761329970833464698228666964469229363907005756204442778225271018624308075530465113125905229529935603713706372650420309848152090664404769548588323014745644872187589770219825174484734933196734047286695491099399124958754076839121499564119058761973021177182199238049295083656628792399299368669050181526307752967489681427118459934885811883851826971218132658581870777069922025705817644615910129416154882230087971144207064295130364418776248846674935885768674887546284411394102644855818009830000114709362045518295381214100652590074569430278168095046793761041214906277438171951028072614453178096210898941513097112581295772880291760337727076513803834705869202485540953097683437753971186397666089837374248386421985845718959116956785053817633761418856144990240590816393050583724960613355146257610474239287726937916333939063433946862170371584660103965391438064379844528316064057726588921405330401602414639426163334419201980015975703576388503641020309929110110211350981147079354838580028773357791769188387702189831981278177691001043004696356810713494215518860512696109335686281228867083692151878015514237402356139689614277900126071967661482783677496216269190053919893429116035137543560238828426417354432267061363001931618509424520028667103715259343072761243340749769329737075831409240596310760660937643863598088800147531760626925460981740731034006779981837665132637099081736052126983000834267672073991205648630735007077436534080727595688432838877024276039366461480516079400206220013221234660134123681570022647182289174025192104300154025821752424197792844319634755519142802627292701384727649514022959887730138964638065702518333956260119886750286237297138410925530717407310979532545422596738981188059224341926325611906563666073824021230902687097303049765624631075902266018051201432021195440689542022362924428631612896544018162675833412928991638024138471013669239866033131294350877557231529245776719441835497077596019990911721569830287554801864848071595363737034949438535751752021553807209947283727553764240569637191547832493218249786078512440918933550719504058344049573807110992770090847944506614679036084888101304487692808565334798045390934783211741359759589028608496400993298391663790306445857001412817107085019221816392287657285599217050167316496249326144375892970024647255862180497146286807397856521854643082191384298687847159563858224464720302966690522826755670385469749121229607830110551188966868470008932004665500337427802979034897946730521107578966860177848281496908101982972049239945596219652919757666729287995829710912099134445796722678796915967603780292479572781965860930819674047322991776661860856513342822669714165781883045672226898059641069014262306651101753059389974356192763490623403809949384299439366323930375858146011984034086103929176781702743940817110461751966439769550200770229781551221369806578299329171868841645668750288584242008496235429279515128257817569282354677492269448930016359327102899103625926926244347239376007072946791952697375143206925633763903116662528123632775000306388402201488551268885523103965723992130429803279797122287255299223236916732994226914893071526458244011407320660407942938644379520200101634263818870484095546810938219025381596157926339348260760196387483437998698607633021717043419446634024408565054936957221816773392434121021199480585409126851751809496978071325407297686793356829243259623815363850009046451509735537163963679484829597623559289564748689483449015444460205754344408921798696893833733920006773620347378978756949724745249400342303850659441762894604637364347437747301040770089276429689287515232332052056870536188639109167019964531887421529423872223080297413071002866060856067404392962001811798144234649072439422704745589670219265676761583736599926123925037411813156776502521036433671426116346621508099738563048993352447516078579561268690836909212536669042151634536330955747729342891916382584857389805157653989505988017815823353262376436083819337666757140700531301163499389611112322078689418329299906829403222130753243187727680279659185185178697388674077452895277077836931503545067002865222584095244298344751855424667083510865179036423871022245647542342852835476093712160685648340737415559111481206582932710767015688777268609828751253837911091751983291314703600810496237291401261942624832302132217300910054127987087760319420821363851216448737075940277798869194704816808967964879498602196283922547008674294985987887541017991178857224690320966185913599889347374917430500609020905838644099822042943767710074995814191621908209376158328865690299971441031586910782110285599630678043958953950922372039785797853090474005131694703393600976213883805892879835528113598380504199909272422050395209777168950311957349375225781532732685630827338955224755864742686415018730467291887331750598487916122141692074004584047691943809376243525455593642806607298599781125710922915361567031122255408698741431582038710708976131769355099291705828538225525447535069196706046326532756977877392040459598701390314406172679066788910673887349688077563288622255246990283787045485573357808743792943429024983484427853852021849824893273132783025196234023661868435135131347833147237279156261255515639733950947678473524145133369096532869991548219889448595061646780857982246891847139823056145862388060898290934917468565469035263220068889076635270985238410256973707901792272436314004895409770258894470296967372691482708857142354690560280669252366419494121716981964906434474140262300741479919401983623832157348005043589857884792775098717062400506657352694129683311602261163190383508933799935929734336543459075443034530417662817356059916815765266954825507551172145950030064081622261585369076087451586635754609046050121597384032883803856035455298823907447658080240171580060131876623693940577160800244749591516451269980941131631208035588770585850925357948094944688714585376252037745676737435503505804257526766520978212983293798485696385586416313883979892996770800642609820286539884424246432041435806560676190823734531510365938436708089345062700543069268369216067357968590534810240675582955440542626532607152201071518066111196230579897345076614917319156822571585670274544210268901832678013521108794556525079691460369674608964393953664003765476519557088184211743563565109524342948621741986897368517275426479142917961529899556856630645288601311105788095344264012973109603250682240072807822206103834219825909692096862452166534038731431825177202375115692719313160191337107629941870493575574945137856542477053727486703952960965555637402373913812871852800833249123830650004197472021681623333442181120871953909819986043325380953740709537111296704713135728049743927730520070219648762434858639692968949914429572604987926945417673151881460207108596927308171872708062201889282469570292209768214119673074044861378175367921274127683639424115918135188933945242190419527384691052422846597290102051859795760645989056764068977078346856966457706196485791222885522551988558763255694219749801889526600377948520308817044959024771990518578419139181374741699607898481702391893573777834184481596025740833303940488535601594740365087669226381591376924104665494934658021954059854273039896224820596332965815350706415656620836827633398981940293731239089991952659068251229683636688669302396369158884778956407070108615808056735559341525885867822445193067727237208711944755798767662239598018721226058879322057325988908319079136342468243932126201125993018507714092494462547881559950069229254215275154987642543179732525090701673593524322750429859664803922474738935677842131314514361063302921506365797498189133846820578868323900424188941441765916707693878903164569464163076637490140660231925570562452418067843569552874500775233546784935275767262578876295521118940999948705506390096084000548384826341901178030559916399473882273981028141416049333637407194569698387781264503993142855864515152449286104567091388755282330965813012662933655873734318275401041619731794042670950800766326230569066501167031412480988975190390218546520178970554557180138865878631512467002365731213143020122694743718756940377357152774025348773547515410540895086800941924352088827831801460080854963883723759383054598016327273516836139829287092248860674867946982315927209419022660912099580807657903085100613937732500369369666942520661721543660576268524560559523330619385676633479015260885420119368415777464896724185609480746521691211929987112960653179169198790597435690930872953464093589418941164503566624092514807806549941641304802798587510266333598722455960065690173008456598130454893502422625843049459483284126638017649795122589140280157352777958757740316828587735988483684694710513910515620077733662285426648699702691216638371146497540348402880920145595509717562977528249646154817226603529920329216693063937539386612083655202500354257254830694318982158784915105820005541338782329924159808428312763717571379556265751575540404137451793953446401992421146876344846938632174960300142029216335106069447863352072647681335552232515468121377867169409283729086835392705183546215617954616056265463710899395775039037973741426579043063143612990896618542956132764160591517674912659526405222513872715895324097664581493266501534337741426422870785488284897406093780340336542746932146745935897995750476270455247759827057569882063874673713906069305672256348205258944389208294587178978402947630973250873744246838739664448822450489435319113110008426572598800797316816700352041417356771427988967185815952266017984083994873589753307457859538874847461591788235682570712803895338014303205289280573527371924267926743615880253806995290365446684460558196078313728944562103851504295693689631863461284932593283353553370992635148409192103835513352284574187924715129514831926328762083968353039877309481167052712957737672173965846479252119068253314415460368980061620616403499058214085361672107738323236052407807643935610420977036458894627969673757291014188270475609704583949953935643522358414462427253682364385396566390061543246862923964205977085826172676773255093700307378875929965971019527917731110352078771796259800042098295218604007504563312975097988178949177125593400319725279310741722444654654000113274224468887897828897680362360302657876346288165476835991768702805743622259177393795582335173029164987735857059427498743635773706953464923960613916478108164925955827864330900888423754166470641638159521576246732457889136689750010463974705103829410357956911011715796982158484845602435397159118888195516803612116972264440201831186994932280098333927977296938805972590291937561285155581142426242238478055917697982412492995370617724710674407412212092385434880140156913040756420331498042962895898618404388248743926915358165076208903639340187460930062675776144292116730710522669402434869593542030486542590115221932447429675789414334291635312024322055520466647036941849237721923470549408074689018370482519635810812739455926493504824581115804024470360639499718692636092920580645916909321107978140217661635378667986847700893302635792142879820397686577150285543189675232544113245920907994792240647235290267613508528901220393781071349874640316736125252582511517865237826619558161369067921265384726761524887819952378599904613961543166725229632920821481658733148365900930525140045423647105052096425415797814893841153800744369949422788177478214423524538070731040804759764544544270636251156445059576857552006019194956214277583678926430131282582939421050010310017782972712818554877325213832098122576533014158143495718333812883165658430515762464750987020973779844093354512805388919874647755466061091365852132361204706993636141340134132843121324350355897531671282652170098009821717024246756858059855257694952862663201102218893904177138115217547837743236027234914986717952954563688829851888199625474721233414405052101423802914900639766442813545361362415865263336244234469094027402689620821925600983894734924467056915345996602264681375860588862262875381674425256773322051627096059001912070245738237612921143333585819129527923025017345002720075983353590073464564030320327950661812548952146957753857907986243893303910755697407434231356385462075056180189695172158459628484797663556402779282319820900166498358019653969902649158260365737982093235310053780625166695923462168839031282097512072539871052449563250739375910950019263374820988678336642497791788483369506311117982286794476918745088318123418662090838974168501245708242243859891690984765517429890354735476342196212307418667075050397233244168132830351331281074788436388551380303832553092940783945092573475070915602763858731184874709239618845396872164132472333437092291849428431624425644271868055485066894270239956077280454289127403357584907814747040181490729517606193035338152590748728671892174051093418129571908378017885428083702102896293045364745016455845064107109706257225648550997796396858388678071196744623154613988709168174285592639119433761774250282334490999015097379110679467182876088447472988638437154308245451912370652346439394166993189976939298210073071767512351304402452214670466535722533818199340148096228236094798348161977254352218305428673875508373344529363922285085761135506784319832713752952513415568826506098257405782176869899519933600528586415746656083520984167124134046968038661017194550215810852729404890078864256174467529084724613435097616605085535916956310393372988332550823997737317770423514377752876997062334949163665448909741908356065228847525164029729699533163633517099770227106537245577359662590993572087470142066284783487205207859358525026215295283593584026892916801960295661160497801500601048128117128183286783090184699994322905945754889370850582574819108123282870469759475222332612291734693097200418807905289058647964804811825272398582137421787334331961952725286419983977746657763136133251528321650783630569777377794156266335698873306123175849781174829996942802295771217769172097128382063419947535846234918131927835348163886290832772444698914249564691747904732509099127711339170662124462488599113017499573625388411271288303126435395744276400130705190853873833805326593277763417998449274952870735240923236994807678608302272693294373812700357529801425492631285197343632971231070054170570047025865650446955523838031850285798757152907430273446131467289329478330738706400345903346046157553619719676064165009051133380442150308990558435884360319147889258880144074985178746827355694292516771041287573618864104088031682886838483009845312465420538301786088570365496580153487438502034362933246056167137495158122217153853618792801813087399752683939905481618690577662358176403528702508952166294018722115296595404124820932673566608177059918080335849478235568175856011282392619767135025783556512620071002599524743748410845079167520177515845643538668477563184770419519033200232930652284790720772947601869037945589441049143420710141202649515458325964096959227648617940315397319252139291173003628787454285187057493810516830986797888545187741805899346387392529190197320078503613918918951198022518366848586484714558576746840233329203363639790950399090123808479378035144219874198165670932348884007643342999556198116279203325351482495262633891840307696460308686937721581221010671945183692969171231980974431752310978529507636169063099221262380878239677129509801808962556166635831842746579150898663591178236403698453055620046992714093105850826317467690550074594897421791308780021605237329300501598641742213151854708420471492606215021813757243782149261466757605900057941179799378857126675307130654935163780132472592291548946190735435838373105556182286441985034012448979570259240102088828465951137830974870761336114545231542567872717134331477634387900894737160660678328651428913455246177627117629625030953954768070432379341127219891248993610273587950587309575137858467847726951444233014100482850314529311838916938622553589446482022248217054402196213485786696741382012626173508347083287214582766302425602125176400632560805604419608277382738594141350781469282162051260722903785961667617221091862306425023132349171579886248480183198576047921340998408700556851608126749065721468165918055102364736185166317212350334974776395981713724273303362227623253296961098264911717265010261384092469388589970255699303512599417213874579365599895074220186308137432121571126852929119007393115060239399498437621506916112472081416404371626448791895851362407158490830056759423841877010593905796407202160390370506609152503614303059547715292327456635658725158197574511520997960522138429734593472074712706574470255696534139497572320267046570538040630752060516531166204514011643265872345197929388465801913523805512271907393648849891705496202100596962953963346386188195894584591103678493747116100725635528816938435371866930701424302234459726363007208911789516071613457992742653399504900139222576686548918665930621882140912566291872518358943632398933128997686500609384029265422621612835647643388185678758484797693347050653984828278267425552314974005276512585300584600322447801969641172737782976643673256901135768303068440397227533623778904702680317587435721066112141287197592018088213591297465893568868139801917165789620976031110030976668645237785320826433250180920236665389381866923533249034664879186871753342997301117767097570554803823717039353404293669770541034789478272579047729370080616861237688904018880931953816336321539121687365890774347431226460936639255841967391659447884349205418247319877116606436942064970375063505730482446043170251387829231791445333882045161637701344237674699537615959347386077683202752559639352727056924055019268641029452067090262890631119690586019572112302747723853334788845365560049317227955111269792178515463814215338990385629305643984713327712805145311071729286387888608010448974963325489400536499666156985558807325197733884968521309253972789455650224103527246253599086413820995423079811502130016530875394049109827317981897496199621118182821527251495782268154122783761500258935582689816257386519467498748892894164711600635576870192210883480100546031979211708219543358264936373729095375868077045958992770116293273989351502984569634065394276428463474635446727894742501503940110887196417402297291021619994742126222588209018390329983863197256231042467924630172077198177027158186723876209350534395253162221657926102645770217546742048243368281882153581624079019234063016062024908816117946883881476673352006380377211573011975345405400212704868248251870315449705068727904312983161207803883607124307068623049969817673060613630302000609875266735632994272724780693394042021382974536017591105125464729723200797209948038000047122229150722877425736687687632307829484694767650367519808228579740624556731686094921177831504535209445283792968514022815185957662568184697498694730134246652627685998232723866888790318482190493626408543059419712485359750468685927473539092135622254228985191796135497825685497185273524947393335179081178103517997016603564076994141513846474280462586138811237520343809545517454363053733337369797685019088300253194373656345393985631531841585296216533862956194588844337108455974417573655237077314140954161138452205861671963435599277225286965624008018836782382776365149564949772935490791808496835262319474654647012321744107082118421029092431409349995165246008722341010634339560886788552390783712751580252205051564857667940768171037439595109701690341888878483627331185449380074374371487356625297291476900096590978718991639655370964697788514714142710214317524680692170503256230835937603312777727508240334816581709039908132412925737366677683824372416476233172347968165516901604523503845314866110579334247668294599730627130600011501664208968961866696074541569773982425002948124969680252625803729975798958131528508455165317573738228660488284647687211772766367711606044310887417670132957810786070224109350706269061036274449595961682237311056827323586925478802954144738183961499409834689404942295080395428188180426240106117308153119872807762675769079758969589685403188506052994061571591967653080519058786021932091830920946439754491692969916177620707851160558079963746189407344662292749595844077763406728166297249463248291397415851980040336213276662570411372114481959370643355370622367853582471014106595717158552581984537072267221857671435668820791671168515193369160517741486305122267145395185866419831134822945878718779040233335436196340777579145082610789703806057097484230937023915541235177469682716399668604258089210120111042769418962826972918904582870998340079906118320998081186847360301856729156585115518597635380622419813088688212542259619481917699018611742654471582886790403888690441213422725884945048771627924263863194513079916161567914447198089204999672072846145727991490363792517934207955005828504993673465389586577136246247929297094796594132703986171333957233505925029163878104847970344053445814351229114649450966885106807887624170829766260744444811641242297501338699866635389258332677513932823379238716352455926807699261356416011618957404702430504511309663245923293521690172388890273360327681691957972534602523664659907842003755195122688990978051621306239490932173624915984289830014920965537273073975485503765939570251523951699028268493973061771535894752090455378726377652238652551938539532377833638798568394700956885738683301464559501697639098329272472495525371001600331507496049598128811599758679117439177154480817604449045970854503387891374099942640171537457600065202345963058893287519157543729693854824077113074165571629149504674364683857829929336807574791136751848300714757295490039640433511925774053311368810334461430325178857808661092161729878731323255167669482591351413310097542967671522590664931677195797128586556290229306332358421774189030819661869888137576987197061487771547170147033274056444399843185461178047512454385413585344781316119296977929635563442435653685712755263408563873719936959962756217049145566024647250449595764374544498957456947975242701943101085202694839664735384094324982846380232656941118043207532120254638416180363961783043210874826514673383737681051719287450117641394383515951133504105272391141373994706270836112997274299255316779750696144388997367003579002397342910239267164865700421641013853237700131204928832706129082130959254315626207811515068816174037742308440839176055349375511220930168397328119383281024491197403648012082269933037997456667110162189892167807510176754019177641085619380152618783972062901185690997470587269287878513154867351968771540073287491170309803468171292295333000111149553535153596274504782764386715723166045153257083101958149654507344591777481822233666774028524531450604337961253890033261648583685079999671652959960097018491591932315109196251983303330626514430481308437283533260834573052331152651666423878367557296401041726246150068417674114233683165253865723395471820608005621982446352974920571229790142591156088437777355016402343165196425157370081135080455774209466301405477328654501756192143425974446370383741009975222733621076936577824491708171053606960147909772104639492935178003262771431316857812184342274738329816389404924514813337228794033957681749927290287170015927499140219527509482714059106044284684285617730446172553121173621985222997915661693453579357344963719857430072512140513390696619477287661676802102769736331127396757422450291484872230115639336236518038070409147035770211983240547740998192107685642888046378663711321338532219993408095734353209583921387861653371252441040527657612913069319713507554108176272466657631253824865224377855344295334213085503663265670283547939036565457569362347805920416828253128831626467734063012942952926099133572784774530273216332249577946547621891565787360838986670075594519347788849334298306802110697656825019584346738907704808632068752325774185256414822135152071899326231739929085069233545058008129506160149150614161040527684643656615099760051628357995623122688621564377910395837261746744409941649319813166836485164868457200288631008801815153183163948283506463323850790929112298063090667487484368639702666231586960263117447511729415150720171749704967754490465804068219756021110640131408857093018080573991233875207825963356823688475297724956159103743017314849355287388929385262309675199953493123280392244459958124577609555617291338346627516118648725075623380667841128621703644228699836320993825954172584085270170940764745489587322887816115300901838635309156188190502834450241164349375580033515223300081709234925849732770440221566688927452726731138981325402364755514817624957133162239396140657254335881876785090500245425824943766772611660351540274683384493186139845238947083489951323695183478287903074537741227161771325851773518477803521575054252435704439156333438330598984775486078683239237017731290862665522779601044283795776526354918432314739999919595801421632708101575699663364788330994442148063040208335629922246442754190934661695849908101810627442797309654798123138472384337832132131718332164934259130391910841765747859128292374165595029424075896616858848532136344312821895276464515467667994452494828197436546870118900727072479774592169255551242152759340332735740954333289918407218640814840305901129947528680853788229538268635384454858624561664775923035305928613418524904061439122116160232460140105152041626200516528620700030969806490520501488495348359848952187024288537562605900163168542247445057820300573608466183938850321961687898548961837036894035424457622684392314077124750215805995783084465255341940723398678462760385394947297083642325192916425715975259835301363235573448249647421023404667727474666298487054299469902098066275497257509340307274077623208237308035755054939523742633772077031497622569686236364799133411053309988693760834445937077164539130777137971057638759263832030455748304310767140611557807321387603107831491320469374573463226130246651885041590530600909746099769394126437298491097940182991283396165182215594484427007024114285971811267031035043291619809448023884014490201379330637360304338115724276385632826123149213715929827927871858671872754295231926986296888457474056415597550658366351031525266814805361309789806974531688661045250665713767039060014803098995499850558557480272219373874602433682336908589573155747736357761864475699212862990954743423268883579645654890142340055315110083287722309884137216078439818287557760519459508831370828410263908262900149025175097055293983500682795191602789840729690716571495939547289983289580893236035302576077673593495091699592940172491584352684833037170869116949854700839831410037050736072993508906559427428173950605199138159046037903915094758969283513763864622309669780717402858651185358064410487536723684102528789155934540159146992277079065288140459369077805632751503515886794764275462596920141268124358282786533227459361966177457963148211290217333103900878528213935141912524152436200492323489336380611964900466722347178997210204753733804719350522805782692276985476250723033274359404050574774241995361642574192822293004080264698261631886616272183086408019979144409375989460561700285762173804460534973900001443730196216747851660555751231870914951577070649375568361784788665375135034266827524688564833128043891429917428771482696985610898458922973354699415753420790236123481467397557195838624831501577749161817304913743746276132780348033205530764915458340284410853624896983580432384163613034226770552462917275541767421379678604539600636212104168623372632350313593030856611134387637072265277004879290074738537051230063114477739122171687075567446913462229935619586496528327050479756178145585687863096007061246266731159591798654625441438698092630712130265255390040435626809080888902220330117061739091695057894405714565830346798672604003198075265028348947784798565268754716343164290494598532143989534962126279520424638017341571736852796991822862528023712930212751856638058683713791405689562978239579959801780889589162536904827167577761270088615090587216890789614710430370496607849130788891419624686989311921322492919897505676904462736124480106243053344791727636598737751010953543411510942797369867772832755274118426044700267859268834599767887162124562510038697524540146145672856573555039685000743898703852179449882917507473149997539267697589484123341891031479859986088300719018428789904361204361237107854552520075359545533262557199348573666590585708195761893115653608932253304597712637958346202338343666072331858629883354029293551231749825031399861721668135336552659083687315868181645778299384880950397115327466306970669092279313041383254697178864381604010390216634622982748383394409311753229066333612318308333723202078614730665540341562537674707399584805817639210012733662534352365754616242166362395880641483491056746308542777164386505221507029798242355853610402523665854886651932574729083524999324170002621721762953008462420656726930471036682794630375291667853407091703162350667454629429370995764323243623677173232264363833176637836493770477115818391478659589503645154493320768559788959396946717496534147459984113942276221430914108162502102348791974688364966063965825837169655931615622421802775365964028660905116871305663772857807202892360248299145145868061626359738269912361556557028640411298531866192674320924797009584145211875528658747861843583175677162896992712225663149954185403149977030100569806030638994883579338856145211261768384752101990463122118253905045202730287791393103917374423400400562213069185246078385921945584565897596438769163991965215827296192749770541560087873401807020397598122157499677502635127991581825321849547243650187031272866390241063758657195667902115520722869829702597950278474993512814516398277260269472747778931888129792709407500383539819823043143606040210009192901123693053585697978101683339605645078097166943503486640537412423152494312764141558368566858983966862947147541778704524972872845182910756449910232578246253070844523594678548098895378494042139711244610557258906747548506232231349309688977314362315246943559971072588306984227953651708432649590277165482168817422710537965003845419569299434639826283495541721303623601298021168945474047599723241837499945727143574298402894984666593594768563562135333185406532484147206554574725180129766288431769498308720149592067080372307606463763862967129844273962869531953236298632383410026175135312992451089183250625959468675392312424318631894135328971247093961731961947106048513691468327683352924159078535135826323771021416448554151699008190156572075362030332379835653627964233009988255025093528699470916746367358888192206989003578590996616283136965571848124216837181796390447132498956093168632302114235646587604928699106200043523228545378690139158090264796446778762451091339182557292519615247967083334838071675539208110070555695440904017825651244712311714925098795097218643008580836323382346810138802123667167745740658515004320947836519719893186639264809524570320293139295792597156463408026659397883879891303813108597236664533217483869969256786795148338889986304032833337211852607188986819223589932143633380358771672123315933382734804694511976850168838002223763397794051318931346126828990268761011083961164168675612527482410856765648102965309804769038298256012172493068629885716328268518144296213325690645138484356840559081490741319735469009388435322008678314513610013422486084787796108534282638289641217350300873792395582297415215601167919987368591838893657334195572909011404745496570699906852121260811937026768716284748284748163373524744028271513022212372046681689381468028011256692226840570801410307777769630672571173218507222402885164011076995733061112245618246211140104233827906894407734218108642498683679446444987575975030398761298641748280411369590488149612284551608819525970054086211196511297257501403092880483526417714070818205756259165311856835830335997219873713863514956492754929066771663504908588907260506991391402295849541083216449294978668218044778634415180578830670267510219332830866322199423199998013660565324188761912022662586162940515958743134591398981410187983895931190281678998998753460872167568867039124286798878166963442605256641437328809763062326184682775475579098636298660849147818265284292041009790195351634822416459608395026919814978145606985090765063990976911525887022732418174721822613907562377074210355127137135081863629116885124713188529940379307744083468712898465100505719119264797654839088856988227892576380874366485902434552088834305728029725760588114763104785008714588316399870883492668695410926379804568921267381785547104877119681510263913922964288778955037604237573995096528685253850950815327082055159124232058253658046596206562090470339089265223057615322119968596516445357836704041149957316379842566392175345890522170387888133711863324952619094455879508732082274084905271387150556635137461399925088049071035870977737321714103247437743351182988787248910905247799008143786268880471854713316535374903741105537867790118479040676165144289698718601184411833741558212538338931036530525959209525008386184972741530303276805096536561187767074717703384564158515316988553500295970179454800215094902300130855302899392423633549938284894583475361769675633529857415173565088389259970158274461003048369466018954665083291341498004570826738469008267632433288078846514029584935375290427601729115278370570715231490041803561763059156538491818859853223060578174031996341855942671219598785853513514399102812577336812318737321272589246683392788493795798714447123647112301755796026904701797230084854728091206070233169534284986080103966925862218577043601122571860355693995064681643988056142463145276938336634329434906129320645446235844006775663921377829032780079055092200331340904040754228023491325607770908304770752887931401387690195203029278566676795610248872354664071650081896716747012517376298679672573968610188853643879247053256245586194800057756342828416340343828301050131812496478767395303798124952014889165806787887307425861410694986444531510010227666219712669713254456347752585169199864687383209531494110915062111541616248157255556115142501247632833172178443476815393005982047972240711036094079142184342454098773937931421305859458739006777386737023877364910962789235173593612765969137846209750121477783518623131916486860424997739414134241958283106982063741817108692202122058209961618555542087130613834744138073212964946635371499515278636927923792113056010308476854711368770617051124676431327238497312545065353523900711354454773972236684026392728640944789540892218729219715044444497733251512103051201510460279346732467140939900061024247175986096931714995316815464392780371118913420308571475209801331863152946840634480828062324527554574706412279743023674518541025365484938067271459273008022407733561256310053710552030342755594462443900249542944269887197957465837047587800895182727525911736989223382606467805755765285763257455443879863685713673345623282565153656931416821024070455092992590019651213343394686931909651812257270444879133537213256121399785330337736130579832425060563263992384095240917349577270611435083111024140979116161756401553209990190543846814017992366139049373051434033897229817550047393588447800993304562570152462605343844820945104963165968652975933557858291259125418863239358772025444089457984021003020165206754553664365836590806317423431142368146530427875088145940836227443740114826126051815776241940142965373994327936636906717254471028966500282414328293732769146856966827402273094501217374722885321104179494497542580571714196446634289417127337556743709403963117991194075199949927569934012087371789088397611103971337907183953213936484647330930975846503018954210753692245553994824356368850750544305731623592924205186158995363956673240993987912876194018288936461251319718943844763766702426860301636827941049555787306683753441115094724245304452942955616196793800228397157693383744743058137151513762521724730478881510907450355413714678157934556927178569485067526103615843928917111358296834040750670901372059995970844810585792993705669467626046520453463010196639248214424382477171030457213458790451447429586068455791254316413824524084762472303309320877207383846748568440447225862984522825353155826012663219112277490737017975515645221523047685424519593855793487817656590947221443057391667168333537506916791755768074234279055867181274852060776836554845113382785992357609720451793026904679691708747100661092999118619730615026218115535923325570158773292577075174085116368247689548949951086726653465927598678373558305533670425906910093736668871001805139221407606465261918207515537731032044069571250463128117652353879035319187262339841671497405391529856939341366314163412746682402197604292430010043819375871624342938744122743732342423898024472245911098857598641353224689489267928590114537326775625762795274897837550315748924795143922637032418529297676243338970670170306954858550719699072465086970178349083751609929598263369528211973227859466521014599292005926066323695811051820559811553698990779784714195350780117267207629600949174632253419486802428459053391532539660535045700694082663558883624116028503023817374702326615023873764361271916041978657163504626386675619257984848536588341445095706566298064730153046819062631437617951619092107756811376450413715489357750519101930627881065851037370533548375668576715763759303560260027895474088598174610330239484169008212822457265637096502791830252199588256847177891299009013500083037328710519622086226390111784411966547366144335009782219870797756437000394278842715011679857776446515671523197123475858326239627440110729545010865646392203673388472190404032542217238740345711909735723665823306637072936858538564741918679121967124925390709620188002934515274505787181964796183952210188734257317565793565945408439152023078676835875442234980976969421381004644719770948550983024763930946132738465102896826067008272081949866653266812156528040930448781587147759151637338257728260550898232977754656945450907612233124605979136658402617382675394788276280834515567040756309655571557728260805242190156540948782043108428520727559273944811673025910057068162291664629450383118859423056144426974374712174827683028551965639000583147511775908740529183954430917563605514975226718556751102252341957164561179098975211032910318974299003270843713359847572811547349810497623944945730185512821023522051934593925645345026518298009993813551563509293662985228390200745197595467456110187187634912296441500509811205789195278898200325513846650582065535252857464947646602090533345351457610176636586522088038934166213990758396146975321527339075364549049701140605384542221367609801910920355316806682060495448660105872622750427245167503362182271758391020608235641184399052033170729038457362397810988115533667204446835869964720026181815598460643640242398222454568718776789852351768777708656175014899715688567530748455549899353176315299899240865201123583370640706264408295227527691900990536817529174575786940741684360204940230368843159802818261140916144692400000927351432177714157823898116826507427959876400305080292423163633920953059514750664758462127209200054218861636751112875663965264848925878896417142744604462468997207177929689403980067049891616349885426502051482637439256512686173053341229470786750972955490504278375518363040953437185246428141360579055909548436235950671153547450478480451260686074662024478013957330689045060635998899851962959270090933768002152527935880563843762709288003354304217439577976173547257112093406168809012465552331105810001814981892611829800439771038488416537547200044322379714576286507811303757347321362939983649363116618380232485578552884045493283866537439336506893449786111355480272782746243585300632085690120415412135893316464645396432011666931055862555465185312194231206205041786065964486218409463670683244531322102671319626586454337618342939653959578172144783456753694270997498588164065720478111988970323623787337530912322981811328506739840121555040363069738048808184249292459346696953829426126432876499624721938551071494079012296359626415931133899821401416181760412224212956921236389685846443266474019894632317191262967789034772793782087520245162666598812069095813756182709057158165108338911040492012122270959128519834590180988610089388560159907178422436369710057101161750915294661034976265580195509828502289288414300537750888583328127878810426631463088800251397834885197350495993084476684972486086909863554653822800501953076551736117963596919481621218956496576585670352640451425378966793860431086608749169639247427809606260407218993992973956045868561083459134337240537886733361334673185788419949172766811868877865891428180471848849263246719724397561690197071303341475037109746988130989450466282822165877449800435826329883654010082714528276669461086807650164081242337167530870799891566411238004766628510159568948044042288243778469222012412102803894310585149598132338721122469340551589130033966309123003944677312250571330001716983031086428787142400443370286835221820663555151183061071943254367440315665701860527129903480934360801041766268967260050183940961743675105052900198819160271169461700804687220087649168459812167575821227721899743329155804520400564617661369381234513569616118732737183856282962475772973083507696999001308092382340532301707243109729011412419223041057331313082441642397837299105266310974982248941127900657800149580226641674280459180280323566770556276807155546774739781602997147777048086780222360478941447051882321299012572106241115257767519602326065536743184833143321807186675550849450267631966190279608651141067876982592450648488231682524791042813823360524939528810084897140208363083353279050306595306130122374678818371900369187651119948804400767970423645890115136540281729868617348452766696969856772689896596551001776340152727981026699772588594485709093626842345062012211519714082594752070011843078994726697673659850579382693932120526292097199000712011885930048141837875692516674570448363052251015489896409722025062350736529182139188492754868410228128204077734817923489110577751396964968468117567383094764226245145250489743514732992832817070482418985528388804904160513563683234870415831789408905770617814618947618839957656185814458186839275508373246756486390652456331019789062044637569525162349540494668606285149684002119189707045525440367527249594460648116129194550887984848069342997193953463860473580640884339270462148856909031391742572865360387335881907466283129624404157991997291935123216606026378198631699467151982774461419168453569756980732524370706239822626421709130744324877874342213739289408904717538933909631090782848689146690889544115096639205272048364123150039670644032221857580890148272169752316713301358869408253039753469138559113866810272065121806548099785264329080284575675876985589083714593933822653183938038310864084778487320179469960889075555432034833456956265122911488431733994047370064130113774563511982766495903652683879081238674410370733747006896181118818467415175129393897545197781433536929252985951332882518471203001176636779726232723487028576816743583336639854840936981833496959678704608146938955738386484289077458874404961655547504545332376367150453127377830612250596479601952303839141470310333771144107770236953688021779819481675684294479860347156633740075907477127270560329292313095085855271255302877193504806632876749392313398578720805642515263174112000670296073899524174187721601610402473825539831508264112478729921885520851983888405860961353811519331187702945573653214581565875590006013070265660953589317122422677119327252347559836207429143838600828191888798736472857596153665582987791599386851014121132112250280366474855242422058764437507401267307777921029860829013499722694496280991456471122523191582824335648898500819265186870901089438215579238847904638164925757265742461817185006426951887600583665282566387504277804296938822939197946304129464602539854760265576831566671414410370674095305019671334769544619257122350529722872417087157443177503476175118877164081537889072998991306810124400269668965068087980115325742060292415094877335983597237971023646172864643988769154245961959020968179650362400632045734307008009503826274220547451302779423183361603185487033675014905110832372557943243044021203612032819061307284031926038301104885243935519211600007913397748683270046655347975086220120176536881893842750570596584014157445911713206760796512844370420604887837850788574840096987940577186616924032594264505977200118097246705015277952505670110588649209035918147611040404480330732589909802239353281067435899590095625824792209378978786822507511209841058859071624872848835535219360292696535157839818285939544440331071359094709517534520737490810846104469011315157060005551172053869472244265442953867749136134034895155725276607661736596599326256085220032269079036205960808878030867672734322691613839709748866221400551205691037924188513170940262196142597357785152646941300961947594500417427218376673995850716729690005621532383577131310282175471919594170486368683204189080375299791226795269861763296692338345376974578365773577776579190743872254739454880433830497413131598997952602757407572413013402983869641680046328835402248964477155161451163246721657227962979457085129332775774234480333581121906956331421185304367203739667133646695465949369371041632922071194039157201634589049501883381344093989267485739980091856854783820004052847294325455927030996586733710598184580446004516006115015107601699101468757293793600794174769919076447785686182900395027847624859346076701987618850807034466824862314821894414369435653534465833729159968194443637313635188564820550035334660221500676157258901679100654764673447890124554061144905149818454515915003385504520011202419014446873216368276526426752177757382770113733442241062346633884761647297810778145411542990812306707181682584515363662378318802014873350819600366826718985108109524701873429899072698389978690985499959643852353209177980982784496610092840780063277233665531305639810488745744208960626695007213468688588442226820777371421031072315217012193234573257237767312484007583423316130358682269526303297702024907988376342484961038429454789281818132693819785919502916561878627058156800645616789903013695825024719268204857640650224360365263295535512862201709014996408372883027699471883818291152305656353429376764541355107843305176083934587436373041301086289412138386514262368415262904659927012404267163112484670592928832815914756311496787003601809594389497517188233503197213842396015938321037705547474279016353647344713542257031183499287635509007058751683799057657438436457258077075646068103686131056242680037325784383362134360007925019853323712173587024624530560199683662648788562731681973197465590847237042040438367617111931901537376715233346496526188614988521682728554429605293718023616255902770622612110624093807284724295986337709462317838214676119924996927096804190722360895250812416247282915654706376490527705464349378676188830871688431594731230969407005777988211507325656356675811432852747770179364057823096611253087386227940141640643064843707633425676428380370688455992102775531810124648539710653773620460090149237207646666828538366587482854015621498227758670947593021436014044785539970560838976908600726403277818010966810187788060797896433652298108583703571079121077302825584615794601745538251500496732252054243213537132764667815282139878503379624190112930110449394822721375969610101280644817884190194013542669297303529634855605643818777699838886965962342018494412629769119131223250251044512891255756498086384677973619146947246305911912493139171993837407947249234060489761933258103669117178274987011161340323356692638974699442339602738907344825582357257371512366286781134290092229624712248814764796979863371641024044539893512642031934626323991528465339948163783106702328701552503071315686236807093447725911176878420248230500622685170259842228049725264294635180181861399136934075578939529617138666293284446251117264478745021490346650916842694771969423110873709969521856934611605432288459453894037496300716086504093847280251720999126068191139175780832875802789490097601494558119222784755950783437850524542877230123765071141774189567050559996134765512402380237652994946950849285869202367913410994481457219432835815284929197755042107586490079697826670097179247002557324549547155561747256749700571181252284295547910060756510004868043378654637029617319619990374230267626133285096960794178656825278110852611683262569904238185421905757310236789021424773749500564932773324735501659481204189238268504409481849494952954978398361887632808670283076152253283033154891325247337840233942252434553811115717946834287562913746554106890903692886926973321793267761185217188968708675264830071337554722763488625606002963009795689540328628917751211123068512418770175082345309891066693408606036320019090482024010334537696689231551629910513437315716965968923502693338348487235142119468422527511319188666160371772118956915943548723397141583700285903025964170690460264913195204014192414322700493584131647765753740793190043132752677393989428628816597466985548672614353811583258420054787622556202906192561001428080481667366361787112811840068159233734007297562978972775729822953251106637750400050452515512274968030050775826110242115719340426504524180483306590156268735676830258837319293535414160851661106703971763108341809582493199948746832442075367497826331153110552144526982641649288788406001539019026850244053286681855222462594878412269981234454384989732916805512160045040118451688917887636682984903803452602792735108173997882923851733478948122568808158689391566006193412580454346619765599262782232507760443736726686992397026993318703280952155714245316994892692256119148004581013167881790699567286827254684348291202632196140159497349480052625328652794434537180407232627764157108239802549916410996216490483853522005609536207860281413574028944412184461844747290450174445897484632914322559809637299103873780941147858883448486123736718294839617963994764572064258902107044608842678985765608236644193151617914179762953434095831049175504187560288213245601439786003737202858672517083538839113580253588588977218036746066799057133130059080235781182689463620612168691562574299646099029878988349735630707535651167472987263832900305056335565589927897483995221886259861945494114744561117280106305002965599224758225994452594154482176435522261852871687545894302019872337886437089803658321383035350681604040111373702442663238710073957579616202794283210697454481730829868126892289138498850812821146396561707354851141739686594297486107545470461267182935752048490553752514793244743466302886559034336689576358455385414160517955423132992273156346600732999201231278661558225725010511159829940386989747169819069194639779478267157900593088969029399357905660240923989519077597193974719236608250485459336325738080129935074016453730526375142253114354912647114120562569534574688019315479438928971866237812363405658222609668740759216031792039861454056701650926494241097278509237734409022200922373382598941056713594964838048091169996981355310038612439782310304787530108436465923482337831182295009634615558112131633243466581232887271055056571644966598843559196106532733445845786543640849723418039226262064658129703748858081972137527012496170378435706450051666037345217700887816266147048325991317045825524096428515376131357488980632219795397163253166735609147487739442351120555458118368771191420640889879492480380857595999722122031674781537665922153150354646728686133441193729776426104271203705265970839118472382087425278432345841389926537620763189898530214499433657050567593328584561710135311597045166316450726302712215869422353130267242142919645179349387593815970614016089440167741303069575444497397841921816978054510867744374773240440951757507920776310802841040764136840064695660208333032846268607485540948711333941764017960570824265235189586013499720257913522065562951446464718146837066588487828980270305642269701247984504240535637219742882023295073359810504850809589843669625351261955067435412991198020456856979565035559716404596158039192126884413102673314024937328163393267809061574570208684776205834975012935720701215243904462265939191410662404428403702993810648311341386785620868818229204574952388387464384866065493652208217653164356062380786004441385779409425322976528771257565971486416945480521358579264077406424075465702496027305184252702433187712281239630917724475978723169381471850009346262026072472605827097007610642148278159960481532539715732899139164110919146336497662903925371390715863778216939333650147571602180409581692556106757606207501200942237471718827254162130887794845088525462921248734168653577502692731856413395805037228524022026509289150908711398930150847408359930672869447869026313998266622050041563768992944529027169259210501858723586272748724391547425592209362948574031893223450274568446036677600615286493578306298285829572701372653695717018934219966748268190744871532546574361367611563588907450540329699071087436568910963990757776215768851765201029015125902849484627483092371703695251437307717409974265353860364693139541891675775695213085411093000430175792637926177001504918254133657498136159230558399871956841519642217625986876445641826397375591268745855766675606268148853732463852140921737252898402710649389881975431204328055787523463696875407510795410197755676885423855220222616656571889362420921944938673865095595639124263874534894838159308206369411998152002433750797850463096593943032628208325835662602016695796158578267150424577043396833714732947530844242497194778456709006506826663911129462816509882248354713851220976129973528360091170219063607492792478184760516301898248659735364713690387945414302063726147587012846566870864198062877895269752501889055173167240563543723943627258088934213142277667125868842149582572829428095503070713732054605524043551918948586028552963555658187551924964920071843334814064510735414690010609625769996584896011408085388038244999789628266131622090662688488353817865344799411683982878279063358208462550477719552391913552979491808743832136809447050440740432328326666052730487353597822664809292038025264196022408881464565022937697305049330244998726001145654358645615949207301183462048932446839105073461399249331503008764437614163210111535808083184185217289863896643737520593212373550911538589122796111280482879337013625048454463124868724363693316445057997592518254248750118898351169861721070675841774620430953758371358897249120654092429906502905679254597327926996857381611701207676865226086680986473725070618656347002926378151114593371705211777182656682308033721052287290331665475237486772338987853048683055957582635570937924222427251153986830648866965965053251371123162653935464293078512627724851221087733947464578722335594691685752294260062083846701304085400498250429721394529854281715391918609610478683238744800493218029830482431356618258062966004728304357650092738974960714848640211472901929131249522420287425166037624783682744908627023404878422079009082239270902514013375393547428003139925834929636832966435533458510234308075506679727164563483477037078826849020941587728680572024167819839919196809690140202173536275025527032856117603687220935870252626604896035126274270925357934570826981834476985427776776575645032443690782793566889519991657517906538244585621271146107648941204801559038359181396262931994960923322831876286093552223854015304932405020306880172346556968206077281960170072740613773149447207268375559853164375489226228165564601183419776519750349299873324016510326577049271365968939122073621527237501693036567164511764289397376876876359783401225722041913577883963972036581415669894594705297998372411288078339940475588123743258128763160766401190284673117912263439882941521139338247777823781334286052409932977275709234033931884288204689824945500272288378706658384711604328130573933376958632138312841631001989949531104896083719056360143762960128049895163830013115519511731957185849836716451447892245750791294990128618635814026472165220675811942842502268591249764266964607684165696890312183851000250454213744400480968065688679341862431285473228316083322391121539415543295105091546138155499837321160571781755937884042187845173115768708881868382146681264905558030609284739473837847644761412594390654945724725090636274875244858877332907972391240324668197041925005058697555145333120032443706854989165894893474863475012236801888065532256299265668112267490815957295893180143890327764357161296597745163339900307132355777196819578268009137537608450056954973129918422319212383978240588676969731917014269445195214503388956996694263428316519377508252810273944816694812511068189195403214997355421798721903267786314515453350355400431804749833728686096509866928319720420782980850022398715717110973429173927136503888381495574076298206933229303578593707133386649828036297772661609985850364197390870662550128697773850170460180408022774355451363009000095078063888470067518916203382694072103617726830262704877080097665552975019111614365431845620769832215712316924691368930002268929753419831865684642128010068243244260161915906627900618554815698536453099204207073915152719979854770692295893659384512656321950023430223078914512040311516028943002253014319196687684050968270248902666344102342961143907784998838716095636538994594985205724865459948732615233471131793638149130840751942166502004112774990868551331867598720663727544330052417706137850766620159056727356555334474743508548876401889625761086190022857943713479411734516523429148285739949196377634334307029778139019465170040808289407996504283179497547113163182252909072858607371779052454695401310045571302553116386212207535564644180550599584728837177314144065979448904676042913729577543467435199311310318781305830160978171203567617728672584042084138320517308342392626860780552582489074212660302477797908907188771675937539805344266203359613940872446320348544908255854600791137551082309290804817694673043231338513950439624767305594316817958164685561813804813431172941055477208494959194792565601042940751812507027598337669824549364641425227774888323055180413822969685709838599228978463698660423820673634775952381242171994151995429357058071060022778959577058962870301249061057236461291141397986027306874128565042830683421195045472670541431636058961581121168050190092460585928405887587963571834206909024969627950385973519130977583119736685973701935610874726058422493529207093353286354155469926562078546459386513808139506871518590238718215183095764538593074387726749084155992455509356966122907635666965715892927257988585290576382479044356656371071893018803993791896806165796352532729309102220096462764828644958690027953649695519117746302746590457916016964179987741131613023059328307752207364089183813957652403948797921040091701506528201091947065717363384704577929674142847722550787489813347459399445064998484411273978511272422974618420946007172184561283850301552476859344420070128054094154161227840677971442709746713601655502295566300174173352763045679928492314126162427234810175586199711243293072283349691352396933590706892117328956608203269432935501350600992304223025697052990063851265267710910244382775639524965816993813820731526763763406002968878593387163718570581473806108214539891965703708306930796097349941334190646314031398035246189777030658613502277330101689654823049106604401949981147070950392298801357630916445865956179047363278906363587951041838938451003037704506185660643253931298325861534048551301350549862482800748264031250079383872877029452180246734256356320702604653387749514312986064436229208379057081728366597913591613647587872907383274287655599095788325566633182155854632578995816154497655629367378833741420496438157048004686993710509192881210787715415681837151800866768761641240740907457321858450899780051292531611235782966712667974491108981787242423795481638152717245198353192885676560416056803048450447024866475076813999774738493894060954159692033016770034682462090244532389973595123225587143336675068050491992214613886337066551423103410848579941694585214221031196108955183933268701200556559512511685959281539369960808532167149034079022492217860922392781374299246614985023033889649622086256341891087920717172227999428461883509096127084806079252913611737163609007186875094379249498348761388112320029563249205782196493394493740648033316563136347123728555932656790032460366531670452364503738972813017611946245662617321829726945556822213423951711416802256660569482554094190511953763063057576654206280469307717295763355734947259944569102190244759761955411507115158928258578906046887874271017852023740842338916338727930194775755213898032501249380495926905089126059406090826658749196846527381487818749352954832603954007672411334840375885338887946821393136626522921001234529901851466420887652367768715349983052544239538251995153594258215035402115896606383218265095401711502253891773333395229959710898098173183526281841922207290023852085994736428316385337801143845272457792502958198357522804243656499140886685525248502026765276447077095527401145394731311940909997595516670719871898305919931451268530422653444020352209500780595380134809502225003098380062294468928255581301619359041550127054802236858715549104038653149412910758015070264739034030120987038860718822409726778537710139154704424924556671254986986311529269178576590778427969873722003474462682558618854131558625631627510195394690896237523323689932276201759750472450906192130115789342749157784848812196844392582438932137041104086900785284613863396736738943543393972420777694299244692141376239610335525284994065432383957778639345231345928414928785535107875105277963565081142715221787569766279419116769725400728087824209209146266465232307975569047246191396341621465571691652911460340351054226816327941910299535505696652879879870263737532731199625082125833006142628949517646486005016261589824519218118330981196296772593726481710974066264265038145899356525523458226418465847412410596638379351995130433211346955099439223107488702652743243955077645458820651658535375737816381514874606524423070957785027559107581066817101487228914848076014751014792996542368765890501295514846574659795455669473143309243864761404658605920533200826625647332813888716416564220187348724926348496300246709596993289346812556646250876998726489578592964069595115977729549414544408210922905931560576188358983745605823992687150745435341571927380938214629964287423239615663436166098590491820271867695344123256865917899854032016259931653184640438491864317926280797826504434590443494356882307688487502832473623517455352218801966955622673193919005414924071861202510191966717089458701686205938546715244566566668979415496530365180012049650805755435753242052019032193613594382061794261442309386067126661355817553886652005434527325217037661748050273135130202324990394933391778334351933607443558517320605953658458093732480687140522817003000098996431452265210255258329334830892696008630328248041734951228292210997533443912119161586976015977514223404741226823901156721415218752866737609254915375600567451291518531327058428128727482946384409060508304885548107651730718465003760988025575864488415992049554294314071459602925560068566769171031190988752897967817725604164174429063852625385701093917063146563162326278542614267821853764463063222915271246395886660543840222333757857508681803886658164393476825670040355382785175856974620733132112383522293085092897799860267039483730970877830390708143592789236073602096248368041878842272979186905079562646961650840727923534640630020863398828891502181035472471455896684500793734105855122168304121119419380031931403698174855135841762125620389877780436879121664495839609405425162502487018108522340689984586820836999329443016519034428991915743317497777221536602879890659436699785621066824414806269156727702047777190980176633432941963276149767712078329570971302083125139724709285812292985070247483528704495920901066946385744988011958136143129223243633026402590254459168151951289794894136501040842170006202360439898588473594858031608657306984623467630043511916181404799308532720087827110078539400434355732153614637197669293265520963287611700549284843877998498960355957315542278362943814836802496971336895083241749547277902577434408429738184166572478701217273567193028525888395680908606024244898026090606733539137602844546533011963445894549775021937606677146087207732079932940326559948962568358941416004308051905672015382713808271052876390653697063906189911041945460126929043157726369775764862692520695131801803822204117846202030438276430789240381635306682211266911238531040519745845722348546821546030833521622322518557523816782848447320327249600927855230913226969919694674539977318756839522633165353468087427326177925406759673202064469979420212105946157104059577267025243665104178743881628346613208911444134939792320080304449985300315606828460474831696761097810685972608602407611139051156001749604994921902939247176907846718813766581396793930265789024188882779876200390001528883134605361506049078007165539924788905991520545937671561130433223778779098123595051243779024940046703148845837017050057256228802495932033138366522653087295538249690890137742202578855221356059785945565757520810996006289531615671612913547424297900466747621061358197996106652113459363227401003276116735764610312786871229628498780830020026760151941305438575116260656215568487818971373002913623522546786982079630160948536041620072401613654229924814724176610422060467289770573394794418266848966932824814065344595511489513075846048018460082644471462347982748225705479533698855600645259738966542640871826099948829683349652087716385103026168088333256060058059897745062717572187714679977438390103266762367382011927944814746720551299046342417273274038191138604571828614337606134655968638209560494518495836351923261599224994500162691304550595688326205204821090508648339308013007620800941374573403544352992245611629764028700267866244013286106050375425530588732886042348850332180123909024441482671630963700038128671325950895316097063795996528607021761130508508075035558597997477129480770092608576318717802734906791974684195074461775919203341838131993262426023658162604187964823474125473232345683879806852563291854037137584848068396925620204762918767559612832774401630089229705988495480079159825674823344907604941689129520885213629838232092828359457437336272095886923018511319412652271026580472400803345839863011415989660700011536592858572294200068653464192421176265324015339807152399059651776085412159919989006468814658739073581631492803669389349147931329977296945285398126767159850220653557449160011354089616088520056436192651106506087130503695774164443264270138553821458875672131728504221205603299211781844913482266574377622816280530967109568846851976190664229616937622966394506979309560837674496477294250656526858174220627674866864263375596494111260436199003875023670753858946192784556168189526470333116667754645685867924507126304054654357006724269595402724726518457910015305004092559441009886335558068446498958763199496602242294657970362927039656656039481004975738817756779670759427173797087664022731241811488188832372693708073035418813805823385104921506934505278423452614988933727442013356848129450906921878846342040257008914021451486382105306619295990128573859508126806729628811649845859820116303809430784711118064107055520268533551207113825381371597199997855093844681977990920337349832212545523776898466644364463609458436208854386469351093275117642968028130871744091191479899520532658085999454484818019337267334190590982251910219246837044686706881848267558309950115561535829481729421155227970626697470360914927802326176549530740919019841195847429825719552851843647308587831191350158230062641868240848211657206781053395233769250818205589087125882929472361851358169779943308446026767660416300353476079851649380232582716509444399457091997306514511632115012674068706843570649212592155024330262885371498559883526392025848746279099945834244066162033945712714184554393552298203831803902706312974021453348655915254939923060782425805097047162165557009367014952531939401511259938662564789503115553388046508075198635904697041040742788833740563203621795003222509624400093188201345347273978474016461755367234882764929472994963826495867050941400110674902465394549893131151300591989321770647475190590626341235344398185693393562119242955459858252810765744799865015754265586603729547119186438943851094081129632752243899598505816384866384368425431589056229640361139874872821638343114777981733067266367490382613624343644023698279720348674570608937221484679010297152285181842593207187618203909617309990334448151079032838961000980568698739388794452531265766471491319947197914672163883288895887542830705536481984093231506488293779596398004240942123516134409847107709229790629634783438336772322095549078406389622152574728706406708963124493911048074468798089166838477012993052046508871029710245956432946868410341652752868479163466038228346789582510322983969921548643672594815552959934840385329860525446631158213208401648279925879184486188170796250152147214965420878326754047530467888848512568708017608183862879168814060076846369698254281750892588088834776772006268300893406332557100088160123117690187457365730787596628877695860492010579215479241899105654989142511001942611920303916707109058215016136741579936456847777023807960068155851137367671177714237727926628177956590439289961426603330902330995079494270255992463088954562332292377832602445372854771335214349263006715995244027742972899763576193011822642952516370867491969673807053943885493381980523287714554429934818912259596326762637166141531005025782618803921008780295378363756694855593390645651098926417766347007682146378682861109095337009677424329845585933961249536110591549586481206384977998828935496500777065227246896599493342920776518535026327083315099744759170442872958776232939325062295593955897380351505553859004800814727382089353014649827704021963923459386122532790932478631137749501429288680207415807667076121383237748496388281290671349177238392944188469618074107475674053378731580713830523853014697681072827631527814395436227291095678329005212229868177118989525431741504811544563715435852335272669469607311436048056847754804154673430824746524904555281586362838654296374452992181832371891712367304438927576707260823927406204086883860657215851658875733893315708340139960601967615557772384919690075144125046771489005207735794757507801755185887629715407296088606660968379705709820198394998106275131102427431773966859966255784533418123405630155621989006571776289210533271305060254252613540851532270203673117736972196314551511878847643751677668160102248844325556323870838385907731131556957625408784853910836208519948788108033334227409506898475509061495787439426835592625830485168388934818561553255398353962777246174476014089466575065196418433944471098076437918756220831518303139232520489884639999696052002929879863321422941853777970350236783879435724227091782157048410250195324817235521706551970483501816066288098893583622830244290123185171525761589855107234328036954052245103943837859006851721805155187935262630188755259612098466067649234468211272222876876870249936454461771368225668440753985793553750816932162975111757769881584984170583208531221663253563147423305824443570205878100610159624458903110432707283797819254106114545860656080299074417991213630913423447563602329507478661495879769829151583423388215929667781066190590442884673985254315435084314915087669242984224327983514998044690917085172629790288321410475834281507132403515028720312624201419850822281572958807317474895069466775076840573026293519097225724130456706793449529107735773613203302333657051842640692510520546973141190604531514901593134762029876418697145135566853301614314935809127353015879140656903179762919692030443360635817813754011819255393829454159768715425979808393962559192662314871653654852952157860470300676174123438680890865235151120308903546958606901889435741899073639985306055636714258921331223978915313416274604610041713009376257874322312288191210424341740890019141304494253349660728522400417919540374390240474682047994757294929450125788697343574403954278504753807595738262184821685687643939730752524737440803898389692740279967541934460621066941321959042647848353854800916871145845372598429124645862174057801850196761757248569175007350428262922094182960850290634558532266101770880430551475850983753724271107427831764830529880403217470988119307480544202845226480454781670785150999136076178297527055717354392043937049139254993117626501636359428838514447473518204383855735824585397238165466872893042439273643250343412640196334434772333212103986296891084654748973736126310313219130039087753026735127995049663553535825623487158115684100240565137490610872820711596319283089478994791749344210857937774774848459274104449816410898156735949946313783398482930951685524573283045972972991650423165454886581136955105889994277664143820818722654290999590404162493895086036454154623299718113207483619255076935129540279121467497269906520244260822504945005854088816690668283650406421482597784049805429598674544103973472001126931158863515546245720887176162689987866653440861116312600864138694505342438031798429129792909847239053993070855871133832872479193926143772283153007020921475552882467006336304818566280675350761786951399070108072813159243640095253127124446069795512379806473372870911401110668183612244548704881733851129969558393928839728765973837983838860305338176851827523888571191518432515591134850988074927214070034754485848738179886722911226625126689911139375305482379091019366227071516406910823155325872623552811866271878334949366854060475628841501662060836158562596044534817280214008705009453562172217651197927777892202605591703435901111934293608992898681208603228624467331965765916694728491834979069579186130237478705211574652484974611187615800159789561007923967499309361526914749035102310485543667347451582975452831209856626120190019582761840094255432690363717167032479521607300205211961875798805094935809660727986241390801283907973577086251549826498080898727009210913712404891792480926210389403011273396296609164426173430220137379600727502570660411509971164168976334912149145865751108361542137953918047337950662837290700307361432636661440735793639900000338299843395130706926439690212464654586083339846422974863251385517504968566438705320531817026454781361225203834016003678114254090765353491995521778831448579890736310455993326302871340533316631576083150905964784941424695786757397915598727458265368934488617186844596181190922484460918882223067942710803724265711128683005333470613036347343233700644048434215507935219244701325537366357922705039043886080573312265222669888327184049658887099078841078145516193492533839274582682717971363445319739359120814642355424084228023861531411158176855220004805528930658103100847324863608933766978447681016150648682366352746640679512948306656579029748831946905571247393857930793591186460026826457491058531537294608894764208096704523596689163745456678059642751917795879889666662437827797787084969720606076113201747499521889978686069712443082188163492701205686105375869495304410044394846125742843720826656410318527219209223924225944962772479539321253951759513659215534287047307661164108632736011098286038765484503145976843839438149608377671233789441630613008676036430254809600904944717028917264856521292384606919664460390411709783479166678017888295195884624962964153727993682881279305887301016893728493119251828669587453108319419570451211239294199762430554895743634608625272888768745043289251770449494507277737148537839046192379320484371268299232294172297472050819045018350068673881207198813631298532692671332910223958663929532918081717067848943665795061889848586561714604178261438446491297664080788246723546256412455543480470586092380538663252772583131948189602752553444110853897295681173008825862028391487778840955154518771823693447569344451653718519558055982822091353078366982119011736028924649465391347475303166090089676915930832620097213494555982516616006856801159154492518379894553802572768539512851346782321462865587138380597703244743719938370948291220222831336263394882026145007759641599161437392805475241406435076698410969603442401728456721127824765776846116094972016350248781084887162543988908964512558342579380112889012483688252188156736264328441073787687803419258458854919273559561988222364642763119091892831363607485470468841121071913528182239829596698170584316916371687175427788128234567218368056239794798800075180683616299869762584393913716368650220137425798503359995466718496467007880309996421436140853318154467133933046171239527367180124847538277629811686436582473989389650494981557913292398165283092417039264360333007168634351829045117320946719254141164765470891528971953705183214920608902765773838747421557902796640641926344132856457294983333559398433670731067221305149454530785028806781965592375067979906276576097971514936038259277005875794977987346882253464802012877034477055048470124904655883914698702198739095746723767270152344983100096144392728833635705613570843773005679622816949903415490692237302793821007718622862843463299239447384525820890293457663851749584045343934082012550128283618351283490818524517787304936108246051694441178144336541468254707540062942704880698404913712650521758417255231882375999669346186853595699041641346918626414161213638832653400372883287071433714591892504335741132477737350030499267635008230790088591827914456690936648249871019306690613812825161259862393909488901444078649693078651880395492613686230003614243454343265705969931118842982803592469233229792285222336025701738405395643489074099459437852629049419119578733064934995611633959852925949871288374472544440051858576490937839467240128721169780038128302277138837781183676075889485697295760805755783320431670110497581475381939794066299258647992662167127779321434920252242445586010765733010148143161608562770066016911899591273657220185042688672730592255933948361736877634223845309723630224207296939343925558062101023450912873702577002758952668332930855641773781130013039926719939702875610844706186234662355470231128064329630053139364498085538210804164244876501885499118332200448692933875339728426149185551737655963215221578782931324942328350949708578584655155186167978391500939369189817645219135172320967310715248321396676010596921410173526553873406197072608454816845002382843216745817285351701463928393705765599567998402608389319247194560174246248762061267579948601900378852890586847909857966069097847178829721709961505975056603818491597829463028314092265244802436640805268517404455009680897959775453814234907879007124689532783424101120612684638635454952087339698784086128182494385530209374254166324777742908519012599600339388120569052228536140717376451434817817763628214510953272648589909027640660116142835120445598808654080439961194219506077787455351986350179988336372129424739067295886547183476372024364530352476842119713425958908005250270479125125633887201728152774971735997322387419625918430059202144271298919650056197985022611884147674181781146318400335068987578854679125550423826452271345317102840474258441676488642496378046128409195446368310049367121513759840948651843423778487451585180921238716222789159317592854703794239220408350512905522734752187238636136452860274260772806740825319720141681974477191392854818420636660728473617432026678507481624223073192871395238871508122121460915706802270533420175047158951647103438879653586173780634915510991110136712703438439543450173193086157141306353915657183023688835994692762739833046449729146168654740981541901576577989334939561054379281324861103388252571085339729834663332799535777729758005147908141995704943307561337559322096859609127306242665465898277267808240739864599142372184398531585871448943850335215581977817203479422421136597085755430744571712180966589495382627427592438643920192508446550799646031137299035293870228827934934048585179022801569305251119758717848105073898388038077185174635504767156816987984254425648407509129732086845131624808136011175160698315005296768429370177893073941277763950000779776603427400693287835447321004974870994802068644654966492175340521631645728721473878204348914167030532265022149706743134522405196133591664498356530039414244681954198458275242498934131732605246395641242088244124931532848247760907000996514381553447143345558503190447458024120686506022870205641044992889789163532831859223237525942692008053688232824693634033117655434502410039222976975894272542616863736158554885260566158431750508921497516790515957162155825752566405806956851282047181499429648745520932797849144662337347500938355651596838021113225645018086673496222764219354196811327374905518118746453134477565117326474783846753464808719738658150009885721609648562523785847857148340657527809132072224037801929042348383876578791645264188523873733554953643350676881223024865069614860192862192110899838840592599211906252594549989192335786485980215081306784030832847907254520749695759295511778907002433688446802168260283211546963919110813979153885209735836135245680594333026828237525858293796237913499800350129459677018449877786197527322740724316032676779240349287769640720494088154365574505404315301856320477982290191488149012964263669208012101228620833432601281022050197338087479936202757922261001018612011752616978938214520070276355759294178439641451893286810489872259337424827866095078049413875511744983671887027552532130078528753544723112687254087541805852890030354196843374369162522504359183726773203101730765819533420591656321228350882398799873388383066572283558635389317685309177887055835373605826627506645821415634880721885595176810999546863187909582198682655238767630561024463561033692941189760447856907682779477916898488759490614015054731267834466615869534334007424286642321797969918897622592316287828714790634280164790220843643800424187104299345545664074371161252669016675619808794630505566357510707905356475975584649478261832417791246211302042013131114373310537700534189191521091376591155913020625796375599232874056311800265770373281690346175062328658947314760026474136066596828984974406355738980080341359277625923369375432291362849893239346802364280725757666784646398061636148016531342922129856386022664657083666365714666404352178047494247164145485902095108638234278289939078164391285800906921972662840587375126636952625885198219595709701094255172464008187325882284469139644319836717400765549164288216324175135949887059310693757819757299319590143775472407614127691880183789102222952347303572673244443568301162383397804512673833694259506326080941931113832345564166389644871966933114932613865180703351675760280265756639645870599474239505744236954775949099136796161882736183906304405889222410528164134036382063774859365205720354435697075018388296278093953928393835244530683466650386642825131984177867215414744979100816467567605746679811158586757421803652573807085075900197043487981742862507019937822858078073508424256764419338645468105431773508464908370957139837212042386302143875734842366925348763834657430575597585597589952466994925911777962394011187206201231457171653796005849081287696792797346293333368544196167386890977872560228767534032183264374177398388273648982057758672648478868796517775397673694827411008237560219392860968304923836913049076060808829204191024804418246013631500937368155284099551015601081551204111258904020884717335738388175342563194399651349386675315950951232031324231751319914412048705647050049642817212706606503208399234814870971135740531214838148174919784346875123602648761340141408732643408655299136894910000528687469528387552295687452944016866934886332832360432802204511411749025798312512262511026036057531169524686708336356129878747753748883098358792191931740396769602324818556998027318532536955707670696260798480956519640765082147140907450231248722193068370077121323106675212791756841493479065230258641925420481852322299695316971572859394828360536882441482607227177170628979656716537582616334069400615530398256072641494177042394730050836559156319566771182239148026793745998364997494281948959808150126647737360234353471391074135946070242112141856805955579662225609968935273177426161990410962122470409355824793048728922744457714718688257665996699292646087161093831296961939320759706493915084180161168970963162482546656381522220340014746072366911969804751628954181274964307469275506758427761976496091765586968426557660197483551792444616581566909311851695159506774931050665832556130667654384444303795918083465661870164035849809246227010220084876920272093711703054818211161351559455223139689202663679254502515294726897815686665828009006569329006067935111500603887690130351359883595497148114656693828524732690241411329637522605011663328662522831242085061914926430844604579305101416210198586783225765841509531537334538472774391561487291633626310177178236003578313768193849454350282294673239194534413112971378064609003258596824994791468146368908544795516225022937166049531896481678054768637301407149835627894956268043196801911110515321871862030759346308119584901621450283873967473074085163735390610527815960639314755155452394802403845312941449058760632540387470791994684469100761863459361473488948449508437915801163828744322628669507164512398277779491831785722106159741658223265370095300944447111099929457019216674720392000586685722952531930810780148788941512054896355348174586634024088370167710302322518219772042099688517833947108661849113100886224846856067767883749215152328714809492983583098047160470511647897621704542001887405554126908919111424193549996265123220293936800496595536383438989939982384037763929068908670315832800086927036269094420396683451509084317129297473947632915307366915815867064545966041609893844633420791477445693825735927331218453557086435495026327983475137639110450170649628373101433821653986062764582827421245897197625500934893502276817972491816680586550111010647976387085869422246596451895328742746664234608851185671803885667264038928972436110673299274093509446112755655428869988169386696775899229482389990387013516267323287652919400793432888272091910071090000041566286193758004256148962324252255436334176510414018402058257180223479050647112689311453284294733433543427615814834189663872740043514857848198264973627397088211931450414103736426508279001670474927056160078264599935687381429303687108489422050429068284527709025991847716911786389712632862865912698521821981730765521272581254931590664460811572025750808598756864079081246955065001834920173920527199214961828296614065236430778793768476557459725679705911052183888908697782067633979583072735521543977673692254309110199767147853644078703209211246785278898795841133466170416147591203665149195269871914141614730930131644054864126747195520205563197773705571124273066897915934562674318259880474914147178418109926397377879568453217592555467997991691649305798907141630481596751340772377700975953347907471105697325832111513556671817333502269345526337004771715830675925354642651465233042917163419035525714140961799278800297600259789239036229351272791489253618279989207145646229584911822074869230605831173033049680374473779626565027239885092773859057668468662120631171327229933844612570210581011030934459611552606876012121768341980536495996586612283598131635525597083087326562611458764785184906801402557663385858070309863548090013379822820256300369146406058423693904833742623092425194967757220181746251679797082978059078804964189434462553345949871403922202002767407791619615134754407460443317421920038387666701715797116584161736307432066345683155312039352449293206439443953737346025662806092542573525263791996887691304322361713133356302690119045071001762250783321703632406508739934834658913173704896367001457574427969309229695805045609908568949957215244619810872702893057160580902525748515581772827118421314479319930365920205756084790898576085929401648323712602473082162074231543115995716540313924005623589069210977348083082016163950248076658938152760205117282625189613164830398842261851375522456301191850564466881258675379575967131066694277852023000659271756496679159386116680867745002036978760302518100367119513038752928704217394541050249165806249677548588315161644898503892357975835005323304476524916224218719468620947681745354746211520672551357151743722713041663304872981260157113688702771334941668550372316196656270468338636292186464015516903602016914048069095835305008561139766386167029655367412752221967005936419947430996848755141315131798983820951077474870112006357419908878065130006091686720870988222703754748585719595137150119218630215031617728973850347329672929852110150034559631814111097844588028439975908564141215882736452096130726670291351677074983043146438000445124292979000220804350107586191247117192933636401428975331147299418483117472996080148708873405466128245560082510206163186063833258037500627912234816417143365930755125100375424054564004249876488634689459671437614104730315966451334509899552876194836791009783411203251587168102344134990644492098427613776439225455539255462032255572858721960072194489007893572366077763997088933285716573871278109534333927809602058255521158570137174173666529308188840305843760514909417848471910717123215622579499712447835249725821275607470433276603283594560499367726551018996387562319909579971538228543789330308104276946986084818810908268403268591836197722897495332785643439322230793270688989440951232245725771478490965091074908755175419753259573067953376215429341377003860359334298716470677773186536360571778242067136102166151769659149315820791028692314188017329496769253794002658462480428809847515542980822422930992639781401395853733774495216994390841130860539920877034996624017418202021281672755456213435946523844215702987793097776566920059957694404847032937280700475209689566961269238068797504871844113955561518944834103411279742312773432353214633602484005469991431493297430599359337011622724344834586150002598812308537833817315108749757236703273256779037961336248737389601579632124335867289077925689497581044188427312918896622840399483036348352605864075181676597214301935926197855436141859050365808315209001498075419585078132289659816350249579389969697162423099058542544647252235751155321858204329659168974501220026108740761411189808433832261600801608401758043651954868810847763649043306209730195432237525401294620452340983674990959476729186087629658883325977683063268570660425445745191419451163505663346956433306942641709849692275858831221946177512801080003442438964184557760376879037692370054354121973219746260336351669435059358370581974662989404940598214987467088884386009715990462524314649465596646558461065179820372474563021645906053135062355044420229992535474424689641970045142033990335909388507977728172299672386185922319608685794174635284463382340890012981696629315822270456964941738044810958781101072713819427013189372098880939448930522425109677102713282304517993924669445013478493317454347768800270300475864399267617953917072027330140540509556204091468351954956292677254223053497921916218598616354998649542449895055744123393383981638633318745859303155481394618470798190372105733344272223280288259949891285507559385638967731883444604219314676389573136599595093647257217658196347325752377833170601819385061704445111879771143665958493691068872470038905609640296702621502693949141656380056838816710003936318197577868117837652480493122071236281542208945806968647653236662515259626656966057494427762299244024440205705756206750587479692354248829605926769707464660751981716656346737574145810002171146950757563766769279247940290421046954910623970792608309581591432029617932614453008613445893546476854472096830980068137201533454834263030662794135262548457707032381786757786507815598096130052637018322679671513336018218009955046975652655439474560269941008412572544236954479263759821134258806602912721800801935928544312147577977529019573394642547434751593148632254856871698972027711377425748527743835068013941797017250591242750526051340973737820048845757175657363920695237540481396806239319076618858979901443295469481893141017487435594615801204961912397741371513926504313131973519708573751916943694188856267498949098440035569585867642586152338249138104678472883139246369801673325265949340520085900698239397763583177669647715824243395984780576554278788971735680941880799855315239548274502053996728507726056010605157588354420655187848100937993152402914108133283478827015466460561093428941908357332904589553599671400828374452328133656259873804728143755384512610680566371890443558962057426852418047721001341864707877008958096721083352871721723030902163952929067559158246538827970770045912656439606899799796071445412281854123330795449284690481429260165656655838080104578903117633881533506263764482663961854987572976611224116946320125306593356570035622945031737544394214790214481152873769488522401559086670837485117922276336631707702098681281952868850962705707454084016047693961932488607386106738333890650635929774387570837611768671633792298076924493132859449910865428033902436225326907002619523952512433756670922160911536401775017199698710914111435530195397216380172756400075920455081745402174121336301114537303148190843856719873566281794993476586711680342975057222510916106342131213046292808570155589859067742121339261945188106252119624607679044723358326036997351683574571402017124238616885688616199760172585131323951303345217217564043079904422256043540508638689856689542477814826412124726012283621750572955158515754482197390476180586324435777282508585534488413626606154421330210526855631408696945385687743627759528256339164443891320871627187466810329968255106453487008218745397548589828090207304779600282568042435919539243661778830029474563695287217773450635198252320933093695696353330614772392241037084031012252355613030830421373598878314296978510183724493498763761053660665728111695645649215685826931121160244065084601652636873036686022581722931733317456088122663481361639238503365344021531780696801591945104024676258068797557012244380531408580564566506515114563158437735128756884881496065179830998850088233906243770516529352769068312503309703168661236424200730474429916941247499260593328831330080200791252248843851590847003252016399793258948437523245321119768997811347841381353015885247313205751409545085367438545609821626907228900039279002500461840908915595164356036891505865219572809676930316185002185177187750475427082754990999785860549536453464303607090391348847102243713041462714659059545289136287647945406944172339926676767631885706768979538184282331587893049755286521430538186862236679984706112381386323521971633021912850246976515614154953141626879232976485095816814500461239561755883165452516521511380700796572032876885138874277831211733339298535796842697795531429543635735832856925621796993814311373136085649337052963731129838667547953818933744494022756068867995540804693457785693466587275797853445041467006823731494790298401955360769528816787316230200494076476386692008188870576517935436389953000525042747590118970923577147573480204423738308344014410488109491739167477681385945747653297728096770774506442018638921953088908941093325322094791634089142842561557857421954034798313016554913643648604239040352399791979290020665765627763083184208784190763300722348125520385608304583099822204472166190127253483484948983692161785734273955597525006940416051654758839238419418121783620607226629019526259801130318349703000989371984820368363454196278332386894351554363122607903444226124606513226654750940793461244830371255352317814010929709310455877789168676340734236251691529587115359075820126832739490752639338082027375969678723341952781059090103847653955869808754437761443238577159266531963427228446097021417618311560427022175284974802509492376843073836727875821241750471471299888246256636667805618530843129820024598259884698992231080912232431118128891300467244965515185947134904545860533781742219404159083042602961659241360005262691381554744496037019826004141243562377861499209805864330917998011208156833989858938833796060800767564176476676781044349167455057629085875175322913758246726860709969857748588641657754726687026411876969510238055276453133539902807242713591003379024378149530995023734611873793705854352882641007880252397333716086056598128238869363635372898861085087374401263436762017749089312172643623065482274180965756870644949429762167783832887663600660948031731169627870737562612268850794532894766613443959070638703161277507614772984148110764126004449807425899004032012951154154141466487147002454863784625627704823044325128256158996843109058557849290284858220734521833022542990221802416838800729967810428627401080240001787177573802507454835331641708423335341717682259007659010847386459282290153737093283510632240284660310601856241692085149757013561451526831244311228358219105124835918996825224596467217775920968201846193929263270619752893935419098279111752856393870012250872898275839449662497205701546422080201205028902103390766711561903054515220169617504298873800898914242609741730532583918600690415662035063755061880327143280772102092840267641142081980018141167328871615600711154543146800817477564488948916826834773951812069767482189203995028900040535969851376896260989550717215156750892102358216358859760147655030128771556700326691087370027354212614108651673322622059486528611964112051125705725681323021015880044350849122897130514410363518150953309058329201093646307541931785414350376177594272464075923262745593571971976083779142318785788607321144296222960388022897334406683685807645748135429666910825307935768520299392506381257087048991302906546362680730245799000793014414911652023123426032477510377792562037961210724987121263859499759926502190053150362222641789915272772185942879929756619746367435812131617687324940770946670883034723668002968846593409480954765198012611535351150704076578322083522233304916280750475299198152767771753364336441935982928294238608589079825484192061490226294318437902095950795678181091199083021895486182031173449705391955637187020239666823174111781589224588304324854983889104832789515047481016895497453347730445474930923855819250358641127022947857649247521782853425482849317573339009140327476869548002627776017541312458410281771894393580181304879040453883953726388994326301780674493245760341684350400354829269332289269071985957410846704589859082366571523687076118534662194195709325514356128526166317256725758807319560286414942054067322001917009498780223812145846155799193574476446043695458267227219060008369192960704959772960050357696057908762000445909787832396086234805595906961389550482492913556548612119037871924771845032349144820987851191050082740211116953197156025898357846729026529344505837267165936688579296014580970548254601065220145335587680577515653931222406320689702177816879269572817070363189226698091308780355375127562821951812416803986049148986913676889899603845044032321515054981263076515854359880380522705089856425434233329472813733336733335683172486810374201640782516530461835824898678110457216674884163149842926752220147976199436684645413618046134132083343815220448241024102811631183880290906007783042711855918714472645514290996098242149294954848035476195766427618418461333006167319187486692687453302599656118127853899187337959985350251057064964467329676701665807157468346452017192594351658767650263122865757210324793710854446073413446183631249745092246084807961184915277605779921264134050597760582410548515825123971994901114852740284072907379963894122177184498316874290758229848129152699102261184511125374526322729856843382868603247241852751867758941454889213559310006231911707224552887403047950540409438783062479740145282677604256203428625423008002210649135261661953297471489255906478575579756708711692950409349747368153353940505386549961376931435006017500978846618437403867070672802561300226816551945250409400806498927945389023984117404203467347665019098185388609669103184629077847334591264281984139467368386502318377383680587586028275621082579823040511479681158914756235515892648174343400037487676603947664619328668711017497169297684134857753683088758900359697034929160603725089062198673925881339032350389039296899027307187011276267312382139398377502190675426679304497822808953367389592049017284815695527447547970662867537429982279844424815543068583261050281618876461857791147764033955038470460737100240686299432439600416598167561820187814274206146825519166559342337169130755527411988903462861270006799580411120638251003085652622023310397871976418285170112474527790862423367853027047596924666661493827955954478182948943183233204914263216443484947013634006325596297544806807461192519403269476843730751060883290659157398363250766310403334237319615538807650470362859633558780518214466897609495556199940894808557711458903187299512800190386401317757629307676831357284286340468831581097471814233473551275485041935882545208877054300314300612278262763686900183138834292068838263834146170053611279370550421145236865071685372271799946495633457739510096887244769597875055658460883178402864876763464720336640809732325874115761219532225633901852555856304772992747981900374309449563240473954093411783589673858431660762443790585621144767965373367904683260187619714656305189254394657726893223744958061549904567555810311474943378082202945756014385806216106817542607665165855364984712919664805522410761398641134032895622672098217207724770431961312878617100952124217572759640012629484882026294546287400821298423578234505222227529255793027010394890778090887168356255954691750017226831016030817565070179599414451857040507009654623752890466392178713616055674654561124847144272333355098904522528905786531762475200330166995426461656052845291928328406488299595077298540506302450302718065913812670033478020693284451491629577609509986774637731968895272966662082177278437700521206622836462957267000512137479113859487660671668102557455148366830803140080643930238594267265785657412356377117965558296210652544806099351611532966789324395170838760717930372878415216200612968907113109472976568288182262870259662609917475678619589510295125461848242419981896667037316715240750805674254627177325530772447437541674368228897713947399681625557289002505857317233191834325126217257159591241185449509066199557653445712524946465308925472816776729168510132574599742398291022691651917575411694693433933808501687633177419551318425427104738834810887823580684231411654303361113978980624548312045908294521772658966878869924049564454594601288111816781423721847118169748607124982499456955823545292954007224471408760744783080864431940887636195929646533484220996274730377067762106463628235522079379083800963765157445974213860308613499821005106156743479712836251989836829532210149190284993783213068174399397044626026619286114488006582997384418105565169600919082764134970414488302463344988837679742298196193720038726372462694968667722758416193916079179607617738971994195996133218512694490457116707169243023484588983755547594341397184413223991604747266043081173718567059995681547772299905138454609209880233669518418884361555877199510704860375157724276166684138762419587802376358283876966898337442382402049408604908647420947672869966720263978892424174339142385582585281556302221468521789106820982958789596559138204118159952034041272231812235135614071350777411926617593625160640978799887361947389698413635704975456454129498723465194188660878320231983959832568097910889406155003092078618564533019988783330409134099047116714897999701872685268137734132816161675315324662525155727749607108617156095355623305375050926022000530084633431916401055803924026127380073206785333965326508644183590266845569891415489017791805033495199707954254825242270338923022432694815880978018513603684431240599675119023935923404475619925086421007557788832708019454620099903165042606001285201536561043356800232332425791002713993480679791852847051032891716461562199785660241562826219283023998109373202804942371005294707417531745111257670453314526302480838898414219796196490508820464447887032762628135157930066197220439647057023688815697769097757558211541966733303173717090905042377412033445850056717500048987590842358019092221135757131450574571807737855837352233751428339332143691499758323997680145319907626608029001506097789042080437210222916506903926201386674017283699461519664451938463589191385657505823444602904413361430286063801193554378427345106413991033598083939081757821305159777888546018029380070060382450199571206550052340011236194389843033582230960369633988441085599396365855686293087783731457003943880190856608320840714210682228347136722432632896130140135907448480137682642424810637130775180794803051592078876670905751618192386603404502406483743634698662753141883999865022044849732650363986011212926630354202780013664728275192983046300149716883483302435955927181187007807957587292669411119080241487300298547520036657480101785500406000335870227839699850273792250448378496976157449392844566442806656303355421742195480901659236123693589917342039481114165564012277359513158263712889126081530993683195596672588001238331992238386715840853443851147929503387627061558008020272336787196127749917432833416166831381976968383598080359676417308048507950895846362927861613091026672696453181055402490302090401021604482932579316426034732194708156360459470098048577704651465260031730987851394879381553775077133701698721067338804691410551892617987247553030945033743175808080389703449568777966067966609784626093511371473974526996695181454802634769673690892129206836490543838791206203961989991349805367501276985262228836695883877990652435718935610212363395793782739986972851970292927579890467941444053977687309974685093431440897070135929744731887619782769066788897974969818099051874888347143681711914620609777142943391090524058780256505343974415847600072602107762697412412362018840861056778039176719168733003721902661245580114843014492558164284377364929326244234603773277750938053894289008289280873136141009829216463595506390085726510755873493974070573514314090596508427249539400694072039037308353382854825358938686344090283965323937820305824697598751300208547546733837292298452514114893136222423529704663646810984426451328074260728263594728372241935453923636530399549003607941227684140687079242494092717901007002004620486092643328816719745481318445649637882750010569274315075270509062165890754151605487899053441122644722234307742760968568996972123532178996501025949844879152725239443255107458538948141712199505517142330361921075396802239274775021656470377115472124033402020006084908487580484857132629422347959057915487771635664223558398982430526802677254437448740693378967520405736310780548887486411112409408851782244942702306356692244855716777320234929650975541058477548807606966672023452604204479077843100932239469508905714323916072438241686001000752035137846321532785670621538000176540080740076688153660627305625851015899733792950626798544586958134451387355741193412478584697871193731230127689601151953006140646027195932740886030629369258528647071649586649864524939335476851633304530367948629740789248068614199474407750014420929911835147423995300409064296474613706844210214322615022274502261881518580678509817957086140343455949146035335142452164077969480026530511366900678555644422349527522046008660789122318129992814022129856278206822639906217721234934575527537408385211060506638024901568215805869887108947630174006928728812518423764556803906197155027683400162152009666704359870683120632305169373990947700743715526804338652023629234631490300805209491336969250735871131847054375972381296274077411124710960488823789501024730471624692591318627398555909821870746360228325072284451512814914207233680492124645076234014392658616246255694490724566024740441930841317331205835206394080518176141104671274524346542422601555272230302839829799823556035021704391251598053314768664180276056102567779550344115938733288445949021348777296697558271155511744145396497130244332521788230682469693784436841875921273439265511667897681355168213560447305472837473976669737445150598056212365729360682806123680659390785078742507405410003188164740630442113270438553493574545714877994302819494193069597421639434910472044011049140400600750512054405679692505103754867485755754482338555903666848760344812969097994683470323327036474431484049707686742675139155308168978529263355111866625399000299866263551615829092190550051348988199795805789090660665602774741345756973910516563994376505874964659872405671422948509868013912387178790819397246309520420771288349616752665952707970482260533542314397032642599189580416086103988305930447240264328108984540484490336968395329221548514050959871450776552618663327497899922828014966033177524276228656873193749113203061176833636269706143285807367173803592013836542815068277491384190027047344526346909462799410470792914989155251345170358405663046978637001549255720969988702944892656554134100340104487246907305537928995885652216487120666341704775844064016081057375793401997007382202745970864212185678982415724406560961695124874969392499766743040322857039399087705111752386364290731475020174164184933865450013560106927315147624271731799477391380794870231611830583787069768865228113601448550425835680308929356341342154807054373180404538568912004831568922927660576565816263760324944943922255943432092307824558622498203349519439598589603232934225737265190134119430430208526041303448746534048023988319521441228028701665638375314471519462742368675075837555515537826698977618206595625107126252720728744859616527558234120047900141223318690654605368774241899908817354062138522142379636041080175809400967000970150300070414773822785608279177009092112226030994893973000474624112430529698809078295191569186573119763412387995566422974848892961470635049317667956967565835603999545327473122829713696514357408632027297686295577094270095565254760724239852134434626329880897846688692856238864981833168726391874002425492113594296470922638399958755899446283332948928912819481277846539064287608556260129487866843729035184530642192508322869738018292272720507974964746161778232853080590390261727924329190117628765164661432811830980425777693763554952361489620482397737414330451427139181139748087157437997876744065691952508116382107104772860741855044310320898182993547072012623297031443828566316195911810614890367728864273893567309106527258761073860324080167465053165737736828423902342450921749158913235023895949041598857157105940923457909706103296103787293268313369113562020890478178615160470693720205401660861977330399907319712858007768301129947141344091897950223615052436858339303081634266437387864136371195312631612378936381668151883830699008449199781714594989703127517211639557680394722438819090906365797726853884762807654809341374698164546230617548054281439796468703884930050091146304753773122362977116474272439442947562010982312832422278455197451205444982074060760377639534117725925593444715588187259780486900697979554558675321650529337323930706126345342818629476710540170306489242381886026865841294618814590160943303430500405929530882954968453293650463851665327198800083846067738363694729134285443421568660740671141359536840679786777162441163180349491320055181442643706009693304199487735600497031465889668083246403780095140060066009842227171303871063052969208904945875409973767392066428941808042203574339853343132784180098786958003559029402113532835397482225245525294417357728795473554104918380828484816155305111499661158671976949001687330783394101470587697549992854367128962767597354105848048017858369112178454721605121520130627168821730220687078723682164458990905570284788187198902787339565423293881919837604421196326672519276025487061909219697956096554664731118654053002018331958207446994787608327443836134530551360909971440144962065656573273793606275675912548458059655620222747802782288179596289311215296771961763481511720065924531227073160669009044259234892818246982055195725694333369236067124003537100820700662215348130480850270958990046058684941496331711991515430285387463270674931395189159356083870310698276260128850527115420335905075754794303580546627082035428688748321634644267244625332327324615909787446718477025193938710798151363900411319477460860667965921930802013664477329715260414706038127669255790062317192761568319595704629489962338214520399480826312319279445889947281236811079555388578491957086436112037272844390236110873569693543862460459634513010954730666965931120042265519158239868330285286059408204202754728077978705681804164877283421129519606499485630118883904569914725529412277316924847137463598929582978135886882192244004196826113921077061618656303648520973021685142865204212054719169939078375565056922033630150472696958253131831571923003716364014079545824812160899124201776302392916280393318504441198352585589497944430059395724175210191330386173616824514280708642212276358222480045798837864665366511951766879924586303733738995789978177972050780911415620591140815258657227447999343310813372129895493549298479497672773808401913828466996761122237409894645202827986434860092362557936259600290693465852130749130964434670641633212030444280342733326115978983018203483499107550798733986562423786158519340511848718511342265157687255682122497604830342776623148190566401938027790445073975234651688893417228233893177906942761968581872297416026581600418890498448590672799401356564153564734169718851677491614010647107337538097649394849406559605626869245075919763370834096863746684345437696017574477321905048497508495435928986822146402523754466566957100448913322665567277517009657962826017309102791817263575982160829498718786578298099277164630814014803811686243733235749476442189694848252188854892358729206767953766679045741070617965652704876947415383813874384283735491642632727737391476819426731989884599051141695947735089586093711933925498382234273147866510628499368261450545554154096062548957991993387413457842259091105798522869374721788081269248570499079929660359336889524375583795670825203908069621415529737988749678766860544981184362100955990703483567281784562077259720867691567125761425365847267809484793785749415317045766272020107577115637197841686876115164096176447602375202127896346529358340783682334827453750457296855059681467294030599599435971157933748658499462012619085448128975127319344026074063443769003532923311176955977606413639781630370617396924664096758033382851434391799543093883624992458801552891837040881335658413191625851619487710792360981075496402063959822245940438193079319294651719424623545302748141694929002097699580187313247898208145384706504561936622730108206842806969835730137261775453502739898330729095098861074838853917628217084209927886199888785205413615947107425168614605216056828413388951439394117921401542048766987991901014247249800855060893671868870940228165236288477408930168755318274022031543586355474787192513960155192699882246514260373893099926320725807294366626001750730615203584080134074529636276408039764512170204947313912338413970344584984817506025308079367025081808053692574974019782739017851839376648342488927854382451828489396157300174910461718159455187653342250797766555320679690853699306581147802510658987537569352563112046322226002211340093475102444540325090088123142801487915802003214320100875849026785495171589313656485195867909162546065293325911473182016451663688420633966715708030287147633826033815242296221387055851377511806289017346784132540439299421195911666911015074177081282565573052346850869304966525487053696438604916337650570790181970654424284431978624392330896542464929762439596564372798831787818577121441659098308541939069869576999823082047219516117225276510090964424880233252411318154042639183899436712986110967105648020240914247939932370063001533572375589999580806222171901036597247138852356453698729939999787112226568067714454051895570798145523435046821017179935601357872028690634749859750158770431950156061324884677477887992982355247578861968668649932577362927739909191499720327606646526262265463499995915369527839404428475336058009416724381811934712194495341017376846614018607622180322103757232230777060016658842233431685888303134581086943093324431477940295414534855409242962936910214804348358306592787433053098727514683615384994048578504341073808944238789022517134716966997400689003542745769363269226128078689676496206279253938417624408022255623184916302102065780408030521773503056812375490770564930909909759178523686997067110350468207667691810940649666846631288485665609302321504445184254045461410098253302291291944372840017154832317438671974687530271706770853253161972344768505564412641076825947780098165395051521326739030423533505676206169426646349191102260674596205997050912077974640402544339173794109644341511175246646898398554251695035849534327110460925999971592920609768204252216210579101233295564450222497083316294133734661559818464637745825732812412520087422636633396175914568073803443433532606116245942398932752686424176892593514278039900691243907773976204591022828885607762207559608409020384187540191664056246663513260077981527897164008817531136298208001523982840090056710443401638465414246890433725944827932258142778464482814056294783162631574144159768245320435579376753393101476414906347593798846511735196179528470113646475518818628329486134448277575796717431577784708729705883177411840175182447502201136075753260185645471046972881077027969754449698505484143390104521706372623610780847474035075706111512444779168652513268168388506531587004203539515512551100476634110208847633681813381266908990591696393435916293040923998596229460368300398122566109792081063180070531674160531896704760463044349460098483311466922716562247980447115386978795001431441727496242901071799890339056041983753593434101349685945850809621820739289970528394532413659877376869730846594240035925701402192303762733818448035542661710236270199461651514967837525396665882836695885099372752249460063349895656512624390210035460895999914206859301476979537958790986160304736823225837273237040739752314081249279507684430769677803244635626254687064078741602481037088736084109554010210760042007195921344576790170498810772222296038182407249348864495088293106059921449419473021432961566311237236895453826999592112800983109667784319026895864964436329370659380100906656078066444522755243671809922208891922141852672137312812577568182843308975718842486855798787180146193181971773626184944344872233815942475977799522590433833191146979062172526248696638150138672669231469411142705780644923824086677995811876514141003306891815491272384963263785000478452920126952459563610226104839908171751968847268714133659298923739280294974219554714445170559694476253036056079582395017218417074259417571236834243120491137434242851425740781335009147336064823906969089775063528517721355009074502324647817435970340828654947055002218433867263599938649120700622515971512140417050447491100377800318820554971806509412437408770235409641059385750219451008452383205067751663765782893140163598835548319058385099086008376347551128567670167664485519742668514640117647814806554214474767237640203088454120638710954902658090405862262464705340362759823513320959141782556397505596422128213505780170667425956438930007118032153108104244126806907649832830291616598804890152994741450838842429248613099577872886168323522194660637516278280579601995659839482595900618409835373371111602162843942597510088471881737262244297987017821483386579394284333844308681731260190825246625228865107157990618070453043398042295536479405813282863090085110710832429122636130057802888473026602301089468973205156334023695305132181703152899509932344714471644385599190844092853305417385001046905714538716805780201994922435320158136302760904175491134580109253937391252683904196072018462726185541022178688558213503106062055564004983821168578758216230757284588684338414660446981523437603478174080341397512464712948924588446072889938427900756682009899160926515235692822852849388132809878833916538326796602105291906004225321487737987110909774157791171945713502901896547160806414531635357866050949247909448110166397163620106834387694949889019605841306672199875331065370903486028172396798377550236699540676409762965745471643130303906378907440330813770865408540946622834884082415986177014055961735971974062050841815065752814075617047008740216766518015930098198021314678706507076889942566328462409789119288304401019470117807114994791049680558950162834261903855581368403220354595925385430471491946763035702430856686291608361242001765684570866761556412331077538165907215980293862696545527555442080578811691702369332666693521937683179514253062859342814613627337555187085824136596466725987973380849989703881440442339456708057871041458316241797909520451930559949137516842178378286374258504371720136128143474576200413587630507663132880250298325700296765991249365067270524766536506160868914565165162756421937074694758880846670971269232018443331256524905418451374805673179389318885916314125883127739231019884889701475737299164193686775195169103988162413132142904400550302394243764772213160759877260221912100814317431245648440840528081619599189221462016896306434961350044946140819522703590504007221605295849475988149768415784652888210820123443365676321184997207283479389134809201330277735600025791078768516152616280125022810531371308236896878762265223507037890177436485632902987907998548717186780946061730442218267837234896509441024478295131841772338041776595366177291886378756928816428531366683630535689869213306232684907616017984099002084588091696771636961036409176211760190292222820599039168418848330204650568183823500769995064386141224840400486900752377470607132438628180947310385908722321951769140734870126661269092211791464594930668243626124722225810723416321578134576191858658800940944601195768570722833009887782073233704968946221579246506225297333632698798136677504341940151361038000018445708336299599269358859686274719944799254959824945059176626043563512778460232658668596237792453997072388779712403330789313425479101315518703436105012575653672776678124884434098092367319022957375097251970174790837561490978435805393777155873157638477881762069694650140857344123324980378633317327918906962655582153568346027235271771508838276468065037806637405096598041736154333756230770422942427886238359311568563896980886402711079393833972559821609299761671466411788102675470590987935512722287921585584696194002342068724811904524314087638860488014742760450631029936173689525704386262390355923902557831020548217614087829423710931954366668346365205663763368672146744160214171342796258757279260104956306124186285520578276355748795787830784950126180101511347651418323184945761806516065366635056903101628931880838574193605966048156236927968429833543082312802241607092178732799203772832408884741967224129434037322171061526849017679331566763671964611287603436159453032036785817224813869853862225814290016838143308101577410672898585719592180115024368819216419981068739907494636447558920373328748159798148125766169083027085861593365100979167718408402414909176568186709980161515870038558891096112234662872753632414654135898473738033869807801926193844382906960296866893812522372281788215618687166661656039347995334688635437248664394560161304913445769062108656382613542652209182226906224948829397562872668684768922395405989872141919574125977447265928867988821432194489790090614428277869454224375556689308793100507086482502842231047869734885563643637790777754528649485270075037380072705646139132485409129563437033276642338501445628663192569166138567866128651999302467355699939749743567049212837124111811411166766859942481373330489008158332314573282054580269059037363507741441877961571614055752604456544656035621388617975713207394538968809146262287375068897458478845843187962843334543936655107037972463754615616191573141217180259276375109957881582783920231659528748273144083967415135763700903811112469486823934130833383636119000376066261563767716895495173585779087089667603592348189879268196155595065651078830356008389569207926433775051823688767817009450762449020798617217821832904327745217679597932537554509976680465296388030093873727344508833165808460933015186395909032202351115053865948982344916692194100581998077883793426104464877153746948435129704005096668635155756361616474125408084241337555431341350960840265982788782730048858459764599596177038932569324835985251914261785812371968928940504318331872272977549041749767424577637382917456487584658561654745852993523955598688730981414029245818478658426397542578942513347715430789260854175774966499947795917778710561082806307250793399883129161572535027848215193120414568143711067275252453762784276235436852563962602417125319890279182747911346075871151924670172806356876268201277191367425989211233626339479351076530819051826261658313978695079656542656983388411519563744931209697114312187017914458251544020763386383689207194061463603793788639998676458222104077696106241598608969193706050015177104902944225767649549518242808499735740654656685770287313852372527751381079010435329272802020284496660286024281419044105774958774797346750029829860511317103622587179248753113784807996578029542695444737981684807944934158334422167428978981459084711989240462905050787354506970814366754533532031381208945712271830685899510667801474388026908344115658313256001021734981235826623321959519868956888382760780678855693308981929069540173941510118827604290924983924283231922763017270888545964242929199484011766443895205935655561452580459899190837018130318954594794358184008541453686636181568170149850718074808795464577289685674531667521370621327841734651140878161669158973588971778795603814985642064501577007211457430249602424875128017773950080226949804068435557612698805793420696039501697306099676050530710609458469733319449971045550399334083436683307360846869422852715024626799592496776953371959712532657013289439204344380443795219094242386060909101938347421672751254732713969229166991992278290446624699208292647463452289793424714341576586026037492859502088074851954092797769543416561181073104113219102016295457146830718436851213765757979281661031422231469590125733776611905973235235622513241629591176714650295955109037433823070801819107792165192954929946699306125541267123006640298963394360175292545651343559044043235610725454103140559366667859398650013763411929574531487476997164507436876620193870674195283545001494607750932981193373718236569739114355870836763993405339532440793280540558519791655739779075465323671358911579512495146770383835555481111568753854647337117497376055031086010890597530604235816736614569867333624587540358708828783434123162235019280366622107004852363939825249775214824088314131743271706615843194183920129544350287434515440845717045413078445044552738536577126985358178068716213034879704950700426830259780072882158166966812161363938588791666446636077735765338861860862136892789669521911975704127526472627310433547433048442757944980928058101570413084008418044410320454397975759298601021366262990833288518142907253670078073252459871173230933316286112480335960329565739293004561504038781010511941267529185917319763331476833908033162187860296014665617152013093428857821818459228966921214710787235262794930722021006377666876620286567121522688028835623877493353273541722934178375016901355307098725014989644375189625281828999444233379841867825647539941620441508478299524960530547545490422129067373538944509014295117530015606829379333664955444970961577766914762644897244922518933776915188786843542767595184976297601026379743075052437711128906442277065035232294547248106502813954961640643685894983418991073288399173659227049003691642676353891853411685174854131819085622732584143833465817356066722181223325945216767054192134899081705529300568629841571469676708884432731949745703668329189396938121436751001659027059593497641606903243898237847020240711561616595918354596363385348826922030808650101441269915817994144057141806834169563120648379083350451112067838707186434294539632864692931827844154896678530427922288633002038802007483697817673007706436890034056324754308857376844463689587842900497688493467423304921666290663379872642937018050795712163087757813823149014250779071780547063661885350878862572075360670984496452515738742020358200018756824535800592208458129083087480704184212328143711742374280702568077912640795121172114213977267757127991962314409552383784071325054021797452238349485627105668796949084874755697498041333479757850848920020981160491983612087061390015622944425387263782727602329876838930306498374901507453849519235248844537629056419360481443119837133727974563576965631370983972701421081260159737964206125174284309727850383583671003320556051104794549462324151786225810099983104234840605135701245152537894925498532792109961288612172469035658544406401022609768157759837939843857289879253818724997235852800813516479583849336411977384256134752141082142828950660665470949378633085810589651594270055301160511251730611571293688074722474681598454147996480140466725975325486024141932658530176393305568765653537896365770933552942364979090818216155572781120986972538292201769032547255854713997571127706232554420505960509384593920388694735980233392166651802923067241160184600027057645387594938062818586062759503382704617224216490568762121115958635084949543300270274390793376647624829553609918066852060382235194652765803347700294389867154540262914393316400354438204580280881618788078266048141652543120430654205725807969689522382944132846935862122639623628181486458845547819384739410551224849290065263891771439364749409576050663744048158542440986041615169258471723314143626541585184261294382666777638794966913837904545188099329394986000206226676087821980317455820581582239969639941893417598904422734332437930233133120844292995453580592506499778992607311688376514934609497551947551443268641991576045448363097663036468101623901564055629450359824718364240752973783116924357667532890084568577187095832870062113302514383455241088325464096779877370503147252565268640385240383579639133719284097296853414012101117683759645515375228309675062296332331229592278593376403241305271062437082759768348814272862396303603536020677439875662060122774801943892710861004547246927252233581173981338322492236719869423238616822539017020182238636442540211284424270756271660081610713793060308018972293615695417193585587391777366988103839497435669830327009284165725418011211919623586796328341908465341694139966333007862000719501805360533174480309482562257765275920936798407244469268945472790299866743954772738928430636882934572994816503060569760664080204717656417502745305746503793944670047123386666450439464803551359343772646337057565641127644162467587949924778756996076171438904003313724227788331819291356358056805179813522628429290163013465097581753657803239233187511591584056013291013217285071136657001722292761450766466968307396675646933647908897809377629206348765720947569628309068385298854346705992208524383438892073785006891289397448628069157032429800276157654032530238814233937815136778333103761231364594241098884309526562020624106862700657063112659714980394372623043223403677202490418866393508982883104182906455848172092021404853955847754206339104611352075553120281398295173911107063455751652772109649342064100857099819726637930081938587501680127199762864691108014431383142433539923819455262377947706111347835777580925538378436354319695777003349016432952960617424336430830719550365109207111485334913233538965139757768006629067628199674352360830029197422094887289296442420972243563828706669386878575736492571673567914852801968031556656339481332884104396633788150865204210107746003084789886383934378201519194105692759672337353413128505554653621172160469415978791864803691883446631097151295768945760102882099997553189783918695613230281753981158100104418310861722314997475209326384321643951393963174811201804108759749410362268856671587187021427068065911864911344518361159409559456506695933123011098044157656646622061083275230929489711894803111143456206412695788321463587032272790735429054893040334149372049202572239312825055186215961984503508913294548344822149605058918133034727882934210727095384740137385400434345368498062049620282080384318030303063735103950401717259812813928243390787151312241840764541510073557544936670076535802277277856084694196763109694412526448693405945091395834035264765531674236661808265362019728346724150198269215361193490944416374363982453940317221861303417223359246600083534737231343306539917662015259243600200845534810985349076744865707594332128942476228475340173501883796627619952582699040838693048319100452615787612955712352111813940301809015563212290718321431889358643202881477522426038967290814839904648804874055515283545211166723966570454310884826723718677748874893704795558217564291129538887466186125701639290463398462232634783082175690019506344807825345879211575103707673231824017186767935057532726339386644591902079244967090849745251830290731689631273392209664033065887241306983374094051585108806708610877081043771197941017798943182526868772432860378208378002864645106019193043726645842127048104145785239192452863514838779092760414539039931659748370298296872031663455412722653405799134915759066899545456877742821645971237623548087671674020645270042387190459256675993297239401884148174514973778462340929287244062627416931637452072405178768665540580330022573629989952536417330546309817510141824696583434332126181959013880204641652835857669455010893922185047155213298876738591616092394084348155013764274661905098808302754919701623825693915570124863495883640776764197567864389830246975402848544476866421162535381184360814069336077834939312033775802207175099365163145544841566042181073893861822867377900021592856193874916805617591759354474753183485078150868517307368845662932066430253135530726873609184138761725022106435392962108259751936851962315202127326118935791724296615591663090282770428295684445922941025179466685764090374533072273030539209693758489690004468867855461253751386900194802137875676410091103655487398230640484703102863398402490282547758527534558688704945739937904840117024078227761030845633902266064494354738921092809238982640973506460676602092599716975130277569058348186146651888505277653769296470393758203038145893519976312726319890678110909505154871213734829346122208451662213045745179350028990687167327553297477116729019162211951142975447021334511074970184399294192812667426163680528487271775760725380092859553662909405325344435294012004370256604928492390350619892074557526885303076692147104414222959907104261198701541583327242675555997157496801262794058614868299385585710023853724566300368560558556842827854027999754932656158828689366600034239655367850843756851570246033716943938314678334833584165793340048639790182684747454488904548021605159508281404075595681658956342804129042006667783741442682598967420084028056708745462138038110112295754399827950786793084672622976425690462714192575391684471718332695185650699108047109129820738944534445048600861057507017328575126780035894015553920690558637924467960016038364440837855222122800784693131934558197572363181428743717380424423495093772169886578464978474533115930862293514237282641927452701459410150793281478011025404539430983463799078298527772434329072173505958832560668781380748656699760451321269335722015246873930807505537529722787359922141109671587296708022638750068889590566686171167308038363030826321472263308507599074295364600508254296789794663697776197603108136212117458526027557144686820218339272503972235079299990953243403496569733131359458449313887786016562042549212078123987482509524719032276747828961367980543757484952606374311875188672763982908128387150078047874624960361447818397318410254494053494163718029089657034838755701855116013460759505341159855194193925402498426357732672265068763024700475202765978930034008884723343888947793775510859357939844950434873511085963326131984920482644234115783233913100550495774200376135527299036538017134502341784410521462347777402901943199059937115194596961969163588252875009228121142238894951601902249088959436856326359473968940470295853075284992152323906098417352841638112416828614626982877936777600091418745357372148834129323351137996688616397018853504302194582699788578296598801446426293838142125486459696475744644534993561672587862324928714235203814540508768727976523633808309334954953053069570537343622838685085709213299434794535483854248514266405112609075881898992397073002483110976020456269591015800038132231760899236293253177264680178052085238726639690070310787337113759423899932750636424712119973080451236773945137939688828812416872690121444718550751525245150701637410482563890333708425360458289147642097078498062439033675185787043135722718268212721548708643563521156362577001257273645371357365272837346153213065672003504285529377859049161241621718254123186876917533193302521269907086375778142502658658761599247183200629343495424462955653443006512056905057459984812654503656732951960797645164660131489705154355562202643358994649109017687503520959280687457537952840659960284811148428404494057611837860130158578078502662938636371179077356088567544106185651115662607996486137887211204644009493221175044159111173983714238828330054430629021524793407016635384384463717460438093736720300967782654453884412999823510922646413211252784207609653264989071723884492730311068938395789835121942754067867005974616255526573059219575725104934624587929595670029342575957061705574687734802935563649272897929358500095575731586140081985117926612812145146205029976911928039700273999499584594488246891535818922828881665974530894673195949677152796123852930962981198702764629879898465918805612529708260323426098884421251245661387103788705728584049680845822546505011844990241214938943939971214572707781807436052921595768020597650433273063969560482342488297385252862711781451513155332528384739443432510900919044854514961262756299481756229980934836959338108600365533464786183131301888286633422306212364466097576803150064582996221222230425487345570001349215918046879718052695130204863429941525882776431031667893295303714173063146892476980558143057303319319207164441020979053170109082617794588901300380634105144067544012437496524698559335035971912884462561997649045454098192027394027046814523633777055398736360337567787320365321972855636302934201244471772163842594269767716577433838610842744063347944310603099913356288369470624884842265601018120096921625498568944936060225193177342156833808988347444663598667252137669203769670970947954555211154168458545276506649761064755444826418733068022055323860658877563326036987036962905054234504248161657217281395356105595750811406209674724675916272703559351920084916506481081536607651190801846609171778100402229887515447419164046075295875704086103109506262276107609274824718668611007767181598729289157847612785828789189695958178459375573630332970021112976343147748555269970114334376951537425611568191355398079823029656768475744335200608548011342782515603338716877457861591041452458065629175860909566783483744636465538862717562166854175944207950464496995322156855543592540033801260179190298631866470262612193765863938624364609323199784368269787033255895752516668708007456878328451394325231903130921116245218627980167033785432734662307766227534600136225664186336776767208858876814080970593159338379334392854893131286108053015190324696081010326411033897572021023963074357877313039084829070109853177087301933858031858428610327873020461886743968919417420643632761149926453777323629798318031572644746073967990136236562352304104234534468346709997692698454418527113735477555638973311531740858240185457997233914059943187073332627560404313712211190303230274334611754093570224191412621578076667861395914107119174752759232555321574187666106740646469056835612872893865315797596073748010013927330162382758381764040438049694346349235752637496209939062971357851564210082978812106726018353949056938643558532977723696254471078715678789513221988076766009761532400437805250784001228523877293979209363104695070852532417434841088018598391423478363566360962679459477338216321579553706743107837054422381045664961606752777288900446808103465557702322625044833673700323401592057982706838797713803836397099552925747749590321312822258037776478120713031740295462648445954141953241284536054307490844296929042534781361761917279570043262165446802229068595219056824292074725283454156790096790462861657415928461090028075537213130962562056386745065043506438569529951200493584522958348275189081041940967916530865865927399522166417035778819838796000252133172607428744558961550590228746242159207569719016527456533071366288433798902622923523203791005791709045081143709239456855587660910735273182320548758151704592935480065227415805692435074924855073736933904324351115950149286999631127277068614331252481862586563123574717694016343966053330796004543784989587793147332071689686896390957149101854653810373166788211661459516340596937149686975982069558185323012370839861464286405999045584236429235007303233552314220204947473336159365314544727597471154218822648149201006545114112168890654508058045529903768497463150477336033434393862194574269992546421844845108419251329709771869455183273858005168930809773481424607960932089664889277989435872893760502194220943316866852013843728169582365899097944327826988414099524743859321618958928716209814106384390633738327227860719563946474783409998088112304787299841024487162284991824551263126833375584197826732924730776185106990327685270100488962568165461368552371667591341922483493678797274312457726412928145032006295892407247645362881842839040006529502741165732240682939728082771478241111087834547824774165608994726032350161828695731999812642868943510391279388121131978451987382074206645081395337977888138085986279582710625484546091482602979822292925917468994408794842256366096034342576506829103203215460240606775108246517068480540378904865670198446229098052997000226260689904456029358500166598475742890866046061840192643078189431454074677971154934319146587566148773787339164849646812426328666883495918654755324398736804204635806642027629379956793640030646198121724649331751729130279243582563255150522062538636071423793193854441339659977468275186418689521951844216431332074572366654287405017554637999721330424528532998913859017824487169935773619742129470745651057695285931896170422654895668703391247966902685512640022817853162127915903516297892699626102793209328025747983202177862644130473717771594075392851843287392242065079564474211892443606502213781790531098134517100355962077990263103911237113242651446426370208806243083527440724371563093481231364648536951946463692039704325751821509975372916656674785215798079905293892294548039194629440390394042267343398027896712188113508066998178603526958777776934880606846865759552519066900313058287444489783464799278379209104412091400252903173203809742047023307471101185085703485121364360008918540387152790654328530988242863479179991570459258767468875189669273115772995389460203162049764607082907997715521783313702362438761902833723502958396991518410144258186796589308182140658630873342271893682464888052180819445092828636263200857882645918536004421610073668540849832703202695714542685401053572778874671443343830537839647301621733469527328561910385522693029150739330913632358961979713847308303420215237999141351312167849986163962621583819134560046038366875078744627716698500735755659916011695545297343153390874254146196230223625722582234385331738958561575711748454330257720037941657645640907293600449395974305394195710684865788654017989798981936721345762219650486506001022238611598195173532936120963768652991198002294072213777225862129785915555632137773800421080926863293312180356301755174139388314621944549371821439995740808232118443364927422196869698424529014299873906747983372597231819581473428086310746615385943320435812365828175551498271423842487559733579873163489611391465820263796234154084784300384016459621433707283193256032136653550409525526904421102597630370354474047792933281335908410676855631235648312951922709235410894504451505985538518155823756144485508924487861555375220163642092404374325730040165968249952760851968426132828513828277291847157449301367742728159132190505313668646508416502329903512987409431553273431042927089044421117252629133417095804017420902139788056252623364659813471810212655229769938947706871860858042164556794543049505381340119168450184611959872989955720076183123468484713851364320950837372915754856288670961712162502953561056658576508261298745365120808090545912675280528199789086933859605691223986901316614936892389156945686371557764986693380722621688795693797140013154989208193694068086704664519798221799836952810414184089312687483442456923721030678283962465046954083276183834257336557125683476545962878372358678948138030277582683427314083104316980256914413067070754568464331355607327273575623855955554340564925507688100979718404403446073438186275431958225237793622759207091647198664709850824700575352454125340288301829840693750462609147911413225792487562466207520304378105546151943275424842062388488744082306694750367680989379407792251077261358658868892686350758832062180619760203192257989940414789548713132557365130152079577810610520660835860775480065105440503301684834783710220361404386853832945086660874277606829689385696009542971289297358664396055773138712520456146042812012896571583100720927587457720221696457172517445093710727499536544790497828039520586412411034288052217275565219583651172256119336228648549869689044829324967843502295968759967951441396064847134831541291367386247566647225800431653945995403353882726827226710129724914130362043275014660653560163749542525851259262227976368114346502101852574498018845768553918391791718082091817011889780187845269208315339412222878565102364350871737741283049240773669950364867406249746132636013198913675282418849160904683423027133226937546653305916379967380044490678606084184785514743823691923601696056996718033189909881477970057878224801037231417171172846451862444460313488569812241824413090814030774768110977997955250455535008508061442418749133140141413228426986645830162826893129801953205489712671041919385050396044476649386872297712186602330890665412401070428904162695196481817767019405488521739141661752577404083571480639671481352114609709184075313708821016011173023772248419110949301993969072842888956675611123693591563014562025042788226526794755841540168248559310382307693039944013023632441257391243832689599437913480665541001491391683829278318918016801603816417192011709047054120579029100763858878321968342529258257987805792988564257444553629580453982420159555482593210562568301886369509485898266447770123298785916577215482130165390860348256520595663581340721081815243014254464689485163965944409721912942417539121943657408944475150439992744530483573982117477318207670004108688468584716161441297640581601141363185190250974482574584870881014157629448422619180457246554741223135533712421592476278540004260532695975305065135811638539507908582873381451330296144910050250590601620973689855478118040883994077074262184532609132714032494770267941944942826094546461900999960305015450754309788918272740420969830890450534769053021791517012097208454109588076777238871932075572121558003695311423575765414536686604079629453623650186021004776335271804701342586208928342961967834181380513271607397324484003262446342881860411729936387425461961081822662086512106486251711978045248030534603689400318075251120554369302062473299046337238562660803307170006884477848165171499525208666607921400854161712402550339754848050011206363917109103711400605692483518256584320852139979799821999766268626083476793726612432545847132087401103574601807509800240336655856853933162183868205013750560071523771417958561419987999629535705802767421297537502780790445319080529387110887492732303952733151790057810197773744542722075782112860493732271377614819727153282014252279328177485809096533079984009290977392242117011521229898354695387429261419768977289478710039758501564668847730888466839355012880942997787193523763855171739028075240753469958356595402455473920061567069545679548932787713715419499852943265616646977955504757535887095082699036254721291486981783173070844069321660260093864745272719141968823573795707680719485263072666118145896824921684674913020895161825615550525280211000041933536397036949975312484643622861413483693519035188172119542558421684826883367482011961146838066123354436269981627110694150710680815712944278947022992536895367445111520348917096112678361960676460916378637072823185708093229785026846415347960973799962026648299359469088790368309117030291131227320820469842317286628912241423123820175728343271391108006760276639097025363388227653244539060640035688035707658271210823610784653776170130891780319845561488475985858136939356959231827007048174638949021775946725932263696790510351805222162925644714516165117584526323078550749668857457142230915888662316715936757695385408552846310345372864187203278527234579816513928011736334714528227789437473079359073954881566728307988188574104146596394070730391977881826811568515496431329883410617499904068889789284878421170614209582687125500200385582103951396906031714256231302342731001791714891941547286341653871327687891018961280041600156383012623369909296799904202363595579697641627657895578244840727895854329060695940534366193614530405031276570141353798052606520430276819407094619931901752517599320648391551380968585685985711389373323031581162169088846939354627532150733926721570735595944893196712567846815006618208983643661177243334755131275475671568368125324879198355146774695474155583619543009846551910419566698732344546921748309974637871960108002340523065081231139226767138056485304041113851253968367961315488016951803894692001107234033822966705854082872941376526600858702878394883172912146424624907240844960284851330847976335442164639748361482032657647046319889041568316658697930321039028258857101947718058819235113490646117917223532602258833920482018286462264314988440887363149779624960660608312793761626697752699695572915676904323991411067722809645932923868678878744012318030376584258595071151934830515116861900551276089415607275643689394508081034294961625543824576042451530502538898212713032480252388422601211061617393810094385888827794112724884912913072042750076380150368981512655910171233136529967232549833767010978969509040715850344918280762201296162742892351297139299137003282200600371812287475836609920779687341616870374415842887488235660975888676520871306877700854389621495774525156952041919432381662892365885840640234501204370335297228083950090145382848835318818076356697563695127007731965575996054932405198854438931514391639939138009819543196874152492433582962060072066515342498191646942776101033378927384251480348217705034621270444148436721258576953298440330070600024109869344222082384150043245214845084882746172746997270426505659400339099157034726682273165141175833445005109092023626990489612797160722780820742437862324907773563585788775366713120515898665720626262278353639600158035824313293694441954000757218021337842613626752452711716010862266163668872717967447943345375993278552061433965438625240499906834888856463669380314323155747594340399431971001977896036368525535270298469999408418727510334816052581937313635710870222437548683522575294312015489526858984781117750838616575320492125667704969268266128727061113559577055748377824392700790036887526605423190950317898188269588208105066172865518155543679481132550534698846200246811615926919649321228201156749439054007543168467974924396844133196278376469274519228794507861070699566461949671069917194460902893187650721778508713132346769650525099710906725405234914505318069091939843571206645108208164518834897413362549834875670989280687936863334642193778057781360352283093158139486389320319627053393444873709898768004595832854757380718010387228091573029880898314926260713162550019492770103653826726193692277006517363292538327657174899271144234558630476520046403077283013275299025825998504623037572384178293011151808031583432855044567149050671499621587740899352033869131463077233326000970072386124322474768527603507733087051484556200505054682846064756643521542516908083726920568553874487820526022548512459194430022436986187824137378261554471758412156912445992603773167590196170680067794875775615512327708273908796548000498355857362919840733803759613985673503752850628913843020849685071125919013960011800790635966353595992465630152704351834859782458485973332056147578879980345413436266884360025908523129950525768753649801567263276953673947153783399335582701104468091333662835305445484957079334431904408631278490475797109808019317731660217885633094830754981461099134942888164095521669198524076930851614729697434054604556658826548518439588818990849583204059272674858125029209017262158876344742108307920442374763697698538918246524578799251394988838253494620456904505000576743318389366842555793355063003704081659893390485156250359999096322885945495023517557387216552367941856359746666606165312610783426238859507650225114928350364653816560192190378953281518414067405038374105441010961482812394335868319021012266363704312478974205723297289582201507174879897688772181824174234502547711117945057168267637345286108924190936217629393072575533679600423157928694185497459775685041581695164356372223804792851447848083810886455351341318228179996406529790445455105634476779808964676126062630429807794407204141026561918970136602739278699971498254326423139669449332783078815222518778650213173378658355933659221785339733937507641744570410284936819831840209674082417510070563628987464965004295645280297408633512775348347089118366999796636333090977502158732832779146799568194140449317021820108054278202050384230100700972353085304723280792244126450397901622352911381045106671019083655877122448029390189053026755236434017390223112350013422015014789007262109835078492605334878564200641241466413567943667959961802854094922804099670722363527747420528630389336371337019729634373262158178900541107617790252786033891720011184044076523069526082709381189262364744228916536714667382833345808622478798863503342822452574797777848618278175455069265960939389447939494586627694925772048741822178345757896264575228282816241356342481805014428418392335858081340878370004835550869777581480703023166280272276341687381070576790826941411265472288875351373897839209832651685469738085050038344885293759351368020010771571404135807715595320653660569374676599515812394704853812493839167722724376200617135051732356059908838987936852212988308463754787235674100772287187859308329641970637562872420721228886762188102928744161371227776552110606904074657357959320552031794652396289261031580236470407300695583484923783951052474624888306256448999242930599497256789629669557951712197147828964925440568101021072409854571582094479009531263406338274426557686399539400284349857979328240024529156940043587288317420056983267775693067669889400120884248075448487293491061092083479889241410468801386122807027333641320337965875587512720516033032036581436147566074484341659391967567121173134848685151326421590681297806756412111300333272442234705124146224464259417670988993140204647404390329964258725588610150371822206521269758725405388123576980739593316367528704660497775566425862294720354687666720239778337862605645405907999772500852011030713908755133384609061181364606474394809095599772742485997430617640156475726077731176928056937252942908772740474102214928663645369944824490013805186923110503334215594591898024753786462539916111020117194746445941817352151896976930963580368142724316266318130537658553043942647468156007843218911265200254991525748425119557025743781356119871697808537129798191413108697013555945404049384847443002565906716885163581393128097291770002730734754632247909969667146973235804036314665371519486641479614060905490137185617027730685765788005367935555918972346331309936349223468465042016720374207613311146003064894836725283073342688380523669258698981376761745665322641087095864941528498940444801849862629387320818267949176526446724265736394203411993109980615288951875462032696142372491238715710983320055933610091566232725445670938463967009216993526616234624116141099764974068347788883156860342241296880268722607582156325892403853826925228962993206240837541816169776468684174701068688352047844369413799232152314285268474505376091386400077377891707372097175395793719495929176007400173643791108211301000865873074378554375605585345774494098467291576470347393200999730482879114465325068336005720924353376954369626195788966996560779436421946505476524889488168630150730550592349401933718512051475906068556306589547437048437789693802924583454700656794893466462793109532725861526111648132631043440994981842283605958478915820946336343408020059057599550038497417217580773533442105735748970865151496091245572183329008458257049870461426248233583802127822608202539934592270848888576758558582314409358113084662089975420811587268483608087751786370225466601156838882157068383117625734004423010550571957284506220273641228670039731807041493043648819355909127851717037695916886455421276578604665284076273487294337875983490803376396827001087688195160135609054065240936191917254650005811820067024403300122976475636627367763209656983425607230401768576306654377153375956303998863483399189016149727599163295966234518852792026939737956352327133601855748582548149965516972343241114626060841316499543014595723341849696383420675482934696602348986059104266992864636049367550675219030224484074699122578827104739912841879793592436177961617933867816474985375218048580057359511994614114234427255466770477638613397334892540977476704388681427958246364649193404871495753921768719354451384487213753243528184234580238766956054801209565137681095161616346231079369910772600839478832132259797393156453783963385865783962719403014572832418406037999205585188952145322929618018665722302655385076278617457061841841669049652539273021694753065965933787804514650752056588507102994466054022729842978478799931731713607158818078827754899239772865967362972909040191547291572046338070473331692609067810349883853421582209814281268678033528816958721877885771215850821851050412551155232339177143924698248557252356802005215278651187793649283611702363386693609252763077260550345746847447822635928144261084152674770739579459200522109651151723809814151540089246187302544001686525079061312096890496474612046564747540516469893643014417816417496368960041127018768071412901543065515172887136407712927661551418346874017276471797632148508397835762782277966909694144612564887897866242580559901176799520712706371351815387016605541458735415629979837273546410971566278533760236780724803312914437301818054592744917695063278059654183466348582521732083850999887205824741696324278180709853702073913542323684938594031417588299602604496749181405878371639185050220382708282799372946173601895601624318019663642397845609530098646293015278017423099308861508625175910005525837367818013780202260428103274125664572681079821088982103140758627743926137534159532319848925028316771280110509706405511496127449934523263814197492040621532039820093356011870658013358067838207361831232651610687344583174701338407285205116724145439287063405938682577501299435391770251879091367999065924688903211120499559221962122355003555466576844685227845142330050081177194964681085001000815356099370210958799224920218426096164920298490277665513028898051670830576066020205052263576059033605200090579101388043803315939420889955819926616167940377035073669065018728681347255619643080049681664711293516396270813285990466006769667807344817736543281955950423483831405141081524694353076975514695467702728745774752795176022230714273827649697167381389616903904603848788905633489416144383010956617101780201804283521407399525984836377468643728343031569614095558439687443227982125095885350472296806594741629946231730918739169049553279920702538538201293433911891640454122481916729787968066698460377407690626605272242448716887309816760837157957474205187346905787491766210217868211245739020700340879524741622182628597204365522938899956120267818595721525469229022693695199753691660964978204858864603761464174795042356208509409050415727082999184484957050073070925630502085564387673911211588350338481889273758182149998767229755303342533012783018753992563969214458685739317523723047417375889900061700690556559397259289083524741893015318635101262107744194232047968932327826197934423679341371519432631320942635837254772526121963702041991218992189113830824683068743170302558720608498444627206507757025750087245978493779540373786182532608151567017084562460717502627696384298939635655999366602933730183006189677729966089068487157007556198977422675779743806408528454839552997781060711153734444726403143478665016277150444899324943958967379056183309585929931577113750743169733337063485270769907342313677064710918893817646780288634194555747080315684830238459950386840975667810475709210896256872808471809168924521980072761512123823713196909921867609326750219754028260732541322813629369563849844827306028275915505652762405784884055460406826188081661822464439911405387791544950193806591902049627641818680636185219512362950697357421439569420027114649208565628082341241900572636812008839428850181298263951830426994961658233881234736474567570607850592931212009392510773167068343839398166309877012449061246190967456837427739774641346429184406727993964860090253787681068517308416802511181675277319846461801455265917749497971850381301745469422745954307979776059964636372625573706997683881057005323274267176964502215810042177058256867890906948277735159781756669475698459481796944473722081262204934908849743542741082884116430301178872971431472455274450084508393448340773070675625496201546124310647967197652931957453358844996863235905441628860493313955037384252507641046155640878833695182633521814736126860033415691863027493078083119181371102418197241453794845297719674908076240736217655847740988198995955086860774199074812512670061703220570218456135225972800567770334750300205253488859433167650623468580708770286578031145792544358418357635251305274478828191832408910899287147340612762234759748133449534939126415105954245587012139774418771511617090841519258224379991428323574930780264925990789932192288442914111094359965746900893916736972400465359891769891041469895137039387636310061920312963964294702512157645118273584272035817091975950050631828624371028572134885725050708664005399414054864127239026794901621060030519218551633854449586919138467897934366580214883877800179963491481897675819151778308229096040511450688692839289449414444344010855689825372188310199024676930416340149508585522432831007882636981122442451312073002411200043565169142692347822502856197675782974610651327571832251416144332513303055505038059794712499637024595372886847606517723908944499736662434125176751149909536555049528928586708464782692054411083131084745124453229512692188503148297679359357567385022275854142169339423031217711655536419279939622972521331794142487347351636313482994034384871321488689904770287333959498537728506894234737562483183122798841906303696088037991095908887910057702487719239496242239569073984777229418160817216482879089068908260509430800191729082014363715698706493768265180126895411500895814339328008708647228380849710642229843742996515148427501340539764727457266739141133651494685182439867233265410937580448501969098263844902228376754922636606527374034391442266246048282970315934444178980689417860119696395806726737405473304138166221473192130791735848339678054468589092889152882192941843989569357993517603306785182179593500992415454814625077781711789419249284286292164271710230862730569724185366947174218434041604742431213102120471970794798942098989823248150561790458688748211983184863484810616688207780566624811773851386529350161405387070461769580279537425307711827839736933630814898014395152728489040250005319595469890996751963675563700958368458135495038839753559058202363732033316144729609230619019545490868071789722368560393000493845895811413862605899063524287004907438047037265483176427391758799574500022609777736196711479873661097271914617152900014343024010541924929614129288401276104295584346053624514213321676295529363750251298852295014421820079479088425218040989836507652002586880414069033195487687934133949200436829153575718245403407886274546540413776280354294885960412860819425334776701192503409640592821825567402754140570998015577219413394060968009397393291595312122921055463482240998888241785957891414197949113037310600564531947307148983661034149863018465338821400152044856642477743171024023673719357246634291625992039117916890227005860758333739785491998749367494989421023027466686459103355226950073276670553843287554952341366087171902924444658451174053011369303903434861201590704053812289647927225381839948948046485187961635931114780124721975754503551533038795494773055817617912619259940468872688685754817075825452222254590347047873988890493431714916025938536436942991470957561943595641749937861017522500604987440864837671919360844728353039291781358169342485081832410664434875602183650615262267590005466318378698141022579330848931173793235170334896067567193120015101765370328945220044653177805978331815630188049650938486071045673480518703649080155913854721452121025717088661925280416909607274925911578197287938010411061818882837534433242310218644751287469441933059421421305101474431043065417534210461476280093892852239379783587022492890007403468011557090819005935050454301472582675145830928778271098149795699458186787139479653495518212778812891895491099267208958274085087055362392028295843043791932495267247180618864902384125812812947984426577563129860014912670325889244107869114636848085635627881155037241472964315744480702951030048919426252429611900847848597694848877523919734465370293707743959406299931348294273208228687140023482522330807739288109609299361794697206214754389959447800976037026529823752303644903935161500778628666663248243648994744197187220545595906351089618766340408985730089489039262096656926707593110060347088242005367231728615750961328503652849636637654582444454290337806472730182379740075681836739904870524172598690237657768959780231694474699319738448886359375744175706219762468688363757650086000909377283419123042427016093941233070957288997688341460784817466330821058658134738047059394805498400111399468650744211291488957477887083612759153699023951695882169033589239037477894908959515538762774153218928595886072327012421834381198274081098070312039730576955919745333337399906497428255476199765193314112885123785054187095719272643423511069349922196246159265332080076271353819006645026152338668058780341911968407019036416894342755818172410034106431607821733415272508162680183610097807833677927537674076550560211631149563555309594037464715986576462973980163642606161752512240741329917804958417253495427826512883349571053468410869539018132961982983768519396458393881556849829763153500085946142048680562177332868611468306064655400934753875899108203290461560524986085045216596691881833563306893235181609068406155797484379634093824817336702090686445769972391700881386294264130082474422908478119737176331871323202655726270463506270999834017670468399391405296254583616186295047684155138315831665890646910126536426258632386858052804476404757783760027939497867358482933165090530058801872563972224113197562923233867376246512902128234864418784350687228968316134926407808793730793835664504209180000261117161491490630144288100784368849949730826155105957643536055897241394199865982365474051616099881010515955442918180056842207023249252625277975096794203347536588283803161151073323951121546918985390254460769540473778732087970539300185308383822129592372535261714322656891088147498328804329333315838059429970973976725259886268886003391316919257420943474488830420927279833396374651393032475323081306209137390985560030045112999530959336430495272356526728256435104205983359949308380335849984897433432599085205906603528857429846946536392443595720109116607188849004363992702347487805371637452824875124035624136084287504209876724848935899128644972080796948794746561702610948497401551805696224025993415235798980963121956549313150041676384169790893082172899290217278307886881055296067321297584194194675428057928082318215937251150260877737175663070055421847121404409795412637861105308880732291042371958737921333293933217578505030031232541144802107033085121002646139282624930158540774933700288353594615938915477018026399439516827432361743451765656715414721884051313188046874040332588865765485530478453265573357575546642699996239018252700769042443942833199327459309739282412406944225144250498051893354099635838089642433780885608398446867957011844749517905492056402052201237495126531397753395553968191293526599140871078189382139262335442662522747820620692582098059025353019653755557772044646606867434229419628698664733593028929972940966930855737331054684866369162662791673059711766606435663851483479684271351157850487430717363983737582425665092636343522013516481711507288484323186029555047419750957755753710239590941227450279021166246323119319894654521934313788255816738935703180652996837619568018455916668143492717220524185892261005252490422894008506956100752434305853912480080829986880169895977155558577419957715156894865374734555405190292793587332672723686620759775163578099932637308375641381584162446855139864194785508041769305114660849930299683378529416139792238556406583433760169917392799197435906181645594828500319737372912236628000318486292552920990721800383332494986922485531561267731807270510720275303738056771893361666301122199417373650324030168970098505434027732880221406776303443740842827530347015972852873876597440389816362940847563505906062646304163438857735731422974465444295962341325934662388983221878448191209183929488263364403835889920617187007572193466617153214874609809302536556236348401243056635430277487552812834528773326037083466320564311471286754725445922734375937904156667242005297369358812165223606105683384575230158826425831192715034443945775474636930653687668237071226213104132937319530264623374205023334787535350621398899366891476920846790146994882808383767214204882830426885307160761525779423487007350284485544629059827206507713727917916974006102655000759462513655485204337832465341782417835518521839192691969804585709710860793845536845290328568743231938972874073287288760757478429335065032709369457109585718955508391364150354172700094570742934446535549816579688937606010070097467179936667842987741230585545086774201082552399737156330944686796316615989244662995864039640439780257339270143589667693478610690150209978871376268934250674481320721504234870770930887073700303731998371561396942176962209408661556177057999394519258544828580269779415067716775227545360267104621361219491165490659569989865928348139862325534116520614755136248562105495361831908845557793311880737183903115188238771306319122400252485227164411289500165559651959744647878069117474388148095657671768051652615882695976672349895957952578377655224184109521319445565048496756376118286824471931421880853351754736776348277967239770826779621139686635910012491054342901714644643576901172783245160187412907688368915032984322793379856201721277490607163106024614039151978109931714936439837509706872536992589011430834705698703907640574876835445178474129312672156785191209001484176617080481800578070222688245594123709810938434074116003585385716458840036319391009704966993693943586177118841756453402454316526985022952797997892960220059550999497606584038027717021544161066314742940378082509731007437134040678171464178789115251756259964388500573959289436543867345105395229377784632872504588045263684037242357235962545647446158626017645421476645982052535905376088274022611410795003498998727656573594893127142177779438301293179681466341278002404140888033533786087771051381379624839724934220283834801976583533604311755520496395630084454648067073204266404611473457519275273978950079158440577063543013149499931259543568732104968310469024994970835998413434814200355384863929311457394224589952195853929527751014172630459416030197214594177628163599138085827842468105827032548711350194162995565853300806783943434961720189602360287991877985920520060904664871781375487035380604620825846826224590926482830337972437318534894258799453256876965828384837557431752071564110700627401927234098699536178612683671544991116378262295626389813010732279405584933150452929941891152832359552994582010582269341254782772018353020541264024248812901413919066346576043063754674121766275086340199250774876735458343264190226205879148878443022858450671012741596764749235790991810409392580629455374567194477010603071387939364052634145186920877246308057295365634194038476108901299231120213985820666881047319497300237614045461184775178270088697149668000089463166202711542582618296455694797572219070810691071891551811528404905195337103428597605500226025472639261255902465627271303023910345938849608233567783863730107453055380955015215875721224848534820412307880094504017730978625218668000655637480009602865783731587991119541383548993901595803769596882125358584480609994276355212736432464265568835854776396588898351949509553676689709641355400651707159155859300743071829560639425428214816653540227949827799819660517872014803141545528958498459055293075514999212332447474588295664281443325881652606643241367272543107807929563400420819044687340661047579026397223983956022847247946217885437069980822014588833723959120064498421824478893497401769034771950847079537273067091125988964902527438031053393558487622580210099270083474522774407300457706504836630452947653634309505858430470691907559104104876368075615066566517327154742810046852784713770531751990727278199501054722123877551197641011104550487043112893780411590233925669427604312190713089128039528744055571956617058345112500049179365156138483071621316642549926069821108481022465636493505287433985422280917753765970352437319892459564308467160712147780451960841260396449054728420635237956795769881097260955406961209768329589337712606757529312637945034726441495189775983997671343389542147698880160511648536882987331120963814507727013984047505389009726006744452464406975987692898896189231866315585310595192603152830559193270857483993898037998676168239477915613982775698048331096430862473452176983501374538009727498939263458573418640980637717895469995786368514947430650720611873427521811842577611715341897835561356745128434483467456260834558373518818415546132449229362247919950671628682083818188348844719983763111167588211593828269398997486189610863505367085512982610275497423819007185166176569407476425585222805377580705363967859881310008298798130987654165923912972578212534537942167450443985746421952401719653261981306844674307693213592907487970148627125938302560670634578757808883332268883531383779986230044592989610619674668512819935611153401923301281207321501000042816225663522077359938376953142532302354536852865747115627920858242947606259716934072962568593312916082891521440986732651109465757983349208009379884072775292492645219683761783200476209641457709859815687119410643846226978997413844492410380821782474959335281597142567925092923169340265628418608893097516053854494588181612266560990442017575271776967563240958173792413565900213859885728731067410562904666869203381423109627462156695430639937010432238687699082082181520068244061143154037473463554484037718939983623655486971327352977752193482929994797345463843089602130227273774097954610309414743442360037057672948622058027173753459337060511138723088747369906847279590719366468842065296939129733074369586321837582211266094266342595999387122196050711007296270089457365506135241068612682531518398820756579910954516963878659136590682567670098246795398632475307471776280636820986332287580961344339323545175837041196858161345619552469489526319589993024446394785526887826782988845551062201408106219351310032137193373971674863020705379417080878675194313362089411173190066713794671950078274830454038403944934206445383991582089617992194172087580305425933831315007485322831362647137060714157548273418556859703145488244218179054672197101935595821832214439758135049176671133189138139093918791140232387775845747141037721796085972343724698117650360510941137950510214487972603165605296945967872835280635258243409088876440474149274875298030129994533834004355239233738226131847752261199158259007063554084264352295455269655775772562810225770409457123594582140545064117531297217860776233698926257758471147753562370317498373097730917755623849224775958578468838305627886449171167786975303680848072847069875924902519108360399063528516596588608467724196226039899163640172749824198293480831279240745833304437225393214588530829110136570005998160467547878057386326401895445418980179674744604740069680628383540071139864418973043576231363861593115892634286101222835953599218741422258277224457182527840605768445460536421090195384084085658124969899123944338564130448416541333703009890453144250253199656800837323816797662989119233411902076192147033190605465348899663237331509208267796905150208380325811411253339226744681878797481023808723192832568818076270472138731954903166470226465503699452461272272980726089326832890396177269615164585693918888732228005869486854899151209264771741284773615054525631350439944956809326995137491294944599966150631318232780984685777232489589368938234819481129591840204026952383952059540998497561021819273051420990798378147790485800866743607385246623090827811434030642298131735685634483232740349189105133860970723619376388074993566447077210078701911381474653640713231422779677042508316851063434373174394401754132632091532291668550609747055839521443037622721319326571872716500099968182800145178947039621333336661540384387490583195870494978474063482537827258927926114633086411098191157082867448945488884446521810510087563845478864795094617410535338877109662946981912479969843988657944174875356530948019288159438737153591710252291208265831334712116935398150871539634166693657804268688549405239824008208015266943201766384529079749328172914532650469597347542524833498339498049771103666112655147014793522893414763829638152286699692842233109383451122359097167783169326954408195391631556699541395570059019573091049301661110524540011339170656724124473036511777401584960453476158632513156320910742320115821523767027649444170533296014613109272704980252821227974436689869351898534548155334773268024533814079779319726362257146891603601771071366557123306859372875019135275208251070630730876089322967480339786966857151089624211172257071392895973514525654349814776433399508102639983699438491425184562782356273517731640690573029812513993288719429433710682128938910867609326346603817442053407388646775422060277854370002613794124720133737819259323389218756425662670859477961273904256873926560775391252606093621122062723919933924126558729911178631046325646859850901844819257069591994554334477535550225900576171257520274710879620842886145342768519091765748425653340295073496047333178783484041623746415960270635197203278850381569735725465006761031372699838649273551040158138794569584288422736046828285713258869550210710485262600333038521450288849915200820561174036963475157269639069441123963709434701039442199091638424409069021589911067296911390469781380287273277066540292153048039816709717354824174862536146603651718225745554704057916613584260120803524667527507423617975335645388561466340689327187280166933462492216634267664118483908440621542305945954702565767888204024765965478702404832808157149985298909338180984225123361885247791400336034266770685219084659331435005808785402532323078142195745648329233700859921124274155764615733907263216941314647556518515999270897448015166437771685817743636367359034491566874902438770592986128449310412919420329774857683854963317041578889942162806787465098530799958245224279528366605107538406607465144239113648358281524620653546984665192432627877714676201379303346696692586022430153799283460590113688371473641870323808489245894403064008319855612241571398178776874677732512896287794200965022565705916984400176789834170858336402793848261755368229200083327911053860780912408955420519319516362492145702615859654776398777267727606176569296729119970591625950132004468270104141326911689200792308730529387073841031449001613714486283123640794319056760147828566626503764823479089211493617292333093742559919986736619242896651592565975779148010691007010426791854965711597862570007500844582168535833115287567717428018888058645541814664211249736514269675420746504504232541959911015221797744879902995828916133519713967578247357980574200923224036063956337504148389419976128889300930302524931452625719881636620936550063951407803509171680015921567923292091391150343253623714869535861699374881219772197113172961536962317408464895912511450495770959284896357566201189053563419646163323868125510793235383325385673159679411273751460513296913618343579561398283046269513390386250418260010056460351142240608515383329744464527631713874041737550475321059652716618042169321237385534391005245453725431154208810266684993874144655567612909052136659164664646992431269164209069852263512821727580142076807700990910218830353479087914923079219493125348349232388388404975280993861121272897780766962827981910121869841979398439099002755841218692315512044651672661765117176320114733854451096179559961662264414405921603878561736206257376375422068086574307585581859223466718684939860104761864263535165003826134785620912099858726292062677605390259215105148453278365223012765320939593363030855525572369942469495625525186387091508092896242970673633089536292474460631092548073202739915643606971544773098852481672674056580118595757063217456328740214084362663717544552609407081531963168107006600979561620020960263467706817103246566943909230551834033056158866345314670598710738892246828887075777328238763585576499904135980542922377951299977828228439279835935694485877945064427053045325426251333375865780704868462646782111501302599431720218243342464486181419433711714084975404344942024991088239316922200027625128153878515196282946066469895744922968548872497159674372230235508242561979232350938883635744714411285972508938711777882593853474025040582092825092213477676171150683057002712345575802646751281007985967825555136817701967072121527040957839975105308839091366354434304562727848639765629629377276532602501608601187172174076744779225848739793704219644092111473738416231809105505051884328499482265908681923918416765257939190513039689677692186641912303257454393379675421791679172823120250531705669174188530317758166176463336830642678491979451196686659934363686515452127725507072499701826548396860900791086490292793417085014804415707171718156898510522031205393149616150583241360512113501386551298795189944629431573997292468696336955116159210262062233582493858491863691455509446623847502391157031995079724297584431261870825297782660987668347117727552752242524968189418318353262650373117048778440059184284554145804535130070658853949260452413213423492132757047576358864572806493216205120119468990766890760699668479762814335958879108439121280390694624369211955298531474339730012185879038452372971092983628179258453586271305040178252748443086783526005402880880337280915212781231251809276849148269167657017076869686748083513461243716367471359487944380949421546848983431539079443650275800715836316713869826856450414714651987923252134601711424808970062813497040270198347744365968906909453842112063074109955029781693059105476743869591483873947529717621970038202492034482246629782484826398778744342867014341626161022535862281850256142694006593504493007014330976003349181857385234629752938076652741675028260983006615719542939446186739072891834626690634704424266662804966161687331861310848621375816929443790829364421836007235161005768807838424067837279900908472159806701661053353826544073632456316328214019326441999884780101970542721961542451431350011114312042908377633236847251655325344197855614604748493656666389857571242324216871545766560159379354556248630254484434532986866869409906546737618509319894028937994395183468970611558919605559300427233936558422920588695482895543999319628576457920821754699671092458538011389065622878696717673235122904022697570843974226955233022837519643398577497145592460988502833393681112513405485348904858643565567112291791734584507001848796479555149852759100447153712377755824638095780133748468836488363101888299320761400726810658047285547980440132745267430111322471409847183222275334447817903260158072158440143760418651756258165058717515101105020552263750672661728692966111453345357340806782434825763628768623273815427350697176951078468815482194994753176316242732518488338396976587892909885249997519375216125052826371674974883903749290668480959380474031836654631423292766681000695395783612775521696024085832837269466784039927540071437685541438698517176383884537863614592102041925248023284900448585921000740044409746730365162682494548223294936890189213706856186176577084277502295510020393279474145393927533959006946910787627270563038872139864688244677597484459189564222264413340028405798140065094670120276420799016801131570679060326846510236418761008276630233556004904537734716900667686395578173360205172882999796170780406217391960547307801683295753760155883399232274476168635009843545889294881637455994769008900974494747141548617249653755444012316458834684156407371355005538500315876794038873103149935337251025599457363947153381660147622445660716502640616605997564273674863245467898482193244063333165370855740117192123656369234651672545381291466280267126626046636468682970724441723507669595800542103912477540984123705364447379749178286972544396736463838346467201721280679643004395576836240946279758357423857037576992110437072324290931953240185683048409723895269436922026449767682386899621968241511452634651515665256155854429821149340447574053150902977044079885794058320262773097504621677332148703219435330538598443139991126699020626860417479822137658279051406172251686473285111606613022580229329034494151607653147145646613498953020789443809669025945716380196938291224693990786869480935458749282347418835078966004897885883667218744264208111196327582510701343625042601759710791758420338061630212191713697161939464503160256361889782328808003650502698593051302077793299802917010292303234184908246623369728492744086372184874140527674725017446306048887698528867539952838189652545624208685232126025640154752633927960913795605617734747982510493620367126705497220860808504669050160878816049425771021469750478450885693191837252976324804223328748077088428055296688995491935784839680810259601258672987145657873650344672884506592292808316975394203836450567305870489830099138488613931934976651671953328525104222386667168592154829091004761995207698446426384450998003778809270722868559918699426488936580101783190369461809172555335895929582681461440194626352627151528086765665728273382684570398496002190895099107000013320401120019951508079441246568014168531348535335464958952076443363858479333259212722442501371568201026776063342100789928609777526966119531609834827020268702572020813700279464227333258267980930078441420317553319442216840737719826507577869357483552872176916379107036385464406893849581244625277434111409623706942797422389539041351201075128293727023292762368933860080111554192973651961239850153496881235349250598919691105685993607571916571428266032392469893315793549331646259467037467785665793248636372519394274948878188885722830874331753160912461924821393008043827853847305443714506692859316993026102539604173658078919281205504228395853079471524299509496874247096360748709151742234146178600917160931487189205984348052040668714159690917976906582079575828345196570214763210413319337499636894544552217071963981317585354637505944267694840958877880633329971422361366229810403036759569849012502863135727363860212010049903381572460671685033294132918719953891051084803056609792413267546588407238440240198947879750703972897366151989075567291470038889450958643870287843211162077865786404335030310731300787819599633988713789871581930911637710265655586441510859351632064276968631182344565553506226812572753541657461952660576118165206852673972752075508660272700030260166779628796854423800621431609887821122741300024794156869014609694724788298497189568366977611146255714044464341010222870091559625592084347721798140358202355570198899581851977857024177684473158708062313538316817701474513336533798108517545597701182764957276823277236567744158109672291759117970330404956121027298702165633352787241514285395743994299285596660839330488837763413821903188724941501636992878727287197000863654297145639463169636973447831702835826376186814529923370508257216170955049883910946439904470910720976077364644942047786473793145578913341692711721863829618369222006174357855270812062396807728069079427303485412284258603935237322243668080740531105944923720056946541911200508167160051487723629211280028324220040382573055511565895319008101763154598021957719647470974497710924370677283193199134643210560824943337958408833073114393181576140724415406257228243953157401481569724470795530593630058352566525921796512308188357088712119296860013161855163807145543375800256135971530618204983512925924023558011563094455938695292545073011391225498291698703429286615838682982390721712667279366674182109300551281870128363005656839909326570749125721785488678481921212513631724507191203159742144937595635340805876133019896503645950933829541056296365058739058383856110056945938394674263510552576562144280262890966137658328689344003050080707491706528454007059304169332965927680683695176643511552037422041382679539192900475402995684492046683035835196468085335865579925054617922953718277870849382636940461566288287168987475023698239109200406261255891925204563913114291050031665005045051416235784101956712374321576479126356445028962857296177133254196090856546165777047819487028521883889844945315342113405648439875567582507068754599600906008331839365653072362018750735372636966619427624527653937853760933292771238564130223184911329757771803612779740017018557192428067734807768801238549772904633743513610242260132913319659947161977546828265088072700266621809088230670375008817400585800823280580807258494865365039379285386950838411638159930358495152872272119372551165160018024015295171174094726897431790361371872029215684614308340987504530059660702514640696146183813371699203157255533984153611288438606764122303077028662269195670566386102296510380902591418457833353062532067347909918480947695665136262422275888666873640892002430752578993423804962132847480475942136715042114877913955746843146291201912176268445471650240214784712014783560979224752574144429089175002868189609102293380440609258143181841931554321675810888840618509960281287322057460728170248679481227462392722379615138457989630344404635093539009974157577730648667486487867002369168063650671651739369125486907000661953330365291634894623631421802853651658011209370685526204161596858172425111485508308948971940742856222964397431520652895070997938686591637533498960631434347424347963013887223211446827039933345352348332009723500517015708766855723484586391911453612535397010796070086394371904423810444416907043314997107617373866827077027084697731521652201490476298080578712356818293180211992918706605586747204383882223148105761276134343427180285408061087575570198948561433115599874970836674116046263542950017874841548733154712115018057270041669624287035265239574360229734338050656062904695746719356403131507896251040337467990118554196969174905471288678335163804504596228065809456427338366547914301451573993722054777589292041453051000489908257305762478194862166231550521622300740750013835587795431227772799190179716953065263779740987628438220735364414689349981495467085292626894790087955388778593040742437941444266808210717185989550069612794103982092217596401139948646003981422274908970882775299610829054394265327622246906760935925589077050227182629757908244854393743332691963700933980888679619127938373346543671850340680188552884533158654790795756698039152309373297350552298400738743443900389457811975698867878807924319315167385892097461354804110740670512915375105744290988768797649283136702146627344586350119095430309522931125123764897134921655285437267708234058644455730386992420050735352431507323846980315314117840529336505416848903870429419480557585245068507703813346174776719855193632464806731735378893698768658455449706176830671929216502762459079025286598028178090432357959251453060415794896654102111950828192897583076395747362303675527894022431661293137356525510684525188307602366576047722858003167018842622532295157759712509593528803687010411112128417618046706595268289298971281169875046495595219752103920401641124004090206893595419184659980732985811466844775569212543590244697257741589837125661371425184419886032636765282095838646769653639653573666526669036750181824500512692532019132037967430375295053476386993430355316588200249493808242786320806539998007837022310441787635517254278589527125216982591981928387583340485211491811666341393109330112957240127444029460117484112180413203153037311748617504582355512019441014482033533558031422493192423152992993244599110605690425911663755034911475293828495525443752761356107444145153797830540767983877633033533156862823717741498774219662476250419891634276386847334890463699706140872463952224491379389282501539430747808942354732711558666397195252275801728876098728919987980119751815568046665814493548828260984221708808790458837999220485203981984568645552445227419682664131400556543667870612419408939888384411008173068363676999366879627397552259105037046548283705512615896834817554510969927258448247734900266773979503805631534973480431732716622951201831524345456069977410479528308886428494926950919389942525074285808840424696224735410364623444652325188196192899240091822034024700789320091641603854767547280694982652327424819136120705126529273180799042278611479074896204842172370301149172145758599366062358772631668481540489131944603528974495055312619094792354366421187679062219127205616422206076813841684847296971189432097085509889581770553549534650585966225521555495869951281579715736617736609883395888265229931594499210318826764244223369847420886018803915515152805743650546386352154470244137884388114881667917063816608640208993278496823554536195982506969957527530307560444803347573043126071255179897029496348954965901533060474444413156047765133723172047750325083603201936668910450288329090158080013921085349029261828143812288779206050204014870226517142387987415554950377696273417916113058939124880385355157410046423122303531684889867754577505141175366498672013523597951250905349410982779796645797904780333136988973996843885443926014364138957152885108284918923956180402529526438833512972885680076110642750379903069191007457006681260534774015001032567131707652738686385556668683528896358604386571386967157892071551885174268574510821124863265593843745167939455660573922976080721312814283105950270523099267445677503508710999783847022443349337439848763931399951439909287698414644838834641103712556708434608284280710951613047179461036718259185069008565988311981264030406713944403795297029418077776493947537274298665822989497466660019316313368977709792334849133624507800007409147847963818381244389161255892543163342197177478777237179586521039027632534135390168003627054813207310927173320715488357888125145254358446652143765385406688136423536304091881979881055034729633275884278299572108049791029190829982169309863159125230116326025657111303882132582247128329472894415848381086415064678985927293616973347208116788810591498111010839293305454229279818928745999262719028765272637285587208133279735078060693909611133484813796746117336590725005912169201038415518791383880456910855236757987009508087417450487409047771582735168797118383054560655704472765653235898139582518840315061607181052858367848238101299133415587095404474041827272325688371025324729966997221587211763692248353221771665624229015705651217778698558767140767560683287382639149369656086241433303835215540903697381816864210100975889225808652395557715531173470603002186945059260329168031466813288260536709321422311842012265955318917502596594990523233893453075409452925869684924874176478751238413073079902327597466912600295059850648256768147547678480247676442773736394715131114121759085915368399298346068666439108664540704622678060455708800281828732927798714232106792014865941915772133622708592532352012676358331826418863368067959476041671612442669809897052732929645909180026477547468334275484256334832073727920456836033603732281654208669151567311782374380363315865218352757006407700680657529343972485870039736985822822146988928120780948216663804705280493229486738793799217976290944860905148753986202652374928932565311726522064369510399089442652642134462684977103905939584063307750796825279448253247268914479359717250353565119035765004290431561817751483287047281284527237468030640336119722980197933064279228255699715710212704073911121569798029509037550971096636226937625314155955129370908225089884223757743514033192041739968032341277286688976884987553523368271385278114732699232714166710388640719112053822410870759457029920599967179289893193961888705456524860971011132713198768104456995067691581711401677004514230899427106105784731196140644835907958788776558089323751603108341083655288014003554861769184127453101496962184972245324757218036014987599807596596224555262178525077770686315639382534817942722103365207719569024550972927707254066629942505317580874518311765176087646044723064585929614379647081258332112203409318837200201297090852952364152954245686828450332364873956637959672946769714250606567885343678763394858763613028170185466303849226814392882769032896297717830888763593312687158995985208759804207228627544829786143428882519853190160755354305862715221711091448366034436713209259445413807583726553274611281915066817977254562694798964978619324731132913882748078428964567995549014129675431515207801766505929981506813976653253654990188051823748375907550795902772322361881122247831949001394818182359056166646928664188225615095340181422643751343371013465193700484848488892589745494762032606306384560995690173596862031104180161230973651394360689049256234242926974580538253690967956170287055005241443525615993608739685837678728459543180870261587045209079284359896719136687601396393299243054504665238706835069522611541003169280204485813562981547415200095865703640281007121526700016191763829717170522209993544188058799791619696354768905693531650215579318489089585171070809370635745455988595316010516081480049693702455246538058049360816796551986571543162334824448116747341624303011312481032609841172380443751671025590803093889590347741100344485583964759301579510981650917933505734985835101424571556802999002412097806646217821119435072872112436792703044707681984759993613611450191399425300487622735661262946020333737400987066269463022210136263016887490819968371831831596319070858112980701493063643658910461445732003285389420816546092203800010988484333422389621122638483888174933285514901010636255946005560274288541366064170311237137073049277143477099044011226177670693044106242088895939836367061275385662906493032576313858434196757209500507111901831514721653409580390307692098885797784734537874667836739377667079655578321416145433373623616039207758180865127648706674655626314059129588907211398332935746716777834648247485755868522325327003663063745604644015661010764359102103124578034143384262342515010495550794653785432007317445876244585059434837646756352659045093060883137209883652970204665302399228501240230462574970641238046207927198240003888359391093613398546226787109942272922283302074214466918156491358783960736137606612237956852553094529168891249653531457104368874208236804877037423475609720346631699644921819578799691988159932249292942257259685241590015633464895501150464110543335267049919568905630140711602179145175440407942595457632669078011326065478398704766725660227632416135638626834455533406265006045082060276385221448431740139203089989158926935246578224320199933515155316650429745210850010490598408401349085140106403898098729489766857298620996263537455743887036162197901441581217448368372709770738591230926213060257777655258061066955154333142967585695364383170014800293169081667194539550952479025264858958827021093696374457131224831044232038725410707622473490340374637454783904736940026117102661467098468452310077258056621417122524303316118541719663707079583175370057075526551471714138750927587941622070081652484732112524331200796229544834787758177102370875913122790781595813440734151741527495490139401321723520623502130759683867808207788053119855798324677490146614240470664684159644477249012486772391963338592876806057602440707392127188981039549190112337423871794869354674404782618769534320618661892648164929588753866610242813302176052133416242097285597068668701822098839401820395645457951412434960190043910436104627121787376480247441448978063572887674651783771457529475432283396466331300512253847984236922426142535962801241886745305411465722858594471801349073152510750413367613301514237083551439621004400854557618199987936922390377290260100382713376225963972833850120231966520757363682875658070371761439423544021432309617856967673116047689677923818779676310168696443250365899893453998530917299478067303220696552098582609805409749427568792279811732613532001246816072377039693326925342756404747680468331852546638278303565770992861472616532138815706689676578258490294863388337270963439078200797216897137685999520747528404298365026486260989160614008536993035427623749576175191433401781463091141302897301950487733313163986550344447438775050861114106086170963019748470970187734317892755328953624827324044257090799160107333654124479505967053953018124971491307815784681087244862714490635111070918535382854230737468479970372886135558344633232505635418558603068312707217904825236685447276752489763255255878892888461369672254305656786739897824708484877896580972758023479181636832205761904249470601656239151160168957030292057248316190700370995885266336017568474007206975425409377087718698056075078131996165776665794991485905970025398792167110712150966729495951633067208416081630288100360010216029630461206358133249635360970849215479572529749852183878844085732695446577866786462792278914482896692023504069871540157290671935357692283746197833483064020556241928597493523242648155857455773510100656397711115944348794053800322289025115591800684719068121878318759176868436258580910740017730393627992342589880828291855557581951044345785311276818078239496674131294365435485302580418304024949305227075648115660800707953124788742153122994550455088662766070968927520450329335580851900844544465533846788528421825841694222667154255974665664397959681574113135898588848670316071563663213807198251451171301755951957388441570343068269086221466839172229102760357582520739558022724947750462900201433830617103218638061766229352321403213892932549528537860598843935425217652405527473587284141488892504560755888231144356179491678990242292587820917018648970993874027788280074895723010590431479664656892414101258109537364091448540070186752750508085048044498536589284988461061132115679520105100012946475738393849515480563891951097297994264050244801388951193890140991611707784754304434494558988350127665327912423986508292523679833236889123844477730624112822288430772401137028431216201216552286894366812837747851561536609689334925324853545416961342643643393683862578326996681337048193648086659723355163553926796358099861599937270696230524454107461339824236590622744996692767703566683179847495871311199039449539681033634623350799875250965101070029555218465596064712553987483894705491524608129510589192134202603318455763958929275512109991255592978049059866828394670766868449774433599313861559680959247168507041181309928755461556580835107694072696642856746245093159416071024466884349430112127094364725697412196010859042267359655345117446503923772857913442778957629625889336669171130644518732520680687125943488782059203775350326120286702921868310464086975179226568782283215394834001713044153554668815562278476602210174113761771409620698891826755370321134620828996719868701600163215577466840084242361597258845787752116213406192077021639373098293642211880649610757239817852330961468265679227841678114611668471394938069499684376691535517727603039629644341219191291527739767810883603197736862353864120630753865119158616138349957067005106481450630856516744890839461772931222108087896316871741443015924521293511679387475328457288479769662001219571441305353475160053571090566910722335110854080631609307769036783136795633321556853362133694516460471158948536534441948388549795653063151042442656000782086941510901542787452816462118303100084640934909146384911122484583481581027699925529700168289984267891726540740616618424433285061780121836998423030501632417481296564221158273986411027669511725911477046565826062210924406785044176907650801034051214380614399768956466990783123354554359401426084346258387443087454882173122076720345421362417755653045881727355899642393040415073932095243751036996059674424592150401732921076134224172587298039605652759188709645744677978482140056833667820683532351393024285373007045201801171738241864203091664514419321292946233310598424172212503909644433052894760189079840381698412848070838490865667652541285973059801362484121338395002669781613511072739011006786769042601040284004210772565558257332072882541212563339796295508572876815994504094312497041094651673834656068406391251229395048212749467681206235832872653461742026237613857231698647121860031154553886102561443933930313160498429050019754445997684302606170030571679727275698414685191095446674409761994108722777430688715928341087808291249032957423472765070394508335522852004926815390719724669422853787336328063998127157722103453668784990765831888197780837318073786160089729737152520725262160525298026352911344652844964968513175622395832110262843541523613815641936635582072506218133600018297234388980084245349235524347871471007518139502893248797545309047132593039252260842807719006847916638493615345460022956630353682785878944645136520403955415755342480454714004295631653480903437473607714131773618579651918350730808409132344130864067673576748932659863689201595775841799912705775577774427662011695869158847297158578077345318722209993705403702159191259376708995184788452851992484489221307769682871016033314868230166995806137821611946863823376946941855345524736375859301907537582951961873620851670917701985448790318290399904132524949740774889378439970634253453672554762204995406424958519649663498604008686055807465017203325730863116651031959268831614029017964356687389457646445355527541815367269719150149255709708132747911013926926266496073298447272760191996850332485009179740906814655721582134211893116949721594524040667651440311196160805698777202324914651748369398479126712597581381713586352388973531259424738719917519450182869092684934519377362860496473678067152077513586250423604435357191945561768867265829260418163343931065804670000748912399977436439588311687418133516976829635328966775862546163533335458656596794487680978148168028973556561834158995817419740389413840008802632466608842214053609277919864376302875835124579373674434540160615227296423649236555494527047159129398677467978555801861782615525977838011295430337031116566345557141053089332058537448780611128478927901795996584642020137698090448480042041285035798062283153757369286490568445115593792170957100504137761736686621005208524536560191255088635319896253480115516321943618512001976693037428201515428382681676109176533872059364971055093264208965800479398519522876925363143359626297684335986853648526963383838309209549855631644392896789907752422077717199197057031391945004035585306788143042457564799521166795747263596518563907308872270906916991549824473875460768665622699375052722198471362812625363681547101939749580093547047236761284622645199688316285463331632278387850849973943918117566738916329803452470605091615487558064233936298153699522929489712379948754571565826114118355920556147186270879367712490746938083084337271302373695433024202795743998556118544433224627185250701394980216291689397979388102876610920634351333884801998299084142219158409978131567112522973528303144592191474543866415639851467445720444368901876806011726222243670219519759158009023430613482759659461638101817772647230803889127003088335522573152839895087326134460058840047574249241600308355849829885494102899872289136566203920288709825590361435966221802759532969189637539895586524034348707162215312847974959871215051058881093377187169852661105787801786887118307432952981562861498128907903361148305806177942107037482037188996649158166501883286520439378922027174505158521475865462819321160253182901316278026246304193103390668565223285074133401837193980339593662464661966356824581021728052634906527147455050139788946780533582445420660574808893087132589692194637192908194331733867551721447480263031412329181114214260938832886382007428610929834675863937601478577983798588997404642503685822996858074244321267792708038021687438325205478750250524882139006304265952947481973045765037104029054128493556904292954220870255126508807320168063036220319153154136603691656636880311240626566509870090070519451773686596141640959743746430123035875219416161314481564731549750433199214837842357717687768301496760055529552774173986782260131623697551351481212341582779721585075653850926233840022695899010409142422038826330637218684696648957012432955412489510994973656761290536998172227123994523158980324423288026704047096823046458740677865712722891773146992205864895617328513575649729627923647289287948207440356252588041690911401769270333089015380581913153506083265236145565866404032693607336414510972187517115894899432428263376834007475755113391397787515932502328407717269364989495385235927150793594517740227005594768033545992153410664741233385889135163479788181177694604315033800941295249700527443923197224383830933867032362317079853348578885904989361005014087416431404772293888697625339814135370022402879057405623733786041617249233527199234305781934483217864233165160558779328938257516005167735216002960691550654985097801645774124086439448647068706204588280768138288521704539323466929848603934741356968279976661024860999431484156705131023234321203864593837441647949656871766819186605563992464169797552587712586670279586744303632302084543979077989398490296363950942337428255370379620911303469935132382800115250349638501011513871578466741662788678174833155655230758130310098491859332198352044553334050443584680595818237452921469785976780718545207404410119286099449412631725972218547865616076313579125869133487375291213494979547090356566249367327232381222276354929537628934484655316155609577924629187894430276266440239941475934617167308410451334590514793282075190033078798282292160335217966143209478423503218934021555072102244472338564181398050813731954446720151002776330834070308836730513348331452265931029051173338543578454270034690153221837063196864189906388168625439727861203217299483720146446731924331654829286942636563059782139200818339379620552242111439402826987633636808255533561956881533228354108046350398030799338303963752440893818861671117171502692985976137937873934257272931720644226665921735196144409133323698002207633071498907368895770676991075714630839158514225041284254895942257165251970324411713242078193815668908872205228468562661583420229714740435787784722403270607344951224772112880889851548160394886164633416111718000403843013233884515969772651034011097062182922613165594235479792185271597378333409693541702681898135710616148958275660727582870409342575855628214908948695335977660073692084394685447866716719493879776289894213863228707192228590468920736892077828771965603882488805487507335940494737742240406515681368509018218527279486969147920660855940554797780520761876272257483222553025977465305286731768893926846942412752664518307564327576829705991426629956802504487286036671911328328046575455018876316677304251723616483434322746173676051022106241806266174929436099560386468649907307543513013319272123420884090549580731134506365474486404862182998642769495643243717959481381305497729875012680837452858301799089345518310164582957249300610740822776207441323683664311964031438302266947973811221970695930834561565049993857464670222537254149919206868776897125044971523346801334736330239139901492754956491630867413166983149715928940191387081907932179426863350439786170420284762912967775230586772529516523450119676685832937779501107155486718424727439544993082798168276507760470347799002401557402985976515512888380184547840986100547681927589418729047583905008327394242253016722142238425721049012217208815207887820013651564393163215568224606359187477827411567990317012167157735141270663763605689199359660130578913109104042619160978059938167765713013501357620285286093385384889707938544437664914077885253567219849963102261891077611205826535200089135417557307451561074292155036835616066258352775572553501696539826403622533726482629556234996344922451494744475894834338236809382332099712704572025586336893910635287093129975170341285415854605997751831227846783966308902837677345079726774309606010076647431859212241474247270289850902351289300082475827924015140772652406773337941946632530345324644775185616021052987773078190402471142104233339553283574981691306919555911290687119202638243813263688258361513137423617497304606531384934938781513797617827052402827740793016206990558920217989919363542894263043682633116773691780460039852688270705838068022818830003991185946426613437368945946014671971720955645062522203582978536880621353926389000338757387400344483319955674958805156338003162663695984327959317836178904342380838849492931019488350783447967372966465016988266800498659380712661230297886647620988634023379251767238132678988013459358483298158488976064282773602183950483217381572436901169428088379125010059360507315133128000188494097472424748186898951005503380356406118544375169422373657732316580243412398451861082401410621361653110954978200885726031374789418659674289527673170334757797880946738121648685355829123347342696142150785307147317384409927570211614677532489176302887334462595270630463911515650550851763821938333786624418825855063308156927324926197756978828146556504331875364558757461490706966046979161356236038152344877321657511393643792020252879885673376808159551715907104464179392256915712384026129411667214091060761770897943429092488696995473544496695981072052368637215721313853582531081959305776684302091134404958498528744686531636578742642594743398916940684293595319269213109373075026521747355794978999430336063403497251461590388330293092907865353753731210570247870682372301270785098415178058619956153985573598518391623582519463355441087582222911032257166347154220533024169214548484368059420455363806758475882993030713352667900126348247195853796225157217493738061269880676117109234767452390275609072866163793285856443898401777162374158744135875299291611009366244336737738488223493556405178211954883037464575250587757870948362097564838157215391011615125297751329202709182930210414592213263975958358455176029510777526748654904067178172262045054589977982701725689906954185773636961869103140833457614220067284241232911868293705874240617088060469197351957234760494127733746345723699309381889627436587067908912061922046776554904960042398270072420947320076402032510853496202336378421990520574788989574928062919706561442139041313632288471961729622304209675387736221212738843196356353344778015253630246005762651677961083568608224113660793841956397570963451247744109174335372169795044105983286550648074308545071961728962683799186728345841718209833305434016227554194611951301162335718663524842489767885244084378625227030639259199323956009719860146959950790868596273018773757258115297544670076252860378168256072062257176051023280979934791272155326439678431739507785242772210448745110413500576020052717637008721656629253368749771101285588388519118203755168430848497486122842722778092683156080331153376420245169091151861329003869500150389252274371997505311535992511073031194401938971929377433988556729410737384855526850526337269369052403176803600488198503837841027412514228953213128702677589719528625633834784582628518689204786067603472026324110919205485356256862253070317347259957216498499662017778587312673483264778848797356340541986174964533553905145414575175109084302542300877913029401655113254802494922618018680514673415625020595422682220272080567748020274518911275811579547424250415050209609396567965792583391170618707626663937849976497638825132449184912655349126669611957200527506847840033208229683627169048354526251210592038188813279381436464618676135677638606006184816896044434530240816485025126020555476743724349536061278682566435817186561462257295026017073543165779311951935471086079476403578041552279824643183493843835623358986566421592118487474758972673481246344352494940327995620444310740655553958385281337041336325633522982275318407042329457077980126295752024747311489246106680494641935558063827949623357221853251128135117004131834692246164076025373969514349998644235730756493736436848074062996564054216553190598118563773249686331807567213608243441001880644617266619779429724587879149196158077702615621156793811646497117153691911780598270013193647785221210523129971385071073278580373514858469618297149485572286117841366130923253001053000762097651020935201997609331671203775029356890597144474239269587850106338857364795607728363831903399444662501008863771136755724401232412433440129502084936855872509794590753244841952452317160650033361401334937787301886259770565539491156160281295610849518228320423358622470449019523850652435989921013620890722199177301921748901554988983471771649418071235247675521832144309705681473893989256751630593153620411771145780357581858168446424769543393049955221735145895171140609744630074838318225423169458500899970146335628083207921985525174104708362701792311572345956783911820189347589300123335938992721556364406802666559172067781731503997368122325729890654581422405698932999703030188168458633411383590879268885153591838402413763309421022283181690352596352872274268645760505557928720087040444357347852674410570226564854483927126812977376126966106888913033631216116265102587592373812754508308116001520205423940834663751572415715750101453313293292174365270078106024237696193664070148830089959942733004175298394882041045785997510615379461881086461434991141156307984731660292533601450964809578018777531395732174910877318883268814352716436739034928698690282754100487638586420063336474348064374231583980259707713446723464251542804232154038236945859502034177263648980242658766986421631725196244868920502230099437285233942705030312806434821049323669235746991113584805436640002422737433475595309934058926206510038629268857005551499360641012652668895606028000730463360878747855552395545089386945758039906359596356049684988030833953574914442291442781972763410391560243380352492853082843243886887838320089529211958599225079113288264854076721018234090926638880900366877123153487801658238007467428426730896489148390294823799681502764965358417170748074010193287107642280176521778989311520445276722545613500165380484692767838192851970070786451290673208763952252065879647239099594470218264110950250703313925163678666463119208190346643300006062564430410406913665739446672820934279243842865896355725039859212424475444072097517348373630058946042806637164990450811165870212709238632451371455107553420617004076564622078956679128655142865045283894662400670471249266086999920034608463527976335479275748764224266972896332240168529534447396772655607659438465941808963048404753072268996365695606160192162718429424575520835295421897995711555883202917449317571172682004162345780667097705062845020595784994368388740168244021908572716525298146441657848566987157950654004372575499148423570459967638594873519643578934761792627792646383791583608168467872910602655714702738384075015844226274684778840837928256733774124973836155051726608442342554015169644526908723156989578216985508105623943311118285235120788881626485366181564140792028482212724881533641648172469212995778065804359002887764215507719363738250183979580083885315377051860215267998909892976357761940571686890540733723613181755178685193166086734460896240574254801239816604467996035692611895195805189584857613450584243420390558967990816301059460605906514460813231447083505631384855944000466122111579055784181590036928892764328917384532247429358117268494686659961822875025411900557395534585468614906036274790168210693119391408205887174499187090200751703312291440769764655178485522914913535538828637404784316725537592316835273458435836507054426951581163261076595720128848373580806372835246757450038907693391049913056235033419193744445365626164929339919725432536855001694304127280738236037935837836405208762575615739773295631229098759214429906861420627278289602069041890607731835315762044323752430353482729233945063765032324042399000213072825566890058715343732712709612616489025946790734156042112998968868824242077084046850370612845800264897206019126668895739730700203972952800325501390363237972211350072193742828695934052739259652337120896880886709790551997016559369091471588610456348590481142432764643138299516260503867766197122380111673547051187447281821152992575843561891512278156297777767868355547040296810861736064471519986694122053693952533156722022356552200634631092775413089251121514180512139313376440309323785324931434771738653329083824109523678604533075904710300651503573112331355810494050377811498972608581148311307128235796805026341055705204882844307681267825013331729573116887002255416447828195315446858117473344026614129076732000423966129515986196158263228596041241029771218851990462285212150934515785894234178135509877314681272024823103593672585998162893690325557019520900673456737586738828642041460336664506674695978710529614044153513787569966065167507039319025384422605406971131201126384008917223151000450874480680934534055725296218920744904444869357208760649024403346551886279494874756106206643390660970739705975615345051477049260230173754668990684625569076034408380284835568360839095951079622813709512067520360129781776803304094290146012378654990754009413079618282946968861705151434942254249594310150657755366602416595149659032299466346536771987143007063701621598185083765720308414338925941577147000907492401228197307741205357525211724267929348157736037464804774378484988145081179738289805561722748198412945861263804527652545854332254652070691826677789972322836926335716249066924990991761691527332335703610443508738459428047345598676697367489003330881511154786776867960159713285979261306101156489867414700195504550984128669428497831708989853874490474583047125911719302754547779133885682378131757659256616137024138835436519680403186975066995626589868067965424590495241651902542609008743027783851460463918370735367764341028268129237536922539129361463362790885170427466366164602886265155109668560321803969119156643153089122106739460480345353570871588765781338527245680257803504105553451409715567553925371541494198110385395207493895187279098890022130286171837671529785165488689347694918306010045607807480888179925205932150903194652306833651085137478068861286188880176911597426269757875982549270107375660034767934624893687270089202257160746968856603065391858518690790575527289209141562279727949119238291221045370989049722322173926514078993679087001005754261237580515565276262039833727428259182147261769291383600796673630576637162778208971494035497468067389156590882520218828354369747361101619107118950653980276145898435714029033708541457928849883616955926455349149260516773425331264272551484771154680568330865512028216553970196785932647161367506510847518773027272056962212442485481617127006214148416991043618882520902093190086993666134767423506330612985276805271858734261800309875755825514403088589406549556120954642301479840521005638448437459732937692584987925476621454202023953502391445429749037444968331524858579073539270662520957627879962029812940808820149983383488193908967686318280436708374961228811158562389334420277838754707115658944090206627430464383972607560582833457660655999785649429317626099960062984707622395523724434648619912889098444857647398966445937079828603748150842954392296526998496767457406658721106667019558885803344047391673824988107399716268726848982417322799790617981988227440408960271509695720385714060408020813755602717364434773063149608613398240901731815164433352059383110960515965522341647045409395617914274883653724863947552394206837198675607358119203906188749339567526464729385486472880001523958789044452461986200689933997697484476086423315802832572886384343698615604731872596186943159811064897360812542459322054015545592185927205637085993434486885610101108189887381323263518219362890790349349714275775724975376587764441626597348195618799524668366048631266662773688544334270979163842344128000389698502093158466391105953402987666559755690391555001486627342248036729357904987289934191015726680363744356984007043289866313713980566483930098615723247472101712797437589091240733625048561258755950644967694043373776790865908056483399454335477860153027797328361742600316623149396685670016381749101060966292869388968145898525504547881906034982821970116837309465229046597520860699893441106362728805987170956636112571474436082813981746086657560718765011892880494415316194395562308945133595306024852754123798119654226366700857639889489250615229085065076570525871909602601136893709966675405960753758516576656288348390055706791477671544121438926098280379541745679288950426155304803949344836726799090638288565381286168605199764305492664116207999006235718794103118083919500095198085389965586604072959975545988793723001480542020594160358454115994740325068903537283388071517096537334780141852777122824902984876303706223548553924600286375148986157507832396200424062403021540523534961821350039851049811425390915717483179876284896887237400430581500997447626590291826035572084946428508672891753723914052550553200784664092834411915045312865554235201234960925224397806023662444711481812675515717894823513735401490034411627034560690386252841864958125428342861637690004943164055922843178253318616399591961429332582277532359870475468692464587896565012652964152293323433190163185411344560603671505765062304024696016826179187816624759956565968105668287645602647761966139968331163365976765729432050166720562877642149824434385276494715213021907910359294153368180883594272651803677092603161332280877440588696966222522621210355624784540875425859529647418770524010045909126199869968527201354719631920160119710078511359738796191995081662416059653244810730695614930111734945022937627229818637367872113547371378150387653445932345723426962530436674100087369401188957505062272997185094731871897386574802218502838581687494940796062249548149909378695128386882421228881057366210663494654758026150141876312678434982519831594263635326458317177513338512378421646775747570251279800585066890354990709241103405994246611794571302258870712122817926027315618141981127720419526239647943468881349287999457936071909520880283846392059310309855344715405972663926063710804063731960900167309606318747826693251227292530671319061920250703295445057636233699612778945426752659363595414733918783354897788793683454895049052199020334043328937342213438218003645616619502166156229167349879804751552509268790633645301760759747942332806087300119887870414000963673239520839303046791489088955447121943558299816608420484217352123163172193649985856916623224380179506400459842286079920266322538285222626001493720660364299746362814701481403824759594378042713083281230546216922647363679963018411095752958197735061080803582810836921770527831870925348767997747765846279634148299282917415961296702772362034904417697564847038457898489623780062598360545875694805416991669562427369390185378470315475059637039553925598586012999576188881475744801957526031952532113831393407203036225997316072937072686914224554981571418685986575055053560553712567585272041380038816522137043215575181316934721687443039764119052053745954269355892894319069665207314208891241102645687977950122315771824899918591453818462146076778204683480416933782211289800652399395208229165561511934635589516982729453396731363326593771386711120554086665533936935590315603522500454212020756034516076723155559512136527794434607735452747204274382473356255693872542728353057464579247699077484199488232403398160847710474551526430084788698754491506565791275908202886246391383447579287412294174721588213827944498277676015235815732411225553559669648054185050778459473654835096785090949655137027101713098862933954673377566299388872558898581871667306697184780712750196918688212463879091680376839475527590318871424436811426791559491902645151344659539735681765114748902564167858878608925265315706885605452440995588183407985218610903293378703486298438665665383546472166907213261489496336494504734732702108890594894251338568835236119356575349037289015517405237488430002427342731006634019346395190366665638917747096954327511882761471997249155830032391112184452980662924310432805853034237189036924218590802530400748654027330952151334933551851729742660242008844899014378103882793733206535871382001180630127727799832703912072201275023480399824468199811288584475456642391086229781671583348628504969021971811091185797663558306861546698823321191095991097723296839859583090656136022787907944669047360208870941104432173561923531769582915336897679965452448874179156030506565897470945004758877242366396104264192911523845861390136599115018091296250022294229508879793725931836275059824450761339343632387220648814903490794678910014255275950458500074895214880216858137038045578338938705593087215473591420950386346582889349376280807474382206959670176074433763065430421478033110737509839171745117806590957174450853810992025624544126452060643742980166676961120827871542263528105740645182806538642007827879386225927752673690766756080534991082800782008918929736066474718634692461985411032703141289998728846067998550881018913120174514000747449603058475586882952544550946206360002901206472884556197082461722332904604945560894127324100894894166885924204234946676883392986095002060483070622755689763559099387743821280244314752979088219607009339443464630319751915043298147841160709327889905195143699345963876042928280486631117301708879698584437276384067056162061057965536229586166237916811668065676760320872315638200445859979255468865385246682404166942176978554681517661528397884244937482928322734505809862047270577218073060063357670830447951050877158110358143150870961865251350246492952129477862615876478014967864026650599713560230417159250296273455511715152970355035786130249533634442237718632314688128678980431971430543939761291083437124439555682100293420617794034337995996782105073261693181618899043813516139950110269297323108383520338216954541931325394159119136039511180992284196253544549864551370468684950597180273087245925120605351862958689172547855232940765655983533643880304848702257996837243732891178462957136623222265748813336536832009066160261857115662912373378454928560254921354238373972253638451184163262468617995320253879407084436042259734774152300256282121655369993231619260492154217694545311947412552301991775006012041543547215873064572142870859808114303648247405269737808397307276853676103376022437256940540998982957191151379969944148966653623450477938885871246169051218530346788085402134314161524459978614735499936677534926074737558894494044092810575515889873589028471907194944218466070943145234207828501576101945835198273510410903439039283920732285531663894775211684739977404534144629078461890644362569782143398051394348551791053670607418013136528556699335314323190992082347759546028295270469187391098182086618655756016036134153829003071025755716392365741710073579116593473945728631545089097355729377449512814151157969643918184078811959657295091960431491305392682484775163951830414688601484521852642621280534797840403784403640857961421865727797785058827920354648632097786774282316911049572400959151212968042194873058674715832449017850054179992429508475147627739154844152073371309843171790943492947528337973695805319562770060486822589616528516749390812367765225582501171726845457362402574246054482535677719571542894649553190620313216271878050590206009926912073530346051169199850625910938522705554726010732151223021790967601768522216031180026356666308077988466968458453196186243445345393955102406874171309421562767501422776519055468349595382878284813937662229869819061749275753868243835010358038474023347318568211081040274027474480595274708309634347364442356898021915119282974056072913368015276136320815338701629285032898483203603955483184851684098325885685834083909102502678444312286703285376367640354413240952653812073781144794466267638602688152335174229361726700378455669762255787018946556920730725972581441517911321328717704860418331990322592557306990150346430896063943746531896115111506140158533556351956258138171180639700166003576428288169612961065269544319880624532462642578112980503508387891811052530037809450673147233103798078049681889683476367878565075280127819453440831108102367971495622603687235095663250211173932293473435950695346060863735016815217111798939965724632599402751972990744885076143550509382646201344898866785071340221538188237479040856041557032790688827904866030298339367679046844173814153742353959750844719757902370648739443140483370830767265270553537504766189489931606221599364384743429482402034161586802851436275903271331101067418034237085191681035849010726785361233463941007783228149876037409382697086575478139351866316467503683628329557658634181547565025428624113079671951182368715943658025485936331756024783038151203540191048730913089293828148832564171581648562818693203529610396859998140189878444780515304877296454399624766465910973388177949771603013022969078049873002942078396786630891221559743049091961192964221264334870032569125087433097203767322283496668293561199347297925670444074117428979964030807879150095464553096539867004139651605896693535710857816311062745918806916858538879659056203526246762318355516343972646701080202520804398053050247925055644705030521227958592847280278516198705847760384298331931848602481723331457302702530959413892792211313127190159463267943504388541114536320805998925456301482359400245119833868399550579751405625143518373867272308545807766904793547069064757943186315359732139662179963074212332368439593228796957947857411715663065172643556929513106542957090300848118478361611968482993859436076751006078849453451154603687713952583088851152134147985570143511352458006146518303520399066489105077804204825564752652053040260950903135394837921769903063574245136555733893978793350595860260268242912673313012148653558063203800708953749428930818976204573529457687185665974676622212283978156371861672976988153741780605684753691901864161333244089882012430602092900771755159736958533537146400550905351633266862632522928570250362126306942125456292367554219400896698377535685451003944232231704009169237968096931076262096995404408032242329080002716750057031197788238223171232512608278764283421601396510315195136640012857500658568892402114716306577041984518964580309525879889502762109839533868012756618237232672510164293016086043839409656903854368474699907867082804661276192709101313838096341604768044393786503211034738005966019690151027784339517386638869039788021952637317823875399557332629877743817487550199041952826659280701722549766008257808620950580446013459871234868530752791813473090490726029706604085969128514619664260233521101730933868073730521581612196961188566145674658500380143582564693652426857893869732668789604050435377282564257148265601626943711432513273194713175038409181546544286199545573567392768774825072778955169732340507406416224690174105786838199212507687449849688249542447872496328659551642182918282802182089890956994574585737307746829168745410015644792674684008401871149420587608173475944596958993417493982202459715515793302000354444707584838576000663341930805667497867605596033568646598379827082140093080167445338107161710958093242466568047769004741251247030057402799540208865611420523467469524775623229930677054687882357680544552272192716783956858378529254287688240719962668279251227577778890978273685281768394428149595617365211258329069415389895507577243716874265895107975308861806416007054827616018024192959294810232377435485999646483754366156694726850514656480272678783254400312214952937261438344324266662463613939265567778735999274295004092367533719413487986454241995496516307253505147438613563404385856348083625473016550992899854271775680309133892718946953978059693047844494730553789665419616109959193763080982467934579293510242029501722113567594945559118576897931796355327559130195485685586161111925619101391795002599283436473992302755539713723572540134264673064136797285237305711572067538928587403625453108750992601875216129930186266540598901880752095813760660323712620011239827248996676761303989734043957933212533928029149299650568790687361450527753214507961465472540256877964188008679279337714754813473397155246424165315785983429183284162602337607988404146437015539451522645478800709320178490943240260294853083958965817655039975641009226048358729012977315796099450334565997296899432274940917175224416024472996356968148914006504235170112955249679138393847192908597279390073504457919364771504695799309290590868944739243990071888787868730269296593522678521537973623363904836020368503753478720507007318241370718039763319325207648528575609500421443604127250875449003009641129439067787731248676208377949479094299442823822569643732619099173881921024337423663040576304707258147471218699615852806663117991055561465812959412328475512551066643233131782075028968987717153657879027846073310732304753763054300427025346225674197243017623553994249909627170849400062550666521815115374438783076971679783216184494933901143867163002330972970771301048083596509233301496592082635933787792321395516242232507893822958937034254384499322722195463847862672297494610349076256409386523901697215877760938897689610108578296804731090154780125320689750115407878683254419516311120559137595591715949939590104361908557294529045061822363776866194750816290614950431544141793960646964793544868461362454480694383258849708770899262400223735951784877942051957466711890961128398865099835817593074006596604867245314597542400630609266193137120886340653854233785449076295156150804986712716920292887501027946697212111605715408789259225695224166561953915762070598698486451369588001854648560387956823847708005665595214694560041566403960969495157953779142066049802809427406558204284353017386768336966188177855501400489122471658780130499709589120866092971787093802230844302635693512067794305058716679066424327069939279358716047582603391059473470141539465654510425058307927575270026315974450238033197341103941923368570943083120632974395531537094860239787478172868870686955172703423261481813870964597564838486798397173132961509010643716716535704714703848450472358342080921905234176376070635568872008016222305086577960214617594406015865613689865503783061924728224111629196101296773304166545973849702840070546097096084618748773870697525560891425138419256549419986105278470050431782101526042728162493667975371578412609722922250017848808245098699803107549087704258259944345286423008270952972833846465995583947905931436421897607689765997636805729282965740854057570176220524221928055375947722521108802680244835485634746433338507611356386867938108278588567886732814117142544618442048420113814845485123824108553638543523876610835357167377760289964196443288991948085132207017913762670243511037516977285675788095212585904823387590427505782063411234321569025964096838965012744189898302121878821411886386644867383636500456040248215990238807442746027895952054011693671444950883809760708239070941022203941986254213518712271658374591020518211429308621594360604297760902485463796015170927149255853623488110628429824620053583934501229889246160728656775443846338339580825396890852024345587928753305412082887268698013898785734548198966777268801884033683395389983967934682903419600522149161555638694877486424397441349084262773008449151918945174094650447122776957326769185786979633996023962235161140883280854106450336411394267553596178491851009535363247442594337907010301980475497012442567766214825422800752536979873548235041607348267987515097428991764845410102080324232712025204399986756017476035370470473700364778014524669048741042642378959379826008326744799255640699663391011431950522962633623536121251863680389105334762046471464990104438851279200431423213315782256706873415565081419858709336730677019674177741785914968271765860219671442651057740515893818549416016878596144871190189318026739774036739339861178817744303425528492300735681431585583907135926754679976086214942679720632079209375229240422599432164934243673361718875400203713529619330961558364255392231000725412367715221406325342409730425846540139797461040990505123530346981766017087682745318994372753809171507334487243300134329053666933728061972168319924172702904971921291053925559590682597064347169675985360519763353942432187735602869737097994241504157190608691845233657682733886131797702397180801819710232229182302570790370343266023926661071189461756204042031578415885507012109068873102440870894955423482705892451631652768480532228303051978130069628486099273310530855475237280612147085444978345551848671073773274852491102619386161782170797065201924527087170534422300971459921518650808672227099812454519239090966370373371893748555948538471356021092545852334203877529304563891534936364586110410571038087614176297629871715347773536117420453576088047787555235532906148152796790571300811798270390248130120810629545579239820135706764353204811983875779557442803537421029569886648356095702978975093854880041313502521030429842322621446881073854954115415396875670739624016906703831552203608737263095101685998325483079158842329963228477494595641959876330015940146866325970092656580173555688447906480577193204874291692889015730512174077532093296621982942802441636286003523780171015083963026495766407559834283019397595641879202164124196872273389395683197050544029597043286271486628811982874081408373101219126967548928407299516253168884327695225255443297399968357946482577723841091449251254015480209858229990487289902707855439485371553311717783515232852329715187870591574031339201910713738075381894370279734483652481818796417002351368619585722145677368159790153802352572360006402441193956065565355418184862471159679638211720361115116460286930504794181927598034223172297924179162363008992490214429669240477672221195759783185327077582471671837003049624808150521114532838754824385438144034097280095902241624379423897647372714661963408610719830584380261917410507486170703534494976764463510071863137616578908448016710429504919661831432931649789449623877093433658812769021827018171883346221933086275553732710140094783666889034487913029867716460548308622693254615485316706134580295047262582116983478807675404889189984732037416636628035816599005037728659322751375925859972804503168507926745727716658020291730274750755087577620279880241567843830775530574665277118557656446006732070162852710655963103228677660206616788600835583777988324741179404121267852450055423054563677432980569260796590595130436532882045001089166244678496718521456032755815386193678469805511465837533979572429503383407711204940239634916476953004518265621630826526859574856657818019725091553824383383542256165645235694113380810779702528697382557481690585860452248865067619532046675549857316436938360611287233215490864847654340935101788023817157045263170281321801152247068940257369425822385558539249676559993757461374986539390165924474014184315563386244466821440853470628879973432146083536972445284256104010164243232695213379948586650123725302562912959901877378864304527767190917967120704911225018268926691184481107064105848058689577236757173179215339364298321767438225587607339239126831409800454906218865809526329154773608777655071065305158926182330189070985524490269422740037471145706236625320637253443357011798189922954254084842031925434869433482269532048944005865802672561514427608800916269542055006566020917018189529565338221196327732121682334984667558798332575081253202636974101805523416176215425402443697144742375962360680725343058943868152343297464132223189374334418086353506714423605016494209320453272211729993647473475257224516025036726937726539203617451123268343797532536731162041280284532628378453235027491300441970044751418705406118785464221393097694921877401264072876204179211311865265440515969221047203955268952635623535992127973630712184061204505955081878636411367651835915610063279004886570979557952193820467027601964109069454790088442796742286625834629657354792348583037878261491726038794808002122611718701879293418521397893638517242618594052498259631167019446714187911448396299076088690105669643637447169683012845922391620580599084412878822159968802245028725143141246592322847190943313367479381394131000529207129631852556660850099264091132372594056179311336469508694878262188448236829427388957670889334283906299974013462736171223770830237450035126452059230141062751202522784789978272844444194723413187196007853281246151631990780611917544713014075415850971890180083761862167576676619484219807969201033469259118706869428680844269199983699309809809464347932573861501117389431431680353882290309870708491390225469280051990524114869276534256708584481975318785854175166617681477443625491155287167413076171251644091630071693132044758281708014007079651374577922982477244984031038588128571301234046708032458606535444699143129482435047338689821035739568091641622080821552071927765371614401115344329182152451577533879020471666246532942215170745014732719498247985588560877385441867520394640272679124268433372089933452250870548722114765723300520654516689204428682120849468618507009164231965419973078747699887917807315190401400503317008919415541726946353418826300760355842176040253819909042330024033330039908453473578466250614448072750258317396646639117242937342448647137789845591599035292898605548078807708365572629729344970655776460363210303588596532091505369874517410925128324222959825452271220900215240613419484230759005305425920781143353735176713848583361635306557482795181536724005882178086771665911179631258005877760140458074531167272405098230858248490315634799614410384703422731198142219748764499857635911946229481335244801339980567470319363387322344541290381790743814697307128281211675940228956200031421382879392045163137074562589372403566262933183707154605711574228922742200773584730355323073664619029006159883988362685554189674165220952657477156917610934113318767679379269533849665027735886176860031326089153438275902273459833491788361325817521762701960902086705929369527960695349913639852881522610866590800085005492319469451590455433986492972557321696941550233426504016479015134379718902243949650719953769997881183483636848712797940283119969972443255113854416961312145066004989014930821598620344623349100514868716632216191955583700278488274602199302619617032691794886744613404055018908546994016983364140660069767424231559221368460249341698578124998425053629986245564166328821061189434404907113620882134556062947621044624969362757667714648817760782481953099428526420542483176865420211953683471225029827782428256934172987646198085292273682117906637248417280830923377859589673283605866079710446982876523401394174558320757674160767409484406965120010102016194352896979112844643192835629490994714351013164140745852223094501926281586160177148885251509410197147965714618423104970432806850493045396196336658638206186045843677694094674188124966785519348271688905684172943858777124699971493303468299361737924486205612871292181223055432082459856400911998979479873295887826648763939391006179574743266714105673636511141135967617183085329163030039355213549885217158179078554496835654464007870773840868047618212856061247881547142599009726982495687876422252750080641220784645748084031214863568688217163981322657582217066186553579078853898672104193508406356832611124194801481321431233580942608660313511622268483908629369589910630827696187388197613584785256811430284254803929512479664991146058063828681075849352332390219726283754494331818635697655289974876174516657097688196758834753555929440736297024947113214561951374030576333251051331058990426052381815610645719974725779352369995483127880786021971661819689276960781396670865851234757712765727813978925815276830870540414772119899590525975207375422086891262901893018037405907134687818171221501377246393853138670742871401663358925938848084362900457870857204088113895512987226925623577653932678305975462901322406039306887961892995444827854661993212659942961195324610565830465487317665987674265778254215229549197057770881448362743566256738581720852661076489055959413993480385295609481241470160422284117988173057447649858292880933397276274925031008036102084197927750172755841792085256794915539016468634074975934132061029870850849024122966714011568484774706912434523817244506425559144606004759471926982167414266860941552430853305491260814228821276636898654101718686641366974663209600996840397089802247354587898963290845964876216691871404306191568284867847866862989067731606791999730751954987646479587493530203913627766615842239738231952107699932835736239316139354615729287557516710567958513186610795490728042973577903037513213028741255704669104760282967527196297573827599327115475233067302725971551230952271669556212824666114298450660061347082716243636650721869303972383228655082644014425236605948545658045714401364013826489771841160681726118877626366406168933769749645415509707421869398740691745072438215586929585858732838493096864281419239323824194443138969695728244379965276953464166291226854601698835609268105456628862494485296288557678293856018279193512013511370653035881692578291038470733795038007305688696964922626620109948025055485387982125492326292032852815483462335513657182152240306729809951774764502635775226506367885347554055758312983054459517077734089823272609774010307048096455424142477411782913508650265531898899817104419903692930528187956595692524882904850368846687509674148755508353821732446941881425426984947902139767947896814553195841630737236477901813900175239006567793861943062433051268449779579804297076426847609894210875845595550168513486195318898163444407687771871410906896201424274087157106515589843054921388203735829441750152255106573083298503054219199851565779015265385230997375107208058945200913684989820550302015534203360725876642203185183945395835946637729346268449755190983042757654489762978395573426421629291911071324216363122330817193590888541301619974090591561732230172286601409456423166164877481767811104247176067867548156270253659293056731515381171497722428752624309504211660789095743676276478232535954372788895329392813038842748356766173603954418834201646744208431816361139640183995281432773067418034473672424219014681169811823756558857044930665890295354458106032538596508211231854132891134300436502114485921270736588529535627044530067881478863848579502800633432770139200791252647020670771949394265572371966875679971626341902347461856818112604303356287325096462245662890853752270238154203868523867630530266043788512790043137484188602988078800582908875966020150729636861315208713167214872469297044339298465805158956637642234712874522273208870747631643040332418975931940893314246474673026664170034821264038595427891168990040385276700231952760455407014337939993331330047970418164960834645228889732667091645510592510942303012848199176563293100995642796440413586958197351958085762718867282364349664505166083176369382960579607148430960320542271495426239359351563864911766814212446543188943697120316502545032143352821587460769426262957710135323652959187100513355024047745063543887439756086292399878743265865015549566773697166110294879168314824414390580398182954382751235061776966921169762385143130388594620366109704127543560697346628063349396086927652872251330182615689309979964564073504771185418089036108007321474254779683141405132470360855478996057327894569627130301250541235825874033480295574772101678750347715279237666459610507766635553176248158902067066115876342315551354449561595624090580798260443988532833820539529655403206913091867903113729788658861399180082043643948083434349931210700596094807819351467159622477416854327706019020410827288708573282577162834448837862480904382073948508383748791241955612064918511028025871166471953702098378793759662885442706844834223958961332813674853365691949088541709030807387956014372277193954735260602262427914234751482311836367912498560738568411325019490064708506205359152386812243806642745719317215033849960041863522967237390050424625346675865110222805415629136501615900368780922144109298136490471347955773155818832993694730034895889731484862635832010980789640800373990702564745288686501962937103180773512979644974088033632553664364199505162516592529416706317020788719023221466878303351793476053402299781944114682114449053325849938770309021069849187531096126077382364970977717501770353960133929958522943245793126990863998753472056559874963477920530871884129776361084244102389653895811877823566727808395986530759985867716135119049278380317635296686729519458142163497281988138308996778562964576822886043510747807415648298742576626448985300142184247572247715008458567755094333845000077791914366863805945103403322545777008812993816782964404021227114215252542240916346452931971033150912462828684940089643667491849708796525728979200457653407884103589241569176921049114831183157698162812756871544419736061319896538763825067413986160674020692487456381215888773754233623226832822633758633412399585635826334770456311160520857391762274759877291989392117344113107243204622804018874646410243285536681490397441784883050431223561779687033274772658718820595162190825134289935126134753119130163485862319052631223789662497448145497961967122102829110736105862464846355418410253725690610297757604466666627925182920977167099451660549986483779486899830646183923822143740665782614368192229099089551484935054209470622044902429455567865636993799277070275741582578014455952596930004210975330437544639351540132893794843878583778313680439491332437045755660481098643908932869911085070873806982974353227380894578707756650575136189709913549355680512985208200595810234553680920096815737004470195932197851581495745702383466047275100221262894449374447365409697566605305856064523882807732635688525329292187957751160359283275688784369055395949708703290969074568102266486636833462128838717653342620903631001109647297866288383565962476962048154864150498866969322735243121454694965156104941668452081481979185954682598419179506366398660823362539929667253537734761824921667015209262146164007507640731796477765200334094683320883334726400563070250784178695362595409398781245255328827968254923165566173177195608916375457154716204277497384601414710537900895938051148054281721936580664046358629839981933235587105540873887530621312962322060428557526277811177855490617142282262678591820519113333991114863507395926229968561713921279520318983915081597393154566991135821527013637560455835397181591063897640245970554150407049017387530252402759365731305111750969598656307353508629640759118792320524789579210190554737200831790030183702554627795651925984202019672899234049605141247089140029598723426678556648263507166693577704589132090858395397797862963592616180694928699177557518177120217997931268733620586287343396875204028766005744797130638903397478217489655057837925496876039946608815187451064199402410391499889997102252578317094827869289231087966773763815556088135188069001241272576900023222763386988939799806160771141912777920254772101871358243273669199404050901966790477381954230014790115581140375842113088002201105572582908366391275929743127169231895098531927852170118701272341751842365794325243919400360041611235718141547066918211665190587966004754564205596023967408584086782044069431146607456884430305474648874278645675147676727802149747301912762439253711960661927553374668013407651680933915563864883952824477902584160464102860230418827689558754206490809566849865144617095282168037617335048476339247490322072398671931308413350285746098813706104321482437408807921717587545009350377517420804330356134376453889629560398112197287199000658026164631468699778083405897906606619092998755438189295771113500880931536409044778531282617926105263461616036535007056273723548511592898382248243153370129653293217799163917411204972738243247443645959110903896125329768440045511961757855760409962412881896787830319325759753805590096189908635843318110779159195892849156053355441365609942060206730027633980580304556595475209104510065769541575492584911363797283305021561406567649150054455006137735075396861251560065681714369653559348538402249352752959639377609446895796863627649254016708699950521403221467922973621681596540763044385802596702435054741653272117064512042231570343148474271756593727888870882503278586543584417437741206048322933763858754271160608325160791830335806485959300529319561739126547496636653243079690408732358569348688595891746628450598195610682566116210902936004729816360546256745083528541069921567362355404101811096223678220106041416904440719535276219924847640718574576747267156827719568164877428614522545975258818735611301462025166980233423861162453064171667969159650471314114606248050387291131284474733373784981547945149447812010687820817685933279815155020845527934378845175977690042877053327742342752776084285246426066420729974304384604707992057928475113181289475260312125795406829943389451733605869258734880591864301072533154096475571703645038774255613402084856174371476332424664320093712784832198366658274037360960527006710791358136092188331981368246343431561683736250336014333276587391989910494413095422746529704540371643725839118952114260307801038665311990471742310996821298353285482748268224866620758116354404974216250524945909012336112216069950233912414806833973053038539348572845779431769699259843953297042908773163830615516046969425966617740274909232192862593926418334101112467628374311473228463965842837654401597179054974849219851542002466162964510160490790957328227685466984481257571959244322691360777203790845145140217991114816751351106564791832363740204168933269913105630552398452970269531778721697501355292548606468075010187570176947350972969040695577542914222458134060186383204136662218119232113064502218980325236056491247799485065988811306288882206085339767149293491455993364070836363056432607687140589430811459183537156692965117321793600813883396470387775328159676718683136165118706350865054351196866220167029909331248645721415942442489597106497858520782081112472001532098999288466973420483104529608334112737294086834380600406292311245058653406359028688397794688532727970166619174049525805520940364869230153058555364943632630302905854683229580880984344582151611136040388640940586218346229452837820005516738870754745021809686788466736537443014540629457347959403074788338705084865318773577936634951905472393725125071001119943431697384878550576404762911802697882339082814252576996827518417615379716667642637182534642590540392210439500109249813590471307271480116476464553598850572952268791508289243895396265912576376917092085337704126757771112732645802148563081128082401835455341468530953358675439434503014397584255798300320765621370263056891443005307928536576028267728272263874636662151759163880083501785117531552283368627060092752093734850212159915932563842378387527516964169040958902534641767522865290659301645003962694584774052182047794590322694111857308912114366460101242646694987521549154533878621545751523289608934234642872064992889850105004043839020429526666783266582438711314162081731979062798441635675485398914501482597021647494503699709523932820394330399636590975436585233683072658138865461255302065764209032489921074241403903706687590602261721024708426232811919773078296391061753744177564436748117233805767661354152386881967194835223626572449731551725959467626743649519176307065851165450974291841769394397659264583949592866562017666873058850927652469608936505132361434882097206475351417303287071149536357384447099423008129865471315620066198789164356631617254370484224784836319951512112214385565445755756922136146075643678966109740438411990819440304136822304652002057875900047112816430307777560489066451779428246779146746574074457076543997853199110151264827288229693015818357249204016534413689370440305166788635361201820365317041916807299781658809892491618101445725191608062209864854734345579632999981120594575873730069219787753584726429822278621270516830587589415586696153765861930957422125109085629701711045018873960041253595672428622049532529700296529658743140378919889427755089419831189287734389655896208262576841318323786194999799890952296646314939293900360634010208196406082798093767293558597394362647429075380823273144544404791325328036494210782365815241698977155250652329970213211712144791251250681826146986931641738333081511214303923413978619700045208587013397578019889222539952977714463325881898910818341577062325069399710140593233550998776950263089609082079937822471630827113529642006868376438979743352736197139853097658497575289750217863396260360995781379361147888397707902439112832115389370870067974878727955093703253192943506686701117746453132628815785228282030516116360518263113043180020182777388429887499982495561299246296696932243410016790972597404332135736829469797003516480558575411254777749291505293449677957716303187715056359620331008071863232002176966221519329772393950556531524907316123518065565049566251160843110827135121457993233616734881909339359959571795454395221093038084170684880082321722024875302583575487613334321910737274774838954804449443646780660101401353574389235521486426506772369570096011352521649946903836724350403311100392170980208888475689807497759860276042030668127030916077960928202833849799343929123234695100162809454890718114325822867203356531575698408200005257883906947617491086910925113848641939465541203712784903249798142043577414566617204019377185446395988620772237652848595584714808737845514767798227563458182642060603085233533088836513935886553921980650438452903688029244698439287685473226659851761199012888842025812152913110556413521114960711540547400359096279195658571346066480408679663938854533452220222827953962442193514241042337114912771371263474805713043151144353836972622696383839778217658426732127813117044542667287211250007233341797500869025902861424500211450330129486855916172440784425129507391184782788079716515388265068442106902440078532440380274929396282775201516976402510731537076453624456966843586267122577331124526629247797843525549488752299038431648554014470921752934089116645166308111344660239548075015985306312701751051656999096838184622547751684581791614125233816585271614411903109840213427688404492139767735119554868169007478446720252500226231680946742034924813080925134300422472745559382088846020033555608081622041637739669673127522839785213839732698605170256533932496910047842009895707246540995248385583391403129943607693305434711218390956222440915218924540082570881297382371982398760081299029707888898107856608007100286658724493509033837256024460033348662719813195672693788717579337931880474788890229449825403466113043612552956394144223075768678204269324587090242175656235641037308829911079394580408930397217137763004826027816565525861134380297551273180955043152345894067391175490687248818938604103603943239857266387417111219780384235620684665772878651109576421565036699383090353254287316797571552690921219227448140341008579834191481645534189321974985301557511536148859714939211455190317665214721798607826173956864604029499732468781148689767524278858338670029267998284843745389533517891332966746595571619009506606263837538014942368306427514767495908341546971872583975850884830174275985911619639657196320704330482728916458687954463993232168503044090593264340452992490752745063792585069109286850490597198840572699701848184655444292258650038724873636849139485329867682751458299652062315243602723332215132663651880185175023886161118971430871400961822960486364715365939259594755773747166687185509532270638544340359237613899828107358057160355452333425833575659713822208023140146242411806911041692188427229147561129765786918439976931294219694910360076957599410101118861125611495802479062797575663850906658789637768003078996937504275556816114322949417596987860762847300146153154029656580065872932790025793548135286706246461754069906290382707091746121313486458206048165307576901487336746468096439134530061329066246984730330144234728272594495892800788891731310680493720955028570521232913838491992460608938080014613655849773144216282150309801994559387800887514953767329722237574295071701661307058542702834396213140559196456122413018347341036656505073865432686354828399083055805571087297588805937134769108124276860937126556756809856950270628754885027850747013836006487596142368505699802972601688564842805696326382856053172783551996016370666773403606172713040348441719307131216497247519497178319955448731605000049391362269928188550371013659556716919461480604478270822402440987251098526772165519768494198414141532858356564324817635200180848578771270521896998263667333818482315496145372212413315532334467212110289609620325527146383354242567398434787211944232051154802832563380064732941504050630358090216103789094077271508182058065386457049399353193339422320142520305013133397652973997145385982404450057060384529319986500832259507358268774018475072596856923717970531308373869002689878213363766656165708340417530077076589632978873438406390561273309572730249791835637924721322227023839283283631810971934155474130104556432113907887084896387541802630308077529688124802933067482812161394855456285964039080051450655435674583840117743992447586974206690228183098958019032456457129413560478618182217816473057065995911256316113807111569846414648853608660170745638209600089652950567898598111534972354934199819745262726706830911505776573333996719480390845446931505901935734540470012858978992726079417198181679986879567550277894677368315475561168051957854519221288387587128104360439599345823035662153463714206353955655646158229409422660405592118887644854044405741226749719381937632276324091318111274286638553713801945467779511641703747308453191953554634787005731885483060351731884537638796058538535009311618409041893216360536350109783085790774309164396179991076492983577141731034442871629272101436440970702878924108859655388280742041065600521297581883265977231366232681213310758938898712412221166452294352989652651677859530356262496828662016080605927236989732243092211982414598021533171887294450044396335068690649909223656578437370565745504990213208230367120714540051269631459655403828391049920509473348325383547742959704623068379327678017532635810875108137515575043310290208807757003737497984119262262850964330028101618943137367571252233764636001462604371157900817089975436277984692304321010783237823958472014540297919910396683165650186961264558585652414781387033830628521193353418442916890526026768944886064593373769555244812208132003147362851020766060256060145941638529330311903813826417417691708128664133917167028481414626135287383220477595410783962955264414226295609800104539186197889354774173604392908767172972357502681902782451158977037682483466435467078774015467336854749948862924265064833750669995531939871208257156976538803087189413681085109143728312898965259287791933897571035747941704475565618885012315382431753031191147432300765655274559297543513210981527800208099744063844460756692661579522884441427497117072961441678515065332133956404471636981311496208239060175271040032501826828100623379372372718201008221603877664456528644084075110205689092810418363548363688860591832312769091443399105275994078382928573049524903864697859162844515133537538023679497193153393165658489170814318370236492851836746021406305955352036895883398479389917036411887518932769272926479147443648999661683430582985120166133648655283103036741467053206341145209368637350439417079737649375889806198458301672544206130291638460846461676971042830440787469003291710783731165030266088749202684048289285375157193692723898176991412490863151768952438010798292716774493213664499875144061718910366066925270349107492081216643646758561219599128573189177344886400545627248168431007759983388039472807305876356458583934009558340046152670996470658950911642671932211769550168405094031944057136113406065069248072494105048651871470314180596856799627350725445879734433514560733530336991089953455162648168579753780047091935608164115679876504052288864755506844540086201976228890722226173643465431497175555802622346962795243043517566297497476950424928660858845907502002878731014641399908904713423521637447933868112118728793870545250719036514705946658349798567899082127232082005616720068415485683558914094376515133389877126780402070575763515921277525982808096808303853205185624551405093195512261886448610901119062627217306458308252840728167852505016287407570021582966101956664129840162740130964219800101937739278219558183093646518227706715164252877152675781021088905399225945667945477070112738254566948511997340434699536847110156576129127304373333963057134133751247135774898567444104800838661686780988018098919834445709096183679398884786816707163645236138819355810364886507615813257047341420812586745651905916584579650369800255971726171868258529531456311691319498596602879395632583313418407451444795572686103264861642161124501619720966636272021518204291374590155283935958871242596701939638900492034005201963875604230150663885251802185503782429348655244359071144709610000214275145674128683389992952762060081493360682933991535060960029072484453523777778788017867443131332822263397471916563564621141200405941382928701524340463664353313826555479607374169373205011040355617780003164669927608349522989256387440709797037154298993740674185802021526809118895576953433315389348091921269766561418377906678019913485930576514469497958616826286136210102072737818588851225523448740875292752348048385397849107930635269010595211623166409312335138153735180181783827860536888912254843446683870475075422733891812900622603632146168363383502748412594962616386430077604866902290120364594586892385795625772664353477649356296351189724883154415806473208156835320067290491403367336999990948042564892493525213526046145894872944841842177127849725473155112437872911928262312750498551194067940057192913572478392855011644432618567283764122614759387356685304841187766551905505476974987304421684763096031960674345640158813309841685974755764347438580830051473748614070752451899620538270083826336746551078814278413483112933242039675423068768796928584490960141158605093364523156850770355622460828514441098516110204858615672039695678396635313443141853979493650214525546092555422387590096582470977509839660165192678695547668791815613918490950493062132018232119716773214062845891333226007277952613789157739814569612534964448904115710110244788591533761047158514751909940835537518919001181553572418182846662044289905120690039174965619303189423522801373361617014588025484564994536369653650247604281765279064673023040251777387121839171754685561249441759608978590873291351385841142255359827347832967445692911988796516071468894580938521371941176389098246918288677985205788846422988659989305136343904907291770444525432443691940460470317336865551019504688864313858671923144893703717185392367758402770167579595130547201070043660254897367053855431127392576846118062178224483956375695728724842205957515829245310572760765854712051905875424866319204910228144835603746944869187716292997646923841611349951620680308311088574866153977624731020502941592377643568627856773635973346983968610876224271520127208476178197254300489190786844120999383259923867908726141717473371388891820174272825848263282038716157231659352275342447869612348374099693119429176084284896731650406052218766394975976598672883574602411449682986090269587513603325889542048582607445241928045039440815785095350994817125688358712921111193640204383765152976937471603685878656722247295985339385053940053850213430461328223536356814835780523016703183656252831040956195870580160792978636539939417127575981927508594316404586257703345674310545171999124617945220142339617145276128427532551903025758060944832534256456706530898343140981713294003274982424971883714049235142701304688874932692548049617770466815280510299109873557689947914692071180173055644145053529642272303919923827083704879368359581051693780885659457656801083224141662172624721668734784612712322467653410071243775088619936221309707250964275911083896459424734879809322084478951332965935091758475955405073107084217981009119947134454869374171112291297241863583992150077741549839070083607606621898032701691766704544512185477991960228715077752745653242926472911431353553768396809391941883667587803543088018762606359605067374282777062730331888083151327268496943066370624894051820563560343273108457215811491805477653169562554259103803982659140220291780802432261462228320651166826290384122548682460643762070842791117975305115800948532532542050778825037647094811783077770566162068673092097968532317581504405033697677112913983718137121507730256785046218010556200890454119664451688766875138730299535499148584106462904231165834965038429941634111232275340379485176043223303229149588629071296613306350362351943399970714676061232301147483941592010748372021831395434795180321068080376834627392650932255530949755333411848080346971511984154039096642132544182308787874538927178155684084343676444974255865973459860785641018799949454131223597574241051682674107342120975715485242139840991864645466062407563232068432128639205944242685323561504111128135387611129647964969450614158482362048682343002587132442027139371237410346784028844696820268776239514627809687631322349918748345678140040686220776613019447336148073641574810222497151366577693083578876761684233857359492256900648540286003670489892812349129242094806446229620348849626963966600826245293275311301932673934455115322368477493359618435831160265682781869925860896269415917416721161325860212386332975569378535443661446882317466466761987523827095284490457234855522377720026981674663829847041159356773185321518708225156602578787450177698759556497061759937413275330809117167311898752776737037339221922616477273390327394376374002164600898224951069099979847685270524390052189963977749407819217920316185541693968755954273892545921125451130110262624298574989998222368801502311131439501009859316647630674948759119588059983202196013465874888813914524911085376911392298681272979937434413359055221280081026084767476795183260682617612331834268540255248962681197643549754651393462029888192639700570755498187754081051038235730322136204217444188383043261060628124787229828328640812305433679157042286922079879809762911243387011569775421850896379118968384245734822275699133375824461039983758959809090506342230980690961235958019257404657830629622790612271330320214391285349316200580118942548600812451822912336736661614171789177392603166492059275143382851998469745931564670707594837760657472592272269762865433024304853330849503175075226476454665329673173144227954899313238308937048588452301184490552731146166167991063205783036502124710102398631187659385582887343031015931264715742285021354255218541341288752487819161208563848360047252104633657315735863072199179535934622928646364035516118680730986491305605751978905733063469528869045708678990101194609325741157502224832381383213813521875261574945311956020099532140144689928613009892811097460419262640873512310640241823055865905356567346431645461568006327837346603338949410341066136639332784727912919307433459802903632133628997896762810107724501640958740530519746395116206636879500203479757620331259576162133006530728882765862003080453894188080669473551809879874576808735603026121820489022133979757012380127419995469452595778457240717838559143142573005126284638132252460867419925772936348658852954433684603154760164252897870726405748516547751446863736510923756009230540229086425088523824181899958910047571860113085124866452706140970987505645942214432308636177413650457566156081137053246021994753302259850862177149354816411483909884536027744283763945116917838108914752694842536786574988906259494797376120307052283068273302767012111885628296483218647966918329613068416830196471358113520989661771259380836630057781220751145341516883102676007135285695379638758937525511676903575355106064441709012811044007593392499822166185536537400016504935415484078442389495338225245004073115172405481687764191652944260224483731565574942327040141883228852400319775119225651049581569666609492911138298633008626198146657570172512278942578258974690811491893284634525650746166060317893166904695986867072323930636727334249156892719775866468265790871026769893942371871674470507510235487839996133840609494557576415664140598721210501340121412481645203813982059560387744317285823481739709492605134122183092493824819364266356754923897738227332018441057115314771988010299246239311124556631941389393961188831570665670799947234933107901506522162020175750962583526674726268564415047630549066307459687828303674479500402770067007819357635721228501183147259085058246532661733537121302604017978628448980982937451322811797276582247425625243992056654731236718265636188498498458812352807993467527956087494341679684072451249967431175170552156690511329521310212250700983145005269345409408778296097957294931599537980550772536677444976580554486648566450780061046749398595915667505653697953463945740531158758476030058304152386704224235322853205976514777461764501584127782336740632138884927049738585554904719031775894894404441836099216334959104246509657571038378245366047849590718534369289045387430729646478701427113449054332769976809372974835170402356001837329247396319901031179668501157807951858874814965814254934140094810018687068331672105236449610231391495876709419040606842361065255211484167631583868673756900346846328545088275633786600598189279056669364412184834186076085458540755964666813017325428142556467952634004080496260388258937386999538371445866511651433065236675268236203370900748949154342504231351357087769103550582376119055202415276959723485606166419816197116596020020366755062056258693723580213641696950224759237632756202065236544893714122482712044470590711511010940449744745377349128882004300821569558844567621900082890746973139971901853368320180484231581759809917986672618639465262333325989127491147172776361028792098606213064316592836306750673681627404274683298865394391363364919515393621615781969410697604550563453164251579877035140862495021394945839975828665888587148194743354114933294385427521603948392917029480355146903829546527775050838156610136269691730357082430959133011998021310945639246471096239362716844158866287117311647691396520346599336926331277501738348341219733808417429919076654459630248640090144805981019581578644026115975341274497262239422024108146560596144348594451178376338599133107431411638455962755267577121515331973430373651962681482543865091498708220016157101684430737455549206105179020572887022083152498259122993757019537008326002750288744843560993567979105941882953644581196138297179636666483227866615442290542147232630809287070252691404614860329620918643580476061871691796067367140907391558795631398563845559413310507385242819588771500351338699843225137762590357566755889242116087202862632598488847479047284752836549094861993170671265606582891365128295447190556145077137778549884472929289459544115271900184684721371636871374447861406799517693144541928256359394037867199312107379896637613277342350454420213650010223813946893576437410318753972932186498270228621828259799485976278229457378575334314854421410853271686299287104037377585609212720954406687736611171837568555705550486907174345764676955538265307562837784425033289704667151673211147828479603833462773206236452688554332159894671319388123324260301999414566949013993442559998193908700513758464571639572713720323052016374300619752349872471886133104344367896965953672847162873219572497079989282307730552911803967414713742455826586848161775508314868638269852089051660141090483455250923601710325598381367057163387230144050967438954568674057632170092944290182999826342007375442674361525214761440582325721517956512472228775759658985090465199076579927978144719180166338155721158827630760202516272997708604560668795009374741126058076068773851920230487311141892592792889077912881682690531084487633118268101165205402477962512116308071097932593364919604440208240811900378321419506975030209949435377495076702517004423594261487249148130685119970704018040950041183387402459005422397761590334373421946134188372898477123415506353435407679085257817089941072807421511322503561511943897008650279906490987486196271916891655137678260750752968907773839035383556833378767932732844662794650210030360246232253250315401018929781208462596180288709521724242716534000062360732411905209926792456413944158983568743285723157564119744272771975309510110622153736778866186806335548497004755418921542260020030418257230346247548550503902545054193603712489557459437413504704799580423300647464769886995051348635368360428980064668523575717957939524019141029482631120651119637296422135508953657503826341990200209174686814119058506212091374070651917919860151391026757533877170755641633398656735029835837506963283516104852144765341693546313780423944263431800010376455451519199069291468032908520469843044730157186225075354805909023605412544105410220121944220500973751740942146658789827539062187204597022876359327304329955644449600292923305670561729724117311610514659693620935955757028546485284494891524240856823814933398197022228597146944858637506096589041539808425475468739314190520240444196972307398862550368732323740305034298625217340002810975246885128236888517580945995295912925306957142396851266217812438120011903584351425142526765360676927895730005507835356840797208066909881947232311050108376016641322594518175266381138923587333487919576536508552530524096969711281969598373028857729043317298945754781458015785532722460560537961142062818715035720150621811384189475348043258838162421893203733494189878436775505774373319955059255382191923691751901105051083158754037656797377603689684932431117389200220526139227086720277683336299253577721412937283797019136080359931118096050193278927306596901566587137717368913870868103347093961499394131337182349501958282986359436966179726368349653126498496553838333649805070627136345200702157179066083508604064000855289473917776872591075807642091917990745185383381914129334855429539634177733834651316191245700173274710054606578342172117230286323390337532654516380247694079176660865964463904183201345110130456370340305175583083032308404739938595985244883823454322281688192958433135097148714177264047465654683709795941888349147109980608593753167147876539042809278871688206621105024093430628268949927881043631542246960301737579546393209225777035724447012082214990739378187458429488841057262754344116674436527694515519682309949450674384615879101798742353443380553653823774048033543787136000141818169488674511947493277120933473947361696054164548542668924684651816495186866770437716028768229046259093669805719128025290662809047557799708675558760334941348198208125841020081502912355770834396482160965727879548681956018580047075694403012621734608970791678056091306882321348995069462062399546407769118286431474955846905960014871930939257347390854669177322788055336924382347977951074614552370732595522756366247713819119437264804288608698345650311234975549881772238538252557080353432204327448608617076799062565153957805581540256472491215067799947008874220181311517291414664742169424397297078084512495992959580654340075305974419546256218481415179711124111306824840888724038222580657768908591562016960838480381817985400219379785852433746406123197719794753730238620374072662028303720702571289098508543451885052192718923396206924252968235544229339393861600037247302284444409859950638583419338381158924160526689209026943107766922416349713096021066517070445605848393947637729959854985011445101209626679800783631484368148738475503905001185433595152175461866840250161531980200514424141953677000375001091133142374437519371528085384325080087742693561714680432873182249594612076799701134197967877170597794863419775664947445284718409840353593484473174820641429870965788668009760326696197519567009221905316744524976160872225902920780189599421410434063721313491469226334611577103092431643596120952841500942030289804031226024517035293798714826063214099050917443036662552281207942708169111427989877182293604997900338454211279654372224694368542206946827618837944964037414289472944801007736312249924758562623944785492039333107824225941351546993553711390133425570176843358369444022009593946984106198585876055323623096530436791896255734810830315307719373660319037044260480369150530364543019051602827035551626402422260746416303082286454875508149931060648478745733537680004248371488612759638912555947489194129385670975861879101106075613342495146104978655538725342652024458392532172090424451525286004193323863674023873998719116060478090364475997710715774868472975243601940447108304499508095272808997763459141887586584031430531307206940592324869099247629630849767539885852892348177419100478709844724485808557159809372657829725305594293819783992860520551184879353780715548400071472596727909517089061387721220038005568226622880968233182209269331163224215956625921281765197369658566793808289457669329337125085201792046747168016626260237652595918245144280834363919237589990220796743069803227055196474417590108986290993055139583701400918907876205307221766511343618050376640980509378801213535206512725372990227417935802482812230909779489612472147569282581725312037214091212302998366155614802825944667024503006257857447856540307491621032789651755307137174567070220082575642850133475146626822305196721364726857004479010434281240372115084470140279956625416666058612863408613755619813904137918199124874032172719149009926188792097457672604771505936504489223081372375626215635706550027696859153022665185798780588937180844728321428922061663926665790472347420236235385116157806967371518385253078733875347015606508987786615505695186854830177260032564821721839025938013807244062145302088382279849899039803148373620528629515505122479877544511504447658694954363111306283322872689055978565245387218766170032415509164428467762595856277776603751151637075392527790465683495427043810357331111713888481407463486584001858750370661993751250464793213711487612228322459858352689143406625680388904093453615288011663518099559817115251245491163500722479807353706722383036916161861177552874819459393414879230696596538168826496801291349586671886856452540317496799169285062147084267679145684968399636037108261041159075925488891866345930401187086271086466111049839109658902238326780312434899905844733632679558830355103545735634571130546145954750973614356283842758081479665944941537680387441230804980676547738596470218632013553798440885946152532867503984453142751209869679766438203770141835129478613749045198537066974580214604588437486481697582594501152177787630829237135073659857022523741532521937169111142826641586660121688090409081948302224857974971764779672684372513576521493561685226699080525533597374748772128894394895353009690317600104358481856348797547016031472530966644809604664228232476491614133431040911801259678395227102718899246934417670700207173123515471516943234934782876667546042913596640210781542461946537759324937426833574316202281386245835584841557056887031417756545768226399199437429205437160194346900789101428772559299205291497915388863689843270058068413688937810294233665252917773562522808984739894195593968902939485749692963157374309610897653077252898410413869535863220205327770918879849531859472203534903986359239100112200809359909274076298691260855531218355274534402424993417774203934268165791175593382639674632864164693635790758636172532103935875104860926401431050329051937520122293041221366658666771887023813056119856044439398211355525988440795521097562606676955922549364135690815277177214035784822502464214294333037227460865846457333440336483173716369119770406097987025896404129015969589525316483891821206971479677573109209527247062374194180157428236877524208427801489529107381442095143596145563400929192251618551441288588161964613145800952378621136204496927641274155949275395498466819635870840863330593875076896764824911293168140125378208295162596076155259429658766182125290685705289103186392035192825812934111875247986266721108662887245062850231359110988054059496894577991419700865470093985784687849995401565874023634923108481217597931776690382140875216147290495610096381843862174795586003835313402046412510049090267423021076366310409934993893469307612425556815147989156977073785954294520670328506590259045892225688319578063104071339236478428613027193930897411877836081869052772663688114315382613145670928687946099264587054853336261878938261652468186260747950547674545075240245827723446032326215737959656869094653289725149142922725722712214788266404226493927297327289781658553858711522672059907056596166159977950197876613104972091851831179736276437156178190085528506463250383765046066012109867563412217271719844030308451284321156670508578774854355266541581645499507062710497790646754241480364337471190126416971082111861216940307493949783727182859133910775687274421079471271512652988036090667924166484817640154394455629264791972583080041479774345876596344789333337535101936659479143683285013364598916192105350537369309926956021298889984097824379246577163728692939737242411593928691410483666325182954568087838928116266650621003304761730152862828064922261518037762719454651063682997150692152791808417613868434559027782040280963535086601331271160484190243094806714393460461693501095970124584915694657236200751114935515476548439499706123116763558550317978812032946102612668351524307671297521182122233834472891522377673910790895522280531432120336125759178009756287993269643751493202433475941184723349660933084510413067131813291471463350552299009303420716163546508664619250511572289635325309914853395285423368015437414478854838936087404566197249389117132971476759483368535554649050257475261365225147848762663404639742129479182393327240175478186091706208331645239004256982217225219002339933808957037328115753283460592342228056061740035770028479378711060261320940347730715544994407488941918910385768239922848655999985023224443400926419466666217750145437187960466866998329775438654095063332731887788016378240986296772073929122340450419320214114311826029135828614005459834307014643894967289986229519651814029335031439995327170928628968571356007841703798178086547750093497825421910835845343588180579889373509477807168794034124753301205117617417796501452314715901803327342432751487067557897501729160097237147728071422743875085666364434056467938809953215681958484105978870340796123679439334547155746274937161500617960895686328969924687450489016475980440237496094526180623378493002837003351752323206179365241161329626581832959687307891772028463094512315918301966752529388891079763065802733609978424251563986383754559824033357676671886299462024547904342693791988948109911372043686338002918493374437037876091191850141984325035914929176524593756268687244242234587783819985068725489953478063348326994123629179419034195505243078488504373868731623828404544976792269427935321351732657168610678655367357101675908206394398262655982016907307475353665104245891092737328445302649995913649348708125530321703168035652955605071735057557908439203470838747901094919924608179502890777404538799259363369689340281432665905301232794130025789410947158742067338835179793281587327136883479117417967876198762679773601592266378811844019300459540559166096607022706334675120607762975529609565724765136176246361477717365750918864281285538260220427280059139451075531101335839917418622835234618506707863038992652883007311366997123305813494683757265231688337128155073509082469554381558356590046421440838905213210132948883653387352608169370560240079432501845251038555316091428911757244689626939492651660762277768896071103256141362867161903557407675270182639815136695077152885625625391421234450766418091804434111455476760454693863939738105711852048184465937833350209840604968636329403289340784722636110382857822672220014502527154481618864732975030498972229096190038210479403934149011093296157014317056173901652953759473126529559701689790961277082518905392525185415177456481892301671380321419368064107989526975820162806751193313623579138434882240865028218388393519748008689365871124683337938069633499207279668348017626127016701469726360695063498987808382854910288728663762197135719764600891851783717685509470897546991892731616428203872569851813985307573118841699854101502779520344722171047384459812317857322367178432135022288306073736795209781871118464847290718927600404142475939425447017940504195601609206911040046332171295499949414170483172017750671884924927765984810500374530088898038459605353789338903020810792765859218023332769146184771835993567388270338164042652018970066372539212282636802203457946449015208403430174001765640078216347448963558402135625837240927035164334201654082069105668072652962383917171181550155790982329842557293602856862973437512908476551679967173126909195262129713779697813198365694475646738107875341324663445927988536343882555371909120779596529757308766557127605129489917145170421876173037138062906408768313616814449592998028092156252828481468030786756429446181040888646030189878956374288364048855331041962171338873014220580945756398842549084339298778311979406650461645438221021733996071889612187146172568933120821477272292001517959823829745822471619037987305088452609946140980361640078959161759533046878176798715041177921271331576668721141096509711674648371855422020699060255635655947277490770242105824763451045728995866764368748241626542630051788061820693374747209427299034169771994297433272248804731943244388454421717381326812267088516098044880334419792212274419156913631174314028313774331906254917522043936607913358466079081562702065931931324141222886759293308270056363089680838038084678691053129188560528054631521431069283923278844637596880595535733152311439106624515845208958700333035227597440560389395714784048708457395610486716296053151557452774348757350295764499944061979096740788484647935006056539726525685129579372848593335702884027781210826271255149717468326269058858746570990086017984070001148372219267842765939551271223223740034431588020205150574368104251670394111922275417298494123238801277136597991471634614070406030754977002079950230709186780967350248183112881858810612447319842105168431224225902840375288185853495030083402758828904235490192430342761166434156297539581615862387562799519126604553650882558217659592742041967691132414584081348396328887439166071749287712390161183129250041535002458013393748107893509562575346442139462676492776310003263364328184386685847310283063522315955746586939551603850603562134124699456938017053269210363349341076677393057231416407578994390802734864229467086189014958862081787784131370142231187469134617806601001454063876114797049771022600956530872898549441752298946418232605992256665393933873470042077799102313569130279087458135689886289235835580923650294363892548023849257853036783211691775312169249135429952256501886730717705252407304308393635872401166217375816976224444999877151212592359391617470619001251026015012974281537623539468623302796966515922284831323727549734706458790885633274664882915437024246009075639218317483391307738222666061473211068520196652098183072768903023355005407650096559652244870904987714840400096110300532727657230513103436417105780825019991592572792827919358071771494977965947909894338572791794863136618753845938899795694144771527878216260781196587450573463574227355118241068975753618905356304072552548645965700120468499763576558404503001134986010056928499510482946935459063615791797732134055189306832690814701044671159416589221742977146090797374407958000936354071477440270872786116831419075393238788015173686747219641388555362106338126465344819995026374153443773536733700600095158783859722388061066751932037030278023911329040441133740496462863373364516838495250772595526980259724348736308893208855664333914145689384727337369298659843923505671544091662677536320665037962477354676146965456359591108176704589822378744992148633808464785575056181448165758682181563948294030352584618945434691645354439288775240575588491468869795625014338340521475897888893599950762856483753672842790190491181331566622784973486578566563958092407221390588736335600846898098549444843963474051746944213725942843041005941179431006805899783268056406384112153417503653217198173161983301332743504489498155771564213938630717542892826333798439628460882869508913965549873132684160033974522499782122677856647406892366105758146540985517601410739210323310011932059888123840059269935932418958102596924975282050703066090413057863239080939958017325021193630252190420909154032714707060364676432336217601548991324918988744701742604276273105826116443077378926516852527743050345678179160877296373190068585069116366959933089326568694916207950461588664135337997055779566453890928819818045915857892042391920870521734837086861623697191255418204112024864839543067909053885807304380099884428977598764264182391919690636592273151598475161945037676674923641055900243246461482735500781476466942215180496479245689194997063690495352510956441493136031298183206481298572791917695273091180931873888237078554255303218533292360482865895666584413676948535732684184582886670942294763281180547375817937683216440956101094946384540627711732126473667671565770835727530684045580258106163779292535867107627583748139176962861162734911632514650348979774582086836202256576450678414666729014562392353947461766000896916498893196094105756394304415012701583285837552329735771773731594342912235287436672051712549824371539874477428028412208157847770539760328094401226113089356774875242895665775736604962217185827900470827890529860241207746460680655717014648059748449175131431510414373821553994127661916729562562386257402632240700498935780458984158794742285127795693722282089373356691934868487197130326599982967502032466333152676997153717850562469049457083745359004448158243788424350042391773434190105921612671924358216524410319708860422473659152587674968542514112110687395378302108836700564550622860238426524092928092384547735904260845605288914493415435145601467294577711517790857239211840211291340702759564176998074627896811849037692451287750137439548106228733169968413826148061876748256676547456671462051896680562753139053220836996944376335553784641154100484083764773051758415100715307537265573796099252527390307665068772188016918120845646502879417201227601367959977097371350160621894821278716058167932271574327889626823807986342179013435121155249963343678568303133144791096046360938185453522826316214565086207792584781128490185056674774452728395464817224550997801531387711795201200970585853155131270331256408415076838690994710937405358560205534926426666115731149956610473323315607533791172468744766170762904914603885742993237287106108322505426998112618604145364718836366064165554242410347127096231305002672910242314151071323377205720935737286105102711165625882399723909941426918382978184171837176143748706440520623759651162722475672523252962429461690940948133703846849683996719189797150144093957654124527225855818688404988185152777543396319684582468416746059797444101443177458039278991839396679598182602956724638521937334534308965755721461886098536701757335280007031442793310164993488470589604257789122851046777289687653163385455362171139120554189240305012143831521564378035140246452577201838848539453006054280777441056178451601240616128013523630263076760109423811071809588812416251646528052023237585918345871400544434980910975050906620573604488272337955157461258168509200573967231141725944304996738452493202556758459616644552056440742919325739688214667547591201517937244106947567170994961358444402407153276897680275296417449880490844901364624745438685940506385800767485959428729976379252408123435625681926840107851332852706242774005785910014229627026128251677207866873119386203244663915858658603421943618238121328459233124635469637889760531281845556716988839915724274840610228828939228438732110760771065215548713597398909252650132862857558547172357201322911312335744344687167337584020356876522133259244747220269902175892126455272936093213431282814930199180136184347599567089982364947531303112193641646750290080225271288897037761201722266437790447801907862560547157060947090570073596513483475979661595416729646758949412453689837968428385231715856030401580911182352575047760561335632685819325885325627868435995915775247344922129219623859629793772733764237092072099898577198271565386934151205463144823570769442249992861141785579496464677924618523930833717155528763503533067575465819422622206101922962890648290474576520182316112836024362355053636559789718409934420512820338715981959437258052431605631036142670749674755908640762699517837510973599414196753582094108509019567306210218169976111398943470121504671834042373854922370235741545432952637313093486214694981473149020288353217166156138910130031539618544289742559478494075375552221205957289146334007937148386749992066496384356744939050239355038282808651110711040817009629279659380094660667648576965443536053758081227018346252379939059551931980915241214582733517980670059236463033444926665700759248850330391977954060668857544757849672936118623270131122948679013845797192188175249118000113458428675516451184134328466287836454705634736324935712552256050968437873053286100292294816780905052274280972506176596969148396804591124925041755537560078075191455261698591251049846037598802344829388288587482729411671934763147485932938031215180239931083979015750962718984823415603884946554979370110249600419129428536330006520687004853939069783016397480157342743644827583948024136010205440352306603594547383855814976596017950715819777499248059559064408362208380259142696135843327133962526668970789310297287357297438600922761253911945803703358746829267043363036917705849469266982530338567226346816584149458612080439425969867338026279380289164813117791420100601821848735726893481318095665652289303055078909231277799236928541412948950154574168191011709374754164588929869368429855581763117874014383765028893304156790553256598237974209448179211973255882538742051057654198217832422622394877657815248875774281757329083315326511531326914149726063109915294381838672889950596805679251010924248074526880531629135443212056212036970519601891872677448167089210613644179682046888398722823536080161917407072048853599168468724457196579942789207711639175018703982044178737864644251352261513846411054201384443447922710482448473947973943065211472186589176519038535107445323094464332798108821859233985278589252068595130073963782542688785337428478111699116302020224093112061483103723303676463329398218794706391719589026089486977953864280421658029078088255310542939300655324833596112330117583644519016271224673494762145370425235725819601867204402971453102882447022418077251282233976874034191714829155606149584315321722511119924219598962626738082858534171459105924176378039555767030515431559083104467865512930714716088226075820239889710824974761745832630852508195282099029458371043219402201386306912726361087403402682559667243440647245588400544775520084297269681524046473708120350991810037158300788184692519484459243332079606154121751332451193672999259412601503859930398928517370893584285761818567329509948680674240457605706083878577515102492691875769235700603847149513561062151853151011994614698674550798821952981921355801160749312313613558417528111024314973160093112557418029624499674783173704874375295369566999919773275764843043994590102718085072023213035556158664159813493262484639816091398014897241602226698197987687293632848296652332748187683948819703305603052128511207982591311565842025996020909746640234920128255951713838666307891650338841922581008520409007809750790679045792791348418681138963996536888523142548879387638149129611753906238490360378244508066452027800585143511864254296067876556818154622867415123414492504764305964275842413686704171976100285858926258160821582774933939783620635781118010323413005166390208236663178726110190120497901795241963424219395857503108686506844611975298157943950364285598565859652244239027634854224385234404263962848418680645475257336389845155389326294418812360579339480174717129922995213782270228261136782558088726269703699433847361365844666007141294933031913420391409260984681966267246750126935514997299468039907694587493908335281648793650384733301016561894777402412658513542233504765207575096428151881218628360137823154180581617880986200797966646927748653210992523801364964211464494341051854411308307187475828041805783947871941720770500882865152418922343500993679270583499746988562680088492972002685608563910966097609565852750443700788910407227246981406388652607557020461691309033067654165800408518091701722605630721941515869268255462691831400788864340613528933504975368097243651779957721439239724526461730923957657088230347379020406589692419300124417126611500972336030392888241524678829620624489160079222803884391019821300444009276587510227006306867351530296733878621514055950318158561185727579432351886546701877886975260847460443881827727198888181193078424317782696856571238588541342212621590929139090851413149070915780044463291196221231075002206066847826338292404096978117500282158124168537162699452777433184502014822562999000178044279105446520420358241343503755084184482765733166816801195490048600266444478814894417222954483850050510627101798755742916476701742629559718478700363895963771966324675117836224133246883411331529046152245290303871416804337585642946845902526441141034117698579105854571841002318079236330392106636215828797554057089517767263130279066220225478111885978569429409161416110419237359204010619789621835394875134317157721499683948083766324502930363671230409026327701486048972445987656303779363170281088870148869707184090999388393373142051365478497245895609265810499656007892084670269420911982871051949568323444242885776631139317425333950124821746349663301608651401726660203484903404387743285955230860251241421199188132638193722261869329347615402387908776122186496673765417575329924204428921392425053124444418488471097427069202856544255463348233833421787647018409116074876242303449629390479497835937284147323965151391580205978025582950364550989280566060508977914594704374651048170467584329154838047461256223811522786168369060766131565158800248574274212017549336240545433904884157998146979412909946325554130875692159727249299501134724210368275661216067387317928579010969513982300310892839757058403743535474222850835388031768215315936225009569597350478930163877518605331831136167477658434359336827559667999950564357373349464979846611431459783824813613959988500276357144774911014149134197047889458135199763205947158621974867422298453525897596288719578757394518423127689725619520718599922705854194905822254923838256875191976319413288387748520891608468023720131256532968071563634158601102383768519120547762578215514741017815564153098915549144470744465135746563054347257738716541504659747751325669315341056692959784227415049026502267548337204399691699150662399221751618087376076753276312936430067290388141148576004643393574356430705929666682427938910093125402483959159398231888919714757425989108931197009133556831043936116307620419799392320952910001039107355746991700580621856942633127359615528276050673267342552536638282060816722804937053982860088865687554181572408530865665069469168999462795970767091089472618053870620008530075944183351558079482199835545777134493922740531587347006089962934776650801607596358513761864631703048566682278554412424913824081390153311607604651690712289874587280732870829348455418844274913995599640765919414063167381064794836406630561870358640125987922470467513991038889209834444846697786648465400303839175130907372982581318116492131722364883404864183006290830844093214549360828440674224704561564016632076863184127389554892203020620873666207221933230930145083618233131443955616483889468388914878152109825933195733442663222531200995148477156719825338124944133340523710291927626351064126164088846526714838418742273384984550968964397888981069643800762808774232100828957474071478043752800496372891420339672650368385492580557329427869274642550074389159504819624547594598035053962692725841803354419958520993033258502876432251251796067241322117146699364319271741039164367041380584079994827320178321071219027147870160618800577057027010356352142366813540105533437312784983359953413471698787767549934891577188064999913674868299600410164196081295847941058916283220458420349087686996789558250882377730784124631174192254502982100893701063706044686092780301470643704583699276173984262061203790281437070871779256488476674728274347662476352415292190314180249844419745522316944115311484892702957908668580937119034124710396077884679776498830196854344395113166092142642533228098489943265386572328071729360790019832592583811096817599209372657918322905248980108257577971335108393179802184170833713403801394452531669596607301903887081717920512568166552496696398021174420722460273738146564690396928001140726123841439778304292985298194599949930899399623357377332480155750838742453099038242371619234569444273838744176175688311774752307273314269523965284873454560995811111927804946049033985603448506999802333668344294682471333958720514349726867260852710763770344674227547363913637990717344064550856949383672967712680691612039784616030117103260525267598452736645519920940368440341009387914154933843643356649848663135087396228266605806087392216932740186817145156413405963802318610025695097615643252347452998434884399098977670171218091903392169876246870924956761314384066270084333842424045341134605316780088843102213790188925963505646542865386387955842209120893997812568172178672910639670220867765465372332377612199226322974020406703301913017727451261431448630558338233488961936240345005008004636673582849292627770219633788675771536857328639451282550332496027533641552990188261757850888530113268891308691121975735584841096245777462299848537411779387290921812837560018853648390511180526082040431032615271707973938186436064903709797012884917246473712834176716723877103417429886360724851542353936788546315716965208303091731302052543634944402786570391792449712929344117241317733102655480989120443236953355629109589601976050091795183767572998242559240808026690871576391666516700917796372623847863890501822690879179774139469744576150153388127691631879578752851127265667050310745849497378665384964223619963493356747775871518961547263803531450017979397071791556683069221318995414128244790823747197642742604225935633482695783099514893995667501090150884401508836015314351271969754469024234779375609851180063964841655209750330935657204469843929641266774469522481530366781394790778214274547795077408708089270035420238334257092834061038814460466985297896803497503450785975893183118111389336373444062403094421792395934260328901470436679547377041876791084415013136146137135888669154982879669484009264924088722606151483359660706401962354055525094080918924943388791798914987869325700275854355714652439575966294977233353160918590136891959924141070786927301442325819220094174027587860359849978243076134822807418713159116062840968679582132239991196685482819768806513208798963908510530184412180229570914119860878543971218353851506851455439827746008498766991070605061318299676013557744340480066389343541591320864786072830582405956246653948963929062194596655659003908145417958177065143561267006453780275088583975164826544014063695674278216417760865156279674187154621138823803947159272316911951835957101851748968140243882908253381638322860313760178800902581803841684827344730866982868583051625680764577471786294981492745383290216561309746973264856087745626140320265341161686077162159518778832220638433306397310865770180196648401225604439036223748904972421274462367378137628715477402481949233443806374905728932539072491816655873175506141995299008856735023101978847489724238731336694294551306437681399683355077046681880192323882925823140775106692285319559377341091959102471266386266175764131034865498952696693134900487064747773977702874447841741223498016049278028044415226796914718126882189067511568132531063425403393515407961252654866808961784787757786930745133373923695066749300087524406010964309972902456087781366422293297795773422183839344746336214840165374406990299773352400798753394759274563384590253448116585423762325138807359326204105821043987920236790545649573938075849116034142392303129889674743124168350741420382200743070750954768698348263101465522205893830489855043544175088353138503654163839600626904944312644369843162406600980157452335820758632225061478327129900750880575230507106769370707356634362143483627565506835886000981607209359827912010733288060866633321101703235392432387693816002012837364042553568470032622308316428413547158852616477899553006146577567000163981808760664190198853112332965913975303532879538815007680012372888385758603201019533044533551844227157113232961041870213854624097168270615936334220550656648223178829013195089371408788920760544721405683213276427192729999818896914284280912995987978992132947808861053772701058812739262530023805145465642909645983541541048307550619762900446607142452816013736276715212180883104024774074086694460326190885108246110812006271119729847770779739372852603078241213241840600713417869074826486597669729251671366678915781253493585825512464133116724786815829147708645131075932560801270703055847566129557902113934231702915217598993152966175227723552028060461431055267999966690939784516522134859264532279947169540497723867905089544298842635403601482150814783322581660888453434415782541364239849814316698523421314951231519110976795187501797021602078492754713201607705682444766747718238933723354267244332133527290881248428446534295479311506919233468281677082823323690332713494879420706266909919573654385114597070113584851247280597845650801802186331117166051044396671476469468996284128568446761622132654035820790478350777850383216682568324602231998947624841440746442098771636976730845175666604728649574438013698827114030316918034374420171047375880478742701650884590428366359357284725278546044420236136139108846653725344794059179999981702217589435217270396640976446639677177616866137451385552399803600378344013938431076045531747786195932216510676438095235786293700357491312625187993699998601351816296952725012055787863076847459371382599520539499023724937773698376169170726120086289578231877376587678785316297138190150193857478619023506213608640213922956187046448760111957802955178996341745225508425752090177555250027272014446769551131838145361750032629468817443109960631768017790760588350628343004147844774616215012716837643618410992704924996944409113423471407710179213631672536812007925749065440926289889228909817033126950293731869290565473193660592524403615976110510543705947029372350931579696250538009386629076067256250767885614108769528054382488688210777713090837541516435219588798413022085337557038921677935450414129360167476826539255919276126436300590671065378510977073364077331785661704253795648102929205446217451713730875451733551450255539295210060893734205043585878960210564945011292692441298711058585376544678285863596596125419148361312388571281267646680081606574084831609406594622034246267737881354550998172724616423643805535773533915701211408817036954610229991273567847505463811276909840153289224733425218171458158515480378236067833927313636935292045041255263219860447339789935139467926136803553355248637874837686124808327709206378363915651480968175265971506652381854808314963748715597464068812395862831620367547450412688261594182314718753168508787407418877226431338254022234866126251376170780474249192757699190599015242021693005015047293122937004991934595590629186394272748461174399954194394192142466677211901788063995834065726539656348959703515697687590170023275721714136106711872797417556073288588476284460462548929405260535589111067274060525008520102219419855403915746260062646738937832632600499239504250312252696839584819179190549766299517908907656016935686106083619242093466481413710350767519032221763798387561362009925804057873634006830311560356824987702892393867323570906884202656570189254994443122703311782741852226109602891635932846104135663875329199771689185996622085251430628541363085723309619933032515596553719250672067664149067988082625730961088008810821921811063618955887317643870367596270993838286467147490082126491751876658810745694495998639265026380344709004228940176779768897566065136257132981564773710911348306607447361496791981365216954948791012924467677079278083265200431764125499010602770956048023066045025007770856920584332410725318050291193294075385122060397161115935170236507021658374919630624531935666965448881748988194048617870156969530830369275304721957283658901003533376563271507401887672263681670747518944384530716340444910468036572532756281424621991429548733283277964129503825286693635767442430090397747852343025632585375627622946587745922643344804017673653413771143541978571841874562186841903736419588488456612310263863038596928994074663694730880613858132936838740712672942912961041166261280135761306701369788446452474583994463475482524498903657400586020136104902377556653960777780619913585332838333100436969544123201093535153365860531459838377199238724122650816140486253424489832428637196001991179097540936756935675235708286744747457707531672070507892377169025973718258041245189012747795201638019031527826367141472281046075792901232628590609161914492885411721498296147494925471218325746673858547368787565256786811778272944807140398181891901631440343370928123941588881429237925076790172146141282663231723522017546156200412659504501498817565691684847785502470267205436875503377348608608553945760688302222570012706102291926095189649342701719375519563081867744310575010537988965998074871158535465932605674271559082424764153278246666793210655608009992037281460836673994798687633281272541411258426840372911354997355474268514344897447348824745244841797712329897750065467849588984797571712317858259186860722932340143111285813853645707129016941948957657883617151982360463528920347913197112635795940734810502782638110616845841723952606327804032926511869834815055646170553723211543143699140142232021679311795229844048192623366167960555149845227507384768602009543090726000781670908586360549127468865455285138566765594077034547492462721493115640819093367779329394275846013283558239667029026691021442281027584177432937653792977374488914619782810366112126396213445282439914160267312313975354829441023290670051368291034913060421637246333080332319026395173248518003464474162807499528024700875968541038875777557866871250745673246695678451539623532734940764938939465024929876054551007288382881167212717463237016444169652110809208613636860098300495976314196209178192229606970665548622569757271245711230592549418047090179428795825170779785469546606234314885821357456272475722498395549375780597954682520148708850737382956338042471073549116853678152649108406863631501365101688696106227587037456829107658664267287084300045638809747214284697672491628641942749812850262038221155213473098255228459411606511749500571362723898898735242069031807149970314258963955596679646997730630880591947941082824534476438442014531332083396321547790836484049519774784410680563586868754364291753795884996657716627452248613020545220574227278299102549004566443814533279137759013871096208586795462342973497947701754896641023933809079935335050134347149331584009036351372402485718154450187566204678411485742223594360740079254718760698006801908920739854414484192096950931421345873307700484488897293262500565306506848664199208391324843468035530623473026334106322226207757182084392028541446608669787752878965227207478664995685614897455093329504188043208927100656012056773326493924491934630090689568858728062095121239993255478314874778011649248938563248824023048589472466376334618228437028890897327787316009998534143709342000855456017285834458631758595394938008698686240637085461105904619614389797776979019184803073445705819082290574316457771529802913755431449970212224450062080370519585833589605572806544168613125446706966579381054508225631824942478756434497138098286195481639968827427568123682886460214687048535232513556441439449681135667091531343834763949250219315229016096479938159147005729664866461977527396064612509109060233017748758709062197843142281120991447377031714296788179265168193957542480713124960361444887261825151106689397281767447975748485920975452330446838150098519839496152332451885732803539724401023791407076560867163169824631735879777163602832573809057995194360863549910739376867617615004680815961668545536285420317470931180877383460740900554357753441194243289725500359886391173499118859364397577140119452208023315545864143583115888969515174569675930530986899231095428873538402278098598867888958400868105893586277048378997265302333842150391736742878925275512619145479592009281223338154315543062221446325283487356376604342774373291526435426442853297270916235653375649006780789426623967123331777355828101267958474564665713270487793706079715935754525985126271943913204767081835074457566018901199453603447753143962617760543412861091641540506950299258669556882433581200194039703006026691949368580711155091280429696832289563067950094382159057190565465156725990538637686405245837757302626698314430010884588194382170930092068611462658607008546814033655961983664642617870631302530891954518178354946679411072173520311355141063017928115475240701807644380083813784335567516940537697249720567748834546887653323441014294804787677709079979547587839015912432197077942999920505490582695229665018736112091296847476197778153156446912003257845131045044050157188674097669494586772559125714572999260339960774730809540489590814007037467387460588825762465199765416533847203313551120540071605566794434665607618846367869145992678955215322560237270898816255572840717414124038569939402011377040568292289365662904996716958521389233656751898222568813934119015524188018205826445402292508157762058957906427329114938319693373473522203154874238441597493742487935476717761082901027862851661129985999371692199475203840390493812963138585115798630903223940069328315287178387792298848633982392441127218556916346061948284034899412852299631781991074189152165410294835457812875527816910340974337623291848658083381165856356966584928320605530391231869758044498703411865250196876720202999540128548657341973875897614319534735707397626658364835208259404644363106472207362658722993354410560768786359808559683971624612365232863719288622992730929015104632071732759651421231496194403699560300753660394631300868747813700553256333052172066725488717955968240873650683979380640339332224911104745650443073933613707591384279560049279160723093454613457974813214566576231888229228103041070759056778204179043499344547200894541807758778164833487228629564041055477528190686505345649500587964059482996718510277579419987816153196658148112883366474801845124957894344063927993419870887707458131837828077556981638771378246671500485402362147540873599228244360153686965100461922960956756536789612091555625660995891398530634462367715240338584414560329796432732434420270125929824433957993830173251953470163923008633443088318185833010373281583901240825943840037723101208774622064562875648809795348077413434530540676218229595627979591125921651228201476006610744802545313023380764865511210975624738919626691671379773256287888838663979289061113456400946097648792524100091537725402963732086700926167167152672785256870481795789999423988662980511559940664003142270388140058545774267631088001169028965576677161865908451433317126120239720630887804848550095501280560140185536941301632896225194821286835187864073121307141899818047113091591598640087761174142753720860497862168501206983918881600183840632806582075237210139711226484430514584273812374320653813590613471675775650881519541115093888524549713650015476197665081782311295338276843195209002048453361058132346407021749616436657205802780771279439186889822096695324368240424113811723626474134110322061242419842090810684354005503911278296440131060757870411291202717224592255114536948984604126596899912483444355150629458824939133941988024945875864242315655809283182617837713160021927302367631241411089389995736935293437945418358492165872119368122856789663643389686760051418032219695247339191422777840832577575156938006097998609726821891295119571608150975509411762089951658097089619176218965477507668289726973504440605449663856488660035635727714256806931273492949412487414463918556470092774262107909329017914107366410023295410463500809123738232159487832264730719647241351123421462944441990740289608789887541927796058683115671568350187445580943454637491341839847442282958467099620779038028394290281492622399513048238503703497297792494718399293712821787453420251769658870343294968112470096831907510798695519516445849784877950089025829660529375758153839283039410313812665537650962356565895599271949730245482983145287423736308484012090614116547485920392756241420794759003960862894749896741667192737132026508183623046913179690920657271707947504469429002258250900720886800356884040314416946609100056841007178662557574087559100644468959451466659090611239480956475467188736298448034738618421497458263190321044668944896703439582785760830352259441830355073980871108853473971793923108046782906322928307196868060774819826255960623522774718237002754148671176531212794525764395101728294066885999698386453943877852308623150397260590486531670637960630618001805695309519287771248077063138731485733613265818881861000389556781631447511210685859311586409896112296479015469299429711334463808484064746747918650629094235053735684281350912966062891031145836120582513878704020985561264260932739943895019151208991447807791199270299224416996041900648184151820175466025225985751166990755129903620030021623731534650795452613458402124620883545561272199882477486259654980573786069394083093624031569849751161978957040506770719949457167732348529304709525452286277179638055663543899756213185063022867357631402218691815384487852756302714543247676081717041566189412826907929755428729105803415770787674985937404516496733215854651297093491956073713700678298343639492232487899999987799440988475599297856892991721520634148446132109040378598378808183966970408066867650312194005001545117750011708951330930795410307001426404237900137373696559621953582801607266102333538332941413155411155824132408279531461510969607448174456988571069129816776134322854543338971612304916479539542944070342979932821680363634421285338145194904654777215903611312732411511218825970189385887621503020596562387058101704777667607242986297313443984465234338519032549768848232687890765310895507966510774110272458606304741750396653254337911599239888184137565622226969173750271411640070742973682114831323858999136846965284578438765283434949129011525411350906023065908602244007093016213731716645291595186351094442933779597578445340966366915312897800259997196371429096434309860424248030634190024789765038555842616809437558160533376874582261734434250333392347542229473455520855350909801006907103802866493716337427579529642966975120664481475547313787826032626808900547741902914763286437017223235476107263270502367647279562259075904995953427986521456476043579600801913969288081085040712945418925880496852850715177362615256330072588945126507359956432267255110815306970722832334238469107547741967149337760412422060902158565811624799075136813013957582818561493832581364200031046671740597027866786165347281801436005213369739139924790933726012055377100051808010075170196714102002950612244971537474194898037418428934711317223880210566894851441116097100161695700827965019079050339589515967050523420282557188572107965753323499913911695959657826957522923313278735463272462489336721139537464042536859916406364180950494487254365857109901060452530273770035602721123643909848642396591134984953556533763484970931993678159477418572874778289474854117709545410894279478958523212940363154891334131433725140438812853734293071059279322251082792062179303643155697038788734904090726427990116109900914954505880386148355240110378247108364190380062073831223624393571947451423566355005647524047219292963186780556365192186834936386845026955961258056557286058366375650540200574353711500357099257917664504697734077142413910320434452354227096956451460317730639108766455957512963513155923506591027298369010623199986483206976688109004959883746268222148210709096915486495871939538583299502456371654399610490723169186661956951004540063304533473083125453098976108426954209330267978158529617952965155288290296392558684995023912590921958885350727370447753434691880286405577974513284442408002235539327570577005141969752909510666141497564076380435633110850697514365360732500717917771988547200789390238365096017613558137455516093338206929580935551097700519409358376343850173881246553462169580376601624648629590604645864725768662263804505921191050956035553912406353983735076638599814242150868001783112875076863748589489347718256963078701172663208139896175668882809746512710865928119369462134924611859844509867576364335993515630097619732993697853369946117111785688875357262645844251811283653612357586486656748528520113652209933757740048001102335647640214135816213246453046790082484196968517610689458325316293177925668286850938994377595444704343793612206061051601971642444531758162165940267322808590542105552213866374157271326393211169620009387399322466263285790888725041037816428380770232497982461038620027018432092511662511489151157578850822137374229142202518822430979574940808775436108586109210790296701741854939756547293402866350895905139025607021664338344620355977446400079267197851202074135322909018470289741094630902764971981298029086070882587537705136108758994656666575459569427724199590049016787032319461019808424275335504739776253195905222558594578042905544085618123854838495436526794565022825079054136181299258135576392155854775834781743397162467857617680237321123866034814001501800071885368610991862275155375248666661234900447903878824204084711915652245519237484671251794643470151007876522567013354987578182870277750286075488422641876628692879153362523989876558524422688382911997664559562820100496600892113336580786794297263816042249414048716042540734250059794525282558857677571863159271238951899541129906771733992324418781894265798279269571677777557924772755607921203593795768366516126091243843991490372287131706078156206554092327405029127629737046228388364228535453366942243977009680388497457101484679528971782648608201536563558290218154540384948302288863316624149574804947298067716660297933711487283926785979341671123602057639276672424108892591779353350845896799689759475164633799175089510679450370514127474162521542214528619495263176941483715055657947098807424667403594080946465228832756758318532253346248900091864665935472495469665914818233231766434090038817705374477716593276925803544001743015704594030366181935420510890911791238805764051777867253161458733350426849668562766328425931313844433244173168854310827728322422160277162244915845403348824781093940028873142716769899799440001868750873642297129288316695103626020602938555710918164323210020124254971467437889076245892693767839864052767913769985807590899915519815677797653038422964740874602515011700083728014686263486206538313385072139460138672441070117500556188132578228587089563738655600205751666383805919471276284733876744906596216128491266502240863997736428942616240080732794187870334714096060946826323132597527110323107446647006563320136971058112383563078955672309794080202496641135930271659409222897554373965978138213125095587337368977098507636869897399337977303562563273941674088937505369129714539171643564084363742693368134339832017192440429963502389901882153364622702063484306502525817542121105669235397078094067175558601087544634481695287007050298346312143278219351845109930384426940730605184660453902655685205405471888567007444790912990727665614120225509499015376305955025345585607715282039058439219406889493332385097473885346298491095305311131349042510083288797092263765260648582960032408536532420535816832109072029101057343826917160671641229141634279893658314818754200353959207843395869092341172704480582995771122361304175186978146650854671808831948505020445704344028258895625499314692276713357134630114324498154090801881886043376644151340254431526145362574856840329256925789874969994186554890229136419196548966523686866373686204586207896932323760325486965418752078469622609943789886887644299491121631295212587423702120706862445345919169910655769380620965616930921508181136087162940337966219760987445202550842492037345641301741067099177211029038541779752082318399106021529162873984086579132014512786762882395996172239858279814853765266909330229123186761075891992541895377140532937343348398141536044534418526971435822943005046500330370100743622236364207946778120771910572422218825803739719795706198809676016558931186507906784459648333027977895563265262608862327219009548420269011549795232496541606174756739288612111947894581414455736686534515555799595465166844034364811531205537842228837511148230002664624721675206224165603451355508528258739617780743814767462985415250809453011659443294402719143653348513787893411012782014333421121013255843475094400857885761666797919779090450022067403566859578228424674274654138172272436766105548074400814198360542900611960198827188570149438535270932836369400685277106603303181302687563667119921274880832679806049266810305395049695253452861136682232436533325667357589279138429295342562297170357154227962639957060777386398872184466706307920441086799577834627489912316889601604665207754819679123343681858957283601107050207981065709607089461763142955431303840670778694312219323985742135095401514016610942364988143867991362317293302418247194556203550981747237911382682956114894324248433802406197073431524574147137833242386852562535839106798713211912661638599788472688677680732071091747713996630037836957599432378389738905552379329524834812391612035990770383535291745877091281736193771909234705463315301208177468080964634082500661570677345580529270374095138021664463718324387915831565623707015522546189952725495205967617855492146159182999332184713501406014617969427216929485204785379299296756128459007778813313088641117508790128650581810962408733572649103262886505442683772606432858320278926278188743982412452615206061807602614118717988454113909219285282664237840404408769120188980130374264023966799640101073171620250069571188431568589593228886254646174528603755774805461837895758993673782387033621859296608133102741400951012057380584657943621796341732163230226051016069954508664405988940988414476311992096574055624949850786604468137802946486863728986842934752434692707044614208065405620046443659593744193342838163694577801531648587299505276332914671006946868900863146464941424757542231007148001605447566369534286579288828378125429409671313996969683107043614765310712007105768452533904945141225405955141008354095761238949754372644606650445517833779663469395469646507471338528453524596610709928303530092247960458998533374416885465775536352307262049202813535764625692762472630829782848570687131528166135299447353589867050726675690485368290155212861581777301497947032996403326090877147900781916704325392552556078694706108635520456329787846126979360739374736451295096970143784941259815687382219803189696596271195281389256056026600519208122973750579056226683843586864140853952975289934997573383778019399193068665752014980467831484640883302692883042262178390431569029559124614158859388369692071263287858416925222911378908964943185258996599827567371495928855452273159085301856189171508387802027563574649908452166430962348086966130994292513279238411292473952335558661028758482727247773053408064679793174466178702446505232365046939012701388043944591994864436991183586525517411481583311260570629034676634826711670107448230319493252563745524571623034224451055271006387590310308384190509599440155475948810352448758892896845678745066514048401601451139245569754407004780877212577475008609458064944657645542207707258780588380084767588913910099642456561885694612453623019412599691831189171743697271323907087573995499248851476976287339780636126876112660547521554582164276929401101146479126560164962238149281535459226686556943189385627556742626271815292277488938489483417089464743609270962944668608529161107666084117111499303702920889769676935048811820213218646620489830105685556223492211030475718954558071620839286244490336316281693220279916643206301699070704267709134006926071039692803923320319181245184734109313141740686932953408690936867277769059487575724954607241338005300714072714668907735131568943663229849931266338971029038374673640330492444569792967209245757086513020179200992619414637664586867099909348327872927780277159714400185847745339848709176061085641502766942936767470301752688213224913656117270689031539157930104752625039712323695171640717196956636004668012278918540122700075137371432783592419674581570085243430301326434178730335481088472450968886931106849664765297310481223012624243783403316767617526552257199436016810244445305870251651992652307447464274372844719668215714313477395851240257378505288233053704361490056306041488220306649951361012425360790633202780843335086514668427648244085440989816026877211786336538568495616648348520944672575937663486097285939613713580742646009999832157054168297319848914366397207986161418620997547980890625880529147101876073006590278997638057695217124925040290556872014640725906591791998244399857102870624154018816263104590062777736074183863526249065296395443940519548368072805933774597156319289029829090109704226965381414190603384435393924609526020713366520716020187404880337169777950153469338074394123095084814407830750786424387588958906996805700047319780946227069309975273424174728211153784629541205564516777132252008396870093412429919514903518342451110302198465168182414232525523298437478959206817855234038301889200550708686232240961069024605495413081279702472635088911459660573624036057852124709936347598607907495799953362439040623180892507006697843775171063774577128064980837802163861744091639644289894458662877805328999905811176566943818650436280772032468129216091564274019475737216146337684424687264181270827701951550292007722063951183267978382955688060740888913169118950246951031472692085231222416594230666833880357052283869711715169642924742008926236780987435458340544106806449853317700969901912669675385911051880227986961202239616221817894617701603015264329924375642639388642513176337241223087514294941679408404501486452305931247517541949412739078786246075461511683641243049894691991742825659795920723770849651582595332679893663691464600371734373739259450184727566233124705887572558734542914321430607836161549074577541879752427783276695954949822172096965074324948813734179440380694225033910848748463067686526746581824589389530791605523831707015455936936590078624554779346515594527891163764842991453607087281836513281217651465761643068303422736695372359568745594167507300534663983449193720888481100251259377639611132780791225875110832167535858586906189632737316747731857910279363211804427654720676737180198756975463372044477678771999607939677987271745531260393332054599650512716614061082678829201073941348098604106797924357654404907955611650087817526872907153133240146815383902795158796421899473195296414737695176618373581154985989105975592741208996691447281151153466600330477209498634672821074429817402285330173662426532619135324604121675215578365269997276810541297037350523001077369806999154726136394694015770272338642319924687333372907394051584703344509366213611976598947174105339144141133519986796948737016420718065048161900726046596039335278941308221517820609896540550847560171350421208679742330561944022734106834055523134174652644361545229030276277875895483324292213687467548085557584075312602533560181934793206780694196494746995688868893778898015768445426440905578506255057462120922526780551687574912939012385793106813576420727303722237079911099214971180270573606914743719221201631606950730215829102720803075718164312206656411762075718712641658106370934043424942347640115809682468507533903252768767947349324224188721817505704536971975450288452013588414644913564323640466507593198636120303761032801560748324225919746664158650881425826019670422169919173132771115735717359336759010146232107800158033220294483474412472282327528102357142349659089575840828040443412574713586617116285535847592386513110232788382284851974294308883696070278839301133720450684172995777342552814930223798045294689219269923965253321606191062433129349478378004665370526585231025935393113350655103027272815741752449855605026601272642141828567321182531138653813903684379665559202928702525548704686826316704069689961246514182964905250482809191326553237889661826945731460370128660783753307269093362926116700196013255156553158593788957244143372226671517685041575228315490182308453240494003956116276127753103314920517425827412404842228180082399784047539108768413204658638792003994022049745004037815598980574615847224668401672898131182920840165760216334437646231197317172820104753853538525453587800769739129823515708818769027510414519923406766482310316277369110687836930788295888556336811722948999675353319220732591922526483568088048726566666736751986820213902468891838547783866323236709297731635081413511257641554974280153122702231678746866078631837292153252175848857201216344578897510441530541333087453603837389322510069781822782327164696797071041473977577538638580148175659545693147311523295704010617644374007227547565698332764290868168806918103556146341028731915339505744280746434438035228635756714493660942418203176745524215916114234375711975011880255541647939893014331297034017343165410101617104168443800664471711977064404210815374173632487144154193926148195621859916204527436574508485483156395017322647664171307465014806638730344291982825088496732199389675920380835672105540134290652580755384236163037147936969070097583119778929954878643983620774315270769170408974124823495500799036147199327456287610377842026113584805127377446409096824579301079525750882058176791626272450920582655799358257706116744702384186805322585862218896530018076373330363044177300912916448769230179240577525020441038638693838637840814481457877451366023709448823836011142553451239898449309759697200041063328661547800383655077005932296704711406692632141026796041982147104263979554654047964315346218175190931124864642914232115386001819358568766649663756761799975070322374816844846910567642835852633801131146069728575150532379508759199037463128863534097680234442994182780107416677933928610214412334411485322575025042208738733807188391292964130678901394145270509096732484597695266087346776691866124404093257803931226160742437596922476273727365948260506090915116163235459984423478426362910390128783399845138475162576193117231803165058607530592370268928590737865503940011695772763014172195810762296303866460432660352662439008450201324018508474100448238983856426796467164953451550912224623511260047713486999138386107909962253811910837311728724685441337222434481853334031969969929813369400260560260267266354290112323954016578211512056449469316027986818844766092755225927384300157647933378630874720566610751076940511848919869443506844660552251980543540602319331576719491490542782112897647056423885326673526513436094240708245343039167302900473862905835146739656204021457061923226119168522542880016270717024801510410684660509011628885919539774934502911070438097678090770660441674429110924540822467496576287084026292721317201825500738455369952372444742423744894041263748156011634024969116697728026386221237148869571737058022596338708193411618772739566133286033131137276269521253381804016614750436820879916007971010188157367258102296954857007066137656092450212013907120387705374554660238420460769762483638425580901063380763180371054183878580930301538869468912796808865534248122282547120074259653992618151055015151097599897678303164979101380863889199971687079412822223452803368186353796853515644917857418652840177178985552505561814325681214716458607854918060390742352298874971964306092538011616775224356331723781201595274866483551219368456239782855711533662077248092604870523516645605544640190530465350532158658958837515025885872915885700974336963356506964440696988632315275128018063524882071184807961052205818134401080570704938974181692680920153799749639549827596325673063623767261896476420294129629799037945815262258504134147667494707129831327941386007138570698978439044978931398632799224826343290792766929307642476274443543078083406646245042568005356575035003039457582962286906304032049273885699002321577744833988177646644871519230524017648244017549385182321397731274473734735696132084126033528830968921348518916532803072667631861469582976968285188193115340196416962646569343536457349607267058973183455866779034875866873171753703536352411519930325192405276213202432054344616842255499571490768324770635246083409538801914652800620826225401637121867816173815185618400299353066295017204345390935366917826343499449517123435027113235098689267969918062929442308460175315080271363132130227289837130032245411303668903458832629174059355378972524193863480529018101811040542948916188541393866798181409600086685786766731505272838419167440331030303168270166990341569205480333849625977342200656924698808724729263182844339620654543476157739604232044695365581731605290570161731735725564519168762777635712578916517836810415055546674193700309635137753500621489930816043946267627322815985705903713192029587714324205305301525791803057145357575087127294464769863837581756572717517280482716610415573777257083931645550470499077326760637851063743250320200445888472269752866323485648509571655006618487194323414216894562353838323965008912721163130662750527803185026651210465889950437191966444791204192014092386211041649499683740868199259016675660489649242577054140578638503732495750748471775366134871691204621887122960902978138460213923654085387618773686013535308461567099096931037093563874327676143677413858612710073093217045159566929080972125162579706893559300519462265199974180104260308146036487504533560034406501059287755776933675340825126413055503323352187664374688352628927677643284874452334705850160511553642734685010925045285591431001788527824782921456062278466887575304055053867899520929006569107965059397296065326758869609855446926319450202462497932938874144635132179781761642393085663568547741002337532846520777939361353556483935061624482218340566958271956634451987144500570988953338199896250062628685230802131003276490767012137830475018921306006085201448160578993246967972460651871257488919013402080821344872718572527389247725131193531520203181084072106302707985584258552816673484890186730362573361010510591390326352927063298713680568125614847053272871584225557764381109380178966019993137936139790432649473300962265062228779196638465497874456266524870995436266967812857177694966817253578820219512361904383747883065899167028570387056646125084231206305046148193179689026744730675656723400392481723944320878479083727799953888733229169189229238381836635238146188851398646191304252875902092988031243680909872402136064475413485234561850072000695753525984269340000648695950565325703236186676791866878464720002109692600380317720080479002188080287062613800410354869096226602668121942382478732905677212435882989768446882456936270292823114164260283769889092274291038999589259391220734239650505560332392960264187067619867444007154055970260633689771913201905427003746203271950608774062001397627923554126263413227162090929863909376529449780001484019398066162370455289210497157166718269041026983864249914952844074185412825848184690199081609583539157888050364400580624446234319574063917900090796726333899813195654959429918342676825639246346204631429954940325840433537919237908208111324119564578045622734622860048538492954190573097617772589639606778686432217901806882171711996904234694882793685877254721181500520225520829530067094932422156889605956361716066699333017734557046431618417867091021993619158650942489825386322568872599582709771350294126202432632877087422234159702511656871021829117244705932636439619409928436971568677735855034847600995228671864584483001886899490655482361981616442715069889827636166489619749387579068476877256803914646351895880541733513633903918237503641889869513474744008736949725804329238558433906020628797131952839279143428328576496635264161259804035535731516430670744831209455090326190302631962763537368462360826792517155076540601343656204616231242753915915039896508174889836980296201025088414602399862397272781063990918906940845281545901096825005359193001524649490847995257714450667473841921414529933859229024119237442320618126855178606036948666377597441263059229450748814021612285491354955410494622169966466684020848496896444599928880041237847260319047602996785713350194026331286331665126526004773040759194669178255786407037581581950557030837866112036803436636892771071725478175691980245571577311829486495217824428442754942265885250754069000133795419031196173001290696286058748319816864571277906234613803409521521640653604884871276000455361079955959138138341628054564623097651853381784820385950165611249470227680269274064420795827053844063257101602593066761143501304578493469980313804076434925741823999639614916738267525009516662353783737823094254397115687852995477199013974500298917057256921991108537415265780029522147128443525306209698947549851231619564989660954358724302808202735561561567352007203916482926048298986181866789520552826354400316148751219231515886312235969564516461418976309982820370206950727439361854458061581066592026839921422772857415132256329799604729272071682467391058105853379800862009936930615506222937646951805040714151677349468169441039869359490745129528668511429932389810428916198546737919047673265795049170538691858385241165767412297591930378266831050902551800392720468500604890408668379477513530428441240596705407480987344441559684397727270454879481478431849307163430277730422993956211136064393643452871335643314247815340961718473261852662968949668299230320494120374238792993902883747048232881884775992496447049391080361526047994250758037953577983944148005308135212625214438453723165916066752370531826223805301938705327891369059546030633985236944921994739576735366704830881705983864172650937758053453024511792095088721499453604444856702801100469397689025305784803992911400937054220875569114707614095165423516270255856768757202735623024865156624915216302122176629870643736632355311461196985818644054807076576412755581635725845554713425204294574653206838836172827313712071161136234097880423335502069497295886050123806412075476356416322031205224810716278507918987715369872580465627148393013030485118155419866230417101567041740328536184376577356829620294002491181007477108646713231141313475910914702073736215427434789799484442706127202042153782294957813026984153359786010816058253326648402556448171021432571869636431219959020814232524244436883828262948581528026648907843186566429124768222149161950824070754735614812155340150718077563402668144530989547231053729249041986788881526885462918340523469604319181826433004094806475871920236503185572157776101284195193625829040933613452194586745666576921042784568271539995006784655806650546567878832452048090094305959633316489575084881664150408343077143581609219630344124565974706769976157579396857285559456518555856375090708561002188603937253014903849460074649710101495497069574661444365418410061886792625316640585402089369256663794121341645664257409354165246574859264273212332079263490795459641675328486783027588792537041195628663818981019875303666649460225776436069788663825650144999426458584503870511793528562986879468675778923623087373008531662793888934472050970698325329825787263155004726682514688371044167730875389107331161475439662070281051644741473053160048007984990814537589284712967407260160545750364073006307722652613448531009956714221089554282001182174709087881483550784045359677445268404308945734581878784330217148638476808258629730484496336044533765900052847594188711467596506498703712558691592487437088420306553437059080997903697219905097933901790254956703655454179120793372521875873430665432223640098687800294655518944725810625705119725312796240193468888462373105504762514025132779896840691098736013061328695017024235508736254623939346965514449852798305868351612528455740664590739030522343335243140364059535944505924808590016950392848960664484667222083554328146929584717234184617179484702134533087922066766289962044830146098494951082858384533073850462183232298553085769361018569723720250390459129606566902416735471625998918160672382164984784567532038011616645339231933495700505520032532202020741750498845019644058467069282602632850782721101021865838262253117219279908187128091269584215742367633182407285122509877492681770068807337978095982299240130214756042574928779084639602113812160283715822369410560864887112253134104605096131058034363064655395201849103416586854171240844877713236612347538927215514700856768693260278324906308801803009151738943094027668807344882517945398285904970895092061561077815336905727950231133457860662381708338578865150530495105950364861190988589894954862869998640096096422354499472329379595841284658674332160219589199473464360129639927060301713838308291447029521335194747855504791653670285152629222098470030120681800949086413622925845935162845495077102895376651301325468934437286091525245557806956376340846943530935222728320575301644401653222700129981540376781777272800652317090254287307208279648039442970013793827810295317907912326941186507696938236771200072985043077937897597015715259049206471283323739032709400102962495286716785203282024206357045439763905800090513144051465051225828647556240105659673174540213990853352053243598971759332176954702150600664316370941860744404623442427303764364014332952720813718529909041802717428958213636862968244294190119913911846614305368505606151610295386801560670710724313004884341346385411290818114413387574928965852882057717852183058115984463688314751298741538956582359203992016265704357221747734238161003250126260185840632656699098756186241051535618522647729093709577084771844441888494691281500004676040482363750799805231342133577247662956752355829615432989857341565908533067057052802939153879841977075671086361433716861397128977104324425429625032625198538954429380077287175870849467019306799588960073157195508793921835315562661384843892189459060450562155125878908189629383179064573632926690757377342579693602277520290172387268177725491184726720369223873228589536231399454263741937666487109442478585764506798157374433789645667546491266449102362977857810297179544057033415706010432232340576391204777194529282810568963419022778542282442655759754749769107667914344584183062850045022782505461563206729118553846908049050231884845941108466512542603219336042291074989093567131759307838543205055460567012531316668881565758496580973163983338655391423739320271652094442085550363382161897404801678369020026353533655371479990802827421544372960794116768878262020312577980222608070550341609081197762973075181198142692347002676015320429610184308603479672085188165094272838330535207786095530849386627600667792464989457805403843596393502385838174293338984821625706487288022401952795072480683759317792196826699864152003778525161498819960753733568607196447633865145566324246655302338208902162567524907925053439928545710941834883254646901805332132954575785526465019792270742034230968937239576310728677117754920495973147137831255393781841850990031452074878735706987569412534907704339593480069597889884473611663564044273761449409733865586327614043204522227353236919857144942387451643566312372371533635264524400487672128801708986240961533390400017861032234101196907114909539304225750145245547638922685004776920674370025832460030577476159749620859706792464557745796244234229215566593410879848475642261893464724744994218014779589191953728090203024338558253274762223740817256512956187376565525466648841089133756061825486569463815849848880813445532770637006329874707795446626411124178202609875073863324376849036566237786605425450239589677067306001795435198700812863240708605160536827008036764076190374345422742859947243452287441589527852036797708361343232051781940933607580110733764757004830199592284783073923789842030432247939758651707770590104108666727567938813639805272532043376227224189635720253926295986932560454253632773938547389056836906620173862001538106044181725010051246788949096726356127586810753888823784008093099356701036222175184095347176151742100708228774586708016249810830590416296271353007734777044716982036863456272283387880273895077275910998205240419507380302680836271946234321769450528118624742965494865486911383089220055348948086840161146495793367474041831963230901597022297460152652676476383462761084818560562839638339785416177056629497867153897712480832358843999722155599286561629960895331952595816285656316984853370206392401227796546748628965507665055006161504306610943255179146195608100149094383741202632864740405624044925817822999873893939131753199582718517888131257951131333963791243521981174453727203106686126250542161854282286234237018389807990817578065963919234419689483576912808513116606599276991056409192251967348982377165682299905630926169389808999580745349744045966615287787743589729271890424945990081411491822351185359477331609898226850470223042988711372992199113337205273182281619511214844802382582846337675443612478262823526627872956319032458823377168602102241343775069134375996528789445814959861077365800753258620415535454646444498031891317851587725411886441046730480728392877573343100714244757916427958457020817760883374628032012336158162744822179884433239057397844684005463952783127130090225615193347862148386060107104340873450564678006896307476060276702098475451969908953000930975858823103624002836843203015378765135969760842030628194684495533444063693214807019644445129032760477723305313219385666754211595364411812169906483911876823558657394552902287097238914988883909730575803202971729286441268804996608449206619398482475087684632263486880515706401897053826509305046934840096182776957640110081126521150046529932184695278603964633303163087217746426692468790661898293838294104311894496532792789833789455794405373232348524308133272169198837616346839947175681215808349712124602996682482166389141759236028945807645827597511666871748992891837566853904007471243505818827164497542275431575355175045719440495909530519763853876389545246857144072454337296077161687993749632962335808854794406494833834667823179298649091503133922411523114882763487633832473968993030851085307721270556631736023106473057300597873561217471529815003228891163077019927483624667783948405657080392364953346395044862139536571162470757001398920076048518065870262167219108276426638745928811717462475306924402505521847512930011241273631634147705447744748182501496452510736363516266341707966070255390484493592668421473635051432151160122690282257855816226077845242996870717022220066745261497820342520200432596126400865634410078319516471599339502754331241644363109831567670070787455435429042700740368868771198696500712753005723464393145215541763473638561225014552191265999507683386139101396395228825707301708543162698092728863962559357330252703917258895414322521718046193467385480244296849838285963420194530875403770011804057649078234772707829437358741663464693158180450160003652160894611098907868115373391806347012246593224038758945820215192213228458578653551129188475660812809580778287209510960696400298989525312139819885590391000230234286209456277633938235582338557044563940129195047084147536024196700615251050319073975878614777573768241205215986142288392667205525038144059827834126676558267060471677434346565633057888454110617220680580033247846476439168016926680191747534480681087236255145061184519528550482723414403193442313136573019811180279699581017857448534375280914589934474801910680275044216756836586126987806560890529685250430158596365518456358824241847305120702833336624176973407372878320327140671444138009956042956113551455277734808743019522954456202347038113436347901442657684638682283572998380515820923485468530179608539224809837616064988546984622626438216684714633884335521539705031155356431965687771755547152359854869283296480022740857823244078189555055122061142357658373918538828624843262503873077496230121769186427869759933415195684783571622486950399865455534643987201193983456912134232177205887522381250769369085671802432208284371103639364203427409516263793253690346922558492223218114895848389816545245935754796346598916576622589165146457358923358982795553479451071140294622176059968410952200738673669884803662750288253767335619251041115062452559389081891331080450175032996584868657882595731816161198241507799855257419045551029321827315417050097056546100369091617982762270181629346720302802925703741009482787357129274517038724762806535984858376327958318693268079965771508626835988934584800010489283619471629548259633145982332439412419121058077969781323750753498126132650381368455234960187393644560677006000945758550096578439513982340473893115314123587062902321068143196549307243172606429037275760717800556030371361159149870141644994961734804990673158766838977999815019012731842316319933962668937489892758630000555657547949142931978695325879649150802015303344610070483265611798065874775850275798666213808450625658585632851772377213689201797138675515601366101278842390838010122832107217359579181095936881229485644382315147357960498528925389929395393805801819917540484590892809249532359807481877172245662974973658237961635034671863371571985083477636513194499450786647143106521785628628995701840932788909902656266800155198553424175910054047200527592198289129500778061779564717872867309663597881871311487030075637511593604428305440187544189122643198888633284560873929478533822495692740401313233651625454211124683786116115802742356557681672222294446673437894916130524217308568538377704023623650358444191584973808113499281940037101593917632072969317505828000526753847521250734231712922014211820955705831618599096387236204647419340143699584811878893669217936853930161672680185994984186488971719646408530258214533772360028121037440842592373292728550083984784271483368929043528605743207147053650789562501608345055273904801310434794000528697983766743055285900640609336937978213614457356399886331088629730416846407406002803601335347549845766757863187437290168144805464210115862364084236833812639448025778721366395083090067640682213202535937713174027977801789919445680797434358156171129830138707541456897653403780381519956492964182647801298789672592510493760708489835099815184241371131719250248946511100267128793855325167243616437106317950597856509549787990067144946871689521218563705544611152778142742738983023564429143792324213450350738865173705567210132207188166671624178913458635343143802056797732868473495976861129022500343699290802781997759455208988161269992608112743973375265643720530587427023729381441228484431539836402678427788930550930777440292862953075500167897259638347690857971650553085754593995290613834473187829551863957913890256382218187972514836007454220490251862965003636855059451721273352453261822405678465932346840000572785391460200060602588980278200561190247423836183683425551289647521282644566647121173272277069911599049730820783109553899254579881357665494891508682024713523746726994202146973217443098308590395063019015242205435303805707980743107090172885662206526333849576692228232915833882977024490927234537024951917024467917909116573091783313043184472754335268710694847487813112287126202122173759263540955010357294719016904235268819678447018746389485773952099031887214254720744662245331727005515525187683036360901527929265723760367634953831983780400214266612285594751652549216604413790461427688983638075217951363493310009384726605447806613181713739428469535521653456377720282849127841823160559772092742630184664666832426445663482377493407552664671087130028797888239098891681894246464772387437018914143213203432505056345623756546078154447883214774262946812448306971273068849825820078077173180651303948487367831183380604129190693580205942016506304848945459789380165171613397761559059674534722134609053488184836439407212349419122908443610137870858397237308904799971260323313286757192545708226838664922329082480438237363973796811395704001828488488065838809448944083715045478451589570777281664798391810799643987248786550669931537538897838860003730230750524830733364681660439621686792949707212647613709291783477176236114221958358730243994827333634660726911092574288129142664754427892515308195662089064640888787860082353592225058229788138666409975377933137339383135099766749038158760783311323511055814328011374441140517767915436918377661932269943003156853627602104435673202260358454696304593420139632511786823979704208290009223629804540035047323222694946539042486607950494803851566119788414813886540168970183633096698194455649483888418056140099526395318073479784989577253049823924133365735915980871983086731993618096189977946718702491081463846014299840368058083129981204280789546180583087626525879594536637081829429668418735534934342234517486761334104985281557503218172354595013984650663244883952812634600337109873464887691106114370390398863942268696580952194658305484331271777852798583379258869510636730983858973667326451118289286513463390690851057053020474378272082885776116908972669152606614132189835631163646262350232175777824453202406377363593664561841474532978934005386434266234096478874600759140211565486479746772565107971704425504778923642391009829314368867154528198109878788066990410560901829908151232301043876164409098657074743510574978173966041952044143165887226065317034709030839069483572384775041122182501990269833891344688132271919908047378814778750454506631752229645410114188207444581280290280685305146427504734173568214946422931514513607165209119820707072966559747602305636440819938463919229807745814427108294383764553157314121755905658760695436335797414875224513617254675475773357699798616589718385470316984115769402828287277981278638394127798509678422303536118953562178106005331733979932279803892274082054139170048362439209700573211435743677606940043656114493316341632671802210631049548622863491020673491721706250589728576460732600662789782897942460225891834400513529113232889688547982226787321590676139041595985994612648923541096151327092445769665667464695586323215689475371960421723368160234430202038581553099648546971842719335538812542997496661720005673245051057602345836517241325107797833505675679887683979262446953656390546797788779859727755348897833692786142162900271600598635284614437584932396126258353647710922030934470792941571285996015516033318704301035653907253118623681502573666046234988833047398885006240006589105744810598062514333442767341093702338124196754819346201212574850043177729789015367279720934617986135997383441664714885417640205194529619644309005490664721366810442407111731607562620231874931809856920523779565286424764827180997243753673206545364557073520488033871061576075064778550234609153172314143947311137419721681366913380889876108707212569732161028625706864330430224354674419245153701552630929604836943323043409523705820536751865895739081327046659324663416273516181073924780792533449255578232681430381523057613335721139913748208975113548618363840708560891965849132285530903717995612413231936675828215857295685233454741257266781578367550098712219088951622954847410252964112574482355367451951720304849214569101847515398329325537630254745493050624043855006543012704193508498950576236156503664736724446675101338798865973296145776475752111322985191709919250628986075387787669095614355340895814342904277693372771322195625800597672650031087123843723047892285857664836842376324517583690747970066020954611934155166398784460375029633494267067230539357990632238355389872990101048333768727459219657497531292697093186269190770974823405333926084469723717289455436526550024157414380558749118495720487248078284429326907161008591050369873078095411145761793367394137487578024258673832533280175512239307655062481167969418500033070242201028353643001780700316879636588526261988110232345029158474086369100039706608745345950492881759700896552144063325248925970363586472245754627413901350997772683321460553738748799983572072384648814037494952733620288212766305466898814368757484585379116525714748331309870881034085342556603181699458542252332951126919754732832558592769435519951408619208943380376112529292335824059234480742923441186232732819356028367356867971485513284625684303245235654832331837639110405876015810874548034961737245476597168910396816132753108113789725157646373529158646418980773725199661925375247564573388438313491372219546987271916081484933954341165636697614437528067769511459475732194807794468258313528744129494234266853854934615410257968489240641315564302298764711151956519003543018561166104995483567559856024427844977781676787501121156737355100545337316521051052976338566146497904802685563590791745198532960501245190192919043418057229249431570736823027834599451961629650305119240853735870119576766927536607484966768211736559426277111370206502493907210746680283996716426216464238957979721016464620321461858336515838565586769536201035370898656506756238435415554941566761575338807438509021631341265332133429055582811211419228797501422209123671352104139412440309371844608705675614010317239638604378378537747592682351618205204917954241470660510341727440949433369634251400576503654763567647147112782106838369309084284090528429924946171838780090752056978160144191773779119888809692671065023283813772292164110567996254011864698975420575746811312637451047697933085580360380054969782335077139369273697939745971777310015305533195804524659869462441353633497180301522915560339026795349884358674868331840066157187605256425683305883890741825017474585122135419839403582414421792296480798726528421983611297284151682612327419563591355515800903542336451797505033580098538787546639965811560642774846460371667114090078601115361588075650702062723941963145302913233412170116271492716007797242113955571389883024856299627937049149553572005334971203551342041976619053213499464487497972469379346762042982076365689449939654489904644814923503555766143542794343604740006065141727129845564190399504792653387300877092851812944253806111807261322912581446624219115391085350352582686247055551792372281173545541732261195067109955728180604245536337469722808136563781204591145249783120190399971322066082657310735841543397671186568610829524417602259019069076099197464798993496712146853060018081652929209789377900085996316036703284020814991444120836628904635791341711866867999124139149214501646284616044552409756329121742672714191598545910874517946977315910960442050413756747415724424780096146587938498519383356037409082648258083086686403808117043546593535445950004707356606320524556901133206838130984308329290790943903916014353748882564694046098863092655030620803758041760312195299478012350220076860300734828817823534266978342307837878035735217185149977273087097806197066505241061260222079340337550934098095155173502914417692703028788781712541446611222125727291329271765146475200330918952739631790915161902494008775794344979013125489565127112899048583783983492911690135967493872178570370798964231311136120935686107091125965347586626651456922579970297297250366173566833083490781542088969817794055613537859258817011809547722477916508868765595800890345580958665340696503869496016213648404998421783940746051975389954983159151194435594699126360758820230500152963011206631629526583377703891587899957161645147473568067975104147713017902635214984595232810491464451321995036038438730984059561369116398086440407398098613360899577637718869494347122055532132363088099892399563815733973318462024241649134052355333485792576196167381955675975612307452351721365724574069975564116465369527576983457877340788403759370597212010576086811498746024798591825747804104063172712272251176345971774999941633448942628636727172294724990329727157238915769827441581273247293600372553527990216199830266237366918995935990837085631340531969369633802229538406333365741961295332609004514078607984065165582049650646822170045046662988181590158990325424546138886747768165252373483279650208180242516535628805284482258193328771003494725731663602958831287188652426684924892954030625183306741771351933530446532176635251484073385854119267210475730284277909610220186744361489987442524816481441042848614348012467575273503861255411346247849636124573092463924154800830039912614753241476156175297477091103970657764782079572400495179273226074084707966942364910850440382242735259081925094802366249596675296909944779436318498177779529320805638785650283938028932466917296396347155819087745227494268734960037168645841773212721874045654335241316443792919029103604796390944339012771667654365913847661153052014576661178160553640182282669843518908493516260428653159602083087666157897283167690226296914042359604910042735947619845400738737653781960280518567055774811681297813226300654203899345840191782918170314568147967231396839413489386055708781826517329609155283251196574102587927011846870787443847391663466271542758864030397621485391647178148345103971786683670269593464902547300633934938932333176367665012119511498953168047127171154777505331520146614201303611409298285046706245662051403831839716422021683083965328773186592374109903313523174384339064252513848180819363454836184742448060560335177806142479816348949368737172316499734708255084859767663148203820847760380544291904586842866784813332885684179922436558996404770790382362268227840643667420152173468579157217714890700263508841824007295160639516453587518553135355411829649649621344538219664338745764613096664033864561202951797994556339394348828665350202226258093171795572995326291007252127285543330476532084862683988530118533097528250458439092478043332377751890253000178868345950716962484758858145133716786115170699401728713183264427000950900669420319377918012370875243746958176628745976072646195574809579382511895993022759595153543935418034655877473393351934805461013826049077851409134168324660547490474043528067137173036712051831271384481829911662265570665897171581680943432998832149115476645492101684748018463972729875950772205711395606469321656090876127316583331600757842998262536917925560003007396683238072660656176027420753693496884371114160433439232839026062081397347283324954462284429333606536113475156937688344960015629623824080974355634857031644328173396346289072263148071201614964675418983639276101834188253199269225961931609045502699712058137338801235662895825943960769364165507560639461332029478911126323441582188392286274323584499149895480463455162034297954863356538347789878651041607360747639167217158649996194740273348516390207213114912517043799487639187881485204917252261226463647565434381976122388400759379033305060809140414335244030420175755375653574398616331135222218526744400228256593949311232742861221062725979585563520265187176303255268107525984727424744950835499064314355684160757071725025857137258416452730001561232355914783378882882041021388976752975947786025375256459486850002999201463780316744808316192843262292689176120081518693377947061042125407565467246136738293072219118760728256386488006893256672779665330940500576632540558081029315795038586591710379068820047989791596827316952158067482167935160799908572673565619915238245341198606896072236085664027625757048474303533808824719459962603843785636124319697167426211174619018377425990274194954204117487990135870789380482498893046474294314315215773378629406455526641805867152871637179932506249801827403642316372996051417144451325334377111935333590430742431899426089310920524329852428307630299303088693108874443041120377964751157139842275680327284211935697569531197618036685858606575787627149391079380661229931786839955133486393256161473994279999194682845742117842254509604163600714576845005662779384702196401407272501613519155466949271920772012565836586695970340421523633817524091223777599431527548445371634857426144934430720105132711777220116426609804956238185919272547548854968640449596306564183853065135861220084106864649654280155907741313957765003926016791823421095230903938624955384854652525399619497695263548302791396973454525247616142369494684841852815660899876615430013341021809717382564184110680778866597450526895414047540615199083559214389662669594536848741467240295027663922181233656425724947579064532071934435716792703896497503787017127020989287866334481064684997686260031626726290656949174553695945878879504524182306306342205143577944722611680639227888834300751348424824634978057110248280500319154806811987655535261361540476964202204353944921893138607236466277824208910780795622168651244360188187051182946266759112336872501175060798984403653178143812935609090665054523152565855547424220121013353008108667117371715118514794216239655664183109539115856597979380201520553282491356617659053503102092986806964466041582207258308996084148381833581690477557603835259068337645480625489519202833701573477422757398816120787862024304908986888622922433632280441624772509649947901954102950035480095463327396408925938825987515137414658669887158889818178158960311875902885370806267404233043779670424984016811189772934754963774808956975322930919282183186273596212250617687073687587569217164064438167337027335987879423107885127199757567958916903808209580405435959869323486939236064093069218829901667109419368188946125900400881786675267788928388108337558524145145329738985926364455159606966277775998421644533087268441342822966862600628620599568194954956029750060777500260357450656770466836756069986500456204120843712509206365106949569134706952970924570768175521913970401816768706498031165060845898406289727411313978695687781934158263010670253446761344470188966232239471776041917962189253108223843369178903443796549928414380847128265835849902923798596825964229059075275001868867370363310733591366238661461383846110084516719987459008150527620899333292781648022623011943549748904817358337559800996675915939208663018830001149477227904228376881563856608901290564671153027382331310914106966903773089382922424408236775529889558708206439185258555196920624852777896443778968992782272069882226437573867988082265503427744926639217049403121341083354098019684748747952506668971435637667921376520587929184017112782883897130310051820041970668789664186284852215224506072849604748523074612232603987979989436178897822578472167752091619170869533146045480241952474334504209869050206382981424037042651641774740287495152768762444686814916259910486803118578633915235302601253107525781446468866630200547603516638110450056991298030068488810914415824503530065642652121116597881440857924244304377995532330543924972868987221342038215881840337103243162030380683757122278396217062021563359768384441394247694107570286430392556355776772618812330141037556745336668384286512429321676094212102695908417126559051834799952301740186694943809445124416357706019482548104881072792342640396259537632901980500012668890944180143821630734123111556156946772924843301031237851428842553607189924860165742000581707263933624652131573030296196585077872864276426164013221246674437413863693587219306645192776640620998496848729981781945609271583453468904708979965816954248162160408878508372972693566969203101754794642234325950328384122476428306381340889927082183983345543071496663227881440496152004892801749596248671644887496915868195394793742775433830440159037531285834644792240189647909810404385820132556691557365533422027719799434775010074376801126843850393429705531584560312149075290874817091259881465102612715442697688688616937489913254712485181679454569500472769052085051922770752026393993238976759009980709930593340277664204793287567536831604806007667284991920066142715531808151474139451469857127600169215756695172602300424554403599359898515955521636768729318588665547530885485370850302921447143974739887569536245044737599533874130062994446341528544868489351609929664194643777604391855767579201409193223375622426356298853833000953927293004721554305540982153069676637788898147471752321830304062876233452016933259824874010995962524458755685107877031135322245906611254117985342216548337204422522684644314941516756323690887354758886312290038872227747314720512601528343591415841482759510590712155318239230851343652467117590736078048444777099487336019470882708094539497516098311016155560886727619829437464616973100927920998671718127271218437488900104968755660592616807578592811460950177229470736420202996350798065523953392452600297080793777164081027215350537799630899573706578590421038493086639748258608873443252702124204694241037184564217514527783757306377251983114696213987460775117898045709616469836292325830606946986161922605920044043185510240426182592227315188770571827505688603369666792871359712641554062205317172627484548328039924866084625091436613530534478584630360470785505132566906749912037164705945925825076039640441783340272761510718006375658351864387404070544915901641517340879093045199618006118271137491852175587124393532512147827677946674372038036857216312403747816794442257264292898457795881044156202595012742744962909289128504553131336233134863537214103606683102464258254316036979874959662406869317184830232491929583813920357718152183283466742086310622467250312053772637214421418128843594898953464830159227557750624664768218997186089765638246458958310744452755742151318815956534335258078647930495454514041824942803843138704627978542777106501879566197138964632764317904829575805894233053472492342778578778310216543283499843459624713198976638029742461085369948930111522089097473000081431079008993661298431370135787381231823004321828844592275816005915052476461126841078327363937306009836382943370931778891440764112851257564367864936613645714991630985348916016446568578108663270857553164070958314761092356841380701202816380034311297057798793899060150633090877493507485410132461400721343455472095403019990229691454491567365784632972661588793151278051240485009962176661898727212293345946468334392843731050173884989680456813280120560553772855607039385810908489653855607999878646904981235047285759758552868819767806977701909640615834155539701163239917646085129382303535488780246482169358506651647146581492389161615173625589268592394885705228707192190144513539263389950786618577389239167004767817936580106556353015525669169591688630641425455548155118380781754617382632988496350842551532605351524322678748524598428134761147785137637327025163218129784698207267197509912494053733292565863473972788759689017675374558675494290753367299115926855780904425981655614705861531587826732904747959394339307603149682835340154197404989593354927039627207188827409171575179944100867427517258559814202051489819451436933119553830156917432180713595845349130648254254264847244053262726759708589341824378879257294640113047411031530494766156558051403667836736205331978393528031326629531217494802088595110050316849474145311135016058566960599356963104779594003343299395196624658695764388476349808414967083186602158567312685842431052155586335393085290405139421232562289029716486960262791465832827462253688293817358471472333288526110520674890830445184491449600065569586283190091683636545259582309776211456186263951311029122667326058698596483819283973411194629587092613664201861893021762110912837176432411004155253187362784437611799138028205452876625569397116131896200163566052350398951014915230733615869208446297407126436103811566382055818961992023242073815652560330790757544659190493644118291597655892494532440378166019930605701223692698647550329618890874849399187196489128576936903813303240999907456783624458489325329655160215045178188621722973590192553161804707351198648541932318522522771915142420944487533708520005920551912585787908758359519450027311616739826039774889508319758308247055194328916843938533836121821366143426707684779112863791987472761189713674068741095828205455167417837301501475159168622512058113410377688318427285185957903307017582705603276070214970834341184444234830701303903499631618614618787460657232590648106723054202197348472043498804564258800124714692557268380085138615028573987615301938575779332831561696907219572395386318808049085312416690086484695881977662492742207698523220277270289501697128238267242639807851265332226210567355426498924082334834128123279300381945250283614514310707379860503342360845018970271688189272763302737475823594438804335222506931238244069912318283022769889876262032372879509539801486406127807265590218863134074189506199641043225824190290863190322212666197548915559780542085788194618632443513453133787626913085514201228077057863905416420882078187113421732738839565911721014339689284697684666135527128414358817676530797587674910451254627043176523994554218492426758409330450587875356788415721155097521238415828198492893788353379767193655140359325880134274456309867217725800118632371104979123014579207971240820501878414243419538778383458604659942447890272120641310914162494198775292809253442198574103556553611478703250676782779769833590450572627089997469260535324564852937868841734595397207955275920005924721153898167167480098793695826691092367993700652886677347402930966770224066225301854106491608771177120472202051795584693607573494416714379916415827250000615251060981408410485248981872952703845014818155413199552606502219930815733152808092015229743071587335200169179319878267209668748331474880335165038542404995320579403907033187199812364647206554866202811113909808827876137987648251649742955566063258260957457561083922309966442469545775721479703847565152259655671894659854761515146771994470219000932697162710114457806663496408501249183749767168254093969763226917662700731684122333235359071213558749730942380225501111010907747264432273486234653857021419650050014455105486823618429969343494855894453269088835409860732761460160295898282779352508893648448823135396532446203120078412772463968952468667222999521853796829397167139417775071780279480834044000462978155928882659264279427641607321631144357025401647714885988761712229873020504331265902541323371719468785482302512319967827275115071025571748255379432137283929591237919290986425806777228558904352208157025495945584786871982266687961993785447448095370313933341418662876764797606587987452635961183960865813856656707747580245400125888847727736811623338912018216099887416721975095933636006013918900286979724754609425390131771874818815872471969667261605948026988354187464621813025579227676078182549718112161405241365741298560694280463380195692579989884763194868944554461248906600830118053749596569556450199846311065623228028239625422373058687626460090827211688721118393476630676921984536970883279008974366625608318555848261038352702516551066661766869665947339479905908133738720579603688688490524175564330516645077686397553355191561622684464059626040780617543798607033046628339642326594430896165387098632414579618812308292301380922481176641330835265048058606734043014403293272460049884194427447642127230014524917229654811323420340494255621732968464087059922504061846027542803845456011824482128768476160660312771299171471910274959727216549839043434755507517701098921248497791825628730723793713515018247992141827218692014565079585408406043375727877167025282936571112355149307146628538580921655116646533117544277098505930956602857959208316287551774538083119241608093603029354189178541413469285806173251302635678301089492954280384385264458785547110139288603520893516732181223036853861701467952692577193300330358710954623276022190952514722494383550222015202245335237138768046787718588648181365188586134428163011067335014103053671554346527181780821481962306375634136987446302923601126806987854896155031114995925723409807372510437967276913072711159396963424009212864946380826349140321015528795593183049604380526935499088349718862194980036175594462193238303805494576770630129079917058146547915006953785363287781395912163867094191578460603813997738374910882440868475791423206852424742448994254613144888915302746957928341095505777349820231004758480256111492213278577256714568766866594891015308299734563400238047279542520003717878266241165453741059480446818487436095744182365836263828372735035131270971131265713585005975788207072861852369782311914927456493879677757582668693527259338080474698064350820922587632095435127487178029346090921118564883046594683827546595181843145142049543811491224796877966541794671824338020960813624606600126505158064690477977472347890495073974967135136401562989384704476808187500310983224929292261092420877891767430798189588903041533484613822096978663112648470861134154204270539276786252597296170956466699532809150566002259352626802629453190398009396595430505002906416825337709694727324838568973127202135886503785753378547424369018491946281773513090453116808477376834390710491720336017686957648522757455607995100725605887110698007524688559797630740746251658635974290386100799107315741061425603530502169412189215538015592802690213391870883481599452756343942803133678748941826263632153442717299617061097564170013698135808031306054429809940820431575540193689190383699394997932023712323897121549259969694975712787388374492416002525062617379983499422855504783280113455934696790763712864481939236272904976563120731106494069948024861019590693601770654850288403325392180966121844807397273286306888970403637584612618309820871560092250674843207954771711240081440071344373419921103082342296443020839739781426277203196029565269022544127501717263787504883938002793630383180790343363889513043427609913101658732396433343815116738328748982351480303481804298693212927887046782700225124525735794543347685927718072264951065595252388319411582305437654146176126415592425621775567150700062747323417335010910314195290065219235232538073509739283757244099053809718111706659523485220396657553003698386165276380617029576548021075511464275122830045127604882780403659308604216978275300360222846952745052471742190884157398567332522665520095806552278459622157583802830959242617612793620029287475494542839449536181908774282982134667135124467682799479102150857576722088527083940361148451533655445379092471754336979354766733511172053893303469966237959230599261162769789483158024633051718483071251313615531366867590923393570364904284460688820674901810595775790887529767701307448311231862059227618775561821918021455228225402778874661218251857184028354006530576314484799533718051956871844192525756562519362522542262029742306194082012807775023813734995427482274143618309868639490543025685775665841888450163876563714293767704534103701113922295719316433145050384367193441302850725365698799378722664386033067168430905632849161771427295556119698131164869555365030418024529855594049760289367781797727982822354292281123568982010091991677223079447996528283957466097233946248883682068952719071851671757893731167195659254913189025384371160760417711717620213591578798550936411403712548007791083403557737855167670249391306756065882625127752000460459185622952094783383227085663152839363493517868375344108482445698989258132294225627750484067663956582035164372989178563887728339650920973136560264091909781511472919505083814744047260497373970364392996597346103938643092045922926877972297969966756647984670830048501929728936464005650233304857842139422580744975723608860921774101006340577541518339097445407550728212671473143598746013981070921341267691254110769280407548856072966883017053346061046954110851575386343191983406724238765035884486523721127138539297751905035031662894912467628832539159746413856401368706243975832461436109072282895724185472121337185250824546388346547976030786798500478634256798047375488994833982157141487335754468291077859349753907152961589971530734381858458984829341602861566653266017344947459353537546678276394399830100418700260509085025991379165994006860976628598569712454306230893887149615614644248910425857322035580679014915498740346726607873775624241647373711160725047612815953004008912941984481450818817699294259172446434312098845688287105088978711567610337208383152456122235223859606754304207048302901963652391784073238182313276282776668274723623517668359814029031167487276710290087967172626302639624960082919617668668540110157148470667862636228758223903446637505570804801780239845401411565269023824459658665072883344879016757742784809214722732990194512529207816321450874338620053817260630093927911711603252629218623918966188785603578146030959078767983825080850507339898467445779706022689938185010166656551414593878416425537782817946888420718850016611582408527736005247457913638895564348038654822327696522292705035242762956866891336954076967538764059321151763125702012713033305553538208063675313419850408399982430634920219919494045184271721548370286551426514483281291024623282115823799903947284303011113112624651854532686420683529620211470103739645199936397503775686476572000905928959247307708544537118479451331039011051534334891061652848059301992303330423608595262506346535149414998169896343691198406859796998870487478224722315127685747918956408375829016238326133922794446700497625557717519392398832666579323291969385041971539171040112123089414219670463662262808446774218516181435891867606605585564166606770516634684817662342793361916852536900847303066145687243221089213390917276881838840653859257233124906845786220250558963964785610462015772994677880847382772326540975368005418080690064007614699699249876575835016924686684883177471565776124831603430545377826197897639114773617540595800764959467908154418453589864469778447628627660114659397881233941939567184872372963005433023408745474510902408281642011786488437632857268632835291945826562522524788329705616356017427814398357741369586197886648710483653127109395522969469671384581357928071437947832716103004923413414786115820750377439696363355555323996486435509681197764900777274093944727580412972415208810994164578361863151818104117683005521222464529812857461740243173586361991614908192418064695873369005215622893700684478875074914805850884393795879293810297686152244255829309155719374764945759159804638901511654722664129298121326593061507476259059877716374655680755892363148612741223692698005877950499065293168934753636711737531225767740804340479177612416842680813488056699740446174325471618477600622721857873540601484247217446862134379033257776010948275222897934790566825446471963474699112268307396090247839920495883425888362050155234083646619082536340242286091127960892012635420712487567304858593792121972853637242559998137434895566655905075652820525902763259891758641018048248372491728431869832007151849716888181816785657122663703369277528631752574788703286102833748032271265278394990537465434984199634050686353408139953438976785141923836080217810843908941177590924900902198898190460975037827555483865421341934623746912496785751308641822477312728233591949352062490335581870815070560401218742132458160108247800362800877334424984522539486659900243817536089407842033433537756530265637977607550187025041349346511047192572883411994775645041005253457511508288173286748436829461130303555964261120637826062716561789596402770468479048445177871598117048326293348821467990355513974367526051592149358590856058934119865364181513242201223251930004932392386409395090200835171597029191717618615970545055774086792172622996295536266473836017440394258794499659355574364739495776522408543768865128219479758199572812558390963560837197632793911038676540100438861661924537336773637064847375623480516760832309368636832622359695311234680530166892647123660940659294817194450822448949951895331386120834115577482588757235956375905171912054618066362148575153145880652126234791136974266018363414838022805323416604723256975585800273270096280338508870651772326872707489136328360734732868151148249162453047399712229665903676309426576019440326309044192711241767004434649602936332026715093991252520011493721945667221420694499802332989487610008387176341229001691787948536686000434373196222097013706664031405044136306399082130024533341195797215465720857975589268786570364696636833740450586544769986534054078704130405247592965339421470534530445750388893439037080474793176928393523007568262335039901381258336520294635380005172367529687859609600361532253968491199680801494607272010476368897038617685679695569799484796420888142564995729434107807709516633277679720865647574393471112419637759306395743802739556518650818740484544591825291732591870705554356275984064689580360088168042634139218782944291116850142291596178558435959589553378381919699545600201506782889141334450014259936213606203735841816137458897867715435697825900041419699766288601402823450524033495641944085467408248748906543217375859706678510611099949797785371737552787136266672746770391795969870871331998644539921527948543307356158718642072564747167408746709612771619483746968597775805328814223880867241561449649580893105997661248823850456354656480337771222935363709659401576840878827970955393730103651957159769176173510951409144520998414328407556600091710430451658414630752475568975493144866233311562668411920672476773056244615790231318900002138553839511973217031019604464687555965433986832902502447344434695188497551007615202349964069891385805393106983917052056653911106126325351761565293303991811922927091523286401826344324758207854041024708492160278358676546450879486254048819370363532874837720888751251386282042171513557870157653403077784301547061169827642313433180527348514170338373417076039916304554603647847044680201497917553685066159172185532565434411680282697068477385805738869398529050870215800903052159061226882910296120687592220946482339597580280771052172251961113257924700074526783226947352720817319087138470880574580257720364052840173779689577314185760224322792450481410514056964714274666714443356606092907488936972542938697679803174291067504784936623244868545781976707807215603400715162894131556001575905600652803494217009810859497406197069921044430513527553060299971127529199633319620984276193868005354477822157477936457992525497327727303814759894648386445820026985390797280186398314853520426464528335526659805884911022861190523896300558160126330971323099892984489405099162346752846423699591825944050736398505371508304281340785168843471629856663396804467872396139758230140093104198872392498731441562172101005761646046994789382357141883726574919279079009410840057762346275215117404399345212391262085039495863069248657894262739975299407825824627707541898638084143520545112464407061393965384920845184381238348336654846533353304535592327069643295237022465119644151191077035801703128329946946132985594684560920320116154477377092239694813185489396542854805640004810183308072190525362608323494192409753543940846855232111743648260897092487632350507356675099143219492340049448336803274618728400858752998862189047637995089111322381000141934321891661105634057058821444917677832309452661748807654559094295251133352122067398554640719794065691768759023503297815384038001894480194517022970397370662918924547348854587767018197097732310826230115757016273895575804727154259679259897349271202089691465849853345379487345763059623341301025389725236114767238928622677366739258522063750356186802881192155144615823576286191790831514027373091606889054283205088142142275377057539870985111919184848397317986381487726636616502892088100502161034628379404808442627730105708475105864197804470426399783345389189697466380265929283484101680184310040737488055135854834740544912743825330299770678414943682206864276872951140650210312327215789602575915372029123879190137978263077393495368428189894081951933725238242111572359170195748928426512605571393620965824810141760654554265948171657091454678896162526301977270873857776949327821166248069728882082174479815054528452781701213696644769769851910841756710646575801130410897733651946871917603458959752522913276891607459517942643951021786295672281164268414038760799747415356604336764249506900391489587267923681589193137257306952336367733930057781223697595487930455292185656139122854265852808078301818153923393412888601434166392103053363776952503283541490610291635976642830461537216685014198254072814418574017250881482688030859890763121327697339193593414470693614077303250992333744222140164618389515418140309486382203252714453490364856698004432101375617570446498698395914824461003849876571567863834870562023222634993986410011578136286091721528516982865297214194395816047726436945505745813674363907348450300388968203670076736316823487382146105899647585775663265625271006396641179233198416102199830578231832248269344056696961964252375785077126924203413853040660105998014738648991303691706874820912849673211757819063624599314029300461542914993863963511656782831719687773625440457810603836833457915457135069663256782008452527790340280579056738990440747840478151816902008199523042101278811431875939754077108950375058793888236521719561134516390074507063674950169372729291127525857570486987954650459502920347248524433656097597171033844069653623938946546058875250305755412795477765074042442763693978255443349491975845666736947037534065985034854217261367327328660717825269399604656751229650234682278123754567367121523170327028763349827939071368356133723191408849455261777627355903482802640146877721763916959437176739324445397575558803995301592953652173780645230994062965578991791343159541846093223552669124501026158157898154962822210467165941704129788558606735213762089257159115990140181725542695044904470411606864992985938837841026873889736424627352567207606371268929710694142851761482496769858578424293960654580087259191935605820107246455016526507410787746293410704597723021001040323614023716960203551674861528384776949822330142725491999211095121107539144329352148750677343805196071146155839552339153115319123410392666012049271207972542618977135174765298580187180930099901406215642823196246964540417535602898343877930930958723329711645712005520418538055105434945293013604008498919143372589456694263889624596667682839704945554526936115724565371318218230548048800639963755487088261408262656281099527914663069822483048309029852460705718801375659591620695549177149911333771233955876907623571993892223067922504319312126642143605799907876185365848446682735544619225656542426831247662801159688963423702543011684131289348906188497089790194344376039936549299187140711223303447653325169257556809961562395783372899178545375730946805040148607567159995863447470642243829055909288054292262920827169129567023139800974233593465198111722509306360692437778955222276397656096608324449829644302881341361717001638029477590874324327902637366288193602137897733206632387306452191866621302508741285014806017706464124620594261784553791929082312259685512188379686371934630738752448669368443373176040249498902115407676545385290759395806387959780016532519064524731764428692352821975693803329586049322496610358071833419960115102067330992458522475552987927602635620545632169363363969512081632353776247311228063046975983877828644758636608538052130507056167857068042960680665624122191182200282797797825902445477620400954046667338618959246945112305643666240871882854184945216863558944045884085374034025085013761570677662805251488005612037146661123500533031387801040501736606868321116692763602739876288639145505283611681794766541239582863125358215059637243650909490939169663260385273988850981774872699893313647309020077405680777404422752400154526799631706010766197285662695092928090574554305754037150994931234690723877077355441367426510763462128500578734278198334429532780909756073622861556668804816608675499205742828432361619046640063746554583793924371254960350187905349407719060193737755687188511712864960299830222580380633979678175401571778636596382923183350861338982168061419674791420898597170480397694164385603233830714201571700522380134480744629430346064731561002916428444986450280801633143436151726613391610344829421893138304241359631672918857007030417797985554063898533323310542524096926664350463086963692065551537269388096388235383850844816913435083963165253301014212554775925826245697293885003183842147710347109090157756086028648629754231492217620507963314701237929773548997256808586546134778609178195531145796059989535508713960833485448843995329571557966904287171223309395275307329565390507508033974194580043522125354127110574101135625205253697280439310211713088502629151430201618271220261871100663170019707738979419199081829478452902441258270392394541024778466179258137781771636535221179652539741435440478518783204810521205063918602303269553752969522614991115759606478648449697322526461587309466039017701702356389868509574638842795079410796077179875156395010705708949468201442333288974376689531381741639820318492210881826374327515405719319584327260288809476959483470484322768834112479427649629735133718356540329045281543323311656963464699955839409255619387868317275715252229987742374526337178101317130809950463046718058766541838721842786143964639758272258104661039527943294993187962988225826109259256028492496021034141706764846271494147175638173173287319145384777600139361013643623261165260566605079461148325055920766665412779460135596295540487144183223190551429696582399501651027875911572527555696052255857901393767934886443088127055776602729516831653955673115189050639106697037198972171445648613570551480323086489446307010461469957158145189549402291133467424497927271486445597640917630669671269889564949872780540051822300734061220734069198634168892575759077412762220760272153558576647755828380633199555036907871194731387025883645938912573878566047610760667196541908328016222661323972310203103642520512844707145619708149353564596101022672046547007013127584165891351180348187355415702633321389621955784154023235156802243861908589774466603593064682193792620823005114793926102601593908482611173142450283505921050893899806492461390781530535698729342163402512737585637022829522377916522434747037874232436234795536704523130905060800085938892443683651491297960581535666590620649681796171398152050377600142811969927257397461026878332334947594897693655195070896986108988729783616121655896388646904799265076898939133589932939607683747412914069510316517293177653712654976740306174220013651094825365006851154165633029954740200351783794587528292501043671372377043181186551596403511136754952931720110271918079422908595895613366200426659691832927404765963031555191644988459172887706351350334461665699898128004666271930322004034647834695452050895328227927655600029802960761593220532340902872716345163005282408566122271263576454975373630452710287475049277414979561042335159576558444897215688215677938977840116107325468513624823266840360855665248894417748298982772437125212250946640888052280396278225178577185178779664881948691121782504167561524127298107737506617000702264782967659239318142105840732544281353777744360554341469258308921598510762723267586606179432325058898092422975129172654056720955257342988598785267851397009593993146840723897960634090418408810936682866867594408077658290651256737069068756489505603916149998493690661074456531182917317771634993333751752469106732101995101547427730286309124569834574175366291096187355436373040702242667023288769092028053306375967654141240518525006856384495200447708719691370346432414857052766532153940460024540919189440785387424258805722341160510853792407944486934288036211146121045379353206940165041831442841653400128798129914934757862488580252174078118650469996089125304642127367968908301894199511462067248594566154027746526869198408098238011085324177198837083783422654748721418765023494189589293092644441071660310634354361682930345400584149956376815916423312202434849065953425575836051537691118616010006941583079292679078713206027602961893768387727678264101296232580604925666554855053401687211848504779785647974751934335419264346869946206694831977498702436072607326478218866086209967809511022369488237853468669157402164682349719699073488084838515444671887630052495823398750225258961942264080902268917895146434625689081224454180252475928978036099956705293774174574414284213275115330151322889014446543202910449812558403315870437270829276866371398746793459085654401886336225996313775704067732977485938219483724497775637824455488176767817726453989835555645451842662394536257649526067922064852516618469110128252396688451744157561690839746594762212895924975499844646243456405259318740565021605471791720132610247966180370490991565902132584090794526050936882043279287867117480331629590900965003477497096188527464496277645421387274425206775351995832593424516521382509898890932607592825584580929718822576272039201173136836008128530739219321657563839393879908819509059049170938743461119963282960394724412682937872427331050309727983461970872861548099244493838817708275602732540521765369218141032228744715992071011727821440429165728572124599689962478565394455789562880824189489680622142408080613544156038440920721114557227438501620521738662094127205796097462803372325299080614819795942647326205930882511344144794187392419450942522717492720829857992635147319463791852347034523742498800266023640353161288626763861172691722879104242312070855014298506676483049095503824503948330201128014908745434358818461801104352427883464373312263739589197041348566770502403332365364021901159299519012186732490375504946877952064279966796904232500035608258421986855806559337683102628374364284941949727806743548864411499970898128102608412323487843873057843869385117324669323653683091426263965504911350403830404660506320512775553569788200837465409691897440356875111271591226008140086818710650233234439690434432392805494640171955244091423237043793313038188217403358849379762152360509950030961757683319190725242100054029502590951250726748944786137001157804229479302938734677177652036308181157113256407380726444059534114948983845326777016795301902169022591987933972041092068808016281420940148571777451741396879316057037332417557474723900085434315378809564418031790305516115614378564574061509684702248663916745796119284139262131782313092482522605580574070192691539261529897472118249245082709174254881882746708843891250504957492360187208106872523482461794044536562386163285748771302991470233896089038911273757186297463912623821687738904570185856064518974595831858312895793142362020962281337154829915693246054416581872549521210163852119073207746266537338697416825730059581012990712988853150432992857550428163715002897195290186427579118923965885173843954466257759960078015498172172768510798424867005420934863545338449479746837084628855452908092123898655875282848428134640188599084270597695160205155199230916668228338698351677277402975161453325338949876546357815875663382776434280265761510594248590622439579499797143204858846742855987222433243978380708281536767783438775877620292851121832832704073673771919657054227040903979838708129985853860120399630525501196741938514551159056489968976097320309303021286225983951925421061953451486247299250457609663867003589557449875480470799752553139650972193450160528064005215174960624251899905288003202418760416209283250883094418882393649356746724745425206716700480232173424189761846818559010983838812876385360812773948392063099737510355861390245800280354724903073061080587376584921777361863586775890118793939606297897379863096137971580625829834369039154375876353790233438855188149858885695883981965345370707154242325377677042612606067552202047220622829626292404343225677159442896460764246367192907811661827212201837387952943967993947060594389883910591440732955967316919704998061016389344795205213955752029098410589743836342453533674984441250833958188761814849439531099656750249536466049793167250714270553805935190466495233284273296902507037865340766343965110726504102732400562939896960063713021192650169372463342240415773043421953062737185203882525360173191555782491723098976973847424374857014708248470085727304675627206480845990410705954027106440829197498063150237152555918081399975488614580214462292120490024780640142475718382701906211329467920996219029101391474917345809028832168164885978336593298076906693918492075114084004612850308139268366092282037880486403198592251146375991923582345031204511285576668685732436383493148565813321701154234910973943776771690934966740461895424680837162307864458744989275259449539078551084494094824947657449257838131737411681507559408689868198934363508357504267590113311929767917092934740923161251227490345651512314978720918590846969403510898488015635213804470065997248826098205977109392494280261488283197637138578295412659726373439173467891825366285881297488439973602152778691423647543674848945977192029589102609762747805800978939610287345286681294177285800989033611800277826959256407009997254872132593007931378581835873473970010736051826478508613071015851761425395980583983128711146114747375774899642868308777142970892539163858433434953574669047108135233915692570815207173659072496125346095598526428054122200843889552076381259920179490802896315877879476288887565476770291535348135374556731249137344773913290767055426963691279001778565095798982351435423569582389520465470894103391065651717261508189537136400592344247386794305084473752166075745504020615275751323323754348320205563902339832895115133392729542397673886718881755097444707613963606264898324776109508104528427014405443554737443426309597445766022725673302929369399958935538392969367226499240343073395669789976685609448992921199246116528018493698895477753283305110224292151578382084791481921739598902509377439466805976236221237476205149880622832784207567521582370490451997126316831877187785294959252985434339519891802070101519666650765700379227712487313466187961109859078170044365388057202201296889841735811866244936326973916302020915743624237517423750234095829349673779502465599795722985058463536969378080796262085466620881451852218396346125407157675554333286484611244006509819886809198191859970329793496638768244790265425871072911218546593291715140316591698682182555861428034211314662327659043675568921349479059688494283812146086742349753462068479660698047263207132501707045347884274955310481962629720770721764103425642666686540983172959917457300763617414898986202314175956449134195129956872997603025150447000223960764644312805507596968501226376012679907265925149795955564315754907529218260527858349836494772206739834775451900465668858630558087709041917584699312834302630070794024444885863071277649921363259719128196266938442093714825813843369914619911410361705163754667357198312704748274776523917277839156048971531022827751531876768658435734813797988742240768910919508455103294628502107907893049956844068890589699144151358409942055141888603113428088940975797998980142212651240706505451092049585525748171027562592389535633573595312377568279404894025623128076276832776677292824768654263271082694584735101361031805432028245384619237224315356495832500544799237475534230912605403560651881659770124025270144550776037717303477115474282959575317931512196823531941991743109805905180562458298052686259737793239278940341909530936970804747216053087029682238655727107950956054443962085159133863095153444478988350341155079187801085536953550315870225506586241332504893619490085868768828001672169840571066962306651648326696994769030527704672890090750355828650473583425413329873365660932990445102101898120998649085412297287223480637821513919919346830117671166046760112637699891597148083313559081061209710476508573953910242089772865517601441188878458801313224407091878317421204566494222253913711327446216409559386860197325466110772097326427580251771310100383309989163822255772102285724015038006011498054972285096353511678962376155012168014521080250861144432890780621194766376624550400403332233203634282581873213709274231041004359148121612649776443004266902143250039397576538478312879909494802720350173911405659416270424455354000944619204570224106727685356804533937681095429108467091886681998265214176344811004525365792776972723713059331849669467767624318953665103518025091049417531073568240014410615509567863014607597259487599182483027806766511186170739251833069688485911829159104714994024888751148815811068846898734528967370840330427402635236315377499876333791648210941936596510006692479098615455336212431528529433001856540836069334642677328923286595926550788940527206313032599353002211781910613080244307478762490075420733761934175944961913579196893107856917466262382240993706937760737118892167230602279775737146583496693063629420766469791583687783902047796238191284033126191512975190080610174863943855311426367696703605780217045180343640264773961248747104675984152243794668926411449853103915589920508835255547230060924794155667559933476018098278760547957077055178022445352943746500565021996131508768011586201778052725946779836772394576121247495750568202958361721905178187243908860671998128188727818037405693350815742180545141536632764985930497171711689509276411744829263417287189815452232912138259237509165598676787077789538619173588880834331440492315168885210403100821174345225463389601219737368587180836385299852973331377973946861034207212008309198583891372167427580140631338252338661603997011806759009922394660735988477299629016351345595907513030347222512787226147322698826166072175900596286612250681615739515828924314124145052370153264607160456864651047423211939436745918112004374967467402215408404747861370416773036651856327322676240175906878630474781033289873869450377036167708109964490774829321503206207452954128882100196945414992556288864497482118515236473303972571725046007145826896482878893917149292453984955131871152825682826214080512933320103755797980455687253603118397974096358437243787625593228835161056785418101024239404256140140001677210690540069208710014591914252818496257952663821369320497331596222135879028663857072138638835028846147869335121387601908221918284603961793118514367012259324771229716147448347039528211909459204514540493195321655259723758501736396658669045879883108876081217640198631295760868273538467911861586318257793818376753961769566640108214289093940611316028241618829007525822268498125032166664869552389306704267581911149621573152011575844363599822050966023514895415862321587655482048769498474907633096447558250803518420644451537106029186908555789415914491041110125884634570019662297140781258048952564093498078392063984399141429003186322000580434747445037058919525875123899913379108705619826047358557400546740792533115651048833455774570042671652612251883383468799924596982527636788901565975448306978994662844531464940436402856762357700571951837457787518054828495471687687066945779118661654071141478660739704534810864942199696890195912729504457651040131890999258822274838464101518794390177902411090484546073570588079411924212833411292923547339689479248838871744644578009447421429304277466242902650831602866788872297145594573113388113159466159070569431310350560661848337707299283359275575104386675738170354738917574467453092157203108197829398852860833952365183727233452181808109979848483141997286243314186725956820659957500051400969687004422549322807975131789758054021182767402676479298497979362812705720675316716981681661309373044941800911913703741625032030910335819672293967854574603876017186635582475505526324290439680687119769387693472231116828114286241726880537264915915484652133376251376891941602941881240026523110197058040285559682698214172027388686352347862622662262306831074943663423573996422521446327263343737206641791271877924062418264729364369881653935458748267336901657222195783344911478920614947123832600590013968133886300313223723035351306622170348607750721011003184905939426476779769183263063484946782909883525074323826140679964670782363312286953185431063658511031440080461081437324144896141367402107338854342726083305119320378191970571487377747068149105322855467394373823327820528235401407620548406808039304523689641073161112118361591473035384631321127110321675877775168377274494596005780522628090507522822261066932516040155515229238869865975182639285992104048717449894026234253431934412158366998384300344532976035384944887465601301358972139112864785665278240429396695852559296064241552971239942720283447972526874660548301304820103708352186958419059119120046136720753422889911994203916156259784526603768410018350647932955459965264478038117999131764006650441014650199440243027833810045453044709873116229023260689793020300491454427591967288183391140900892567166823424168874596027393100690810577788281347266425241161752290610643590779817154862677756881719596927428082785615628026122610754474325307368367103382721807568305906611451856388050286396720755924427267886195844646700766908864395094190890866121047644260190934535531611083866279031480496760598912409516253598529145142493213132372123076022957223632111033023209166597399537472192481347225578094275315529839634320601852849601370885508896152239673021198478464905721108421836307370072681595387018868386265601155730265026722330078352456604351221042064663305397722998138083362523950013671063328589036411984722189486682430261313238215672320383803836830703023608351985085015371304370987955686286771457299352923373014924517147925620617476819453664270444312972121941159757877649098624394660024297815957496572013119872672426515275573774790617973142894260953763592757697440582944018384489608821302872931258188080053473505848832117704380261966013012227454234854789216887712411726937677577965350293905820866058341653843879342829273406975860736884797658587600862529732359596780381612324410822499661098469863283052517181929673967270468634848589847585219122109071322799656111943988061112649858864913799885227671223355929561513707294966775637310241033294586716018182995013678755313892457702121615863526114509823461299537725546301532256549954683148486749766215498245339040552832105127163137494046600893287065539999791994456545919584394232434101745993565447373235190627600249210140367025075291828856456412099346435788666350128128901434716618348389398746335214885561116796471668301563762850754879456169652641619243014032461708568465994154251020997274077658001363283905639339231146319902759848520995473159226092925352041664901064110357233117993941610526240547446239200163279726739647619080521364750000693647147247153954705251052936242386208838585725534103879310152048634651381529173387902729861026645322598256875947645362386380867769411055569991767390803368053278929439332093705680800116803422483642691210454834904011890936284638290645021215107251476719415819219127062359653962193927896907960538860944259416335078853685414674020065652239837064181524254161711604609985638428522547735352427145931018478069386244856191957602247663795314097689379871515855836166028371060365586782413935580778788687939380014142309477543162733915073507128546844799231546662829026497889360358919577717805699912922866821437293059664435958644411750095475465841695734503457074486935635259860015953544976612622084567366461105626029842639836055877103852159547805919706327738503209618980767647406018123176513093983394745468952842061281268639517126268994967675219607997087688314668393405187743215131469833029979020226998290873249163809857975759884269332899332640206748648893022426920949569512743039547906440202101611848536381621370185383133760387651178777475082191094195819875580889396121230962278084482518172088788295316867228286937410705972084018995072326660989115353981979168876730907055926724971180495038166896266840515509292745954729224184961172755406223369801415818308332860127680692925780079212671532208878491811522151075079315479755680647367454976259123380516654356531405659742276216587714285301937989087866580773994498349782529811314934566037159101713713228346845439112874147085504282911567074829419393054686303990201623722349795521242823918713907067214185708719541420956717363388066902385590834575181621718921068828580976776048264478316885739146406850503228488438841367537856097150643181945010184032737017257807376927359064070684206417696322838875479947895834280758532853313714553698348381827988614914017412444488041725278415225965427656627547683186163683804853626660555191673358229939109631408873333343193029825111470210766848490753843687673325003183864279839221153696027086113181097146759574965846613118397057681869062928089565852911270666493390874575022701896139880273659986324355738161715093167676272568194185353338808358313809413241961422373514828852882530844607120927726420519185745681206699858079272683434936366292465840580436062568627715360002088993154281010397548668708147445319872930937238594715910431822190865750109670114952304689819674401353773897397689193922339026322835093079989951213812662029228713347498175221217467376812141205172917628855361743345381250418400192508267743440942742562170260588982624420070312645178475206490994563587530984499814676726642242440576785208810797004473677902128352179954337779623177168704730931192182249344071725582117498038390351426952127982401696684570888557949131251643598166526405554900435462367572159435412499474908615771235121486204106155038322670907281657082344307322224617799131948902362268414880178475850345069347212205640496652266500410843969956505820622375116004959502351454679190383858966648426392935926576272117027839075337540227279030537648330844812680135813378186026370502477182489514649791350302523215517908576756641950314940655012150047067075931524255213568713497301497670940214078190914073266517121276140102505958036688246347042952319075849655392654886391309917834772200265706378275540595450194724896172365544598028092481643659704701739066536567163880881337520174799686766173326757890865208858880543374125194278002231405389440872950137282190323927174856884511011896755556925082732756335230780126125847432174368368834063702147411387838209077490221593332744486813541945550043400207241984691113554640676041705360487335111698692374741157360532940289757163545944852237221191272582915260465820200905266458687293519855386128884364646030722192615291077177209998742229600460229630797384627795345494909559692937243365894892144855013781866693402601968556224775082870728156018571735743524607550879669806962554366989622929545527393774100564085945140154847166745988035949830211620448785103445239020020209561319225552452871418405169109121264892722813778829300868377619995472691594669569486997517688256262094106670640744485550523480606818098869171820527808548266663165920225624635875232335040939308219593158414261644290358222942548669191526878932409978855191606560289502900861916887438041776111017488316320293498704022457146400990610100438932827205658081888511530997112884883566755678251333588080121577440430322132733008761231043574917361756507876089448805217383967494067984220399564549797506253894907471543988825576205644103810926936800529406999470400365863102456993517409757571920762015970706651973654365612013535662854419050107759407559372596281205203619727708525425985489842768272123964140709020058246280676462086666490213009355059274447382264577937651168798768821148484595971090266357495971014216908025657925548118207910185719121132052002943430761847421634664978241234098841237492910674015144667293202350618880578420974356277973293439249805692772927600570679739733079100378221320268181684935548665015288201322486752496922297585917766707648540523410193859717086631265828344646064844244559454230641417104853430981315705341469024055332439097827538250140916290979550870394838121088446353704241143805301612435831150547437571353931705144546833995239549869852314834791341399106612910634751190740565837945785703563758152007215941944864946123544892061053099457649461121259695871398933068620992618225088937112640046931915915911404416160647003427204350478154866520784370575327729448004897282920753346130923123255634063226231005748283548315162726532891366967019635130687137899684778093907336241469066557747341761949002649861533240496363199437852999102179679367356920951100801232960773619483386075100698018065781248610068247224807007617230107694012002632914104185048443730034529550463969918377732527940904666010127086587694740742313149538433655236390222924924670224010337008035429661018072767396036776819087125362301408961710304458510571098950659245513247291868105438659766937173898179523899557373901256541876588155327422698010282496959688746084662036150237215132299426345366705492383882819469761443189810229042629423622510259017366010437990991396631921518311208276685950038313665253633779224635456680029496181717767901328181381400157067201968771140929745561850459102002754864782828953058988945067706376892630454395238431323704273657802067888284129516383696059295774070187838275420302765563510330622034607681408754169191740530559082163466385424144541032244015685856328407868281127317729406134419039090823084637197010913269429991747995678048230757686881671187736191315749074193615538362979565719999079436159046287956238118437983746711391284845089275805472429752492693756321434011532080885355718605520682770436626148636116678314561096982481894762961086353125215485256482005404356838719377416511604257824448972473337253911622134353575149331644501103898802450582628426509713756763647657107099390726188945535582721300959638236897600840171928912189058167298176940699555034398038268902036353981526052930349974832893279757348851452246663578849167594432937461747774365086425510938479949062670063063554333016544633773833707379430361641864174775873816245010393004355137108330090094443583128885749685737433562522308507968883598760964457862343097834533783342952465457156983930994494639138713617448999366983740674421925944967416559300006722072672281531086820334083378430349987463916667766313620161954691873948140451853178968350840521296418916545099406340265862425854582506279866741083665691878326770078011087863522292145109658126028434567577374151950144715967341194087968872095419780061312407025958633028018496538946748592541410364146429505189521848356639316122451787572104531415950967092836963407355302867140875599994684998565843623951813316927513830946452801190093276813604254418364041118023552922325510713954288060978826423389774454474935388203209913725818932621515575681497291436714460320315966092929736985031891284281203487995411498501880809658660727637337349976424776662248772332881399772257803753831307500340901658529291935414759565981065002050110551836031663207251428902058299060351668773194591784550091788831252418741420824690143884574094450689325306456142254478948492866949700409658943412673192635561728561457336175956669499015015946963880683968698492288236288135788184351087334122723863960574631050295606162957164546952691429287155317844455827692206516122458143300775876474140722180697124178078938727676946975629227983677628109805281643660523513545294612160610915699492818560955837695878527191836023516103862072739934842769020651619578246659805934496687456924227526932595025393277879056582837374174139916399126717449994741993220422489891342692414090445203631775051842424728402144834510215166538779476719579296315599341392491614441941648189224209012336166360465003826308791643440358489672205310503547517396070845892760513175073899390396349375081998776363719631978264735851643068024145876377606584574766697367865988836995199356520533037455242168303987547036781987330687360675072127183626167851773133363413209916179219330771270595618867916238979443429253049099059413482355980817283760650592503617436406430873506502081747722992915525844619104514876563423045144833640648028668099037070049830961626262138905825456694813768158490892882705370496236504521654725357391115754947210375570471380215307967809783412067826904378741400277982152621169519684315514722527584733277826991395737559871834249493943917845142693892763108917932185465097785652158455101031206958718910919511224735510324587471152188482134695811134109752218880309968187693709743350882541880390942132639435119515491493339331318326012766885398659969714984422934898154446542288255125053906346201820591756674724610952589628226214135956986646911994206753554843363359007507968467248178600436525080220465808535894176095758767336985158632911436242155566160967310081242943011940194069070586820969271358866724726506332342215475529785225165928950677741049435969739555362830980055831227162548079608874682842066323522348075620928522390827507158211710069869981483668521813553850515630153597569652310506624483650566619499713098095586128163133790240201496279572902959708247387737554745476908334257432908372682387686370659757872024285324235152860706270836131073769951211044479152351525263300910516101462553243093070334245611535626154761527141757888721815087079476996933193584303867152912884397440726964454718955878793622648521394105456206848856738098940562263892989737652982934213978081047973806807606381395644491746617340956472200446480693620795144663409496752500410818440444021669769027569629407812606106280923521461837760679236181722919385055772969105443583416267254531556415849492775920928469123497677273747744848239361523342065362145521945694256713500110605159358687963128410523313714158704296341341150402785432186689083129397652830969550808058433375484034922530157052693563650397221406393116411019749323513681541297414684223599561562018535173407153193232396383075014835892805746134566265838295237406302558386029928157901224464467594640396267898165027254793492081922550293213140062464312822160659599941731624574991423845110536475411337368816143403276381132970868333698184830393504760200552632953731732861239403197723590335616810183466611614755167275486430411666232923332336998122740920494215059481011644338480421277305482579613478264181355387186608135483569915164528427844052375205864957602855002905632641628648558802965680864523067725295519111903565289241919324033540458205248879784011062321962366745458556683675041006338410439879921481374732222949488595999166961526493478452815289099266154193865283461928824661805679355135037274896775340676727433762228198599381742849721507599694708937783513273351729397383032629527276487447673104788629701143781450018186043071655131104677241687767434236092806414517363812372318219667059112349325457040325051076849370957881431473575499891064398241330161405454202080565365126278091567533124614282168507710591846860383432735475428073855881665806558843616685953631813223506571140681520276100426188102817312341046013290631904917087113127812987966114908768192852867656456875768453796435725074187230179892986802604270906012912405960536790350107578017577428725660587364875583988160675485812512071552442602903156424797360537309279125765796644951479584799703988558001220934472622624175916895464770772068829868302190452257533761712615089606907386258510167597667182529306972804925292283170626335434262233441800692919961263189087002032857687116284539203004073599399152286350335378627783445909664832169278551405176431555590581828779898971982273766365186744585739461593249426012108401299489077381949378215394406862091018223404555298197699520210565403514185608912725513360839528500636636370115508511746041511719270580871598397164360356600236429967975009511693613944331987326159532909062930495279310067610076778693238471616829005241119907583005224043816774528855822953258348695993352672624930556014283145498754658744163156930063033191165196321517326865392677723353403311857448707286368560272917045177537194832999779043995521850672166689077132591130332257953199201847988631379521526197937617559299156064717530692565928978576040643332588978910535363274379174001993572013882608729518553453470258061304812534438516296832994939257746435081817360406946782480283414964456881211746119002609623877672769945096207528055674816745349247229995427284290700256854432176367660309755846646131562424509011042054307802441128789216847248695444499545601795485911956001657726793538922314166240701130930939927915039164564743361382545073254900626983797269900928839660952947496750410360175158960604219697667357870783921190332327926723924042871680785304964195813954032261715873167913203001834221043884795118941476054726163287397795337784672061776702906939130581944535660597943524166654953527418173733250248772283564916991562557520392968842642698881070655445559692104525476785311310308036798084338936376408742720434551380583936413726982997920217226070449176302613915418400081066175946371334209130120977774266497801276804269966542271138503867144604466844991932522216924356104211708191373289643004464450827788211585308168645351123266580180203597802458861878924951391990086650473313225149405961805683704156130492893655919556599963819112261653897638087034368152704815680240884783400516641304801215602386320197002807667541456435631917157378815619974358632540533675357145586098577433482840849743670101096598460065115781028464987080676118105522533264789609229764551209131392319103193510981605919060689304865192815017442933026247491753515979458304933877548974154870466921825345422080670144813934204078351825049465571519503273250364261293230701094806596560461795451031160101079907366115291714235184292788377243649651634224160471679944271253108855606186454752897621504153561239504489933326380594956619184387832844837455047424736688310157869368209991880314980205144216148464961332831376941322336780898298130069220292771282770678076360404417951110572986609895750176012840814239015008658512875643181792997898509378897042195428508861862007879194108386381300145227350958459541096033403828608547077459253889469707640221062604002162069509138538588444594787877883969678831540856176250217479533589149264092265530877302144669453727230428960306265463388108374151514394766059673309779910113513767573500991626587501713643609140924777274927405954523616792747688983030518512192285881479612639163442428534260227934847512862038128016310221180336373117655739481990819234106391816609488074570909758628346205468543367511463690877504005350702564216094371001152859811170556103091951446844315586711788885067591276809236893803742376516943426817072295484372564562176298935015515008169438962147717061397173253614083850350815650504600030428310248659409130775187087670669955719064662023668168136187543026072669792052466955428512235387703475208308077338327459832646641841408002216594274897421779948184034698624453072983695773645529285420164761000272294376520908592993138720006624594816472630200593790380748925430586198940187397391340763584649896755389364120618768914429987892928911563302276903862200395563362640411271562794532525553314448899427740005543911487335559994600245103379380314150636933527284527049763646833910130684533836267751288595802526073653062016195063935127072341843006169949869979563168647941749835523216786399778044917289911656752694143102978781153342166298613549112750503783572789060945226454487512110424230867099822815481106794053079729410233194504058410847115173981209226189120317748105279704644786457580741220593833892098919234405276620217431020935184176635234251075308680586620835799134707138217627509805671812475498522296774743846123569839774947806245142370887604604198514069947026979396895182192758465802880118009438231114702564681895139403182132975803937345614383532362085487126507203071032650541005261199890184594351887696468820859341442678821063325459594847373292850446533646050020490106859058732063295857113836752542117966220223428160069406546585318460172169983220318612146657058996326774702739010265844089153877190280329351287632820750013286395675661770256800037416239641933156994038563607531220808560148241606221019776277636452665712382865175026214394611608292823413192913306807998219046494774584663809329334206882665232051813414857697926659957344574065334761691814932885367534422099032808444150190537640922175272905318132299589855414257700476190376535157720574395508457272365372031053640547810900441440839479772361771368235241635782445555307131253727220310396995318267669257070605269688986032713699234989089467931870543066634726142162185333431383693124489152759354707737549688074673627516079476179494001138678885981701499464872029986531895738631168988642370985762525360069276582513745248965282008378845012447976980547138312328087164342931168091332211517567348126190032076463351805456378161835496817155146810380385584760812144893527637320202817066685994306017743312543118837205628336288018158005655736280453111268704092674806630481781318957964139475801097197608957420291559417893593329926398371442836182774653622979075676786597342048988270581065910987715664357652271562512045612540717161342859175158958938572263534863095655902864177356947438090819466828933446294910462984547190825608797058791366191396221959879264905565683437966676719574508561692292560302212329268750817287699886232576433651521893726964157811747603556274036307772402036835188604441108271852549297610848081466552399838309933505155952500706314934166420224691671457684710731167435474462233629005572784026904899203519446010099535604026888444562574262571451931600772921315249427072387552145734475376413040399283483192581352510092985529320975714084069720463944665934399568321570377924607196294484044364726088607507970603451761230402791016767922641412691824624706188625739202903243708604402015542034051658972437996381582627217673903768851954355420473917954598243166358459307272165878867923428474386876166425317141600511044206956918270282460554103954359871118256525070165916681690445734133324276378222507777041347824223688916775597906177249646998572836759104893167612271244454773961582104747514346730224944966496882890207237145598414403758897174351178353993862982334019728300675485651235578459236265736839321880461392232656005721029337170844805129395724790149065506669756971139877214057039664887062891438919890492289908773775693284670104156954809103853512909344434773574371704225496297761543421541975166684817730010430069472103030909219735502966686131885103960373833961035998801640981970665295247034894227692841023338992154071874795490333984057393083672142500497279003932179553386427748568976440009542921747976838284880324980151838711071258086906002415473444179778716187547881770302978781946685173243684179472386588149329614689225629251472411855531572368257040808664583478548643970117550070080227209480980703687852353159326377030206834690574683682496934424242815421806274132897948310867987022443384010991889902410608600674001766143456065491842179822622408257814172475269187127908351044897677002754142505435907846015336466749021897318736050840893559354106990203510103856378340556373362342045782922719357216181283320417184049824618655924756665032896616900871547507647560470300858032334201904208981352402062460933610321333009553973765284863715304078909388400955402102521123896546686784127939011741490350124898830579688294297895207113973662250754727952619021486964706541762095669659967054231822990196521912679239089884811858895736675847617223879621277538356082508476207428718936724622271227692832501614291539346983284706157677795043810400044286997962411193992583646308448653618858854178974459067045136024674472823586102405234836314750392687808135423783195103079292204114257361297374408918727779067369921412391580650164890433035302665844953146568230706536342868490859119381980401371380823263476305688550733005481985176479183344578453515879650715947057236436369976958938979816018302039448768839471398425175517093096709819506588483737092928367010989977919553056839485646138199333628628037456192567545677675188753970546677716340224327501124654094475033697760731472262968772791392919763230672701099277214591044892703741474099233672814048801455347812417568861876795014227220551340169338090305151543250717010713818118425909186052358234080523947902122179876621618477613840624592741708701775493845361828202343270939234900749528695812570523682274860525145900669218932766514097380333660524140472084949556373289995498347537727959783105508506426484940542065733111426018226624100240502604626093737913127667983911186612724552287450187993979950144727371027848796034759870144424159998864235892855841746379565440525128836305211652149025456875876949628170122366046095981860758352838941442870427965573999490965207050140331031281144470155616419747192449894029580064212550799695054031213594228930147847235570890809684449155391030916660652333577190277169574188906911293074478132896483923122046091343375677652311598362342900023404776193533642532258855333405288735186588590291252902948433835486403015400019275406772951646844231144503032651039737359203684518970869750163845443200334814671869589402600910169657195731530446926204798362261225677436793093141796199624307033911981901963143035401254990752253130948948946288653884490453009894288026767187129869419612982786347314095280418665950339981791321626229834142918811536221982473697577486250566226290355713217010742096482309327883584564194863672487545945598738032926473922980414344808930302438692484886738609581586346531742218564627298305033993199877096744099555716415214427399434268477295542850401969204311770417212147343531304164675575866636886192113560818298200384715968641575644825752716743082843507362811811798504445011789128333298794882369836404775104245763087843090135764161549627191738511568001508441340048169078753169600533451899896484390673417512803702099235448810347732504216081578944526549810746773866748461004269767928756560225730398337490691583298173016714386483390915149508243049959963421378951877827198554446110545407243458519339051202811734264772972704471516300663535259472515346353774801915579152272139635334849745942861767499298868547149587617306189725719619649302423643287586080488948132337975052241900092543444700460593576371279144129937900727360583508652987535602774328258714198452234773489687736103890626855331967446648557292758989397908119625439308512091986652683602396453467910102303322961983708478432594092154859278504117338986149223834208740082366306247072954116929925915876404928739827526785728920955492257155131605618562950205082340024708080026570219599089263385771891439656476589358708025806091347913791583248992311810550035590125053880588487009834853639867267278054817633555280146213502759436085933349651215492498348846164953601837597557649753265683450600141238058929601624447559474884116763628668243496022479115924613334949149662369580482448719596414806107070034654271892861550900091818625079193873759777618691817375288201816689125942169962374533109093654642107303239422224934016049478933295424542678126621634743227218219999119112611899063780621458698602579722887858522681536914946825056562682266581649820109847470198950297129431132711644100509714303028920316813733413734765651027869870729250541625820756421225423104131559376218718861090743557896684667565095971674894090742526230454114398981793514910873338949619381450868476170930996978233992371953811652567776906678146252508211814556657681669240866308035886374802505618056183063907901002605276680656185270339348305395323667961976135694752407423208824013962750177831856803179867456268311089030540540141487495923056530056227914582703707885617429388998551114064215372201654124191224578873188842670955368101817102018230982279185769997133574258781792473679595216233154242537042992797080655514115531389673012866331162830988464286591715166735796454641515750485735533761490774877155874262402689633914260907545982319041733396457666689597359429704507421446072694743775192010579881327554861124642178452229047496624835194865962054180350134016211460340826547582209593981304938010491122138740967420029557589359884499648727505314757662214515573204304457188952900547001199299884698385921554167797670224099268333917592766183503023012943970116417613368264358523655458389692715318631241265938835710837282864258719730283659108312477673488942342566687739924553821930368620699765425573008232510982840004864234316998033795774826409307519903356618428667738779913834729663632913694855697322368848500436322979648358518692578710866543601461449692675313921677406600552792523212566041284282551838329286910663145998662443603861557887320239863188398321907953492673326606821925382774217224151385972849773924993469688981764947547473184704074922505504601264014997286574379581605598642434503805696161648226886407021932865156684050667155588181224758125757446017947989437492868371097072303919042809489359686781098600002963058093692275728520565673293862024375471334063537392161124501241084882719242750323699658959399507918965317470043760225180332617127916139560724833183720051768056383049453635684015421954226749405025888536501865917674864431127972438979226680471743357863786965505576644786779643532161439166583314934315980361268460657928897605313223763923336662067023599896106697200155865350725864480045347192697271833986548410507146720004807562382833749601741504870525732287647163417246466484679280846716497992436666848720881074277218763365035300424600505070679655834434581286110908840492826292366350403880177792633954561669336048109571079163215506315692492511101579238886509210728538209690926551042634962214257416943612886293016692988092761318465926178288195359114018842466844630284810100572501022345886316544545905881129258465577664552664310307962178286200906077198029288465877758830397199052916789580544025082708087531645296161945004663330478318969328743852223238723654437444307607110440272401395305138963399714263295674837268744818364316241487254628212393674760194396861578578099502741910133217629529764396750166976355266070468923647055841007873072711845357923694368746242416444450405627283461502441539724273058377408862968916786871244449212060025032968451626324865988440197456984824484709278157058509458704608134039965298917667357747631935651988822173471516789035239269501603468996657512493455905046590926546944068836067597547409991605360075759092632402685271467382795372533736912844615844115831150561552735194837972210356794861372728225721029204997929351719215916708193761495240428665549516252287007092345489778448614513446248033976427665443972784092669497182900970763931383774498952368281715530333151724470835323677231305875218578955336015393452395952220054655963088748054992935929096435179241278424835502797669175532017537617295645166117952175100492538502194573334404712688559211188462505974900680417523473635477401259472909730035495355501341674965985587074900353060037594947864392928701536485075276450162796084461983682862774874150558604748501017618275310257714895249358953337456316886589778470518058204844016018602033376579642413960648043429611239719242219518668943074338799220335762255583370749896278865667456671538203312768193112603729452212035493626305052552265861720540342258593663178489096062206802219046197746551698545230557175597142265770268520029985826909747940150534144736648512938880779766803592126847150633038680041196833396152528150669326684307985136520240196400155645174199020754126114357095221679680489204905359735985517638027020868992418274814383483743500900682248512365709264387631706232275993825556817934917158096172388481700370442179202418159680841191119048097761224118838089817645914962641873427854153217257466278660773466970625422347252841168284403384911910499028555183948774329819405485589987050462129519322801337945078650339192641185378492711797624258561122527287953592520941033827766239862201936399575987705705564569541378053686179953019157414513936205881228257234392405017316313258333720812684532600122190496811524724808357714740994111878803081918767572622927400035267682417862721010890461376775834759414414601364668445825753442762014852972831551307155907303133859714576748277387469899293877109878067836707870856307739561447402738222606420042961704677453335056599867484001824655958719041731081171064417853274516909245991895916607901934828419795165523804081209945406091327450548728904259292129639448263848125409546570953336957820854654914882282331199370390171908572190564713901366905405715272689348044680149886151214779287535347844269477498884111684231262931974924990558142738556751723415282577234310322357133499136672858293446881357123232997593136251943078190046236656979951489994505851316878877086860955585221125443735670573782537806736541164912858905565078372489659213594345226027869326555576346922221114478478596504061846161839449021019580424747725828260521286202127108174007933525691210435133579244332842348373655567068842184935025322149947956870395285115078896068155740956890815275425649051907668836572809060605228487669172736067097424324705221823861589007207487011050268449749163387243739985491943727605171991820025649787254530531844431424420916997133122041507159171990766389368638897708282689617360728151192610753422712239843057543799972924586258324423414145836492266621271704545344887431590965222338179115264552039828437407742650894369895376500292064252020378886160556608840171730984267241893317749205592953715176440612677742194389108431900836503999807778579167959341890283290584991079280815795030507031197397933852268118005108080378119611068211367195895118592316558738667765704907167502596660366665355203576224106122339008119935316380453245315741761008594717309991896153788322390584178294670364956150748248622164412089091142652008680883001118853776547791944725575705070008194306247830969997044906550522142024742563928446916285803305562830666234231340515814434403283529694251607020182061491045075007517436260973852496322980756848413668396558827974281917361511256742520543663689109540424656339962908016301727722415550761595155762431103368815593588460080067725881649137636261018724149706777698284151776097882424405132848047969169462348200621590890487733947855947627059368852241460600624813748680097872985815047790125474852607488332548356372212645044719011328271456488647649838653189347700179020487136213383859187074672226089853438931635749549246977441270465850377380740669875848298841997850767988266479557587227818481497931601305392893425726158062843887321461463006974692671626222301553171836742018722873101795671605274937288135349990888164836782975835360535359422721287070138850557467706687274820460144912442044141624412566071430003049597232995697829657666911018534095035739150304042047918005089511669590214053585862869269100856370317323306683200108391447490389843674768715864878463024080447343658923830078880726117736615502548284788251746055014068310672555890895901938107751065964188772343267716689807662525542405810703626470337655578422953511089322000015834573311383079604334215228452007052645799055623062078208911460666392720936784429735521009800783706993919054445474337212602759485662012550351706009230452934802470875074824027859719302823632098890532201088293018246146059858665265905688453176413833796597289439460465184086215271499208476157937307991095021803249043114584786136098987103114417778420013442475682393207417215345197633149020780581815871229604775377235493747796909773643277046691615274133395840922559871598517133901684746654142553112647482116278971692333093504308631234256948285702891902137241979441303963803911320381812863295477009336335518402013511941086784560921530668851557932769094579064274618582546374590187122933128995971124639184810597396515089462794070803385499039400254409703228555757083608282700372480870438218147411210170753136347742217537139396218344379713296644884920639141894782747518865575693342700335813658437901873910833435009343484452904672680634726911253825746164201781389163247498321017908096997064036096794130628457643231452688861291478750846064629959773601155985809301875251705028563599502950526686682614056684551848418655632551841037834499256544408061509309527370336285929154179415289584735110846803900720682734254160601511136336914172192513362462407331373657662627238441221763512847331141961551398981593510318745443725489375107110853544564914695947172129024595056341598766364829511722627038593625157884415734576022787727589109566625026179854743683759509497581084654282855930054422665278655333337783118556007151309147403682551725858187369280531891931807756170675670961040750351201938684517602627556458315064345205980993218803870547393059345380890150055476093758488213800842652974426306031630015267544212463384864424418791145732989363281097543841118787416112812084787731790105808049561267813802245490417061449633060499812431880719110751619907958955879324843984945920410492251001746126349284384411455413607226791461046150516466997205374452099345322180329735862304371038468387095808323742411985956951192671239014701877576197393885734663134457024830723134148511454863680661841998968012305538930980709653781401703659324964513124846256492351650255777941599244933324712284087810796416416158872839134139984189280984108114104130637176328383359602252990686469339274916685855562045776413172222957131010242624079893632308653276458798844519872937079360242404307284802450494349179032437519320216879462239767153744669407882418949108004036275747110078463797585783884858407680804304647383755917990944201761400274683309463277845400141242150818274175043502675089768973097241429970367547618222625142297217992201854311170154844090871203035921050265240008010202492878768488389202740517679700206607343046112742925941930995304745326706672450953872975259623181564022806499082750251280660604201646357753466148513035212481319872288088771871108372485391400922802653133842860520127177461643084300932467662733009892646155903053350534725884290091064677287365289728505174240906253564724181301564224656728853492656451834343040739057383327574755978535108401154448886177830782205555042655043561035840142078920748692635792775551607851341200011585701971178281551920775070990738736471975277266441373322642493221929367250225518544096675259494418999656073145723063876049677993221149013591112940988744325846379477027677382393011701704245967394710528677638073149709340088211657441176687441476259538644191293015597065621637250985181702167965542514994730826409847076508443195197712237432969253884451016600847807983050292014012454242797869662142372365047973158813885685121540165918281509867671573614036078575562006711556697990711803101458311832047270384917246614314227788681336318409519019536108099877869294747070038070047549714997108820595822315581388471282876867825517225271815601165761655724296798789902308315049376736121671054151010817987978546943500874317004962620353647892798164142683577678912408270427647177552400960049298121138230712112096321619173533800504682706999578241919122316436870781919404217173672892129752387806313006075129249718473801428625728664448599775758129129932590420816935962371707601584846122667095653882934371817508273877223839981869676584141314761607156515895534715082216117925462992594675571194177747394779555561590753709388303859223577241448093539928621348104684638120109419051055293406361788998491256208314918618644859173738303082132349397740030996027368272302789773034411474581314143404009523672377442854290555704316511104513470218631536983468813254940301758565566747121764000410128353311474711265305869939671284207578309418531752249701052288265405085313691937884352771837703507719464382192678519268268668982785072016994845255215187133379925381924300167957811902558911734311929577347170286862710446294715758223294435806383982422007642859284577704263046926157040112976189172259105053328530158650762329278773515782813365401708872503547294138968279929518733471659658312444326502424907140670979033526784001042901822431060028618456586861714121665792654553368977363046809350101556059676646093324309243811892275079576902619489841063667990057274997062169334605225412645234763491688797045113538412176033678587124009339490178276404615995550766421455698939560445967404003485392488922614407295664844600763508797998497153527201806194752305325468909019490643498006415579328547706761660127050832028871121049119749810310350625986238628362103883534426679638328747768951068848144186488529422319498018831056479243900056154392842283553967343759130012180673750038879930178982487640761709031229726926246427533251637728827806741613975892920885623953093000102140615489244452899632826184963346756964478080311808404957532330803897911489627018486053029104067848242381328070549573898971081290346422049643262039062156913315623800468324404877552424878890884748823183863890134404403978724337539299360320264479823246021990138469063249247615876445154511786047871051761154243376357135786798582192933553694827540406349207784875044617429502682637511126120970804678209880271431991127871028712675892761180365082400532002421161550067071897519479234642011083407144684767559987111754260455392537099888598468220800543286063209109299718229148601594219561212953618431455568959006120642291768752750998064644356815641355217391466247047730496892927989738693365027059453864939225841763816437626773051516985181698129241227046539356652506170734065232310442704298746771327912908775013542829172031003456307086303673207017839806621382978113297334882162469691906004312759316378027287997761810286051753359052804737619349276505626851665166847499985255689785799214972144611822238879878010438430172129321626108152108804441653746785492256727220126752990460381411761577040296347635781322751031616718929763595508223473904853112541557677163657673006969112307728198202264808961029531405586744158762592228462623919300353223336051662284045786882237836724598775713305401735016673737002799570058554993276905744300255103386462469301448161600526217487655704416530618335263662239453227759258184253672978605607437898484347453886503058241516601676960335721742727072299414267644713102936982827481494154979837575969628592485709701112020827746920490349258733225699883729930094427053251700965654543362332656774460521490095009279122140506781128150644912231650924411200007663153984494535809505782934403633477449175625832256135584996030012428648491796683168368743280801904604011099747566614754730643919563094472940848299908242194466174193271946796926921368435740007962757116051575508924432594186507060366213611307143382933991444661236593478545825019779986362084065113910912207615483997067269023026520092312447452420008317656765640694126280023966103969434284687704840442022457376651359960878499307847543535207712675261848768702181095626078898822084841706843214773894104019253629191458574469704887666696117541516212861040409416372792814712126357741688154176684166221847938839438642505409213294855868076159903290052941371945102315067667368796829913893490573030025183708372038538501025395570843917801554314080209388532264811335940789541276312170962613230898297949488105847939902350446993560879372059450690176399687416232140850421447930409117863959513516517366760429013669718990319517793474740565650713033320012358669652468728096250079053283385513023537214394713032153878615325941614041435745525712670108597290050881440003443682535066865280291432618199094818679255503026068339302083940178189852762076031616200764743980465417574261625879050837526777703642390207218949612937961512864537642078586657939366612969038956208847463559386012065141261053824246496328848862312607986819461339766021067077353537810449861103970160832348153326660727953854190092651027797584249988974395768754749972328528156382725615100648267783175617675075306404354570504097224488641593101670484092954367797350047778202504731351003617769834305200428827000697398453264684893435342569427136224180986208403336928060909240332765045142121720279811766533742861763624274278526720468925773213983355592527640118376860102841775301638077317484723726388674623896261909828355710015510364280914879645994450465176455850260063440303903576063657872219876365698998656473069086622764805103523485452188994403153342163091943198673532485635442334895172563142254280072365655258066239236782255181161954198695722860958466548495291237536244212447882894569158446790566816094378923165212601836088362742784744547383086607933033144058128068796263827395902831274094641930381340814164210678880203183650421619068739614256321666788674250792325411537715760762292049068153280457970627469102734641501757891822045732614800828877159385702803384046035389235397266153859410831843513431665507054943152016055182005586835051808206185297157038493060363302393467512162953331953788786359215533738281389145035825802615470728997837515504917412603514058833600084614498990157213455504424287893642916741052863523551199278061877633223986869707414532464766643697283488193667135213636397920624927667209518453438283688752278580834057289648361747887661216188977394806543706351958075821404059757697445224180511274508960760987573780395676414901328700370934806646640767313747899828087455518979269753498176008077971587061668917900170447376894302834894878921963999290051264048523613485956993298878898513592560362974664179636385503946280961305488306582349556660640093890897611033642816743671247466310435087548213600631597338040224540258345854594014053802218977552629769768050375280538911539263013229028920320507899349131231139663088242645437292458953950770111419482965371865774752431505213079981065354954351072821633610899668199908670570200046897302229190723103006454723376525283314793359330285288328257795728741210257842391373343907890987195582462626968581757363772991167356736862785113882026395689085214404034992388875707971864531016138453440384756087199971598786142800745904557192127233524208997759696776346684306593035140875496067594848560768102153370191534592202379214366328688233940168174315014226689630312946126927899718743943026950417704193166384493612879257000515304121930536831471960537175931258875920458135585660622512173985998534293176094151176860033269756816611855464613016779854625342791288201586302095088792426246933098747807345536818206011892466568894858107691445786907078638017668565573719250115703898792246042603093665237073610638225664984826326258528051200148515837437459894154419100561298189534653190955168807613719507477538901554825148396502744810473110134104642586084700967377183131662721450538472204089170079035352666917651098348095667046262704878331380560159972496756529102956851611542801136278810842679511038911492401234705807338203029693337460661887842374819359342590944519006630451835056273187641652151286796033160162324427184476332397665653405762357702765181431768051869374987746647520273160140458147358885675906365515600720164222796415603877941931965901881386229353058594943000235254764440687914233278054954175646632891623793524155879362786057089352988992777380463380254477259261739847884944079365620085485299050462023249050331479227360801914068813765164008958200011241991670539021917277971433910703770298617485519581583773027303792131809677898849561968009140103089906404983023535912444502261983803538268317239276095530728439259770037696963370411047780507873035456852973773478877296766131703467505154464644391256300158620561072857556847891922867841887932031681091846871367062565955606853592849481537190546528195376885604293226172419108415870800841176624580237990969954909855968147084165384075748954228603308133479160758688008662585305888842975916010946254677305226558509699060701789838158675662723140803976477805179430961410963558727415594755860381801055552872102610385357347787113505555981868803563157733226941857297877621181706461996015311463783299674123738273219768018879828843104082165961947534151225117608803380617110200863905521698401254122901330424868915597079777732267287035526832755422048972129728706792241297608966358578763278509464128456242049743340223432613636595885811133235358088379210108452007726564755332857723644781276829726903173402761886185054687807562217946492982604715729398502570402117224688176386281502558377526469183936053977622191942379524729946158355576262561848427766980808182956135337309680546578043835687418215503722143412284158584672807419244542487734768460428795712477367526271632523927803542641410776452682350238114707768544996027545635974650769600117939209226379694387755492779646450939658568578327210296407157729007505573412962949419630634862005654355061849182775111697784242169321829760811128412089209986336396991065919490829047792303976598662295163288748040996200564101243309105364105045244933323072263790813060071627778951553130911692223090256678553084376786483387437569153699030627479477143565677738021305272912940808531026213584289576951862562213645131960964980519261258003835885662852297216740973496015300485122012312487213528181369439549508258300585319670030917291480982256062875662260406593687268224816813477116090751946412282911687228587337343515799950303367729282352601958909683537253432351374711697657187925431004540852608611991245850615084105021698398551660836367641146594090522973656802559983699762812975065137842104266433063997828469681252163021135211461627129554613759630062129612998677088391957741263155945745710467581514680989937212315965717352645061371417831589720605394940894008269012121565016131775124273553357865344157389942265359007805835946180216081167200151235326542665648597651719870349996060446846844765464702344691414961807480555326118087505769858516402535675969027554482376429577403813225935248976932921942805219558599995139682999522843019798271664272994561312014051951721959192764440923741793667411254677535316261708131102623262319432010772770566825051336601669408286806088434996346933254202471091131814884958278900486210548220634498996939299848720564757159340219222353764264164545058041822465489522575799050804066486888844849515083458894852829330488871048639937507492427000707033561043538763836829551384033310090329685396117869956470807854012809411310876685070655426550272558650305971968962931033062295775108291001446514679561964693362434205725962565283250835985846869833600107793239426445739149157325791372051809923989338005461604100654269394559655939157675727540647085771208456053408111790427059464093132566201443884137999561569204066444383260726931104342897062862145148211799539970795735283535161449492788824646998063267552849385144542090025188012968657697973815331107213691080884853770004804828292013596327596986230966445046412758746188655576024019148237124737536684892055427840266374466428790918885121773504107077316197422594984522968276840893388937419186301791244074269620221229169682104701736788986627250394931545095073646258168146215749627540357410513497726868505558852376463501676019378579634991052151783722275942367691546946647917723780670622492495126168615445912103665351147087953257995732399598576128213758550387876196518016546558047175070895488743204967117713392965070538742847760749295996378301464565889889186628039046066363455747195446230420634933719109652528909075327825756074037234796676668583213565398596278216939091326093942605320064575650415529595162233586304621580135371691682521747577434209696028036235100647779618160757795858824196644986006799619671847936590168721445933539031150833097570204676443289885586532096510197792438578317332659150892887126552902818082221468379886091733048278031974337356949331081933949429017907478278712271605155273119183433059610468584993077191834554495660911399731753214095358786783659071659577129031778891909943956252134498523779808030351545970715096104771452432928959370415354971220219660764907952948829496726314228557911331511916258066810002117680257605867901274971338727003066564359294968369149421752142318074382538498581522272072088267334197239631430358295536229027574197848244512561811779751542904887668947245732895156053865694390594076389496269073010262156966078195355342661483811059589169928073713220448392060765427434640315510234614160783042674053672401446518696275976862293067826680452998797162909253094742009199816928377272970371934528669179207258954878851578982935117832921129859847970420859964205330366850890187374695482742772538249869032553387690420911578340712694419971406608310384733664881883647912847942956334372131279478138038402477204755385122151606808106167357404592732325551185955379595903869262036318610158188811616442158629112051496709559002638564496135157051148734096349875689726218407719128791411075782117300594661261223364115285624279060905569147632647587184500529115142656527516392320398058540007160183933507653024194423186099613773661467322921450875390621357545890957395217054552430115825501307917567189941131461993238076868776099499326892899218667042982896345419167337709035040009059327835199352211263624773433418584992665353059119277506985892104425882119242330027243326360126325123652320393770512377661310694043183094821516061183153533773278992095527414089639748683705276830163531032380882298003455111464300969728937840814020919002374261417360929873023552962969761926660560706689456065989672680618906238918328245804970956079568473211732482016474948722794586787303311768598260394127259840724227610479681170527233058753717735567296947589368211684800367936821039256075194245648288947519427519992452784128284861809587769795724569447399338910507988879477929598621869988804370123865657598029567921443788652898979102765537061069374208969169247739646511010910761181263462305008582975886844124803235060624611785098563397140280559815858669649550949638389437290068643703616413424659672743161021917728167376900611863089165453701322535391299920219890980896959022641331309808504471094929010550923153810184137320151502291704405784226475504049369287040576192822013233187393926667695144875784745597058358214627805871342216446801376219970949692779043726935972172124024594717645894765412711218950590643485394396110730920266460225646338210925771043858775029658913750156708247489184148837700366284309613961258249053150361961482701130351825294570797461709321668104935637918786661283982756743356005738966043379981434406050743434778756512735134231665331049781968269960690781588148857562867191629892527287321602623266112754383956360965749779654041578015849900336116499218319286436646287607529800052083027626454229923425640175691533143283155133294380458568508940891774019940061960261582058146370994559659504510978644795062878366866753611536922806684344026693887334658378710320041539527301164646188386394187828504078090983375675000186406461586860017731699619351490621983168426808238531757434112649854191436602110142102911789167806617866144510968244095279598716954847845973744182363138281489558298408198729429829674063837955097465670908628682129478769984984073223851620913941669383211734678347457197088649875293955116779477668720314815187216975311410432576301427686579352211457912942871886218366157995700151535138729985084701691648417403346141124165249554822731849109974938044214406041752900544760228330927559492871767991902415890655924079936981753281167110641313366822907688963320562617518042197069321944420870634920883279291112458969037005945422709547598068207996812587860410745283553953936401682851140732911215892983274052573544826656127411843975225903957699379222587040641073240068294077846001476698887026408978920270480264410894870634229292430343139204367638102345312811695937866448652653838306093621865242338927710741624152638602540040499763974129455353022476185838413719150071947855538714823148585905865769958520064590175100790183186008935021872250748588354384345364061115689646946070554728455586047375088635771689586440834111670584274037935200443782001089705207182377816616403338182549264672265795435955273157949302954654805070268548121143837419554082450726812455679327108580265985935861223606196447657613247354733740298248693868342913327070231828441911256107547146308512253280898188750185583560766370954625584062935311671188833895275443935676360875375043601352411531777931620452041267988294460331864604223958313859207261542747377938442018491417531041825923017503343469465161206168753101966933338115347145653005644397445292193118191865464201762182015098582661630021977822499583434658824181229337109900534934895106243848547301318007428611208117831656939150913862825009191122328489886327750583417039356347042993494496149008347339135478984178223740935616000309583128086697291577271172034114819394804464602682093362527921835056501989355609666626851195711204701533071592299935350911916052718063605490605558242045536555961563740357228020240647336522253093504617930911336194341389612509658863182557870276765445841273922431168426242192454365751664296817999822619930924354420964159808503077999395946653180593484281509346013061421368359622699566309710777688038370964916571739992663875347067565699750260471903939616451753444408477912537271221527807645934441205082544145734675050519982275069310371388576049327222352845591614862119562766587696817311371089237155855350932469146299307680292206553843524700944173034144899413855752860900490592311232858205469525790566155972904217477381604014395198005234852032887647598519162747794599986526404438421592778200389807299873912224253222764122581144945576179488207580053161947836149288285188780925460035111277182013004142436329006490660666252134182958214476310784320628554283856430595267613200705218113463549492242626498084093716678963358960530359837100519531118251139924968919558814458816512853028216829537438265100372399258332198614547712298493223207392916147805728527814739076468922842809307676344851439474808486377319785182772071892648970385454732837738449839587122363080296970080901021968759733754497567122916273295930141994755444101262661355197366859575375895348224751681388269987552526714796602061491973933307331727643867646928096745745026584102639897840265104109435416030234564240915304678979187655869359044492641817205893211459671311283883077255601799838356508725933031431817287770135090962718713734066556233911701100089498506885110734202435267032218043325446607938432885364218568813356254074033858229505174471686895305071000477953747508718533722368712061782939667082889529184946387836779797546860816505726498429515209550397751592434059929472576196954234137626642774761356050685643502509660619312643774009599832407390401669055035309294128552728813179531991977611996276300152314151523558271450250992732285497043024847201293674481872008404461689069234818805036303728497741257565188061797143951620073770272632008457219669365510590941018152513341848708648128975000399398085414899094983089807356030299900715288956450189553390999988925220970630219464283279247308908997190402321919383795896578488850546182708158396979683292525381501136578066915751744273053146370540190213659999873188381705445924055038952814895382037812089827844640605414140893085551133201248484420056859170083663767580347469554831219395427365726565898780705830426722189084710715180673748636220787703039236044003140154177649182841809051846097256706561711962225231081956704122730817185296417053985691543875245666130685887878685739026553532089252283340160627907165382453917374737077102147641993625702971307038735402956681309830138915160703761909920515710262188311119819007281660896517276150185055037598365893971067523134297996988821142597276763826207111147172962186888205892527063387881525175642555244741017086914192204320508404762056850778012509110952233742498027595266565333380353369432690689372591336808482124286154636443534275729265454161810975326263796835845949671465984693097555047038434875740702919002040639184971928438839619520958118431229539380556323008707368209244918036733708635574399720935756090640331374943250417852825243922976990682495625138907674934923181652287532829955568893589235307952686732254003462464280487230511007557210640622634406990415511316238903004914562846015310388823200314198574064771698222304074893334924294874417632535974200501393465985347452500180397745781739085311110551624308672662452093403576329554409073336350415157847667588273240492138117694520379403221616141155028724883336744345391258247158554003340446777158692911623119780543352810328677367068391143678766039252454544083408564267864551909800466328965638392988563437971649486847317886624605808722797411571518662632369158045718858339255172999755922280039303367679153671918638069928793902175515961069757763032951053961831821981868715571563903012454554180627009953614845297414539524744971473044316687504952135039693188544885275485513376314588534286335423219190183651285127312304022077586954878499179750835868723239902660731991850770719875188046603121201674677972735044822842014152149649356615471628687742687564162716494376131523500191525152914512447885698582865449415135116029100898918481949434934589249459476364744784180767849925309337417042395937297574399332010158984846886552169931306091215573411907769520016065911534328115026816401634349670542217871936008247763790241866303451443751575515322434683069083222668627508875152490826652812932720817668797962826688320032815423388611597791523226354329772773678179147644923648382994867972465447629965901205470969829944413370818604608236006736089984228358986230160275895925295056175640009918341544635845226657514439691474485336956750746882369332743628329309424362913063147473827928291427745049925620787545493186600472430875114199243375581000857210435550468549427125710653702109441839512749470512505817025992260646356482976955016320176330170405186212052893426242974227731651147158832195382508127967954585654146699853061242364294775183177386285841257645439566022272924731061911988106867682830523286169027755958266246210331404448689612892372681674484741438559830158137449987948830653886255572356739737614930340471678517497662163879293850770441511254717173698551842006618255942163032206093477217373385120002763366098357279637874711439085680716777575524462613861737263643656075115013524420676299688578327169424756954553494710379361862600282594332753782362302666376036414194690419628490277054851912810517039321008547185988430822891744484238332488022819038062953692257734001636541765402684735117460903964555697120833221462503301829985350375691310418760636135975851000591363528021676227392566296016516140577585669513085435792337060722569176260936028840141960253346547727344091632416531370734812923722825613120601468905884554625762036956460098742811735183200320115488661880652044930956472732103810327099557381796033844111959370517541632405983627659938503082842335259272905496022622920122787224816846246600504093827013291758089735804499320155058212118762201325483546577808220076922350087566883988496665195344027737173137783324025153349680484421499751782182848204649414003256470611316452947649855606531363911171311770825880867938761486511675549087114743470964304728486036920622258560640899055595851021551537605423306445030988638844083223179994010487624488754254927894120064583106244322441619564674013252607506352991374544668385918666729413096009967273090681475994128623198270115111836277562063988262353326903572479107949002189500296690245897229926536623055903973826898417987543989571509871747782824898508311540476114882596125188316956210507234392012326272629935531268575845351240767744793581091585024221595388371341865668730873950051984001707993895838463309571411583677637219804973531021076318707570646045490044437931987654254541844899505826108465109681820561837301292795879914403068699067045466998443408650053135091439410587131715387821837712913523996319768382455300215704924339350236327286310658611149287771920435002262616643255155259157658378257786883184380024665683831753379265127018209619486273384298878017024536631231122969214455506636278155683823357199690628875047790043307462955214615624835972458960085263026400626127156884976593474107983828518695893173606145004915425337980344224344344315400062386167171000707920536509125583036501498433048187109471161214462661398378574751421944508263280264291340295675428939905799700160399116239038941005288162727065737826444777371661138243521703061763622135883418861457987688429471777273965866389140682763845091663815450899472849989909699921971390618779196357759499790793521591371073101081839096210829585501596661433476380765289436915969505322510017591885859674943283254290640135481658672839057829199073404605305127852349339309113886567200354511506698253866286178656661548883157422376290409834375632706234545423883278530869418648016125995179816837952254409665728727736119590082742485944844721228436034930866532418939048525280265344307436272582932822216079848276044110974873802153884460957088875954840050413796264689779490587162603240920856084962048912090876829416887823633201435128225350964345451510596471334105960810766919432065884161360245410523662143033990733118458995186230001064432427416611999103153655235022542347146740447898985105089481214647433039652795597188359650149633472966568973850781215391764975625731553802035194153748952990796022118478999757853458757124616735276029628524769953637714720029795059291673928265800400562737261571139429795531818092321707366122055811669888061990532543850340489534380549687035487453810419534433200566831452767886380967107602796660918168643828359764322840821362743264757299221323471992695857846970437661540293365495455409552704400043375484596793159831414948034968164494877411006867103377243114526095871236806134117786872478886704010289746360857008047455914574355053835554723464004664910058922741308295030019652521109786817322454885701571351035578604248905606373607071244536961976079178643096774583376245181921289046236284867719506184601270560111115116863369799834832239526893036319477129244539997479102905698082138854419608689618746667052040897554930290867686539166253066570846842380191119484963482905782630341511632628765226329810555009879908429947370011587257618410779484352035380456246297998276616121495084519227164112551889874174096478722254093102750118020676392822036215180614241342984731181406367279382888615200106499425894322160948359602233958027406773001364816629989913664473975119830930185763849469306242794734082600938210479367855386811581944137702374815132339287615116351613446980301499966411779983787095634102660914135978066080968363810214692584502016605019467452438417545916636189457518140962361075230228615185884077903409519164469192553266133461868874613790776142079633085318129853419399340622524903027055944102443096801808948591677549620917612260513733386886108598624636081421398547704312350652171447509113733422825010129373308216379744696640707359839475888964594319750039798847447121844447619651338078050561125314821456827692375117264829715042534655029641748573469486563987614540807833080361500535597072393074217547844846929967574482889700803465131243802830622587988584417313734552362072599710338979935659722002324550369826669142427687879680468400665426238566262214590695960256073316996497677871620314408165213069782992491039969391577391976960193832271853131816160584625094588392468542551004449667460293766995488540479609887663095021374121534963096493964211488612262771931900432422890314708707491662381751707812929608793553935585549254781627696972740101144054525050106261490856517679422666481109871267788115584641138701420204808020749527699320691719353538542511338451092798513990487269669978013427449016288835336932366046361185306898095911262744920217095255632490078460348706250146486798186776026989130696818840547455637757001241133579465272501281684921320179469286200259462379339014943844837561764242058073862403878577155609497986785746559744348075731208641750922356899718565584283706311953433290389574949510627410329829342566722829981909262206289482798825466431094100153706648841892206320542273883185525704888168404514701514041325967676532249895211621442982932332533835376011163743959097061093433584725453772938311892121898339246784504997625461408125628706330677961690372052359901290969839172745695992689249669509877444391496775147228430788694816193249669777242649143331045139544167307354696513496840486727209942010634178074765831492962836385381630721938269531462717602942584763169825561838717417095723220584731663076151977691020052792292520703380965661866258565891914096583578717807267889848342398539577312460538327700231953542422114214103117355601437059706396657751924679809931143597998684424733453933677961622114861494462544078185895019975437050423423812023010022370836179680665410928056243865886988782655823892507283406465170050215417704839176945944769772556542680744844179801010935639601956666836166046819119762517123226296957260041522716783255666753685803760191135494793499117297418045161368439698858169744019816057126118341532463691975056035318989941787039566156415687722065823186310368311217315002315794385889936170629553530072397772776404570206633340352836410468782645144122351414953955808296759147288980685175954186914175051066739076681012529032504212710021766609917825802310491186443150167567235473514130346865326047553658414078164090968277396902605688961836883961107705033235007644333685983774726061075269951206373979399800393271444210044762456303872492833746278106500739018823152126539848117145639182891743548926869251726294475540161353732377952442495346680247373314582633156400711658388059463014956770959828645915716290003882469882203256841931908464708204144793345302181082601929964827794343763228385264175071666250150068872172571882810839467115667210440561477456610011114979669076899169404082653333812265724203639895687673716055633912330810303259038595487310210861022739386282046441895976693130993056168274248348048158294557260277857276539874998264295478618337615415326715546041658574868814307590792910492817604380949048701287164173037027219513021398345480279265933106355196060710078370722583501611673844645172232008190380821309748975594260735747022569019652687611032787053545368565782034602008194890888964885545617130026837446329604548117615829669303399035120922011806392695105018691994576683577186125679809042794977318756690171275044454205781260478924564957290906481450486288363091172175002224041677006673304298203826516271199857261125019307690581004258904467210674737900905804016044708033392371215347846464961390740074198014875972935626380851068475189208016572820893981409022788513664828880442572685493264433130989478490983332130568578138996612915716095656329997309259483039393362439686153750440961933965702977889976387650719873187681468182452794059675533513423430864718838046263286926228773650059937414254601122735754974070364907752307132194566253373742312574823918776579244102300412141375505566064922939284516244229778097212011415870606953079123268699509856032347560369521013539841082881476632025393912815011246403524491570141479677313515979673673083198283892666464430851834970702272239142971325757545936598269190494060605357727246004740403756565450570477226868315638116611967083733950225386459174036905126267812126892873470203768561106171311884684567635607391507397593976908985269171589259581320659880272562300076337866530472243191803481306132489737136481591279821932739620197774498705233944800179064891225894777117505248068509473077814071178832454041987678899869927030663270121047950162440026064023622287239701977276987214690637651969353539013658667742988135422491954654986904557526784361038606790169868455514988170467730464200675317429154852902757424555869589031149046227921737388825772801838147886035088274934991280506023636272553267994576842477561939191256085172045341544749780862639315943280533862211227178016707892821887947720672498972775545876570205074100097434851351701934593861272920877284573105383799522488427298194085203278152217359589273044497185920916559361433890221879997429421953525632679270097749295580125780901239064852000796766761885952343830892922556954394320413630628338507843939171644668460470242456509283292931007829565471649225463667530850866846196241037270439494185713906210291192792376439565298403310119984171795968912124925813121274197071814673580079740986871655485210603206714406234502552121247508133788987588901426835505769850748994371620530018451733075464706316546610494764249311760392372448115391936971680166102337646608785552351174871410813099016544562206732729593581246567247761684720491729546571720706389547663494773481127128328157669302384731902260410109453546754405065311411711488286103856554523268443593849788842420515213476968861560709084403761072019338801030360112725557492978952644917391212140656931690875144229932225268892127410957237687347837050640377005998474396683575681240915843603714657901688323560064224190421862778017649410565016449337387230881455353449695347498061583763179046430708529492976887873268919992126754213059206406589155888173810556929989557534205103718996743869744507450354511638360474531251508373402852854612314435380622928329586916079179220699227727453837819504339993678865769598904775760154587946487821153805303541366004085694399972688493216257349747798340252827255606686122522256012587582768187745324019290303977639391981117885151457047832591063603165063954458775761790804426258262116411439974456615730379100733035580206998709821588453919554133418359487244359331742051436193666079201311676681646791885477814674723356835133468585970224770675497182707924759462672503582529029192681304659894352080540218029422169603467060204327379898856248833808127662070955223685906234410545234466939662440359787336405116500006110252136311669955165582098375037829056754751904500171304882611279278145624234303243983449907192918917647103058029369075056031767401642924855974288373563134305978628647529694916736928599921290605296682823765615678773719005082669287725613561728347483807792308446340263349172086899140799840457027451936347084337479558094183343947767442520477424705616795815903116591026576497486372039951839741427651614832205808869568647953348761433122001134834278873484018059758152590027237217439815951167032865199575366256945403605303577424762692077193497766657346774924274497233443677801401892490481348365106383495921691124411878948518876850192781779889847738087525877174227362930411117839843573575595328610455010026867596278218353086955341883356632152126401994358972977312993370746268270636853017371837975916612406503601328835258459450902949083218514832822544857468399673243693195626597618756087464369933674057706685383610876600419970061786765021453264165799558870728463677023103749970113069712025803922158360028448636703916340680306197840524028963308607556487384283926896118451560340908795892282187177894288885943881019401216484282823334645438572403079877693643021612051792360072198406920730980020776772611802253372728930540726588473267373436221334355344340775743731580332741305987698674805638960366675597479721817202150525825865443117534923354655091828357655766935452095959527345209672623624976873938234048311792767121875722810941433199062837260053194975056004575217100276236813040649202112668257753860947390621936759158375275741569522272242532652183698304044783776759973856738210881476889245613513551249516954827724236461202198523106586200858077788583086022241293526203144971426509808198660979110195992161295947519352549445111218469811679942681127642086216474829296283421161757064639751714227680530357990149649672448837048091833770458313100925050781155838650184836225145749109362447920891841163387301797154962607318582246654081734850168752763163982625850218751991816417455145708267843057791268193352179850826424048333712612472798039430593746119324287665437897140341857782661444512291208822030100378840781492409303190299716763025839219108157554575355965724241268378015619593566033323254701954821781563870764039143035095421572376000000627785961725642955824961763805830925412455079862818324046244705589599494495597895744776641351969786193201047095823851098388724108618032864211362452031258522698271928333211797322616304689049236336251492609140447477020968269050084191430292747046428034382299832653306160978811349221987289708590283091890558336170735559356529317313683371887284569299576121023712971295533053077270538488805615341907507786083824812252874964654664210277575303136528896380624947086938979968307052243993534923758068579424032245999755057839206323235192776098771530283358945859864120338382930712576386770091603040431036205353867348461666816356010288725617478343660918955277850085960742732199053391578171700101674655012763074502347458761500358333482682658202226879277741217281844967781876550879350547970480865883060705182044896095329990531235779450134045259860772906067395455972057387142627056140902137271853857868827265823545467414345947870351859270175346512535706978941473372828117231940690714753447733728709870170727098142273710539532076771641103265645376810867951301906408808161569484832408691316665230756220847698139903868145491412864272873276670083474198424575276383149854116872522720412839543801199749264028994406750960615644528129935021471228521481319197653011187992769629836131892899614530298145652431252443311469545041783835163189320312817481170243493976559509899894788193923501766314550537526508859160812485320636660084687395849764491085713537255210219536759956893454496727744266257087384546449635311618552262429808723831028928234500830957851598716728550556278946586880728777564078965990221614607740242227753270724056873409959998312970258751776128922694605566527583000989453366915479114389628461966024235567665177279957544165784443648480318363709303130033507840676541720643729979621840500472891350005656769787426667334544149479874056147396022077820805786896202222924095760927032675897808921516725641448226162755864557295518978658795712440994603773571808967704255451234222589651237929548979035413410312653293709963289254684877188030694960666630616100167339608681862048615870792376977075845752901674405049834984127272614693592934281311790358919635103401658555740703728961961995908627738528134386437396815663426947530849311455332550899778478036354301081681172541034187402069225561641366547219756644162574212500187771433111294436551584387464454080890113029375310018631284294651373739120271798224310716972523209678442511038627380614717750215470664183825889826964287549925785229590997541836008022138723019379364371443865389023501141939436050996168170670368792604666039466362059045875676782653289361899016734318641332343860129105821354842070575441887781489613152801381011201998644290449051993287353527867119950074278200856439172977588729672173780797060078295010723574732288498411232294557908278472004345279941462823739618070273022316142109148854066126085280132893816850766783461645520712013503035670754950769305164418108137680007996758678002888270360269545419193704241307793819952603207057818463116170237228171530053194372245056015659256067880413524711114631157647837935208925398797375414860375720253546547974727555721168533531440306314049789456191198714956772881525294575369161434225537194494846484154172279101373856345152300866162309499726868742971003632547025639611924170032364664688117316545518718930583897142904851315859252039368211690921519980138837862441807607462444305261668491012619203628628545074246608069225694821299910154358284367070487411594607144997464814841598700841720232545364474761695587621052705367517929146217332656888485435251153387964022755530520410474793511449224569105896178138722285026145815447674198885652588387925575728443293240296704646305072836217845129599352988483026755258601637784990918633559314987550484709862315004322355410138116690095880012167927562776239008179519055446044951750893572947486300064493188332527420012922452453479785854059124563718925528962488975605773278315089357212332618198916477712677963242066584005592805068577712512746398652265792560087350850952503197060366854199282203610733056496268713150383567310999328680923302878383329700580249628102177438207834501839743848750088078004098482417801435372795938445488290855124056209374150159699170549343269932848519490829050890902970981286300650151790173657661746216898926054784009214881022880405759866637477871847466054543027439524528691954479247223040482242373820148049936095022745077050040679718578401126015700695623751779929484781651224629197206874513789943601316074585875782010376515487745864750275418106529603963608959870712925699339775148137622373684203272891952834845929577011130539692914052296128681868078185915524716905709850516871601040937392268125663327076654404203103921696406017858284293755055028914245323906287555831301525015951286901150989119501982971840665836514649006404999281671933745700161767725005683156672890777791225791916595487399529563818182898871705721675398656421053396816746757796661973122947167903557930128815570558363653669316093624453783105674019253255469565645810312349794499858833888500804222797774652640886243400551882015195607473114580980696268381469669885226348849320628233671826028293280829484738194539779789599973816507346593619647217880789635999630113622700795221377674685029260143142122422665317611069226432140681614102010441521877347335471480794022920820428070412370264138676669641411383340886857143890792636140019464068665907359144394232047478719561379625434282777458699670317456549338173543961466577106459000013946089642780342826430389672591520417806266334751914184284000406322833396889551041098414504086189766702599060189509698186432559592589368417795567055040743354469362854346788686583822725056219447218962539128429265383132962857829598374992995417426469392644527066232883990541908466763249004604546389945173980081831792304279970824018799496128944696940983542908748304691957593722599750843981973879211386056815726670392051116936298718645182321626352312017729735147606127106890518552612298944583435534110337746334147249974681237873066082725776559475533238175692734582113879107700436109591102953810735959789816778544150192600217014040347960252981047432180980848446838150212644732750184164603671393976559870698095086221774080619689532355074710774724063939187169269945014747179805932351802252093154639940986276348978704712330010676563123437450447801832400003747296917566601039239094596012474126958006012214691783613499444130149349300788942637436916092273834556485700941820501777841015004837268425037499683689359371730659332559327235620047751284060676724908813207635736885204201860781513704649716745497920457323226308611857783101136825683892670703427744967482887990001713399644013275801771693123178469709520834252384543019488585988683773057620296587168476961947549401100814371929606371821153306306899321303379724713908637143162945180054980961740974726731016067179869471882531984777784981170057340366680693687109990385115735468186299216918324777062554776639806154472922766374231475167513107460389957830508040042759726636013219513493806123625098139528448166298673608826462368831962910470099625613220523593215356685414951035475649305329363064806335159995658131015630779286420574095901396889051120046083959209183145951236880641037448350637998122674421573228801705710532146999198885079374978598821280874857343179549573262682576460837904850539187359264960293809929353839893811139657404040857778224393704615121611242940129961948349618129413163715422952390268276391234628832673724484356252983871119674725051460564389050056431560751634661107173093142248965642035569549108132311469710718638123704024586954741491396828668003820404582134935908274481113112958544393327229494390000935659645304557279369821570812707395936681937244086115221806570625852616622816973123864497079824086219010498797270408193060824700786674256717670619426242827785996586361581894168412851108149927353951337603521375743892055721190604070471336181524694561801528253963383418314090774578199611749379229697002376876526594815607070535223909195144326268516565456343472374380506244145009788925380605318715464747814313096746554093666322669996538099887555622488812494613517859529773900727704512389902949264451767074580949624263849434196733808952596161633685767288034518609539264082026971795381784771098660505098577231106834458107657191478640168593592322920525270053395980965695970791519244684554121786098821264004287131311374904542226038256038961290922800816993011592051866648550310015413684943279065150356931205159008085744830809900331136020243601580829068546472443901238892388068309362962063190474275726128444893788936332642902503462069817057935356355630704126770112848395209691443533771514031731188124214186314279161244645002356724437521023087286404196558022333586382675017147083522794433102789427051058822538303635008266810602242316116828780314162075682490290010499285098152360456122498026654143166902820686880841271624509234536977902126825478911929635498487587099814653053822201403484286536479242414295580247518167213863177956781869753674424677120440464297383760299255194325077061559669009119748654776910826853216382242886047581052139266035902273949172997835461079230920562777568308922154841541701842893752233345541911998268220614678627990512259851831240292106037253028860092545388595563652652104106858278871014174752488740804510978022917977711934738713949327181992630310437622670231085665166754054153108799413347203362973860441104028301004087630764098317760461828587469684091332646914488763528992204673197205719103804761559120492030878870936153391440240450492702489471859995540438909460321528756595191131883663388627700066213737447122774778604779631479055497724995275345429446132779604911697961567432937007663836682203133400622948058982366817198788380114604648957516830684282474766424060234154645868060537561135342467704718664788203886594618734978374501375749864367612340551755858913055898021036494136760207364856289754652999801544128053034303564320896408735422870637094949207107517540401937951482999267833599783470040617679184325131886805670263258354803010637424020801014417621393085459313092030785049980217577379416811734494677842651850874920385441298725665728223383348760896967912753018304605378666374176070281515238378467927525807412727538778489594347938470455891217259583863944081511628919891296191746934291177389606318004118028831653922781922510525879930201813227611881887952530379913850481424003926439429798024381823630686237300610132502492661126321777628571227196699036562607434969080133794312361325837747993840466103002248111088796248993042028279966156114898928592345440994984026845247518523260286425275996180535925990991827380228284238991917060675528749125966410870494005088036736529442995281014077481585649771808879814897741933321965080300671113292522487757838764006770513510651263344987256559556520558867736426822500395669544420257958457313049007316244507448188089900885013899729897809174275510210386554561279681023458867284757828739392335975181311412893651666453342053086601507125566061964306519483707631618018836715672353689151675853942283747075148964960936222927730173760519045792990489093736181516970103616178157198228051750472711014250986715464897132533716612356250948103860052689599782906010793990820170316127437668291259889968066067473841278892233423387548415999748464873461758468355177539100320622308628804779230421216691377076735961571231435837060118698524544282125809720478071165931117699977771608993056489078272840262183275578341023529641617273540423648644568219886390421382603747846040836459522960532452377073776585686176672202913953029595530079173169009671900998490522806261644196013077242659495392314658135805940202941758498491824204989465743342160839537707636784430685081666250518145906363312938735893789700608512306517514111248731977643430695419646477692224454157989230319317541584405906785080964551222984754837404902792256522485690636712275711028648996439058967333979022117124758773520090191514780778819110113335183618679358599361068335431898120999726166980953804843680165799186254739877891071566081616043023703590410829514003004515399995158616950190618511558003988483095305368986695608016425793366159657395971702336812857743813361196151540102063703277874612440475653706588725876519025998518503816477200187318619824172562833906086197566897709243439225235980941843266097288522033274111035428998552608256268414961729474825264752558339747788821482347153089745554658829549406276086918412979785468088817766083430287374373830846112252507459166909292760920244272292870343822208684094164037205270913870443186266242980492995782089332467481956247113232185186574217060363758759939433295062591391778652272605746921802936996057068214718214445665091413410632442208503260764799391670108836075386749900288633609704602877101037916132578939919485051240369600861804873580914864451069707239136541439784055215814731975696729384630306518866794790551758861751142214708195572835431642588527170845978123376237619507632701094546856781083152322431372615611855138729786928919252457575949766165525931520330045792755685275943098861376328973093837602899930630180672259258626371468515477027963459017022256770205170069393943700759041643488406125106196970887610328709886905112934584282132937443346680578296084269187713556181315163423631315695001435839212085131066525888061962809273540997341385047876325124391609711724605434026526456109388865761565623025032908036570920206770299098143252076425412323142808255344441768761986100032766477808995456041253579259184952061106860570093599009188530572439781340692753452646374374302823925579063332101585975492613719158482352944387833991262431379253912648709861214814576556991222304596639938251997475540694055201419255076827184965929979229308368260113977794653055963811592064755052364978247999578437894844228215509161228845660333415873258375611518310594873182245903804725528185776233984507847048477179849419387223299325384179947342356455147398378420991620723118150070814633859822070709196454655317584612152521169962584551132113541081685051608923218357545763187299006862140879049095706205879825361240633747390491160937000281006477724680414872763958444645980597015281707364911544868474968376973366065254071666692525262844016827066972133144043459169081712986898110007993034191572719184398621400989436723704117993933001998499483535811952042714270540121604151463554054171181062097514943848967499848929962114517202848852971871222885702467161932439972264392730259544485741716183572420715463970526930093969516115847937315127204533118394217312964468749329097139443360844909633853488197759105084832130440609128370019678732918118964933356683173321277638478820168537670497287496655287441778715258923794503623653799013650232193149617454951404519732984696718669978254887189671562005008762298584048049014445565794970840148061435877025332856743867324516719428828081259977093439453562757114357636251464148883514470402755572004988256780712604203820678687845193936555808884827180406411628026690326474078601011749499743031079946128586801331707915255326060697719845921016329054086529562846385390706544484752833883867136789664882109827318747066709156793874883777498408993881933910928391064775132463939336680435434537062556651855261053944030541509404961437243867614116863894800807792870317548170797672801366759401148017818061348168566492997180228765850663600866482754082212893269064266842206730177116804806112188038005097436045258254531158689904764153343717184979112190274323558878008829331352571225414548968842986507200499803006637408587916376616664215604754771171690480518970205390602547492171764618135112532125350192715721913516748149651535657756883096205230092395869507332427236687903547565648006320026638412558593222406950705584628653604026550907988843187291913373644648687230129628887440378350885691018195082877927109047779263816500523756121923431362302006845711604893710267644593734794496969814649366488843731049905764343043209117130637312601752466365478702836406620288860740002477363541152886701059362835051300081544016945283198222721074391873169134611714843670476232697681854610990575650702492040953704666034567422879840055445743261455267201696536683876504674741971947041171643059634754705900697833740859720195795553011826251464945284784234813197112735835443506748355686325024830358505687948118738786888761423622818739085606330667491652680656399615965113999275564886924714936110934659426182950717762330419448528882562062573360940029764988499699469484443293811789787009190049823912491061119616898138720649976991810698830565143677144479539858838803457833544440561746726139898029686933251689390748157268489864342933100688220467989626065786789691148055074891757171998701198508553581725177883173771680599613482458321042318112013472736957008906425627015058161661459817678678397472460220705123762647923224267735460741006673433460187048182761125728010183660528203066349310255231097515828962837209378717322531515559321418292334060831302254743135599106953099780790587488083496830030902988922463166201125514308548756221288175798081263078443273237175424409947465783481006232191729978569249121231445857805346830036472429311877770442711775967939357221024408699642836948020193963421059931774472037954038435164739578951711811391719165136373490355544319880885358496913370694759796557037406645543942526473291045545428234451678683632868935084757434279685215629429703658544682491458154342531617323458265126083603047146537302112166165028541995017082610543234055402237480849738352863424917667131284190744836521513877099602427468923799194230720553667354195990730628983064729436102368737223745411557683965265339663874926062957741684784688054569059605252831492559348022905603494335757995832133214252161776168139753922491539507833091520164926105304463772553227748646174076849734723368579459114108113706670996941018107743977614129621486269944018743288308007761697529004316387742421775273988931186239537273463213393618173333449489329485620465624306852325954692460669570833134427793862161651085156888559522558890374202395169141956300790582261331309613012276222000026012971800288313774432589650186475203616639973849466740600941941269240402750259901117516118130883724924150024027462380913385134970397386297189936750785384522294571375601460980250799230439122880816202089475629566733179026784727066437246806362669210842066697525295070956332195666113521717673933536450864601346959462735537418728405754416617345580095812878005697379196577560683463049728048524056007701082430126518877984048030821633137264691960664260546795852106266820509529655660716626860657297407106753117041580981485130167831376111899965775039750733078631120411364024773091874379745434294303516753881461753639472220169767496653984894012388582320301752290435367083658923875965910311320537806968925819599139563782518553704440883345383842724600172817101290416738754115384825434582127090616389826828084919235015735719781200719565197551437025385304534647988965921298197932398852937627648838039074119612326355740632787376670516054233308235520393605451088955483451125554684109751173280907705710863064052750875961820902125888366607732529039673182307648084064631989310750167773623716872971231080329406748989990019946952732445990968185748129533716898469788087731739643277807437633006489973016461223119824975483029113452775766834747282053674520448023686380465280223584492572795602234920033526675342413355095751065035702106393632242749685541813345028376653044302592182164770321750406182333486151460362193420762690540460362479188397611992109872228161398029522565127442565943269903295439384191028538052570974501788031965284430672594336789875368989273211729509209488738938941414362320920005934017975300104911535937029971581729503645123726682198541452038843176320303498474402204590727325026035471562457738281763550284583518111529574926080984119558493309127501505086763334872463773465562854099979121198152087974833611311961873535282765908030835923619691497432326528747110054413463175976422974525959355448098734409539890139099508742842852764630857958855105779279566950438870827945746132819327515971080766286897194174442936915916727748420748403757238092745059321271458675506089708689739000672676654048827378225012184506814937272067178989250320779746007641836289060721897418996896678495130388874676542342832341887729585576159673648487632644242299454473818305388984908919072637642143487652089620256457445681384784872879728831336780732891831641543622561365647182904391885063343664842580285115666999177916628031346692702655447692420742916218667508334886644943367217453884666328133888932943269507725580285369844401839902387060770829632920316948176572097493527277976204148504679243012232378300087946654952208823164957886420045498670913270250600550211214618225019478808141111609377185089657199744972792115457498946253753401343222927340811020198127493769266668443256722033407349479777206052233904925204625482437361444153267520448921196194696029742793786512925762125388560887257514053662257715651276029711840029369927637467920717460570421988040256886588402500170848156933216610151102917463111033510822859724148487219122821548411074816587236477731631217690666496380334050060351647054838019524622782209748675527320193907505585500324456648383986368912751699892606404895996042786574351963694735292934668449506098580348922531369498378803431101685968635019841110677337626318842780231292975367314022877464402586984266115037252395112619852902142424793376246183720141410736359219999718473787205173541698347706048596880641861873424193485017787281834181808930217553462086676423736178432225820737255895396155547862526046879536351987419031543392247554315939360032743905436428514519295663666501600140212257539342798846400478205510304659612118019614755935004108407015256728942882874623825031599913897166817323819295487634402738122764232425572336512530429917895138474605783328545160311989293504256533353462506001469846393325535061411671222675295724949129396118746451080712334803141703034848655871785368879092162671668801923196196292236418618704227885678685795450571886953881887400312323945297853020533607342027998649176070879447804134565572581089650761857203766428455042684616093925647672447742043091992567783598174791213443590868910593892068006354084495395363810388076819352747834318604120543134281627746650575207305555545138621646140121742924916319101712559328275463641991093188312293805108390243782609954642763254362209503773549110628235887413414758806681890593202226068865826962478259754602131188385629226334442249784784268126692628097582165836597241823119073338218482032033308267888464940816548811416464062121003741143771249987725290355094390161760717443753792302456451787777534207551722381531426831731781234912930746028163318022827170230279690335043342300728772613596263365407917594854099106480944489758445745677976809129187052994475084764352870696280080776190238464782834655108389910565705036960530407840186218889443390156805926898615406917374196280044919563378491971042944050456925821673144296743850457389023020350507667856053774894629154753978085442797690725830351878163724444908126037759304715191937311983427899243601544897372026475281440594333141222785449515338305713948726723853069086536356447027634679378468349849545038929272040768357117416069504408584754441545146422661315903869483418034572502437497741677691660224645179850881244272909504561085124175931295705263545440472035854608935972734866202395575592329741981959847039145853142985880463805291089848048513778789850828681024474710255348747986811004875578047985884470362576641685690328091540375694261315042122663047013561896945872025865177299840816989938103491465538677502075770592632326906974225669136293162156958733356461214058804380589692608802373953812495008223773662950744339779490499216766829080995449719899258041253302497266755844151222405064267485640193146680963863285133884448347121173648132431632712966841380084200844537798206238286216367599972592545438608837998523255192566782901319627936879704834451285688036446086989480696766283802153308109128627196743539925368325341295197300103313280217583109730575711564670102397078476517675219935865884239941396329499748025146386193452469105253420392063083403910512339795745564894096820879690332288466066342993794197267304568655806941243189806993192733021292342325996752850690790185459522712890154139501271680261420136240586737878126158923016568541502575642916964092637007801663998646564689226991827655929340289944652703122740667831925933249426973858385927315574781031823002351477025593871086920316914154421245703275975249228430466730336403031235173450339622603359612634977721959671084560330052195536439432328774253503867704815472265719733805739032337171114253494427435219844865847501633953867404836524739140203798494305586784602648024106010767778749650245666360412120015574097212076421350818602942904917217724225588305150359394059969970247152414192288926206211743040908541353740628467585822855719226597417196856449642036021429964179971294657033069356777676902844973502332660731115605248723376746381622844512689363810221113376848051980935947551262268891017549662742983880511899980045212891981337934696731657749331621829314402377775401172655064458050751340030331912107414208498398394777046040508920155855589669352478938493248040836352272574729115661576605362775666965107999612898553935552634533568778188521477779196253919342371229908883949100263160922148859357667181138103097561689364627519376020292391406162435357392986795654746746475439074726142998700725511322383800938483936338302210945177322973077151004328915862164746951525702125445818629804889278594519277327935833991724999882891617433184099316931316705668296190483471858625175327508295689610077697564437838351493977055373305719004419490205440795196681112218344462323431842364828562502025359633044518152764102943312138845397744724486862308808437488571590110127401301574059736383162317012979373501727702075019855782614832694698747272000035967997325315601944663527877785193551235647041522225266445603580677599117563159540369490834941161311351893782338508043554767250334498073401836056848554507483510337764302040126035293042872645738134556406161669771893941157692623059072311528201146548309669345793966892130231470520971984786935991992653533795867820694527204653438756507232051646318194254599009925038640335140900621569723947261335793956369416335961253390441873931279690198876787049346639953009810776212832889967499570496285517774584961241808289897213909590763644599341059820194610791041654223234097317936156761518337120696900269409828480863752321291687807628364389926880454021011216396335788169188108305124635299142587796684346645969956721679507570657939398288551960171876588338551709422360009876782150727133983627606559829824667880311287088617509213538872680003062618413231841126477607774057315419660663288070608495914598401470312819939450951795520898551899140096122307875291695252907449008157754856215043209348994917571071123135573001136325366965737751925928466583188338685140669301695273543095153176738889298244757395424543937209966545788649821830129065257450193952033858965147822415421896422541928612595673874492217023369758753573237172971248933677228689348778796440414602381666104905488189022920091281858007708436036906593383332619234073479661876792593861198211518594670054950554258915068704348686258624794142099193977470785246489943545352134145141293061795610681222369927642571631976351049373359260672109982156229131157155226262511223999850383946361560556674082311091172012929744513580052782020664171073438444838733968723011018494425361394691613189699704178287437405486244311358848813238399694409430177247639741746890668568090406224972798737689543310992347733787173895134726518965108265170221998497898163079076833087625858949256771440930641706218941180127758455882446562177328402226534851314480949471024979095119835049420641495519221008394755291539037608943353664023572253579667635081711108574858420955219028041053515104440283534348594518341324729673894612389611195058989161660550106960833334614150847989049757610638547428659159854161479400054315024720629786345685223135522384177550638425131070970463109054611959510884123608288306493107757186975637072277190342338689616204065768674918031785859534633646210518591735483866347036712200677476340296605834088448430967900890084672623179932992787259529115159707800090653860705797438048575950652679638810388166953034137432666651058206653933141180462621549754801321761936753356831993039300673318031083965183954320973463974972307515800687419883090482818237837326196084048535309868079774625435401611217677208405960840236018753870996292622305507357629148987866409604039038408785807685296192915346781871562854088596358432947764321541144094405768545268509544128080887425378041270887855253205262528021696849401041908477963073074868882978018505198345841656240238849579292901633242999553777850099515654419097993391997854841764582311087941126175628942806997775975592573768665948699624362183786953155674593431455277789209563015417231760352683297435541543585627538558139617756801793883397760109783040488581351203054545355645134439835209990608002507307679782946894002407679117370092827019198460477470185178181514207439434490873923359577484032745189278818080297088098834207074073297508671137738514950832089101095511584459696984707381102225370943058952248182133348573482388675517282584331231238471290947856633692253003988516233534973036721408778236101969292941212061284733102032840369792840725925606821031006866385462806718757662386850099304903786295646528091327539396361237461269815073681657548882489090487880933556367504637229093389113737969524463627585785548231074684205333316799564491797223690245866505007426892426220881491917999654426811454523281738230923959921138881185564817611657644289238438645899127192433243817468347429212521014806125362261178521425224650799231747158169247472013846888047600641462713854345633255955240499606855123040155190820310088286514051296933029130689632367805679003225227847537225364908308293647908869805999872783833085437862744301516736603774165121152953104819709858584960019518645162073291823721430781014879599075439965113495524251273668764312294653199725604905493107465423753388427789674694394567799255037742782376340308522629471869344966149971476739161663691794145908861688152040350014979770133257008239436227332885203242924919902623494317138530567376790294319077782677966222797381825507431122764535903811088271318998865500111647619234031324958904690042348261300056373539489549759186710192042260129215228559911410329037990040873057920467511845767713887158845870973642841412896500877481138684868198940225675652565795749021674889644327637923959041015097286248288206263261029323131670293242689894943773550958055132739102580607626385477523463606827313109278691302732960133441418397129781394456296440796564753237960311667043378720422109097423788729349565073180121819527842041364942101067899270429667793652243736643030788735581492084151754255279559308612595592594046200804084197566330628601938420791318540945250447568481390652213875489698547771721602995113500726747158753994524980831769670420713916904036640888145973201802980106413460172389352019610270370131411991256418271683589380207679049383381634817891017582219061160314785641570488152880060223235537080414672193211181847867398798408000729002028356908818097551690446291258477757187774793183205641952069934633109381619716839371827115069757874076877345604760955754032995089299723082832764565731826803055532989721253769155581653318903781294089318439911815009328620981022704695733699979658414333108273509825162102478652938827588525953516551173448638864631445615552263879848072056160442925805163948156839918726719806861178319551567257165998366657039232008466026840396635134359546196313106735855081252390482150926757104538894263155411512049256979176446682223299023197844727405011318290848632009957092310136307448643546608474597739063658826715430616997296872823947549797641744541740322988670916367889445051144410407741327797916332701236037084663673124162072653733746478386504133399364316802797045402570792154298714052499857854585157544112264082872655409261799062444193493442572683365818434216136030876243486385369492547453970114708049192595557247490712691641436655888047476591831385264321065542320812086694949952586323999829814764841662625608468283601360816625499832039442579659409486447255447333302742285047087607596469256327800033831982834732680413284821240577423416641222124086036722497197897115184274029543126985982896193763244185939572918212578284125610790406839215923410089652294186795175213293497230793816559527940186774707075510057573963629093081757486329669573737980848652762076200345137902488932400745474132507526247083126956866014990180940275325694671398148958933184420232614497506951230203404277616475316379508047351603556889604112834747207510733724554379424410070484849941505707449727034306557377349405039286074389064761705479627674879576351614553108695802128735740049841863683933063047683724276720079401954679184208284618353953158331221352702200666782821457640840352143469574880244430780722874324701050077781482379436934270162719863197564511544049838521386257906724782038468093622626287816492441055366917303245937591677941807946225029165720605684276081926419959734491578740131032258089970969910248101196016521324325910177833849403883897861347422769306854737498020052043634705645492636818872753141144256559537303049478633956708608311293640003245727150737017846747434218973605284985476824575854608261247534339840248086250925153530893262637441257506385973487626709839133272044547647510991046215566772895971183863311139652408620314849924510179614597357351467017816968454254272184145290547196760517662729685054155062204849934603812180197279418028916707184057724327998844337986302227346993881701041848765950136430664832341041383385635696443001010967865686598425636062957070202751065031978247054270484285885603011194225560506226935143784975097279041576649819397548923431211135109097033079027662590971378835876744059406579233518786678215408200751166341944711482697626419005856604347653027417601051966156925662795520117315994163741949585029626129362863554360039561896209547441149477467207253529095824171514230385255360782397653787611367527786794967685897422387238867740419355098352760547298192841199748163146874762294113587272677324289511385356275582441796279026943288751903966804981912797325102339778337570207515148452097212091987884500941173978868165966966136288580458641936888776893032494975890004163413851867058875616973143378255989689944572722330930234518369719313442478628898435725795816143264977406710628427208149783896793016767431071287730407707117164630965292003341507722784197718771049495416815953470825694701343957222704617485255340928265596855174921516138974194655861323188925463455247746571550229769755192570617246643492866900370260668097659061802308794406109867577106220842235393113497413800970231228092870781830634138864331122954616263791758028949632328657136844568287328052200988075080572590743709946451211327225000840261469235814620863187753385562416039982956478952075846517323677468494255464580102600417202860415859640069056865229344191266065127261342082428395434772281234873403900930062130743383246173774454066549345019819904626565375171235245228460741600344365540575029369270334390579707650308455302179809530611655628590695779607232683552862751363091719978212356330842663044645664638370378046455884831627528760455895904350776469528432250694665475474050800335021012961479025286981721688011090506396803216563729943303154399714869818957045969708757918503522146036626814646994062396998859500796370267671345325505008802027253046968372378590808209973680808472706869912380135367136188444624400325587232001095693880787480001198719984990409131401132135687114168846545600830385740259323348561112978212488093303517053435197663750027404110895345320380938570048101064726506640876731410774673318355579283880184925771647777849331138635090812618715904091741418570311027560166115014684901242504772207651465878758573650635973165467434789512433451797775610667814388088277965436789646359494901090054566654523378082626580691297695219005579326877306068789310065774504448799769656270929631980016677932049417449053632000698737781643177008410559464227071628661736692768499376267148184251887435124870035311817815524941263951742848591469404105288780899527467598240226551775945866708079010045148746946429367117246949544350538095834401815759498377372406691622633385360716607773429901343321774863520293850982765552383811142005642983758606076103190941931749947820082009782463429977186033118466151930912971878306950418670494438086180089882557386945800689967218257348728326779567046606522524437358369954464014357937594244109800552838984634909930684338689815742612554106240183441837293373408405554498833323431026436919673535525469023323174894672194686400431345867496658560552994203721855300307807188702392475069357660574359313574180013672718318085378606637173693013449715719207194325782538147195069869395818234059770959029778928351467924953641172315384400493067517152868104677310189832806503726765958107816910392934164343247001263106236580655540236027236892140133871635439252840671717440878324016566794477531080680643518418136793293129736335323882141484143168584752029193780944381241091220272409610439844901060792527059272487368742038362590700708740201464304887517303357188733944128142253309266008851610782203342110999986918509666565281354745416216112321025935199534637413798658183614871147974281651650278874108364206163489103628579071556232143642848655047956117639445394270909237924377399338464879813893665507291640290960314060265885046177957215953134109848790375895086301167129148235449634361542484413125984390311624140289529609741738225449820846137959932666824549957209903497228748559109312449770747290255979197304698112030239041824952339604118016220320239286499642640970147586519301694070836754649704357970947215316832723716214754354773775981589900047616287614552155055603517895855817345085584228182691287817604958197485697618668820773432518877729160568549143842049558527206335782903019239429551492555208859738265066206524909634846469216234218628435553275534146416711934242391168432388199433238239188280985828390281736489943566508379717598318117521938823458952729468191042968832675006295471117053264640197090338978602250187692517866641881557092236207741385888395738547704129582067154195689745227489039040010064119605697181632766303215042577546631389495647444314161108294837668101458254897613326567240958396647964673215042607823479741253649633630851833593894772623500998389180959017194483431177689092351383390598090705524164397842093622572679976110984243443822608351515215831003718707755317867172489692532741696040090300432954846743574132097965621245255332430121601103342436902080919195798852994206898915966130772230810845228460445353802997622337710492276788200558827315520731087476964724853602380467736467547413832216794007124042613760251390217859563947973789205304919312554916433442694677404509126381525487025952714772627252456254462401862199517986218554970757244094676498686241224052280922615388477943760444187904383241631457771556544819480717353310459076040287090917236801745325277614226949273329126723550659802755730524225596740279359759557274348813758314105403914736935107336384435008312606099418283157792250794825128084991201967289338965204811581619370799059240647854604918485414404098335947595156123877498087482389196584534562358559437299438033139435780927306550824009436011161647724248720766025605264448554120424467242047265434276773191624258829881772422669255254303200508305219516187748826886121113093062734184730707948000100332254063648954492177851547208128093370544464595557178738458897174772198695588788138001918496083603890660278332191797688436952428951630330914896324771200705011533789387027853143651560953410727990521654466777462468284433246753637321238326736740961533579340486676530355963782692901947614648356624385323153084867400653300597269437105579359197293474519209192700052108380307517492405464684984267381157414577581203661168178577975625285306056365950247448839061663318006252684235571143449706423836940109979837419115617472021730751069989994991569488261774317954097313360943222202910174572828499901818346105405426921357671513650957328506700557794789563920466400726005118033611532231119204371848946692033739215620833878998929188473196030939192652263884044045000751738050081780904000343971722737721188569721005025583928873074727604130210173767187154129396057448556672541290236789716831774910088296385725922291507750287531685406520547712354336136787469265741909766033655977162027685159082905160168850109971035819372659954714172024993038330388108453913641849072507618729486089456666904664196505389851538043009861096314043385596118500812479001375065061434932177777673790287548100034672651181092769685123853316819764971918100815274032561248663669260816224715255204841727074622109903417811872817769383882091597079954007938760766905457920690054109056928033513952161541454635321043268145259483001982780759615395864676194689887142320224958892712313717749023565717781640383199537496620926323609782577677753146865835065857676957853995598505543862029677405953937803090429424008740070264485766340519684972225275972284912004339623966607176822179939699549303118635719112833244515821128492010528345470846406326406328891217330002906656203114560779704694417605995609460608681016542439302245924893560276220252928909688086972218934471938992911304110433712278206985546116573942252331515230129281359800989969125335583312157800210684202122775410275460574428385825810737196166527565753385181063349785936695099823157526264061869842962928848866473705926457351904897330054440004794042649028952993648662339725623229463542769235303276671880387352576433998032282088750535511087680609106290060010793072213006196262309300156985794283377501843212759729785661594593018525772143494577550174012803553438359704785860753028911773264814222055254589515387427768429518517319300725275572591252350988813671922035857528333741087047643560744457173916086571129177829654319017701095031540352145086497125438277451157118925027822144335461441579901514894020537395832194717307877285808513084004105184064304728362412458811186531311820486791666008802187499985273352594551055844734546634643625592660273018825542273841359957733033688816315403239904350041259299278449925671464947215130424532358809262869310884357764344336798665491696197689011329971160926671226053296419271216806821124369046052346946562511280752632795433335175075080102081892134903470427524139209019931081782371726904202033171444916559510333983035633785030750575649521052008751821335581242918245682762377384700520829198739321253060327388517174419484122485983806430476022404592227106014851978177497429510953098626039984065470758080360171865919370458441324536711241180324209504712368616044546897926839626944109352192111121390120846277666104171766628493124070870183350770819136659439943292970891669781592692021681325069730888742276459597846862077865729246796312974516909155959959192474748296027096103213438580683247071572782103429328177791884346315462069876943917377184288751555130180578816846798267899059490067359817032814823201847011133383314498669071288105230887240704228438830435342924381295877671610831291989223386301300172248570332548955758254402057366871235981374474521685262016892989475001635093621620603548677086961408254775304925709982523788074959680549881518448185198337755883820854715730057781222908602815058292978093310371208292328809392420119078406645917497011517475854225715097757282749692869385869765134553360429355409367584138324810128312322117722121722509771609419834965100591601306242233757706184535517621536012126157651706992518117436931565708447215401613748946320245383975157605280014305803740045376541143388347432253640241735047442371997393807910778829123631146072330621278967823451597596674568185865523557194092375533187223790504003423430327924813765393082156752778369825283115101077642368280627379171462999956813642483268403321480616067614099589308012496249127995585748440187248595402279740379804409534030258209082651740669844663789048586584696472445993966169378244026072622633435488060655094803395825335906969246606304202837351196125422339201421579154117131639039407797399057517918621100527685157210442773903907658722807583757956584552382986049477588261923161620450907463160969978564521490767993166500502814286141133900766464855443903077409122665489061628114878841614996009237211466018399327518228326681522947074140961209021031522731733617642550103404129450878821118977997082418685185851122675335175644813916120830266394752087151778101931240366009928736959181552123819038186969998646960524133498393986021774190095076480780349326977261983720154182880461585764391799137448776507104628324338146756962498245383760950295942125960141574170608311693362735962098196016545243339595127398625802282595755411395976764705741560971700617092804077973360465005665623137234792644476570873066480677229763065131655938465668032402174727959275395639138164433587619770879862140739605789076726460420122715381581896448552069753129396664034533257025777662104099842197904276270665060534173147243178820031211776320561719188099812934160290920385852339727741928877123241961862343700541008336881823149030066773824787420354512081353084902137392208464085006950460300277193880292917658422719890681979569225303534723002618692026399959096793969433213804692513878958309134113489981619281248554840034738205401787856220692578526731837524820532467646573238408084177585875853082710789565514437579608181420420007648336181858655277027234871613225474025754431720462287136095935003822412015294171630693149466625494837389033577670056575508258068113969882596280453955269009018966840831918889798090798893049490914164935889353059404411097868174810456659369027887761611367203573965537008802646247106953477293118692101005664028827555313484928193166991490429582322978615669467619164240360468940304071285558604275671416648962986447455945976475892782755278954965187750875480410474951555349016206216511784469657979745246186622163881786030875308865585913596265137414134352686609447104792145374321286191745180765371050539470713605880353560203761926049853130541381657719140278516021384104227600924608004030703619423122921723282114295501725759634115543011729169546941839100101718297716382510961624936341902121073990356758206576307742649696972790038686727253576209936756368400099377724774776907653530842480640821148131041035925005410837497939853583058944238039785558998873590987030662552739496626618495577408452779762279340176180056162922037402672775053932864996506241864808566052367128963911952216394866444624973586706273806182688764009626389418650310685565055128644749619250121312560688535248604995703436830461829434571379226979203767402864113076497500946808062652289179668794338703830754284748888191915607799959925953186286923459394201452173227735206910254775098649760722301736625502388175221335510900920836752418285993313735804472043211689029171634301155604788740988872968303474490254509188443449604989660877809072535232394312496641152300481696187157376664178677975218065354585911255807453784794737726498104183436278582719553686070448201757022546723463566756040208034071271963329247669874891782682751780608235726552263473558129757696627975534900215518826828604506652233318724201039821888649530914022152529107830968035903714994967752767692950131870464697519127146371805879528603501273515720023134677763824917085935962077724816727405535692779062401276836805789347516889044631108926445742000573041990387234013642057732226209407074361494451421898582075378110930912114328444247679055976491809476631707563646531093879843633153001189165344921831364261078458284737354762471750474515184137949736599402089559732614547703169169469622456042064282990807867432533914183576374459395408537501925603055209287313055275681118274216547120866269406805994156019352922849637841094672772299174278434036940501720954217747148627720766303037376321650164819062158119390275225940282936745181402580604941894444021805885327882432881383018346309667928692871676263209438610147578631198469097865075976468607879928976732818713436838691763085216138219033439637779159422797233309574897326921588421161554000959674866972836963531759711805415776025590070821858551877827006062572597854191379453806346205097064131334763506741301883303479953661568447936349059540593797010795967277178148103114949966265538798892215354704899824757483571451937420585269214145372528735738552263990151007934689606071470904608146325691947382918667820978826376252946691353881351855089965894802375751612516516566518817672994814699728971456425888486428003069927755509611771873291736740636232350350334326413152461957562706329078532109696255004704001930968967493092242453120159283308827948250290864001682079237540404075459130977735108267858205740226902509712526727342528085091582572112799546138725611265419532059244826826814361013869306917951693222826974815579841772174161780650130452035636220801826415456299787322921980823912454805409908128730170451549018525030154892654037875282910473022440518608892992223898567244539069357478819776852081449232396183450342271630274869192873266272394356590081516032817378804226779467801002078068746111452212746240358503381768063343348822485397957741449371581837972338535957045813189430316656579833420381296030792295698807790498760276624022827684283077558189853705128803349787597530035913638501094566656981761113402430767774876318188323922614975502556619402891308799822193985327997773950992293454279026811737006937216279484277162391189781303502429236932261044142758342871783434708837728632828629779367623369210371520795215051077141617713415916897604872482362702365657310421517320454688237608290617548288889791408416233028999818986017033426124546036698026783491167264537175827191816383739392794800621030280552501026150183012858639635359232479940515235083065733599676678038200639740051192448761769311248135683692399466399248506173790297524918851289277990731866581887180677690058836518036249089940788791981366426638495446013640015992519228129103195713389208722833178417846557597414824175403421864605120014851337497942977209350113551586376567941917124495099511634761789306727908209479440079048568400866370786710588914104438968671814306194231828356318719741320774502623205256336363372208793610924049730028589156556774201525425054373325626072421664062989958331821776179888261117434921028247078160539262069790207831391667322588801468175275156666541439587669646178152437158861271188537408911213515657122421222509775523510511719980872403284295316747939549003697296542675915465683249209350517773458938805474167711029794555603316613526199377992971003558093820133481530405915062066718432711187051315845212650332083619314504670122054640620048917909835445209991696670136467046758777693347514239327306295443396135300566611157598640823886092474861722860819601926110308692830872306013596530978136174398012497730549553705860326465007944738137947608521220446583619782806012577710011318830662859228933070047438301372572207170114206355018004728835613225442954154298577446378168987699113416042391794182466973406398872777413432923412555986983227732368052244695520554486924647756783439299876714270007283044659582807010355253260914013456721193152203725246050973380767525862935299282620076966095128762758927127067312034989916922063675087508757592432175494170219263730880719382249492015045817865551295090777611925327654299221222278457364796020178774350228955175110859108432293448217723283229560784419338558935411632428164335569927503817953391835267211663668239298017953981971023098681471927625711393019525780480752159660540707082283235280053267542710541851976992903656430286166026185764453676070810479437794170230979285956398913647982686077837624320828225271509530761041342685772014695435572367400143942593977211100191647604213292237138523212965558505634215184224446106593874416420135468870365399594851097606312036274325092534015000637840671300974454848538710534389940825045416868087998040834748529534079939930773660805818380427663788151707473155118217704646819087258915054006559381424392759052221804486865325060206942312197487847984068360556052897202839246432725556722594293679647011385982150806527515591308314233981193525026547289394051341896583747237883582420899284006070167736153214796206642871529735417951848861668280310647092404898312463320154454770194121350365880319041827687859729066456585260553008965005743953949484899345144997191075531077283919816435526011147005904237507820812372207284980343715803579015797977093662673285342342976863000339474369510047195983083974081468456982415926343633897582746246356197489624340484892254923010960928021115528812169463028370535369555912040364834173519301193020671689490119637772031387660826854827221078760074623468380513129248330092140241878520090574743202324103611906224915510283148416300600712186313496482790275039189434409441642085415464604201450947217630580193482788162507540635062826082987266670511789316822416654981094673154104119437747081613907714696845772748207887046921416387436349450013542643164677090548669377465092928396903316750156017351261204316640818178243486893344397944362965126187714255052304477537721771463079207798936526830325750774642291969463017942774439096511714395458555951040221094665650034587064968743368961606753208589325022996429802480570607221932588051085298995250536672225491941597678961968215733759471399244183082890108380430237475020611742780045574313535132630306674922309474106942874735967510122487413897664692397814775751409917184529536551602222064222687741731532631803562976788105274641638746499440270364489576239230259256577463671603324639893411166222638770706888122256304042141586387259444932791952310953674326700160867048757065520734958361598428629628004095181824141105874050766544911163974167620844584315452739655171009337969385651385228044787664015883752946747206772620469651478558814259443253197020419625399213891593925935655223724025683522677512106759739920341095308949781177228120320487569188173555684507450505330198325044759653989688805865748999186570529707643385731391776457293734860519868277674865289560358903588310328536350554076914679886885684843694871946548028032493923138450153418036366179413575936959440125263512567837715883815267405146379841844480018426044896053442275924564784793447711525659188722300558590648938242346265594302235806981903868306538201123853278850042123047829839067821866467420009569432030946152672780524590939974401733890822719644610625309349301661095141288324235172069968614798087352435756450286513163908710551471312539000645337267290071052293556858506945676121689530511773784770332801391030362087388498586060429652293248853037974920856175763507579100786439574113378265451558441957120124487225988301516924489502704597252595571790413963488617388686668577687439582572084866459566540781002920270394497269822136051284925773747258867188017868031469867321866653634726229030626835445308569618578859024006014983811567968073014776604226217638716363040460460836971113694228717313459696527121219803769155132624568293395645653350322574381089836408389545973191493523946173169638436220697151207764448059991462484323913318362835205377572985609516136046469551136258053058683877357088606239740847250026147415818910343107780969604239944938713013858782837264645584594678653066191922424312545717268572327702890498374806218542487490286080125171878444683413499773557084914046098993438480630069300639356973637159595084870695069843248433968838230375879510577401110264475459307313513537129859772671534159270777834935834417665977025281851846685112256717215595035182431382792130484115735135218957305146022413265780044127273318201787284744100509263444262899842500498337314481756692197070801249506209037634491997174746372870200978763108205961935657720681057290382659769145644219790329169368306631699611985850442131422732874295955896069344519535476479583850001407500075099747186889065793838769871590606053908192938063156802258917622057585579393689270175829964152223773802374850707355203586028294166117035174174949431485260267865586979595164296264160707263098482567080624450981296920133689046965589739854681045284782814575584172124886202565691052161616017935674860020505791857930999919333002716619612192523648490805646990680952220742670636826674002438860737974548679418441803575762228200783834283175716837982599099326058782722009405566058013101734695784133788901355857347583180662646798612190325155875452518365508778561688609780735661365247313729494291931996326684124411839826720639161056387047535597105523956923220962863259493623835538905668281986868629746601816908432482234713544516155828083391067575134356848191168440867313866529004471410592732765188254523567802807130669088593488432093182786934224905287220227594188011049658088835491260224595194643242076689437228657991362535350758463938394493454730661916582575180768071195123423619463137022395770531770824948882539936895936921813858459290684754910971111723249634926234672374992091448385604530368633371832352146339880242395107802359044257110663584537550793432641638688239046706657199428735879064499029370701444521145771496602466157423043266270889687615100732867495269752301972287011596881720284683000156879430579183741429447689748426604398926191592211693942098680265441760214549744960764517358943830350854631166299855412279604015971381070308881123824745960219756593697164287219759358550530308979448100489501379671571168593730517169868339399964662674369274489374952558584925072802657060245954312396001939118472904080353024071289117067902729979352105499119031333965443597450886796121024133160035109458453429135611119759334380963379534274842814166786450628292201082719596461215499305939390702089630526923129364533610902908632515831334786034510775408651963132081017590107741348429236290538665975004681923971977060097621789153787890900361129443471740920344995430997786636264553337879044974625073358077716915701995343024977303239955753155812134716170019079055882857023593062357018533368723951981610341824462190048726195101375296497479031721028962439669815296821067639508126688627687176059111838153343192366436682487383715211443945898651299635619623985429310448261591646385670182862888556478654882215566849823336677233123476391630535259891654427404462794595177246762573467761979862663661106646675230835014040312321827853014428267361205758613305327883992493108907772806369611304405580046513034967584608125787370078911718256700240033271327965711244945717716358741912248947916594291079528589418030996316400249064264591549411948513333450653701483576078015297525837068828453429737033364571700295816358060897324546296463088903619455213009477075937532072507573857178271877090450386252454884355786204108913722415131613992616256000196219328330590883754952385370869713035800586505036923281926862503126296185516688204335806442288547830703980391833282363505934235293042596538074916986281614785590092154358685118890944232501867509958665604523428363244888828643483557349211698447171440447977430412730360797688368052676051768324047844234422755185633120402361288078368315184952936082685554743015401874764526401814950785889417688734194009042332952325481290212486020576888187927419192994469628595531353387079160744595929078378720743234515629097869325508202421121778790141615214498916692755182807538428084904912597970139730557332773798107023375211535156911090705395351973238732370507951131553212758942936114708855151528033613149760939043879540642373969466087835421778401290011296149861161239395059490820183026210728038801812000396044009526651473741130631683569276740907409475323787259462276726163191893229477261597685023263912403010423921849954202496826486599743632815093985127780545957460587576131517226459506253159695704900552837441246933610223177235414098950291616024682856223257830106930396085176242415367756089709369361382976010546146294878666976073637112849086139608165648800282493859868607703690176734370024892782557490179930105522070058596581326652034716562535893797478611975124795036000743144117453861569668535472059251931325008458410197314736751858336036965158650128962037083678912868500172677669920791032274270461765175243796792763608297494974479305004464172010560096300487096161757675110909625670601331131077058686666022630597184195010264252953457373908596510045559095539895253944200477694031600000607485646249508226193397911258430750897657598012447641951784090494959956398257861221890544302721184447088529085451058905130129056254173413582595804289690778562811292048109540948317175305569294052452554278915388258079120683395311002874236005051942557635208418968746213709307270779358147469993788949986689307992188276346838269668032809616918871642733997358203228940084685471594264729109428777422909621782873888734101119627250501271472706081972904774966318198364919611788698578675629060758558331115395361046966172291512693903550043382714666645804338099483260289666445155106951074384151178913859866098635097653276149810068643785310781710280498598917226850783631640560649625344206364653329339692418000470811920351656712245187615265568585865100273328870580857601556709972705159188725968775965590760370798943123526926073638965762457262063277677047832163135343273380433589907479866592399008191210398268261590477010548669241774274405643620019332618624008193799558996601178204556742472610320946537602341754225020305581987947405473886220784828178078600005498279091829447495988620777851391189952835973709937398731074496800312316301594189708274679621554435411481839962730254349166989620862010503454430891605719312491238021123350105129300969680240217911534438991037178968144616314260780098818437657118928645877295018894523217555741735023971644348454476446082104706241272848120622506488364212147090871959985987119523749086138011899315033054695222936352798055391139476941249228888747073508310888323276224292415836359051601336729228708746002126290273879637615078223519870885989736011412202944056080153388660475239079037045840637636217228216832208749119587653135620002795733996402146522477299570828943662852319767258648077843677661672652506819062701669387010231176596466559497046939984565907609150372513182324386347250474265151068814583996967270799468435247652107174029266542746600678564827833410983236898183360977744373247479790239976260969943786075342503766203180730586170308552069599227721889356925691221706236133960638265257127365616984101480501130455971172141359251112927045452415561346658162299094858016049511856725250202740986055888963581781931782184536689135121873708013838386888318208966624085041977982140757703388398020943451646429652117148987567752010744290951027117428956614203479069963697212566493327206886732198401624252552408378747512298744249646893349386156802856112891909152499028741904518450787218206345057834525037659789159342914212042973823274214549101311444304956697563632799951499798284890647553293432064650425658949531022360775217460857274053907229538255141526828503804211144841395768376885899680626284859677933102249510513726144801738069062932181723198298467700641645844186295550118011900064965576074829796800688354454447683975344399250084101295333047811189868091769932767961193319986110754987682957824719638423182953200248516557805241608450692154176201942854596189260616900115321178769507319023420814551071839744834872462642551192104099228365488819534851448917854720837051322056836032097804976609529849958351574462544013867952764810788703702411575021878811597616743368293472933544684987330820898623348892734856396557075156906610788405047620370909130325376434511320398644330921394493647816765715833422008280753817087926044336324614651073038862237165191070777662667984203601998494527888177432122856662547896077712171947308251573197816879934040321799439374776923325938247551019172212180839769685815547965678976961782100327193174351279248590850851845153403673719733225626267747933665903090712954410781197233353748594764388321380606321174561932210147166320492341662369903552068392940456100551231942663242445797607241492273250997710703969946805126194733153627194612677240657595028533424087112736978325724385953526056461640776490142263516607182043397966428962507473506468246775942521151865313010154962807040110024681727903591400559864029227132459201140873871218515881349044929306150062518491079465701105434732167469482182916186234582691757979781452561312854581971995063709698728917870401215429282894328051785873809705014553911290209308880109942690704177661935155756808654167995233599839413735262708989088778694899260818359241306616169731418195708359048020405066058897904444829309336240756036672956028006421354068291187585085636758721553284304550928916053973252663637811140330291654943669193025392587404996125234473279417746211202110985067478868596822602220862218887600761264643966703358284721655573873512082547607165290958969126703974732796755394678810490060634158989799031704682950515162262835353030040628482563063227294911699840979911096133253159524899803643017096434024059351208361939576397647367907198269150380813025328750091550412014900960358255283904978741865400056090616891769987782947386298738903685319814275447330430218073410527404432014681945286136515938066131623306764235118994926300575297385164005177205429691291946131954721594442096354241913445598086196612934376376767947301346006070515843461212821935542195053373321727164220413811895077525487062974888665292437744372969314478322889439522941599308994915579028334345025197589096795732411162383825606035977441157292168033966627556384411883002844413555138108562598649776557311137203511425013357529131561557378810472584258876846698113637343771087482527543000443824262575067885117624787607611270066405304235241233373990136075081633940902935272776514817725184757364401560081576068626834176792663420119887879729662835690083914753364971595544706630202126485044845198689971488887410368857105234287132803545503077792635546474109664686098365686352465374621086151769903191792696813366343309211818235900687176192852919227545538935201047058423924921550700421169298666974468702539746610527222210383396028673835193773403692623406998396384312258583132277004250959445424866809571298815673270090554702401484295024573034463466459080883732293211004465719046742053656736108581549837742600956857950001629342366792265745476478456369560053638322962970905295526903532754931034152816258362932539345802557831078341004216773141632085973768488237119045927904594613945878109088830756834607908461697578186249688156217955504432037091595384273647942397264063755888021333040081367279380282870601084576551588109098721892411638324872397490224065370015605440775381998929513547004639203581011898874454676225370144091527291602426378374745679288651499280071503873848597224277384265642988873449263813709105824819262823327110613666928162297076652281700917781113805020591071077131640057688393467984211155088534319172957987017668104804633424951414361400338286886514317637210964582890718305216745060260931928187370383132388158606350810813450032105805975916270620769633802117072247877263319085509780717082862014560142980298408155999642844455666279475116230646846535644559303781600793524907717615642315054086538650067604502052044446087648608666164801247640310840689540200137440514994152513100390190331824264312425416399173266353321078037800488300111781953059632507205842211805068064631388757841283831715202679782264448315030251545164584477995191539467828610918669865296550499063277733896411368347395513958135313627961267935997733683283191173679198265561076356962120488328197417376961346280629958314646004619552956541540864512504699962096510685080417625749996203636194333202701703022159432019844849612089112591901199751384493820917432668458232818054135808453046797489052935271876897617599766883133537871321442637576339542305887314888120466354397828888569487839188445195428205753214394458852738532067984778700325652352809258233437058270167910699427989821065156122557461356993841233996194494834111010282948151660190200131012452734832050343938998064180821944638044776383839410123766537197362120745080045528012787403265631865020301081822769905764414559181173891190613154606951976392491255377474164491531894867287986664242424992930372208925018114432633630453285835036091312268952897392921228807336511407319185919915878663316034731813852364611956420027184319268288680405231211774893197819576776655038184573868027618469377574757027120831981263231809491133250157242739347493966299992369903574801093641447709415372399222423249816476021332901617911602044683264288226926027862392440439135938259250561410898867751638795585968984489787470778689900427341557416618574857943166018365322926926034004478537780116977902595128020841545412480820665399646998202281839609539591653237110028502966570761462405180099827733769694414107477783902493860829115537336785385144503267345156056479068996432279838625353950603492405163164550891871088528316334520831894586602810055583072678966574157004836770519963892648269500292102696634648901399164804518462929655610142694461049068490970000164438285666079286580957391376423087539781133246013993519450921966127309948285315392886330815267881774437275697601675349706350752398096068280607711450405509503429236229718542392836690264430316235627471927172266512545531620696041947656229109286925787413126600408321572575231483897679999637604936998416076588925382854758524830705891016246992851026948453473568316650811311405351991934971869557274425223300929398125352752192040501664937532166434389477618217290149210762361577673029758287269309989195096759899181363121760106364076917750200014373302165402555570867913338456033303454212871691730052727040496663953029911757657730900591080892055826128480104810054236717566848811789867584903205023568999559644572956126997983429311796673937265337054693080163771577372614447662419877247141433639662536759045906893773454914332236241791840422155441705538054194294202533171790444536226539646203636341860902906223385289211406496764829982980644419248871950350062796641549125505588559094970064664542640917909807939209558810983485624787042193243214331865294023578318886411300253035489701801051369189933352210966567520123013735257067095214812822384371323537946019993603657842038713237090512313761613246425337644723248683500890663138979045916178782430078031417298384932719300974832447212714158427943366760553763834134856659945594300241716173196861489812123278443534523940592010352978825646979239377885453352759118787409868574011633811517312082236675551534910498165223444194379805708601288349738481633615476285941491906711943618157821308963577223857293761660479245270555897042452434276450394362724709772551327346518869803567353330481823677860489867555734309620674266238517911633732768264948964364518693036603916289528191744369483008762902212038171742398370226760125669324016907099975557624072073437092215355095330220320417059206018523936056593116812507954848718011175683301671432264058486640867412164537412332243064496552731050084355316393903283797203624776398572772298318978419447835052808829756198929525706957240499056016315286155457410728007603808467483791349082649243127293115163729517517400784713169629747516858880576735585581016851200101032175179543532994877436245910332658905682853823952828350960412438786677963836990937838113037795340529452014128214054934473792810718827290336340485744764593501228043340988303887544075478272060878436052690553435834947605520942254722282742226636318665373543123972715956145052576631990666413331785842849442017855949654801366480922352941136088201144322407849740986615964998056280036756385218101544983022038134607118503704104342471508807354615066107899416386661593175873812778999572754840391689997052609869770423951181425962849284780859342531199154218489172135271003543119372969671646318101373163668516602785325253160105442028111777639444879783828157448444493894657180738548237927797091629306087507607563487412678840143516951028312584446291772939933234542249594601669137815967787123992516615516692180821123702732537028861276713269992884379305148221248873012154815576156482062162830424026178648419847086412549477012914938456949117259388471756158758355113596241820119548091762277392000046977266355727585897987619038672720620309701820703633502921267558066412497420128800654431912895653429949587771253076238192428426574071065838374266837414949347212852019851150265069339593812838283205551191135268599878550652669428387728067714414913900122741304949395067048970161839509493523137747438422480938263017231041109970379399605556774168786864578942546952369226943418432968846442345076882726120850601683452552338232250311513693447730230827604637658886378333065012123848328794514000643226236994465220292614385655865675017570485239134934870898182371689664467495348019562695751613773462591525116107631090746215973511973535966258705289246644385855972645548104235771310721491183394042807963679527574213786428218223257577085945164897076159186901090188266669968910348296498030328139302703885171781275483668809420034984917927329242915326090334716408104753839797714875498598220738342514383730620824975341726959622738098442453749282249962285963790182588591206168328523446929783084589602202944965112880991535220920388375181842918387328955116465390837167459906612557073191102815091794386309296061422495717361840464743596639258765977584472977864087608860534788031719157956316584976677502555342738437143927551915212893018615510454929999131534845250350455999340058916028423656228696642543744093143530480946388109185699195460675483903064155087939191809291152480289050246904400085976530758181593749983456898394322402084061362916244370974381861903891947364642506169060674568547955516078914547548333217758803866666463241294171406746480192301276698899046373532467351894047769903684616274595194571621702080612999065864418035187359674040059177133923713910397641458463516826440063107424516583533803422191140347954951268277581080898386439473825339051251082660449660380927814928431627041072511625922084590420133421653045431731396190913890974831101093549046786973953386054176989295215722683272814135194187779923842838344135103665215594034241131961318162359578652490461754286947384855447151290702244586948727570714022292863457906441688671308337507352012226224875670037004851640996690212072993276123899241267440387953016860121219555648174973502865684819774968027547376548342899117298638695998465793513986710921490480562760629084475158141456616089105280325902002278955397130080279394751594785575507015194754407932355020387148727003641514732040478003518080330584907299568429662146288736219758662667620118611365165758722971593882469422419553658635435493364904320073567510676286509899219100337832758164804650110300765247463105563088752456694142207791494016631631240484742367062344917551290389368103012545895277680000411264748608511330785394145078763159720714969817485598421396797411146310822655177396581427178326074413808193386585945883242373634013893059074133322647525901766368349716786375090321456619019700724267918300588468396946341810698375475258386830235831809172446754608224926598143509734145725442756364690516132353796581246953328332890999255101334243446335007035953809581895532512696270512541879174674263686435168556644163150165376655567580689233753996170188062009184398034579746883356522879607844902938275453577004330685137928435345239017347609660134461691481086123843822424866044350819512565039848922294570553747412861735138438450975789024051732698109848349475474308588153609718671191520883702222549309304399512525523719376865398544465548475189949934811222703561426997821761044682426847565116293499374125962454053788058747203823321147134950918899833436975724975892382743767683442523150091908374696556066066378512449230904262653681625697107623698352221457736171714512300244227413241284781963309406735310941352356961166850679473389391278185124449418012767842305951215543867531626102448730852390811840419109410961451799053172060150122037792161012704103355374355682110417988197988820917084319497598363854139851093454101047365382615664045506664109105958222516814731947128439018235910895851420323430061680407146055868002987934591479385587297297991150760362015905336204663058164043584747103786199870330120863010473437051881581470515144271073589154784268810992845083899720584288994089762968870975121116732371072332935955717850373763799959924478061843941835008779636387620920350416483356051016923616940839748014160010399175648818331177382152793298599205264920252980689619588915547826383269830107788568510138638610657204499446122819862316895868700820250425673244510565263474195470257024402566633089865299082855202618216177912952287882279340960565457748903180594430076418684661230714206155435483185692120657735659394396943022517856975308549200224887693416276239769181950014453538382054972313056856384044463826175605292898179139848330090527279233017265678025581807615902901031772097592977102124538209189104328356395340512800004927131000240218113118035256875942708527106324237659757125848459150628383874346689234553810648890750759936892282051518630801889080327737601719105458656784072993298597743317460181741148613965721827706359140988847654807184350829943881225785230302634622365346364171110145935917324373166587804803381114116167658462115744105825616777737633040981245788841219053893103326197385154468104044663339146238836099618988598120113751144982608038281775493314484104383884820066400177650891082378071466701385609197279546234674717002411706988817755154572150583153853844902853012989921554450190642959912693275086538565012311315585779024239006979346326753924934991341700124051146147002761644188383188761898972194822375676933343902462194510301927197883396535283481698113156284145240035559534014828005128813595965046826595253900207144992433652248591867530623347735223849485457748528976483998686517908425747410529102906120488806856627351382925537791783584749880550753719306302596897055640719425107134401103316983460125647724490960646675550660757153906743687089742868220572570837526430645847127753305930229443289967386023524075308611181946499443786222280457698216412093497995919820900906405607119187335288027001054267093769496227562509351700311142350707168612975036498120877015442004471060029257441999651296636331229039687628083532928870736200171028108351929103564236239054798048002512315791187687604039450675378101966779492870609515163768814216678136709745408350420179959039053029041866694346068126025811276185176937247419304962125987923411480518392455216220423799557414187092120318351067076354143708832898285192824733370513743735157981595603123273637562521848109928702685951420994483299965902985217985215011339912760438724868221892278480861841539458092190636433524737236256845190732271594099130274316606947924524054197038443436227292774371194410712964589686763859021414406617649777930143081859619925353040597699254107308846850259777199031978669828043543651068229963458570149957832998969742246702990741874546648301483105677104263177722423893641302863601848020130346674930017753043342718815701833544282259439405695642049391379257355612815505540175799898391845885000015469649485100640318151328657431329669955014934932651129518140769448672117094847631344009958864251722001668714114905774083157605040774555853213040438216875210323667064188225654574368576073044749159659900584229507401088613932070330048973630620152933736841394459802749031363864217331719232127022236039770866495447537872492677507590984958481483888723851126832386093756507143055417285047017753721496039808063995859253249990871517676226123077850739993991494021891945968765484174293450785783486174359361000636337805403198916888444683522105385673609311275006585026994054893697850622093001476249080213186741795937329315406157459934337145649921528218116901194471341954050179922491547733417884906195254846328387942511048615818870203675544918156301237257553454678634433805650659411047718269307897244329135091858586204784181063138190436782205450923712988158839607666616164536829988111993474799832678212714157367800903016863734531010739109708031865658443480849304604339207528839639042345976684782116829410732125444548510693334962063158615843520545773895152738748629441043800433835021787393106586884289437566024535313067250431115266323445208591131458141128347606571877117004095078056689731385383416697156910581200586738278801378654948985363469731944074951866620720326020456561891699797283768334095904967658362369147607394615719730137389714181804065237140837842924655825520320170345701309677979935950805839784464225478582391724202908064128049480452440998628910367254448842372763150702148437405545560348205986052865275848793128392621638475608513794112035956939904503763075064407938868090072946154505808314601960158108159987259704761534816496508300497418693155536475313356510219842216567345927741926473512795428587760490596066890699556224007177655678155721270943433729754340497728970039549923601397110467230003913687503283300528147109787914464017923664754898707418274478210659336817183768999214815618417054081548353983640122068308577705831914014384701127374067258744162326327065643120904367858373695030501122160824752034507589148837873251635729164795007076410622087524171942950190813347791222868177626272201218851224012089206565375508099561719080098239610626859778617708256203561283722969033001008976313165342230665675254778528771218694523712517116964973924938914159467080616344437162482912850069570530395703595201270287238806044403622924931519439792791677106781004742662457642058324317097746692400014059332679135222027998838938261265371216776121360327836460190931248883807397613192483830599344064363568312218908094907698678767138150391432281949847151534499001025099852114417606183822305243569799472794036565033117693528338071857832623526280933661415774646553205816580564598780533151554834858993050186957197959390430932813040742959555740774863411746640762414200687321004259006094090096461238123904900998089296524455636001433155860424404271185037181719643258015152813124466656883800588557332904023730292037628700431706288813754176617988104691954421424562361035402448459170825532458130023607117990399570336311143366377378608038766677050944978810732273516049031500911591535391697010499149337039255486381907912114622796864417246471793555018241720582070806286005097097696895139991921078967174039785851209727321174515155074712587647461829960041333877838914875260929028868564367873254111032927542930949933016142883531399257225973772529643714546086548629780053739583820839167496952917077859371639841760969919696227658747548842228665247958487139901778385885855308780694906024101073396705465070295309920179879532436901334576307769657395856907758832234289555412793149136953065763544718947387076340333627905325398168578125931585472095720468478917777766627630962312306059790630486699191084139159250535506869900604724605643204798874020387611299392839760671908794274921434139174096173079480304383820113220135408396021009399794271828015160665648247913048890719552188264666518112803691818268484969443789712450417753936282368966745481722327757173798053103666596749639552955066711340813347279384232873894177193279121808807996672327936124612786446774855878435814082075662971351724193501584853356399085386438841262826359206139064586564649524788448189457824839263146048418738196269175461442554325845665211487613373672671021056407633503063142158461597998481365806971227232112206963161736173183055131320204470490365568999867798728852748666116475865575952509970320217185016920265511222372659510919800924220425231503003793650220563500273335728307060279613677084355670979233293841683844418541507377586000002207051546470053016632898544726218620907623405563285455805784440202704638560007051930561956470088621597317118605890568363906820897741421892480217123181191435168927481502027013098130440788987827123743170505899792691729004676525412405034676632635026058308720494935768944616726893903430687797714449801504794365177321388756405514587018961664430658873795955765001394171722763748739244039616827867074249197362216051310454025312437169558118576462496197838414514900833915299778916763301681096984712088802270096788482021060006467168851745754951840241797734068481647288324789926530416725089584363164017408148903987961850627956469091970412068956894137535246111788456916523505387691628833733889075673188042940261847012429284918208921124173263726313588238948149829275839192142059258232874701000963499795150007640602587928551204808281647466288699388776542990762675854588181056185019151177784345734241951334645484702282265277436562447328077688867204327809611962479083209233133243913197273701400394390753674940544458822605956918517492315100249659916592674249017842106980880655575818249902312442488536228677803897245170668443566231662784813783870794252012847184406832411040403812801022839420346089287489164987412187526723997309203176889433881716937794912553288111291398044457568016172843552402405167772219499981896598478216301885966450513910039692161441273103661103442706908344063671061235525922156079186521229764311455755561342504065561668897916703019482466350333316341022786638177053753203788290239899280926003643420127569549772323876764824382400271749976210223836831745879774859594604057647661789023989307920269351847479778449249430875183480597251012290459688301685941884583720500511890047072562520235865411026939496850030033803497694330380112059988718725886458284066543420520850079890315098643638128277676673019523670451559805918427083787015836196272978631824938952598404225425391638321508874674009421009635142732475026815844983000966166573514618759569307532417368952898617733198197746596774070427896919249134801047493119095790075877613113938322502542591911981780612825470138211144531287676598029330756852675526038583984141992484945113371837744760050953763037051260183317025090415083926960996132301576811738215195213637364064172307496454759592722396478113857222104518053924236114781331145815362372396717419904535401249782206543653015193486645201870389841656365417596316175930321859844644969299436357707889187781329371196684296562499029179902886485416896331832728100913998949043810015750204111017998314904361904304849833194180857508761917820700572989754871469010080109083359509531790898115276849994971921363416755008917309908506006667264663373232950653119955431130920230101035252399601646986247498310553926868735117622461126491247569799984479963372438785437901691690212326947992264459505528251948436080193552830243402146230523463868510798624076134015302338746281755609374188640336776715306893936461196595973781975452041384774867683007472290394348524457174064803752541250366646204265938165353094387350295577214257475449665332431076420459243466171530741819791189640680054547551380460277975063270610258358469859851159954223305677324967077853524315919614817108530362932656089826046379433758381415103311456673424007616817278843414383886762679487361682541951989502645560206736405751157543236979282401483270941261295742967842763907615189946944611914923574625182415649177231884422332047506395920303891658373113543002493910069219531441323704105025096337905945786119352814615861367253210476323967907934160521427552666842809744386403873340760105070671858253912360655976500381314627210571544856989775142746131484105066465451625080293148378549081966536452436452944487884107293636043202935000248880018387136174494086910210035224525318997349283881435137954494333897148614271289402393396874709775301870086260317748680545056111272983369684222201489062128756711314501050626782130429565640632708362933061186540832046987602188510305115613773322495294639179731866475762328082105548569276629265844973166357857812020990637865223248332227751193337350862382254688236896358128656781610489209649067567458628395645228800349639523545843605089194697915255539755149775505232153482226069609337455324856842330585571664667217147091212470303303018871637725523146585065327970110444742462557739965845321091417124110420590738421992069506812046855126602739116872990269610982330586420316608690575324502756921938023156508124960191221846916176819688744948565221807681702843014257584935789584203701350605329323224201878619700814863483789305692102111884396352640242880632118538654945430984615658359766756249915817358736484163010644702778866894286750390485309690086671933789299412823775216395548304011424610258896622470997387380816293931443038103831250520149186473630539162551559532359922080648603225218176751125809069788884513530928509921116074738900007145199902091598660849943343096211070876599530615533456314887323559303310795199961156314315134954304110901328819769109507380810984698205067058009933421294043155314513322208364588906406180112538394968852684695221745223808414557490036465563768751168356195843624883366486629720245762582129025682583265190248115382911725183800699798647509366867506840200611929192664225033889844710017045850376249797235967797327009206719414900257076873746035104755383849830596268945697878636436015571196544544488668606732200292660033148996426799308282981277473054002255100671927282707464805092350673433236133711988319098699531655352765669138399627978029196542054037259608487650365023614103537256002531249160562153930758179867658534627879071679356024757367479445376863427633086942545326092204351334822583423752161967096920760160492767831447619576659357738277320266820180619200570120051640227347542855159518039292488892282605124982652507700744907088104279379390611201427818495388331991434550573224853387736202424409859795887580306732807428758971794293274788438987289414805751838377903116335137114614578322654017693996601785614646345061875024687265125435978671390766931396625444416615050377415655192941823703230408399474760497595230123701073661400253171289902365049071707504648725573018880091562218480891390819790787495926771999913787109342416715141503852725539200081028921589921260313800938228541415507720434107562008408709715624650584335266625745814070341790929989879001006656495035499989581596379703803815428476876115307855685973748765522093469190289875232840734682759738531290583910463572636879654757194329681166183509819573580045952033109658425209443704541988446088017355054181009266864968590661448902887487593731407200117067547400496920062396959975593373391367876909772872445917521498765517434407692438159445415803113761147870382605169585518287399980561248181641832673625471954655103874445213991123491897352252304649668074753341833020409363239291512262895416572632316359608362651846641146018584142182137326747103119436330800360750294040380726519553629871245862722544319584921550842108869757325716953197440802456672866391247651886423362049468171010859234240588063138763092825220680199430491189138536912379754929330138224130775863493699419338179371992992046986716054932425221726038349808214276571780451252718599171201997871011886726445288371339582512405952753970478788762877627192908957274631511911884945725517054285089075925752457849132777696080267914540025182641005990009868841061135646043318126429462393958223107022164372937339723092493232620992314859077919300235961649073198426686812217952724165749196842738788058587359341108764455876330766132580802751256631859106925032357757726235613951304408804680203469859021122319988662353405131027304563087190023932222314478105023943966989380431905688089164920738976638149804671953844688492497066681488034667006339551876131632996040601937465757601648539991434114958834812715973258100419117607542069866246108231382896407518804407794267646385779396149610541497595496858635386162336067170043920619543831683191566763590754990420584150207815868773142246612533814143223457941166334062934249873108134356409894241466549178626516627851562265780246317178327543575341179902943028129438545780916061663148392513289192000228016516782943960496373879658847559097620957561516225673803650093891226066607848802847178841108876127788553764948346970622467358305743160806918655453580868590285165717978012720316564891484246963242224761953940323125628601548938597270143843099219699289722079943874154021395950512422811581648003327629728210438017131948951740230006305272447142466717433743968453132235676439282895602897565849841720809519967255816822069608499557626689002274992634896008029021785750127239307502298419691159796278514345901719898233926302491843913781429830373105102568273236496993882703595849364666713187103986478218522831832575754442998407687451892719690893568984866478191127646585068164178309824068214687752392949972025030811825560819596595287844700604397757874156755026612912003090713048703763553719346206635142646898556109032695842288556849045466926017682998469092492301964598005826643484953081163252593539602690099849944767656328819997143237783063890828132468781646336359946524347450501615729231760932298539293647656984191054658524450942265893651058175597769093164887491050952415597601984120057728448226151146462092105676385372663538811526396947793415330152991286225730773976587448407428408954267272426959558611999201206097935108363367317497343951889475789151282562225444707410773372871496042586775375551291724077303926747805316722393297396965825743239207638285108666115845231622572501728305575769572957812074662358907067106477873672977692554129920175046460593397375122776827581664388314441607234963312294925441763876290313959456847058189829032461291994795862752240168423126973840957566030564289143882847913600916439390015313871246734460691615921072768433614055159716315698630001952294959106276983490102925715411704173411026246807906008571856472828181841534357158720608485151265379974306181054099704279146663517576067234292311281611712019686687643203504577217709443653140992538048083133546471224549878865096052300842966937320556763907870277984943428410437416433937094770684018207197091963891201443671147229704110452047382801926996445098850490784152529929777539526120758578246866457722129697188094512990466021944522109466106467048024751524574106819078009578218872609644874509438981489248862344762891953581841082409454976652656427276565750080112533601335709060035164345372655518317781773460165898459139199209758276133751648396834938906906480000805912460539324048429639147226091855264207913829567516534135851055722138588152734920085099815658314216631709056299625755126285841807574275158842132386236158780595229985095204571286979807528976208243316237119794708909264721953138407834232160593109062953097265703827177723406163876069148864910937830685878718157209287368947982000178069550460649931780288501144969087181717588681856942137240692020152047098056129221100711400320834608622416737544921067623301997960514208176563316893616851675857733538891984344944725555425186006273847493912384795291575421242791085960078022825926374779731181520344172983444096220800370970656819521712578288256630631632560811107068105632092161694821170244768645652912911620735791127386841659222691934839288169877982013670729695329564722148750859394284644877618938153879633372901317894537846718843590949981711835208837547502780372804609818587527933955898150658295244257326081564839532845960799030453245107563160126613214738742130257531811079149130660755950747620570762905440147631452295478195603798170490345018481514208784380138566313552913219137981003522436720634327548443617981230494163711156637120314838472767630861124132281131446192388530375997462843669694837034898028405528016489087878968874995565620156355826122950580857096394118297593400678100961694745958012082342338193423386329628197296101594945702283362367733194893386573567159411681343658109797061534623291260921934211170228953159020394437173422518642674803669441649141355146017770495492817019471171576455954686873840632878205390767666448568614592821966711462994136539229003748161292891405207133320816146041790379540669188205202737358009618545581598732902570949939633205110102310339097259385188164391194819280934898975289699593208494166680754479903306535112428258798168825059429138245773003563751027077277465246625702834004714701893799148137451915416223710017720689670459705860458927382498186507308617727985337353614135325465541144143767864152092843165195008274940771499957796289216539903822151779485279496344518896777603762169171847111562071771577639418064190207927798947348882908125922867819382322645014981153419079137824782444191884256572257491107966827137867917119152949886265385073782774268371452737232247871230621167813253539448690860442601041901349842348884430370267823429141960875795217449568295293658105996215401885997091968679507031923222231891490117015024510524835409231352306513216222626098567741148592441512414094010182854867857230971038000657273285759107882815749553239243041234923512164937613584454099010105650101604239311396706378754163703675055631392747981751321677852607414538612464585636324538193228910024497432195279062338058243598361926953454422715662349182606505185280013335849174598046692520384786998664451729144491421553063354715202250346607855496680368467082595907348299176325210150323162053807921580546650082990738066981961715300487258476919139553617247350694343759364398434658664553467731800354766901479930608545830885576578163564275960419970186049617581988043770564873351858377679497332024872742410007683817829125922819027372209220443174053188062721399104026037983880961532266441279754852741184304694774621253672679195369979142279161155699307201895254524266677589175787034555945939504731938159663970931020995798065429136386971924676642194478383166862107117965846431789562424563471973470098448305023832356556056746909291976586378529716815795017947904871888832404368517679382656307990656588549803734942362203177054945967595304494284793016927149627132548858285416016161153042412446559565772849253631498141011630767939891525177994478714104226146288095934554094652067280436151792126720838687801442588894277117057713103675599822894239395649366972415491956565243825187539769502742550314680161731808684541287980954894477952349546068604900546652639242814622518833809400426513980625411350773478977705984065811648535289711537421639625491842225908184463477167655497407006999704597838591591976346762657780656864090854914016137832776229708741714253879870342935556767755529858483260250501637245649867440925210532704233487928019088380078198812910304499328155567476706496384517480958438327049000353254960056650020600254505053005262283027194304324992597369444911216067859242151567489736828584086534295850352590080982827254062665260994336023276309184857891489230592293237526553545992860332315706732728286133517423222422104817330375969452894043875747434765234189934980430209571664994669468335622991863954662406952421101888005059987315356419049740235021236187557251720118583262400326101973403034243397508436568071248754486741698671405859224354562967197353488767882775237515560019230658205158292124227698488624786974460027562880356424673367421684593260460757671510302870192411713296567413757129490075826511076155947455899590308806208275489692300872914113138918034642776399374928809286910624091696501319716532771919606979229005702519719631817005077808250898563702647846749794878811926775794081946808277539788122064808642482550901475114164875466713786835265678085267086220713763287833576694307299964485975437775268742031374772392021622194554038867192670258397838586762728634775480047244833533445979830900076731234541433462542132129767677588730651294746049657351739667288320729405172166503220704331477190832489103872597159686590424759683942386856731216002207725943786922528354058443654049949130326800659563928937879999089982282771096482700344147506497391533332904845647348819545581997209909992132175190742208866324643338987560172420305518605655331523205143652293240936207536806256016151599661394583297346054260617279691680814049948475793986145899329758326525957200980053124267255017736294368385351909699601961673311593058037237400838696919205843166036376394281194965531607603651691026474985577104343458785541039530780231642692219321358518373043275962349171602633697883534103763971463584887762121948555808901653944133340303074357436316602635172417102951013643060243422636752393994998760010542711165024388186169132096234583767180363022433471930034696575138628538611160331405744692381370247590134690708393655261863755391049328154765409077313659220254196957087269820780524145710123408463943838641744780915166689233271520586009111229192605524071000499990438837801502374105175686396989706227061869160180238774007241545985958858947843226528597263920261847069360857421427772758623266241932795936057760502075357479567243137199130197526129193116871135589346596479586940251588356948573107965652384149742941431189249118671673377821990646290447171331443705629772450425237674573813739817686848807558161582457444778680566766810811739162049459122999586025768563578805108412740228548087961364253672492766382033947785635586177793955269534198994604276454245591618851661418177454539107916477284746752014936785728348032552563388200304219847427644243283131331321534214475668986190738550563208624179664606117404874693631701170265713852858515404822684674161420097062452665050478658501199766765000758975330517929238597315677871909450030175818095424206872360626783446930522741504994656032880808564019845971281053016143211625498697966004748854403509698900972132766199305296705974693489430718638626851097524530366299140861326075345644869431028339538331382807687193288235172427352980587997041069107581041685852056636510240330823564230650282605586429701839130020808291137522418763069554446618111841368869039059979305845460564792496312028612375334516906878244857490143673418961022254855967940239858888635107739825243264592877039904571902860005986761267087643942334443312107167631466922536751676216729570506823332844949489372492575737853344408516169547558888358464955869131783674456728664022574482635947502276543606524343923604206364328466264546886289583085433921435137286406386270918457157306111786437250975539148052881581980524639916996246918309451067032384528679628550029516963719722602922055491908236835520888359265126290688108579920284547567209669785853198787520130248732209910769197091727079407079351385855123995383129661777857744371682563351846906145714330811694586837620785110005321254173399688921638340776109164882464400033744572950344730741176791622346009195128187932257055955489226197993811961478941560709029807571625089572621619685115003357259393084982429666901509438039145638146453790954123573545272778434861141033900726106360863678245484789002646669338359524360335434666456872008546773958731436254145968649167740968594745711645772673822972734509579360259303991593168416800377821902084928043911958965130923301769780527179048882753190036928858495848923100441718925850993378660447564940888411434225956206008467110500764892569475895850075596853976599255134144616914050368285834177722600190863526171986665881340769386922323394279709215247436074313221300520083777978981144012218117724511342309380711790491409710631304449019189591777375183646826119665507999463661576728351803090111984245436277014496858342358370872893641620331361733811251151987429750866013934745459268263550680368567506311373402631768331636064851564231437597922572343231664860817044656196207849988043084994886421661538634429790070329008514823180485581964654913189534319617037496564757392429112935469749712433121845687036686983428557607948291568828742537911150698963078186233358011279899833088787467378283236032736819647194485287400140845303291454880190958858459587179611608094766008464151883596650469467534041595713855453790564035415010886121550223638271599011396488389522958183345151660488496608657747945752985695108288129559963212941743093742228575348797224069617756763373959935161366659819911139719615753075798374751130939198484374446334408213366779229012454257482038345378272402767280295110722599911147971079494872013132300123332676718521569610106839266350652262558089881280258468307476935646977432686172938148741563485476405881926949842717044375897176280484946144350729598702975150720655200560974098745875662802416844156119613504407049030209054563284047000225906444487933133863816108152800291262588273377561946543268626345844111970219015564765872864153587799927325122196920551105532126724204613331950809540835442543713624766931951462671110528543752224034397584236851887646213185785821276052602720187386695529767118798063520737111220931308525466624562562009494836729586063504606512661070082130422930411323579829795438205251329020450073498464082662732382104917413776544623959365543324469436075638831499155416762166770916640363394997003641471376798772194479817673607978258188888092086747831962785224557388363552359852282089957284681207190873763756642794827940613481069775012346778896007208206772328249934129632610930947957047299337606115436377106110275976342215062727615644851214097806618022909021500456543261287256993608964944347998758547832694062704455735616462794360804308710714915425289969557279420118087958148220092960783073372222355348472818922974550742465730050119854198018349513780640610751487775417360782004292755481029790157574209841851219479833649341395994427947916418136787639434727405395694286554874762622055007368366823370794900692773232763919067265515445687373573135121438686242399306395556435152029708435883844841820993140360971285939465837347152474903229318159080460947047749957219149508175340232231716353416003807891023041214728533013334456755386061077434108496827207502165029409071970988066479431227684845043263395193073061984290901343842214395096412901928142105056396927838853411550756784965248958828964650906982536699745003876736958054018014089230728801079684415250273449346842654082243651495882030564636022547163360142177471198163864234158667114124124311277637807098312993898736471224890033360458212921707677165698493765688298718171585603213696568942482882579845245304374020730158831078837319187419454844148158341824636973940467340973824203251330403604421301832935682587008356430819607694658920750664604890193949535187943932377048374053670962668022296818473307090040025233781161008935438206723928371679309855100648225199804585506317103231263898221301564255374424771393511830067387949558297487920866803472261138699778216599018259590743385833619706306117088172401387403975442563869059314498423960622922698525416789132320133792163019508866674918875670539707307274155464970339184018495652729694074630653771210830464953331557156296623333039468758376531541696787093356492376979138391484901821742155705432581449122614489138977643168550605059019010944382146844226954445879249611039678503985978191770267547939944671097708862526614851797501277208625556397922901109617414531371834515737173904567637702803906557827302442150173316125037101765882502455341711899520435406803978600371549896926499964796463622153918042062619590131306568428121791429128252431036438177084903629386231832831906964486695323015524558199633496805601581607839704015331159045075179829101003923773719381646725504587705979409299529319032799619045125449505360748000706533117776683109100892715418842270803852748353715726976752155823673883130373274220063687415226082831494497243293177692576109684309908565885082621476632986530942326224598006208958931264855242658010572206286297386184229739415203687249174874093566699843496038173890702636123095326733377984006281657241735699087995147195781642050599255680207906433952822194592398169937173943319368501160252007323942023202915899765992820812985533567999779196780470055066933747413454562834864968086581604492185126045305441948682274463707287952348287579202928653747333907999884906049551149311906431682684802817856722718828759787817340254116868551914757500935613936499582032311753572170357639246457466071410595309714761735551291520452547000869667344021219793775707972199742939826759119967672797813516868137956864742929822688746754259800343812043913457390568520618004889982214045284317617770513740331896496440945055030067508864192744766595467463093491885379886883790143714790027047031113192638172990784134752612001635283871563869070174996908678990796758030804534137047978318647693751242128296314252910458384408128831283017738554622032530401663273289323006447047317769470686688415143045201231104010333127568075923459119428796702427023443680661270214631242586716315784302076386033643167668906919864411808305925104711079861188556852211639977642763855172400101670493086206696938535379783004830006000146065683506601852430914878220724678383542538050927546771498529166840008872313419263597429465885819653936156225872927179356130804976158060819093999910998595047483322464854901325750853254287709679715613348284184870782425936960948904362836993378686257830122609434252382268149464993064521847953489350276856239661495139499880247858781789463907652499069384236806772151550471867271095238094742448951248581337574099169737602651541196612870956704012791427466536415702039377606686966564624681905979987473697218173255718678152177559796807168956589338962082240251875915181898950228629227012539370088531303126042722089476932119594314255556730232147142157537373536159145473142854895975170956696019676357445229337683368690083749013621901723328237969707268441179548780435375121248541175048957215477744495633656988267088387221238775368838117190424634685640730662038218604936433602703840929640975438269799508583475980499570006433319242565531877277349860589953573774201490568580604783333691020816797804428041399258735804660666498465980339513756517860998224920332053135960616251299398202754988531265139653778890335182617554082905085356605368018320807955560489089428807819957836826069974755285001846034407662884147792521811636876200368312433871768853396226643935374877630080897055788587377691998680179502674727215273252245968662902629366101983959506413883798281600390420486637525473776690155236747593880422833008086833612698839240246128561471650021878686236324552405951562563678791191131637208489643620096998911895685397331623856451451320977572161325822152906013974264131117616992723781282146522382150234326205417372422606530715788260558872105158974780355879380022549029800705539253934815384519510603016822943302794382696558365178177983377216749679679318697244388919504509594127020156634179334554303958245405762260863630044798189509898901594959540650058756846154894445789665815146324905713528361012009227066844710449587897549279960340718579288356075175974196360229595565677040041523394378186699420451414479811211528138202897704812203485557730909178288687975626318256205810286441046388589529500024533920433604134663523653952724269290758126728337411278460637155066635709492871387337467904890706944745538580629712442592712744483324489406383664930328253017724328459055924492791546172380999879538655643790044896438308080033232925429415162864748870608722825698881263108733024559417953619438382517961514697788045298157497312327197764510629387831914601943389585632028294524845914451951108236650865940159446045330115233425468979637592612865411439233949707922966804917240538582896155300017414369000600117012486163389805100753949167932455539795573799679824391010971817675897338249252124314682325166971931782973886687496324687336431936561152381278196903283220842835102413153101000192377456922289279368065325924934162056888961466221414909699149190774734839714503709221940010750219754582781586814334253283267845010813819899117329657792809785047149294083873454948192076346137401884606805716112976906805074320321713604113197003737923604291345876156967742104966453835279761397669982818184605557127977148605435192884023195687104992814849852355280785922752711700239778159277758747738953067887126533449944758385126088984979674562155721080433717320958850789857082564229445278070210553588676139882840897810653221449410375887561636262400539533814045851236257501837068440587232952135278620208840237503137727672207972373981546133423344213072768986891505186557667078506892271837203615352361898284490835034486557951421392419510148783709997375959052621106011054222337895862081507922982283990104253324669055584722317800137470016070064837737760960737309177031371039025975750472982013776208466251134099556709194651190153158157263260728844417915195711198519096208006140297244344255044020688890223704639216997589978586702246992191039580295995919102587796245957457953604648976756834312731772766642426399086427768348402764158103675543226203817159309479213035008599926011404866274442535213128704812284568570169054777136879336393324289235724075694492405190203710843197544334927086463612688314594707135372022000693239963649115440509635731936912753173785222533053024022170004857797892355263226706908571192477578145238638977391712925958535471018550897505099385584494290515196894495876557762630499705548914038123581025003856179962135311151578442865869626530363376801352440469670966586799793875027270774077238151685121360334744298068205243924886436230792329619345691768638342146329402142673573805100795644100410157378579899259215178027695077559901068274018324558205515737536690293903781027351235129129441825601421152648291477179409875355329528575425227513899640561463156493844633934351956863361604027628081301690817618416195218893141612902213996696676537077415778074649596926153290836586769387629299113690893221724835603381610040166336225134122140377820058197057675322131344585261792157864956003118209326076689908377083274798713204569177424253681232109686099852082388028909565331697435975644234394322438025399733012105016077859105011851249043722080587636081181461437957401959716049714699208076810657005208898275615861515125850766173880977227065770312494927105890368933641070659501847837952925101020868039693344824098497684266295117096615590934326404453152755890817462047258010766864878937100546163945047738692426527380165377912224232835981550791343563216014958861141251921752680816485904277053341093433807654410820910694405023369959372434094196501688474892302552333759692857321998104588744934471895958493792247741801842514804596753164246630484124107961689976344375098729773554623492550001490390468655369090440217579113373650384781144607232613427088142052164160546900513768802514150926997373682703384051791994007078489071607397529955390465552383256835819199448417784125665842251393281074226634966722736393133119900183821776562404004219132542074640763791360617618978464932288430776546577634716839765220121067223574264088261010995595211142730593270837279893831142498053504998433069533764982613007491282563840354191444410061728641224364172672322492925296651862687794752381711867220128015465342897058969597772251355591831700845591380526069449215470939826824349594760701434820747386231941346918038141916251491576961165669076961613641851643368794106946121543592037262041083068713432563478041579916507460575833527258236050122593612118584411624422310972708638518551244289433501281411995075982700574116848696550634082671787454874068513498344947385778517657919397806259762690078847837384706286649422796997336726356575677096236150590587886323341653906407725337678945809679030811039548765079826436800431905898847870461420083138736632414899005431183866402771939286368959785454169151552934107310150336957230492308761930942634116605058952112313679445017606815907708426562765552421492847442618035102813358476758479552243541286000922299482622333893020874278070142731129249624059376333451153157087677026362014207067675252402041318974946848325752140532448410146391490399559982814663951064482485911679464034074826960166919707048823774177664992659682097643323575739724513119396020829263826558585540681684243945279434163737543681820262562195176255406280959679836978730066214052826776994327125211850907249759973336587368953440187387491698576032724034945323773079037455807120818003757445244634719019295463004016475581666633086170610344335582866874889940100521096316597194289923017187264739596563223540399195658767777900420027233118862892616899311031402993143357539418174346689532714400509356053217670113276715153302225187391568658907064260314208902960439354115084611695331309551031573580698889585000283464921957430602598428365073138833513189438104026971166948279197918972222201473818637029004113559486694605776826325690570921931215317658723161509979300143688227236360518595168833839123753228150588860562482041726485022955163649553551994118363486935495937369741066211835137186044767415288234759323997113473226977270128908563516440257267119927034091853205621501149469862454035503554121150324082549522041829479923907933786721241003233662994807064586949835674747071130468053352713097016516924675434888836019549730569625165616049789025773006852345852842233087682789031756957965614983164944135332052670932156920386548179015050003709456084889590402841303115348084373169729167832806119494985047807224951376543230003344108780243278799999311248517053458796872841350249206574315913535020439913989262008663365766362507429993881321157506020859616087311585443849316480082480224053900725418583941833281524992894873850606214667340148671153992218556897324831590086610307603796280916275595448556287363453924710950461843855266952635944088170413383520852957641648501943973195260938369757522739910281510183568121050706998576826085504882646317472744744015872384139855453959846036637110459502909217283632388069019693817052232328455909780161233139574062022673903847309683729861156556230427545872568647751891337025412576333731176222388302152134675735290876546715876900190132446286578799003510715067591025486230616610444857053854949167507366291559109839608894574492052203842101809128114847848121851574577923707772120668365162186508212992513480178457870681853728251895344288858932592738859089480212787941352889150330895076373082350018814599299058391306465411792272980691132372644738097633349702013221051717202522656531715592889198175918169489760429964635012263623154133774512263385125536043909842707228447398482334754283615038421756980065581974074944579615587246443993650346039613207647777611589051785790596591672648581302046465349939438219744785546968678221605868614327520680462582588578736469487061078076979028033532467953289720952546805678729763126739811901261614131657829466532396767815977535339898046454525374574204937712004003561647194816544296063367950266284674884875602741310641349860616251393659550929311969839928108458171853193615961602113744664524752953724866269441366768705749542541911323338978497541438812736265025599527487607169828133570149663439350098148429597182142457514061453855664162379303938501353624240509420888962168799464155157622168580259635900008889079712276965247374296844819727354141480207035821578006460694693227092518776324185590410216243015049709559276336584495182573329238160148833911997630955400046517651149414885482495998094659951154442465978661960205672552253483928700357927084644230803952537376352037228438598287814690703841780139817393078167188057362449785214374910718841051360318287851780685471176935940560490462873736845194540719618748041014047783999854132343392135829984573545492602591835771897831553435714806451841814729530130684416527311823537455397420530040164884479262788776357115194702938030094463452226862179115548250708727577278306498873037844633650808531656674604986390760097539736371569201879350085989813117280946190932373170494314119855938503944991580188005528578508055547279626108409692232579869920335577157739864486252076158363862812319511299375428640648831426862115678733773527506092280755539310034774899545716605574719702882004720268367957410704075435914279923275698103123354249102939993475956776814686982232166675478577322680199598701831854813037506507329337859698609186589815143446104254582032700286563460675488164332524544136962028330775556706349982455707836208929754156352661022439457266123735996035320801218628905365363173868958736866405043179039279823041224690866277190722038044552364539383237280308798536564060606884602912385660354002157236810831597221519322979611436256964130045925187929145592793975028837761410645610951885770636540816275282612621274421064985137616425290779112417058351000607396495349448500270204381329438036374118742676900655641244440114651608353584338810342673797046215587349012383602439535144467482237748076903259650920994313824676367112731360954847599183044200250675534252430603082338718594090450243903562171878393424247195732353732087448193303851160177973192630172851790070228700163428803587618288479415319415833284736942350358813127304832776081940056954064419685449527498279026998351402474032957902089426069927262613620602522524709610247489469105784283710005567418423788900695669410069443074105892774372113704924614694176199799838994103070758863464468427199434120962391569937338084064188499680934093641579702655822504158074320891759811825696199569903690643454070160483109582383866868916938810616236023518276135689498310586712921538167464215289717840911355194386675702477782310591650161529282996329942836362760340149189587410691661440441704870628135415005107799929262076275783962967680188634718641091374647685677126660927122770485979975401300711254565336224658730495026542811804951510995212023784064171203916819142003536718914175839473305427450842604577987256170471228658857636514632224512959133937221017699776891506343406135268162206300687973257537894647908110712362246005363552933851800916171071902263395950260836221339665258239798299932218627473772920994533502308523138074824192169122796844591554905473365798392610306852939485515980483376454178057978917897326519728014009672921132386685110461138792361076842512242578503545672909477394569761961460675102198829483197392305257934922182578863594671561571500969442653557470199245774526840154412495327845858288898800874013285006465378212063162856112643254176083817439554400821938690958844013994883785046031554246872251483929692335968223986177551466924471720282634010422377320565469136178063008723979648371004641595344030139981257703672890899306837228561582224790505448081367349180231927021857228742542942857499490845858279671714152727078727341376048348468141966239361215823395325565328091416537646409024205091176440230749082771624655172818047285372795464109426551847915801844917437906503991658947489894379580609251226043961335755278333774462612600352878420808575975753306595564066115285912105292514583378458584855790221084663952931825469568824969002277474874472626010169523927645524106210688144240995175877868398340850063533298082978311890398106127721086844799298071365585278313062999468598323265202783573081391825976099478444231836841131198625162571138974023609902520240429321566670225544118993998502497798233045687569206026762934304485189689350601969027216417324448268770240818566562178741934615262677481421277428516972466197135598811288218690957744387770176414073729856094553855150418182371232875721750743251540317258248554595424125121382663826700360865827661672482702573314237070220330034824246372899700636128079973464391296672869729578042086541260622826119234298545575637497747225194791348398922073893523840741808411260622392611337908191854994854441985097579459722713025290590324596341385792023678014650121707362631379330144256171918412137102507096461396570532792500918937725803656196425585662272900953955849786560540656055131385887647717713451127643154191341034481053452666952163452106166243747231695359972222128239651069135394760199002055981687004539660010373903225766185826602614404450818827925613403233762296743159359770781623441303672408546929222346925218151950510818558950806942088583735213311725101476336190482412005645837569616727138320202789299727328094245453566300472038477741850941267508374825694619079005263045810165049757358896067172686286810841089225082331161917098738103108300913024589860156716657581760305029133715130997346795842580307477639854558399227416803914038336039583959444330859785651890743030913782310972665665382466131005375679335272664165027817981837858112784953424381513017933275050953908684522254108151378287481207642610697127423592394457476551353714882388969987205288047088873555049758610876555970638058017402584576814620285983296654747055290174506543752833513412444649438357695608802347234534417890837081235750702463418089310505280549343563906373117878792259278695458915678773538233327917690487085559033890860322453871459290579841126660477256177407901923651971175118053152568652161627097421299287064763563483128342203967186544120971378973637547097231162184854865967277237372337776674946112404360406018683794890796759242292561689235697776367651836419757632378291978982677193669335427318155901513319914405267674954301833364593747188966986905474140406866647406607375935269670921796202617943929409659977852155745430383442028767204880466725615704023761631738450979011879143408800126790744958443586595900445780842113517408172868680576131826818403304222005865545827742882628677551729033282296708348064448799734893297661114802832122795080260223084208587192075982675935384288464728732281832645073968586497681380697579850550792081189559240727512479992111377868099574571974655427354786595019561122081513201355334558375646874357416848271572638892172599258150476680301944372247152748341384438931615226587506418104105922623534748548537741192543311734063000204488941744875100456497701537296542156149923656021116356389466736627259679573378549162840099924039347903567573856485587364581323371202757306389155346146381819103057791317815312467836811072846691369293466078255639931647056277207387486664204377485135877911440515237079117853157562638325540674980570243495694094397419444912861253956137612335259423118388509435331030528385160987914429321329808231905664632638787158979215357864321929310100837088880013453640351153155173941447144156999570555161079427458650037186464661621378565515995574936964117082602369259694987797411709263789756553344999127352539017281520564480973076404477179347110483043996547369019732505254493095166261467796432046501919689554544578814732881671910489946443352609599828180751355446465258077312376624206228817494053857443010722367250998850960464154006305682254677047818240550932253778315277540273022486128307684648580089778735008050374370255218165293378479996146819561216462699566341987111116133984680303099005075453777989975120560612226448701332319877541390692352658812880117048291483958086995626548977633728648373864467115121390179294132384779186802912293302475932617674949488212764493046581780986236959661346672401655532083615480653415882253292988772108792288671409961108278494926244416442614402390908985148594171640649216716142256473522394525367471860506041149647135119973456923725071391584537590678609922142609576743240351368424382798103287935309654208239509169331102181881222604086742252410256435323251150037281183749752120149660276451762828944164128157748793328949018925597770231625119075405177043983743628680326667244370469934882151363234251694499249574798088399724988530979689012364341345308898164664232259062080491175619692718545980998480150678252587536406571833253645455512750229693331055529530861115664474665410370829539311338499190545912710874977295967701352797618396018062780682629512946558972799236788254287769976946962715549759479887686233833358821163215279388586967886596696564371309820474376863981765745984094677275443731881749777546352789227981159340677811720040493035281800480310891877159149752788176710485953774419450306486976781492709663087829140246569868837317363973019247195128348575583600888289873930997019911628576114940668453773869382815812975314615193802525512718284073806462985414690899507166881768657889659603617931206627018055509043040459397459371015593177425743514392771574337257778289687481335545040574494695038307576525274336292091046296038928044116453576151291967003345401235081382490844664869087813808176696245083613268105754454554510181667749180436075845101502865987100801189337436652322921959482025109139926022274628351284134110612099869094487797086895441963648544682887534401870570452366528883513457227872501481040770507703680899975015402425939622466971929945624399415986523547954431635689778414434383852358064939447406992759728551880096305314174511278678731000101926420946859674428031951829854116800000979840878610360641897930808037922878065875032980077985113956735503172564076022716687826865922417419441666916343947636456994129027146913387950739155374444982397050318843619005971250948792782042707343851417890218524545495196502590310055636676536328703547604272741603941979563498726640871138212102527490344342312853597733853304421817006966074892908262561042586670227723857603484770579262575134535155331708083560896496257272215798496438585598046797570652746638860150134537313497600594991662430670206083469656468162352087860087682666355790624724087263613908250617042374111277414530375072029149927733075122323879168887102433559326795992301200743588725380611489959647161048246829667070622739017170503459204529281618119345777008514412439230700450506403395456243707504515636168616292531122348903709263953402966498461342403649596303550927724175266067479781447515813761797332173558003694555436933184987370243181683363611340152236996904031027594888187064771691493415338122638214601455591876384280075103012552000652552387443889147646121363888052169308144483623975342860724902628183033480272593849712442523621114671046354199904159296311468893151217504065889703635489651542332236554566508918830460297253241927102874628120386434090340719082015756280827236001831132956697235790123743905656063162499095495239894333616785801347457221675610409019318561747430328527195050739190941239445660331930100177243149469083258272323019542601139720517704399520348842994580009146327237733556866475194007812015313728658379423360177210252107291106046353639786841282955164162021002627198805085415183495859955115120590625469236439258659491282788624356885614899970454017918332521154048727673813361768688888589703915072240745039071564441907874398580137995955433421202235623779383603637160834766581529535632291864088841475449362517022500555480809797865180373624696841478176967864636346159492418540205011886857676736160537928274737604672541374383763640981716139285405681242579563351344380003512692035404169507806560728355468388287680821703023020479675243801121337388927974354823158061467869788980483456701697359719718082124264737466343360344691174448428255657619550099453749083461390810571582346314453446356286904667565050375267095589951332462577098633099427472504648420563056474020433104826957177278885548687962082469656286165524698786750101487213330216347004804702299031881490208759966687897025513079942037947946134899875390098813749302161770388549749882298832992257850135595332972457453218358164257051853828497636166081588682456294598274876208859502505448234192623857329415696132921001533040762450404829314336841568360605767801512902135725046016739137185656849293567965299656163076802379226894079273726036612002765412803022814314007487460554773092071813063786850244254456188931935124998572421339255695845807246221707515613661717891236921996203446998240195223156705607951610306408793381184225609015061529642021515557509449170048184581140607147762749807861314423134043214984011586327623111548677836478291873317438038554592626330966984524895188099090481241286451868798141024338236536357235591117989065480469964574515593680854034816854691030236714224105807986355541510678871947404115774882081395621912257984410572989597348196079289108068906464217107725386384314428893566281358579365354524350400645363329516312247691743934477229763290196972037137322812166497815861042974269597259708845336406173436176248663987492265300544970687497204192772337593270098053855480352419099658334776231612914193148674166730495045723034867730769554352723718894156953541797239536961915387866302679352071448391643436402061385783650990214749868441808944920255505225306269461399604522494875323500694365378494327723746423688948391033986734136587667133512241016524315601885802619346423530859095890006687526042796602899103871705614660295738543443694442138226983337023695593970312029479804909548712018414755908144418292518131744523867306933331558100663770344266286989152081122216721163179380724595717606608283593087398160886347596797641696620367097453515513060753363346140506380138324893925091839279565471420528264310394970961963298413369604516623731125552091388686390367741768835843498663570690535306061841413664638799649095126186303814996567723098696466453439585252246823479649630592404250126908218791303827783087415228480009412038021293816044709768179534227244544577797649803495023420723171327890469380352005058869656005554041597335570792540007012357999665750334440808742665966007858379153047179747611935114456568557784633549831982164596767735786503370294678465470069376984135645302924784178745036946033957479194049481619475646084701878238490935095423175723576834115075754201527842909204155957883152116184301587459708927242803276927976593247043468460501240389662618542906854097161668404054240541451016519290167918103186497853517099833828388312418405969010124958196056890866321618602889066764033930800583435643812992131108388808937670054716789802950139079062735048907836575688786144115424434455150145342174310195112565333970438005627144155645876708135200969609543084073303065904599887731722599910605316198858067497551801109776332064886039549307468953805422595590543249014140527785554436838564557188519377897527242631133976805761254271951822488043445624901130891004275590876971177154310997756137216658037290642877856712594455560258931519733037393752118575202692345371849377574844374004697069417995872323536628147413529378653300955724718355990527319594692674955455214235731914377533883859635785756306201763108065094478739727517609213200092036186114035961070805410353236474544539074686159744484547132284524478125881909602831526813392955843718951104782746781498835720611560479742761047830229071240072052692397675171401686098215495165525503998742081670093795287718215740540902154008107314981632992762786275255042028367322728029468950902654296821095642294298266569823984203683837260687642889726128682841948316410376935463118915447222308409677324492216399566674216574294797835676544588727381184913765036624800573752996637822390904902118079697599624406653716440828295335831314458863692510717904005599273235129765156607078362536198084358334727817951159425403361132678235744910725569628290386332907746563039390809337263359858406643333390549708117900490129804366617261029927288219223665496342274436295167372340656507270656150757424578676437279238617111988753938201581484945078981294058689225498775778128030030942712959142778292555142833798938837191108689232031867379918176302272545196435659938624950561697992896965403251650144239172689361989132951753482264254661677703261243832294896318988588206834802908097191457763067189259907831245801513241152560221395773940754075980519800418600844064482050670261031703228488480945481772991273643038138369767783458366446310481118084084030803713299832990503457615939820029997458753834158324749178082136507927993893981060935564164070913897736757007476766332153635991551320326103732747800387105685872861785170023617911618570996536411844313138880905462097707712008327809827081734353894091869542579813917373573345981277068186129003983173680834626275861061117394893318543864409973821241962746386915574652891494944009178796824784417078925899627734013762876367266658312702540575212842436068048892800624240568061662321690389407828890166530823794646635052046312130126355851919936832796025758418977778170853051582344747148102849328612207746719736725529996086870087007799235731696431952209989833295175112576355254993552315067232718133625498482589956306145933582575143547223070958658919147985183557496410113411364842810687745107886564490749475150009660475888593301146791679864145508076505589271023853485934682891836241121243575379684526610704044732089905692161549724269053759323902614900667064913758179978768721269168293899974374109924050111761374329655720522303004113639108478623465063336587135320724979642855499466713601979756096636777686440814565209601403851692984270785166140558519144535233765199071983723683151519890137620131810339074668634073633298125405470831844613689199464651456656333606736673226835633485639480775686875227710557327196469754961159949357189011805292347756272397389958556568538554748643550413093190958650705812291474269249922641720667485985884203531655837343914359886674787601728708829948589154866321827535586795997193953601122437667300068084069381865026923521531758207042048392108416436418408716172542583114444246436908456611201833644583816146382271384221195014978238124791797119557822069646196825319989549103361434359111502210183232270987463789375130833181165902565029246177231979285467513981159973090408045773744682059177301704802152998522274695148754984087191761724659951541894755510473547977543558699433806746082894984624237565584500717916515560231577787087912979026006704991479395631647432810088843192375415699334996269407713197544481260098775186040757356400450895798729229655241769553940713537030452566015072336507658550813271675365203193650523234491819073793277287874836643045850200035390681648002077622644122740649341711670151735797763910846723064677639939350830838303942443481986716932315059562355762636967395081328282815338255848952325337644339323023029856011526114204841981467683488642615056380531986370190036607048633069745558816235397379815439066984042153959017083698843691674021042207391962256483409708376566852875084468031038396922844135881942150923253071131621379790612521459710667013704737881139911539991415865806431790893825797318565496537820609653365473344096979095411143210826536616017840111854405138210835297718060544914571854609671278371547853029299921329249132959147245602114103003598270352210797879634316127743335165667506128216733001811564342926307554680205277721564110998657609662077857964198101675562085861454623629858153045034493486366883920161451007315846493391557309578426797085104267476463759095917597734483913789603837140445279083738680825050432653944366693535884338726169997609558221969877470799469949300047278845590951153749772374903536515631960928745123429393117067006843108820709520447064872955342839341877422565383209137061343056917818473758762746083845252776694508804388920508084550958734444668463528972727263261203667952464714285091182265303349263452422004480838107540487515852047617809382821324764076572233479119103971806465256020505970443633380678633930577250338634347973608153275447759403567775449417713689179128352514697700188566240998756241027241383343410844868563360540546170043851295454082833091333510154105104751006706988922345605620908777369249435830814472564989228881197921465479586115797165034161084157604574412181725281404230517195804672484917869748072661921616263042223688997145523436043026053979777984251170479018235045021403989261767289157801442947901600425646799056206129682964088940874584106235033363425269540035772620708438658826571983077414073511876356874479996078247744131769959628658591874789482729329346758760129969738765161361869470740033601933667633545536145300024285504614463550794746307671577563659939343290795274634286069516992855515408666521813462787055953098296284654787674028913700617122703654984239809031848139685668696328049945632074282993094542081703787583956833468926715043180629010398685000204245406629741736589828240748477049638820898759841063973354479445594015505689560829185953060215236179024087402662050031343110885724531937922394353426937950761504208018490352294983272216581456456355442123993544300278929958604836486230472326028344271806851442612924362460367944384122360889047151182940012433265575863519711209912646692622668773041231159977827146689946251345053109221065467874570110249846387043726879730318202743364830242859640683086804673092836804010408949779476187379204722481342199660674900405030127403457345299929281618525612386906662477804015044514303175692430680531990675851757941388713017120711310481298740324129697018657983226745749727696292731229860354912431312807204241418066486269398289400781775078139537572583083136958302082228949543832619593829361596366657361037108518903415732349870107392328660348228260260083909394824384834318412725039105381789981865675180751595537572023357992565341407926644396646211881585648802603437808771442226394392591368467945605417273327839584721325028246547221858644747773668246489668956199737089650250200522029764455134692672418587299440963164709191181551757861972597385244076002718844972633300170254629550640812975224303887787359081470892813724166190169436742897094678247644998352412744107592806510703792817983721903507316204580528568824123719920184525524214460960798692611139129699723026021781182205144067667837643379752514791607819490865207188474755127387811897956598162144318054259636276527083610656276621851842761052374951633032085278701757944553191765672635427841147319103688764655357294199078466958329452581681062338745367932273145308494262636232218991029028909628344716153036884752177807011463430527498306301978839109005749844251044786403713281861160326192468565578070747411707488684557516983023597206003091714035132904754355862485138550172118725888692942222038051424440676653908371395245520940948313619663405650535836985446053464983608174005220254565557850676814874956304764265326985357188928802127404371446207790538993609784897745261706660194710115851781939476906846240181938590808982008059280706147430672743865683335769823648446215266549087425858979436014518054911166505053866784964530225683333736242727098946220507900981604840852231055879635197108649832648970681065214013909039879081470657961146909994339375156896139465331306607428986287966784537968875092143872839401539851912279872702331441385028733132424746302543742152717712754565755225993607072704411483706725421442297137554184384027265949299708019560194522057293737137392646942009821386244515193196451264581925211505277676737394925130768758537912921145790907640544056342681838922277775780145276375951239860472422775568835067175614985501532974021249473015041062884209044751437144611034685976416893382985848069163862522370914510642316532954438722742638635313852842003264274871691800106689041339284280325137714769076366111404439390867269442968910877301404952842774857625400654796617509156723319338770665726950386959799948183786203771864015990254343382572971913198380669560254471368475561240847286551656997510535132777253636577780771314178443470702083106987063653583990027709903380307080085236616726717324102803068507511252325780169928694574162876218425811684526185241245719750198341834997024477039783536801036681150268872775427999504504460861437722319894414309953835490259886896438758251064730412538318391347281325447161894311696946310191069185884486741190749574090401759441175735063982712863518553488846227995285110281273327227113974195186116077195930368077921129692196357491973587719466551613040595571749330588532225486744102882240861803939490689855542121958953743695923532261048970723253232100164037356692951417410947838394075265105610524414842186125297916638094501647421501273918745060941667137326588050251475362187301371931045322835329108283820280253637564498352565484009962984660352075793311459403432555854536299788100901344121354493383684401000847251490247683888936934620202887875666422210056184628830834610729021956154390819866900460699684804949237061235781715268419885036189076412518494603753291470594727941457953948795693720005444262282367057582977718014852543559854901858445648250593291311782815962701940488934078218176022369242923284813374151635817513346911409872526945245465635494203512440850403060361303943148142644274292846591305274393995901376468399765845467539137656724667502456197093606829564167768500425783231516387574877575972439580060841014762394943399399982961510975729605712718061988314391713881525288884740938187140898186537624942605527693958149124858066424226379331831151974019073117232864681334356388076296615023275879134399442708381384966540248481592224636428757662541692899511806465206576961919016511862348893514825756376860910858459197665679377236549787970726932249802630781412817253751931060599432146347490835362416614539874873598827345269792715194757435371599019282479231710415278547460044773489631679968219093029119960195262349112492847160717303530824722211554603322894915769995838075658254505179404592726203248855075902280611148886978742783768267194704661855776617351695381213739982064645852387246100891001510815651232088579006500710988550598876243446524359688489244247638334264624952343507115171250043428682856056492822520242261609097307100143567146772202674449615128919329303628492256421320586081764157374719230197206787818777356142481120761910096348907888048781748657169665039063907311886053722952506772224100267978122196777610023764128005681389058704617063627523939564795681701860055396659328549019268392303740353928961543018623611084678337517639436502908586264984423559553836305965842165616844271741383232219744844903069844573245179637905234698835541225917363043689392154920626293373820117679130935578341183725230780387906663060766963759925512824106185274598451648118550331258521566839217223982986992036968776090050759635114679999958823747345312993112342743826662256981295829034526601373762766725828204973248441787951841972637018528882348609857500907758269238228186307383034000073188521217289471835071898897592611093301177950879795305314655502321822171267878117863974447146921714788715603626343375524561251631237471751253693459947324680162467006472939155722690752156253899579095172429648838644513477280366388963661494522284346135418796080248837662289345886031326273752085497004457490182602844706898546692635369233201760964917061312441869979351374126876151016765824046650447472233736818417809812327149596963933089839660310376325743137110338530033829360855822855112199876341832307480993999703537340585999480910313994870587810539677988902869706049162683437395073609548225751484523674922632856910337030851551254222161669369007795365507077630180246227041803871022639311773362565229788702538911934966746846630901787002030552035549794770750441381190852836964841379179125441079131937687566440344108144605286089230402094095999549693205711120257102558653420142887901480575451679796404555633763430421664260851428278598864229780715077082897515334583080831876331824192006098132173592438113587902076595685855537648520886045040470481457252560627429693477471712558182938697461839783932366784810195716596110796658953751879325541548522984850271980454251565335668893355101130281136323674628590319326203938738990221714500097280750929093300825245430371576104626120260759469329045071946484996386216741083617335113612799581315174824494878941083684298585742948230005803692586580926456082540030673229271612981707183173884258693196731844889039435180623857590375101909001910403593500278808334958664024402319431899914420917400692323793024264213919840671617697838509207312594272050144059041108836859984711222774847601916380150315745315265867028556468279783702168946268425446178012333901966750011378736947336301373806553417390373831133252543897228435567935265265704024143391432737334863073307141177627895262860029618398495637281928936655663006845754040903217728719265201117631525329438164415378898775480275129100321169672241841680428381901318005605755798474903473602166426614824496486184429963236218928111465445940680702317902960059493677913436561789354400828859496592695187353463676386087624890492566541282091889263918420324855900056263513255094739108590801887274638100466856305993170909501292643417233386589791095755532530507635266396904084023184771374455804741152482336738543564890515789754624733826983375243916930814325569174011494952052260259788985839754983761404195483712013857460638620682705809417062233100363971300044225080287445043635903256715247111457710665864988378560820625319931609102590364810532824054526953359113739354327285911935253761567463366201384508388533228606126329090109273796687787181490362516280515938709388912614948890287619115662178964475236043733810331618039610167285960606339303495211604640716149717916185351101156865674517489130625376851019645113522772051554646316590650480459264044913404820506481088612561279556203821031944721739476225858709732607252364031957781090425300997411301836589902257394326608575226370963786504443598140509773000433923744315339494628682224413535938622406839049061832689742692097194371576995086772090125097254823542291197017336202738998829350666493557268544311927389585741470231466435903342163222643956986690953001254155293119344759542101379646396627172361914328515587896759781424768712131429275135921678466820201119355662986482891501161643700400348581814929816805985939881521227322156758053085459778470401757657228609309582879687982390199407254791920368378611128543030377877673346025990939176261242512468256970572412241997775817300755058755100699603000766398671396795156691894797849909081484083512347221112964867651117784619256770321011054898717415124526081699059151719010582919739208319485274874300686009301930441843857224387468754544831876228703782979045338755371400216485699355288486922321435399081539995832599803064415090286589671435710411134586759733915705104384956389080654093914143047388892666370120607599466167433604218663895591234001421134807712286764032542113127660473053891062925306480932619491091133188677819030934411670602291262692508167424536103490285202029345919642775832756125458561968880464228873837777637956640940110103439424027550126795976384422651780857381170716915675031492406837056359435476394888091482467924831275931783228503548215418153433882105298030536698652729102230421450558450084325166899379512471533200503970674378438919645862109877151109618203011019346936989779390468177229178448122062992985863325937435525980613559655816952923749366520285876520391690244201201852810953248987494799434129400579601209083340655712815750818338598562544759912225274412912384587804281382794672120640412671662652873512661826507629953752769215333225403505121312400108199134149942102826548450090066189625220337990684197076808078571726029478909767384236395513323731429306614799871422061159503984778358886799942244376006052565116192605142210419133930993824799755774400324787731493076389054306006490168642655821620157781270047510198578258374591953004502174360096875910855992846272370598190641706570702656408203096716300672590580364411648078802514848045061118870423098458224845964638046484383594479717114530116689747259447324542239752069979324883297657903772680404826309912529655188280104973426629621340064215462623098986460638433967539071173745814911682268847414227667781158176167146196924155533127075940481140603542178222434003849853148870543075499614131183952817500083561879900304957230720313203233188849448445571037890273400924746274094081629220765495934289162521531823546702195820028965248006101567797193226246687989808894894934454119947790895277473124356819454295169687449289309607415428811643217881454486581974425430872179388486339850164109599350984307193838694104682194797158110981551745646760969403445386354226178260526982365210576990778764920995936124576148140790889179855343466584624083389075069849178884007546107209144848879772190454029235788352502536731136378731563177604681683612163919264433100609768310604485319655498326987894635561746048007456842655152132681795441929902666714852074675357397299105194299933586502911394940602088960129349174693015646103093831892951330484397145345267125461507391633487010691055131930840580529822560674142287908295518457869913346386988667774594930937334202583360730510754566585289804058979161766059730900672946429895388362820872024897107022227507516714067747027878816467924447101944399602645678100896313096661125513381412035415762253650882269985617343412051331229689037005716311401202702466353992472810526470183834984949256257448723489945020770253785268426778693176014777329170377729434881358670052302255479713188106748380225823098824318351732666241393536074896012134162713716119945510014369516145984525526113324386480449152912018080169995910812953144981866055045717707407166581950010658251573521558881852427822828782049898413964178821213936994059864086245364114290520919297003302535899959809704387409191242262206364375072935394653771694918612191811509402503854512988836923449610854366112946873585471822629763179587164941915957265608965888796054339538933548223042466919348817440357168330879006228519339139549736626445315914512005227220664164789643824501786510390826838247592686916481513311985454290518751557333693670022463763035931574980414920645820214666481514454483023488853437311128388997997284758646691646120914286919806621699080878094415583521424921333280851737867625614280484279029163829486131397636534998777980731059066998141555094904773785989153792604717867116777168729621671179969461367602021196298355936997408386450179048562412272099235696344276102213219715694978977631387664105196499964282421249430819281251474428647409713444544771376871974864031201442516070302928097660871150570291994930103114627215703825615581917015375979995252212455847131565823712188063792589442840637122907629934504517901195041578570973940976691882931247456205899404407863602187159630530390812803150643909189815905578672601446545547188150736994019426865684348921785616929398729403813284025301980261682210174066549762622633373848205204748608914730344222213542194325602161678057500110180276599541085122764249656297458983592101039246410867854363305247222158707917827518290764536485157569928138430632399491735467224597032889163908120661797068589565422418567464631266315128020064177428117220099272714097360594223687566083537219473975830689236571701305256389897827343661481661305408446184150972400816755289443321959400852407237547480859050189647745920717781547548859480782847590688759615192293232864165334394335644330460479251551074060745033858592104316016655495936821070050487691125823575083961037969894864084740241239032146154053128297829858929627425897069011659964648150514836804577089746344200800800759122365738815312599831089808341842900670930428927699935418167149036007850702173393304195077684220275714557485491540057794974473791769681024058811437020474866473849896586973936146663722644406828562374066450340733715399565149510718497292043355837718894195387704478222631091694279873350921964658014339893269420911280675324182044478945304893483323330133793375015699511820060087195567161634332669623720322259430971165449219437595908436602291814620673239132778519445243691657313597166740171272453683860520653694458009387574390173017215301100014081467364342283887377191723335583229603820135782921399052309076929940394261710539044484002315517679071451942737632131066837745629005503127251658917945232395184107005391143817100790174782774559754008480344934692515899493859556160667787649121217059124480652135625122589194336207050859274183650878427869914119595983532012475388172940193517522520672225533353402495592613593230035482583115591631032579182943936310579727122750960548844205453314817201809812563607048344528178136323047413701238636022747294029024867681590290133371882049823766421731481162992442563697146818436897472714242939245557110496699844440352932157960987254968407441964321491580696195452354874255380286376557984186626396946764243131350312795582301572440548675112385296990633479675604105456664452812133360908539639118982254327017501870093540605783011751296275354861016785079473582579902530515014015149544647256133849734690400175597250784312892429899489627320619517782652551786547536106566128407058442646288937087117655930791435330688614703853035169238169216985039477824454914695711106648114256706397641702454374754088008538197509649330949785829716881024782078892617670574211612432062387596014721023953181026124786023433807002627911398157969507829421727006258093743735675326327838048404777410242309703249821360842411714581924116828802009572446528280096516790546878532073770152780305572675957136715677340369127126960346401625988871297769492722198120486052342303521656533692712532392726018069715776440599847390304170972565707607427949585564271858725975945818546457071458508278455227625477649768175651558755570505802408003455687359040792796839319487061110534949145306608147523908463642002091571087019148866144182484437821712197288725201652926358435144497614714775877891748202128868095864851240979682801051014594885148391825712747045764221015578727851135749445739861226932177960808576545317566936917320746924366277401019614563468116487584879660732052789965176415177004807539553098571019294757435936877807207746886409579695727591612145566195893732993872268789135449562409892321429658786752222781892563093062603509419370357785373267640628423425068032820877366801285523079994736671300934774665659229315581085492781999255284276525292918466564006146609405609733308082764148085482035839223041037072090803158607327567438179456630716049663126679739554273765483843362508876390258742825482703150462015817348469755843459764766101653293641308597697189210412109579841900259558627010496354073496502197815953295796537222928673397139896330837151644580209534660607827049166256630203694299698887985129191272582322574174892038459393721025320801722925357277237161682735275456241873396055377652654303835478080033406438042052967460481169404366831344839709544847561050625457869977494021501156072312189956138878655780823024300453205576951009390169170275642907607089302129442819275903336571567455875420175251808358005917415752017309436454788621520998589827311789571265133069679888838811060486549767028748229179451738498302424447437890079893429787959808491838443533675698814057977387224753504537641304477751692480723378991565460068789363131656264503437315485883416501548094519786456435124083819392822708170597825039178901902530063984584030926705713254348426917204630148432939389307543549077952216647339926120916135423587587843293220554664148814893207509715777777186371466716001274047822556076180449685632691855352884473236565038947638603745618527520475700221119090228609738511529138123848624022045790800989806329013206305351669525638338921035196025361108495157305323551794901230706242199036819672663892388935595295858711517121355824177379891579013760295259723409232141856758555105775482129241475456472583411840687476604954299491253125974529715830260979489320827889510835291446599822154843586193720485774463489597184848910312292690232041139468341600374416716281082174513558932304018845989515123511771954172423166265751022344383648802596172947519713174925062742585532621410241051969265673864118446457554858247205837596151463590033645955756420602470646799361783669333390817436489210931251349790679476988275309501683554186601135954018019764371759357406542691642252617452777233934125339584119578734872404970958137431294504637952323219124545013450077308573606675081813617582662524097418005372277368030947073203928559178947740033245930165912988398170895341901987909722916094307425043204365949262053067694071833562419930145753062827341990314715646149067948720395125235268296524387699470123458617434963435014655504902210325239370006678904007174859561647453403081507074687602253547718864470853213771918745022413368972297709548663347893353802700232740401925548667450803065384016114121806841992348148040686764276616270538186706451634417424221349811719694605456000950636403868903026189122484016343805176052237688527041292137001315813842530290647802127347879419831246889936231837291902758179258777088379149684867886281446326528804783584816813756201208761680231210775781642208056352107702049773453085752851669611233159736121448244624655405337729363733589855211622154897950483118286586807004191571617108815270268969633318294629775353006701996768227766270883074621422472236354528185118132428731989936442378018093359225548291031524191054575544009669208490416801215793594052624700787361891577418804535544743567856719273969411446021476729021963250292263152042215980770773891868392575710106295734536315420372945388866216134698695115515498229839654907917228688436508948962800125942803956909669759835913796562063682654841018129274566943649983368905655880019537960252646519778645971434697357489969836294503783946213492107758657726251696845819987127649864541908918796306110866336865809794308871662902276199919295571810773952187603734132344551804998747763489986489149355874326407387479948277265817215286356970939711181914911096521791882323564449669889931890081193764211236415692387369960170660774955837339160872568050413863587650778630361996495313298309806166753407070746933855447330579036784154410954815000248364440740479765029581415223754725727780664127243262586935464502085141915425449808005785613013491185430326563706549012942986768493237484075262151328058953867681596292728193832512055996838685744906386647043724238744760811398714076003928263331361845740471201634032670745480796948375493049139249670703624998850337613365943096052755096582466346245669064164777647002871901881911975833485250257687582287763567173148688629975987763831095978285676711781420022332937837074117754649907472794372322721408566632444620389059871179654593652123952048847626248959417954532439222783587114562336968077689157843114194278523096686778532521360023455859111608916112196640536966834469563298160425497314400425572669521013594556397117560330888252133096724489800758381167397568509558277027232004162865560637167778841397645693869238384158348793648965926675765957043043000439713154007779271098677159685553386799292578405782944564603605479746194288101740141740437765244206025246912327204975364780288274647171173525076386471634864983193653047876192946882419345217562231442937535471303351000122917740916511721031380910661391780131992283253666072475586572974916068524498940099315435659700035921903257864227479378445972532202699137498779548009042168400369614135901635963946148535059724456021761292768810593615396953923879917891951911723787438085360864541520293063631708017010447928444576166698551523426104243266717141001180595126182754297739850756564082989233377695415128760322872260785674685028189799374686537583407303009776437434011561724007625346628677933809622961930569416314891367342735790931462587502007255739478558037433396774037156072100393499619256150890111651000330594194025915325682637075499638446506340394829348760041102386562145265196430155717415759754931212144662030867913885371966953575517652497947203996461957141460469804129015114720549913656547948960387421725448254994972253642122055707912545975755430054751862451906361953773990335521620557892133403568110983493228267302237591326477413276217694026881288238866667701899304811534353488171466475843130645369533540962213359017769860075390448924104687852612286402899785012871708489062799564112140709309015645194837603806029519124360311836101984426811942122007503125781608896162113860550146750334492427435026432918167821938993120673807068631326050942775203419761878544838119785292729201518622093054235668862950079216226954225343664156927232248345651958348115530879656896269165465181449455643059928151001486493603955480941465329148814888524885094542761206686305238375107860000644494912179156459736089064492939497101224944081769572136980811349116111498093169679311717387322578180860745223802925690089590633985526226595036697296676121662034661649590708662054917033124844484090953949957448291890615611769122435099582954948292149501986862172708181514220460526583751539483208476021675477572008757372530094501709540523550802589266967799096440767491482078695709679657117999819811994960338372437897114569470765712470981045172536432763524197064427624197570206102051381561067587553197886448094506666312330257003224404195612427145820625932268053146875515847034639999453991940708809017964654588817503489937142312144509757847861912453695924987677901581223869919200154366006873827478272944450776048089707677853018824045299398358550979667109450645717827458267959579984726346761654276002558317776292805945728419653063618947175530603013224475351654219394666320243828547714446597323150531925308494454829466771519727533290527190332478289990949902154320538427622624257900384321015740292931014078181312619645843044447388934157025202149007183579967609764683647531956839641839563745310874892785252541753887149214249113755164069250556207235872862224059908548883070092309903519288585477327544971605781824026612062218489461080528043346096804269767812097633872065225995721612246464203219432740119727103258876746112695924342507883934191483123493940436376425780471411310432581142675117208557114606571499196770565097580114329407192610231225029576054506260537776997680974616793961582068827983751739031078904976334699970768854503457984192869267519573419361808127664853860643550218814434060163834772474811977732482670532666063218335400057789212400710390903244924396765665775807846528769132332124953273614579557425656175432050310492737150581229533720257773374957014957520997594250130820902519572489596131364625806168221527398004255363501660701958755283279144949462985524536572891249496960691726249772694672764444049930722955485762717158525231239689141392619598849726810633893696097531147635307424026153511465325758875496398004785759524249454786322776170929823564387272011491771343927902672659827171645455581080382801273340877274430898795119623185115293701528125962087655439528025144806279842477730041771171650873363319199078039879640938732140037480617210395466795111052062018662509159834855260490607441807772858549557457338553095586247534248730551390077429630978421218811731565091836506304016987930766978157104097326335587729873988293565199125568056122004772540968525186705485658156426787184119320560597046130461388790995088102095708445517470296910534504769613772961026375152261252713960102237546614932269058947283927655180641649980753744722584538890195757407441732217553431347844301154350001493202459126404904897286561079482178249130106578104485727811279844195312376814434960823727509840816135674071927556624795036084619240653452346237499250543618168142704519244359003613127220623708673198027787491279576166147857106930824473233962589171658212039305949063376759246140397861903146425680710507747122204123072735635242090414922673840038257649982694682381677587203783303799299033664268775401354091363688668723239422945920719556325405589380100469125279445074570502316186557147560942328456359007340848160632740789355078635861847893409983016204555018567095877500945456524556814883935319406617764255344925618830155248409313058727722639071102056000647979295158332749652151020263212068401111240824200923267693463697438140097290790292700320733342113558902487260257478516873379466282053000332462430259214104691234636140921104801384210890743413833260435825516690598164679966088258795077610569707200208447673660171826710669168171494802112776602531626796430447321509306604077335160581731919009607156440533606461465002842245660822281055558587395667060467754558426695272735560879766231028986578316863163630880591111840348669579943093963967402589755009320938967021767155685436763442132070959026300557027453191414440944716519310644730568161389819589793429121421323347591423844928578473126416363315916165642743849366385910580450458824626207504076628260700589539828725779219054724815025280289993030918028929097401135674164676961435609540396133926853632738418987699624500613783852751801417393751835729703912809411747815472108232383429615323471402379698989093819932923056987109112305484461229248333541270103286458325666065960840050804729614084180289009083181719208956121252843149635504295534509807861207198874569426031691011940944463907168209480932572437053704486216089346235782521213359682083308066851763838723303450011771111806207832088954895286848454572595047965950301159387022842237492709933167007185038618286167567413069639038179848294043740272333044926306815312340408577015164602136634185457759471966198857700737523369707388049969165451020082131708057774472286335655435816897980824738232589077010970675290982031101309882525302196069285065648433560659238202045417443922749678862926794119307009248019875059083708876202124314295179889618861381330012335784724029226273638974493477253919024015061923064147849440673538919706399618973487407157511721807814632362379013168879596670599762087976256290446277853962980497502754062718291553073803255437939576218900244876948967079726094625346868282990482559148517003954654573484221070575334519967936847108531162443059846460455072165324792960987224881976200051060594223441094692753552490715114591546875999378128827354705485480191508609722095827907040958371696073434658540890067319158078045445493334428544549607199113518366438657674080326844244809038394236325713346837646264720385835895104386088696540611784430275056704888877528252067863297640552907889449949376473987995906637557713762151072511105464228891714657292350181479645932524945054875141818664347603379741549588060875623588236479105500036554905807677252070245431939851175295683121527697378551423197671604706996676081334061752921644045399452024659291565228164497525344462585798731663498489337005779089106611305743663645393232748196242011081400589206008072968394854434730451112211301613140897177130719948135276991564363148495430661516276545581841656553176639031395906960474455807797476688567333550694610137056329841008410956576693461666368147298640314430816167607935534882708454112576362930638856416668543092544749606181874899581692134311458316418484403917822405118740156578368842176544518412917568704275976247179057173791746854798411293063048863049662016674170660104513182147079934738000049853304423800256869215825004169625438366965708707103485416659201961396742328168350240435864029262115975693387908577224111473738072186707641261700891218075562293242925014695711648923774354704521177940105204786282516461007260847967298631169340298804697155648708685520024920078799286773905251552059485276672041064324309893213385135047116642981812939436351957708156464399214633849274119762106731947002597548690956967283336303074731793365603564099193544424238939693016695944578567353828654058215685250478501711524314046595468631632002122258621890179644384264044309578676069230569572102524590370803333498783283381481911812028370862676236818692666763774614876944740442518586168248241966635040425780391664872635127832695531283425380619156964927872414747717658850280489663440268142956043001427242258648389995640884359690228840416416239925869844054525788752122400771215113528566189824830842875073173507963155168495171510492891478077157868952199757967652677381221984199246962762044998036264895310230314277914034875768723258577975089035342739830845622108797698147414988870688994639991035407561579124325217150593495456490148762439272658277596982704993478790784898870771826407617302471168148338604128565209160834721919776079369835918347271283216964701389214219142798549729235471939758006352071445131636807909991299915120509332304778765429010368176693116675054988176265036740652746918630585223120375367818359911627266247327319734190137411387941295344274923412584565974065258630059639808968190847056701410503315288746205048591456250584245507363455219431920641809618989127049743792231879998615179871337801889533515881853964920142564682062971836047629575549351899653496802074865145697690561403168310498392156376322505039321530051345115985776719668989263856940220630189085008156503786897341348979615777674278639645232318107979352992026504139084552599310063227123613379814010230487457674270827929694262876642332320433850304726164496382814145814954350763661480379698925050516520867966915753411015865462965291072720923885432867705506432701767522148540203691270533779007694058561049451968963766659851750846194389527631713581544507828692881097897539633008174234348932525483791345763781210984657583852610320819270175851687433887886079490028259768079905543738805644825458221977843962209810501998776797303891526406381803505095065501715300830118476561058704052526793662042949084861820436928764088150765787646240090550427188282644066884180978136758373454467562349686537359733604165460748968337689099930543276061289652429907400023703015962575833805725081270870245197593113291457692013478914422650370043492413668099591479508594720112544513184358174530911924874305220910724280583930270629344468764845155949455470947705694112288862324020792176941459789215902780792300087182969447346628897848261680460977673972993571223277444011563479191845594377401343407948627806382206453502471483969599300146489640113743112552334153954096323799831423074262739237697819562933932815208697470130141528207953300260950523653923455552815712956913792939356480310270959514723194439322831453222799225413243376562000867693350510039300604714697833825464502113116530611175819523387189647245396529635300256651688865906637849956594713086936430887488818908598722143726027664945874958785247165568105681888967149451924412743893397548216761228606892399747447654451777872422740946262929998031311676949376482413566871502325295952620308455978162213904847217335566132950186804181285486494469855792620150801440393823928620543223945575769159389568727319628648019173608655494315646299812309567820140403962784068591635415843625754723552692301325085405934881090595536339715267280093988402674238640721336478708499438521482507577660545882535141562430052062406067067703750873124084343334500771523235850928376012930660323640191282754140930425039985784516902573909691938669134955342517758418541239373049519367482196988338271940344473530033639804447817224782553579052138448953996920477492555644966168437418462196161417335926177831758444639516815859375039247054092688425584636642457978346018308088049724297746544938954648995361947881949961100140418181431835867923046793920360730721872264114885316958647146480165718640618165898263686150522191408566701407542444093147052673490550108568309555689948993908733832066093023861051006838015936346166211267458133163227247762293612093333576521373210777653911072660109817248247896439785492377765217153924051193446992761925516832172411643986818103818331435953530292045612996292585343745265174887551272147989469068712942101109571401564754014308571606666087155364606409269702981223553148957336785424778965833475332771563407299678592300891562461048240146695552166449100666071025359413379075402590368685947655256353465463961191375901216341678800408557224129911088815544625183007600032174999106282140070351578535162475047558467357940913085592141444382635536347015433334689518206766525033417075247885720404530584189022521355748929402516425268127695510355923513713058941720415810179961094452562519492862029778083699495296485834302447896959376297481042701929487708879976421799484023320298436632890059958019431915930168679061564254861140309502469976822314540429663010240548764267608821839186692406394801742246769593023658328520145861748255248438304230866177139705063932463077859111231689964855147234336989700275643024414833257810297600398576892354717697741464202242248983427271477054875634380116326161470432521272518235731164529378844732975541415368975292070245456506824579187432823225784217306912470764590280757205113118385222217806534552481077724228857081200942246117787951486293027491214138667562605862099419858079498011254063164352597008720413507684932058865494637484736473732499997675630157128065069745071070282635965532539231335461965358198528737692975083774226962930539024895389689137727782536107151775593975234219603466809689981186555261247800840394890681237255264718160904637119926572909482910809647498676623439991916977292704136801396268639308490298662147364574888311133533526939167996662025309980869141866797383191348420510131750325191157089064264202012198340910866896192673709013842487858526489624440575833498275097380872383765295386261620692236492409469416761095418644072912592124746324125726238570761219967961135853643581813541316009904240410796979659155843159205763869083085272377914948751745888248987202595359483743512785898969805375425442669297900376434946022846148147880418561003933364487754318947306870876466968998071466012545345706007791420133110362684794968279871306046945463470090499257378697736681748520678502837315457086594870604463433746121272238012654571365392707666891008935403421110542714460107554323974015456190865334582010217917753230439298581633859359321978068779475242905139423918730765203315832882781196076635571019618580758158659021301825428607553932319766805701657610405522535307094835819704420895991796137367971242555700628247503242933074793099420645428955438979055895939924576830773865860269977816183387088716143495909247574948447717574212803607363065959297301507427320516379685088216183774582246562163007385369595696209799714812595411767908089798158235905301911095135223831393477287795987002727164107131673423850943194663135759566933067999757683550784421647560503795409752006619274062908333435915291084772740940035878359415098529303805321450043162763553832102637596009263580336552546044177013955651901812357373290095096569056431822987142389074173078284875605855311918814214093294744127040303772775946984578125015896747454617244939024803421080081541962764151760251789535814466378958642813704105206796136634268400821154037970691277793899420492754627463652473169277122551080342637589483859503752128514827216511295354656637068290452571985882111650862613236967863967880220773871713581428612632522508001326604478973258587659618377414315635860046166410824062230038751274105368523672025016207204037160731177859100799125763222370707459531950944879441915577551853781139840880689499393956737354460874099247772437145720520541759123928861832662541827778159349887429085455749769587220949465731453917287019633644406164735801679805231665582852179126578969372431938408278213191344159987976527289254239801395997485113707629200513986480423766956688367048672800250241694745992999397575406486506332241409744127104133665625646167770980244682650741171726757531880426948983865292634396663904035516897560062706505465761949141741236659122967307648611446920502786759691143480886070889327837389444403234264238521572837949631561327080235342021053734816291143230405129859967355730977108511778000790985812604768460379881284629167766140573445251886469579173650076530336803428633565331501767245998007345913733063157071961681843435970548636630369887156783660260814721033877047226726827576520028720953186158960119918199257061021342363637422626192091329107430512630119026023714832316192756330564535313584147562473691383143069226509119687969845468581693756248063566923722938130663487219492994130098879503878477433595345821573902991300066194163653427088092182574197573788656689799419103322747300719425191271877218002724025724743622594936958785597734033944446853737190511031474312800672788429619165397216617704154222902098199541009589101982618491998326816236938546035271589241396229734239325931318877737770806000869680336710872034779248659728828183519819668285296001827917321637112388630549638264879254245611484909290668599252121215896540497863237190388347949336575512910094853705037786729303823683916677944573493168781243167753109923863440846602169889968686154731602603833752181000689661412327680734829608001170600840369570905892753868274952772796723409106013867520072538055316579626642076779160221418364299670261722684250792922047063617219699059871275867937605093580690061717889529012860781141692350823754696109779757611940827245315286499326650771364983837552001012260187295494037823090076953200665832412507722027902919754243814353741856414929941414988379488830775532993700561335184644886898774890786536669967920105705810645111575914971984147324893479304262360932988867963799902801963714511783570189947206639972909279134762509163840885713348518389857828482106885265980508944281055222006673879475779493494158055512663368950306911586916390575640960341992574043195532064255391354174356456716618938299398482511739876968708620266718936812217049733403713939659306188024994029429946729886916039469341887399315273470721996405214043612962468268312426842007056313284554316329527205325416544678493828208809353992585267872751034828937378118598752713552592068798813305609270223303384722608780965635974229017781569775043442863984749413104582724098062748574086543866212728538131171334813603032096661368452846457311232198673506516458766063757474699818764773399594096890514073234500041924845215555822277896166212819675062488919309635430021852358794529565095749942724758984324623912957986771004066340793855931995141055721464678167299909131766059540597325409579705513071259841198691955229847493013943308830504356982853239703172871687660976999785485730414585870150924020905064714562000319554943673369559937790955302408979933930136628168856888916906168244800462801440203455048294966858107092798984169787217154947618821201085024482942359362529336332480301051241443406733203627304191338329118945316587599801302456474499254475008417047706101339832677681796942471228999037941261078297346835957040482336619205975906620233638852568325709780829581987893433279800476349472856925694461007582331686652574152958941504300591250474716184968472771931035543412261424474805414777864889150789385639188483377156800278124279796380482548172429389231630115557951716464333495393252133941837097466682119132231906020869890300237467339087004226314755446927171871107929293309185733183762393929939467962036695023026104441087855821039436819552364216612922625952372440178641518308712554411430133093460959550248789750844478810119645184913767474571067696010576212743739448334657474570556757939739197185606653446208513321429538293806675221828761163667162705258561230820800498453522872558041218183815330976422028129845277292981280197921359794058356453014201498215051072907413412694144010784983362345794432594193160169258977393662798092322641655908401140598027087826992206933037953391904452607706335982165188346119446324529847082393501206252570596197201840584016978764326326464592222851677227002475956501161510695032460136992941175164707459326267857508372196638800682227845094388869660801286635772569527154042478027195291469504029471925234537898523860723064731643900385786839729364231685073142521107729981408336028699880288456599649679892483269163042930857528531621385205991828973728065377963623932379157982551072892260445669173456852039906573251448871676960289410485489264421440124865314148185996603116956467088656286149967571327649320164167783935918140386573591533872338294625881649934731920310252296997758688259284885012013427371946347224393056102194344129605758523956950814748297890602942094852984193851682315251184332675426589916077571281914513148043247477396814500198959366475519491804358243799225734000172658962670288066597812852268554430382599598469307474078524975522827218772726045996184623480107280777502071681323126669436173944593192675047332626515737539740163417002774381224837597975605513406479550355465717551953611441025105013319443582604217898254713695316979607402341202347991580717834030067783293188519818428840291719136255321370689550611008961876796817284759899817517546550434450575560414362025657157687842182828420971160785544397152592861257735173334619051486349505187603073424263369687693364124621186682125789296846903056955597520410256335059262154540991836912167374260826766321375293307123520277845865370370856838849890206000071701648415845053520558786378086369310747043995386400625756903037287367943463462863962611906150613657516170653700997648848979899249019424266329081297947096390365714218143551183353978384521087154472089905527087858188927982554055450475444459984295795841008070684842880180634679810185969643834837973183084835462356985987727533263320885464923442020521495574593916927046312925476289368688991746151382931640500411196946812294948652919555678429883981504012334262292661641135230478280220587144223980596694005809689632376441392182261107703591414317334014496133024735564674657822897275995378771229818800280020546025062916445044608949362460952644366179608586386171448888212972514205910300661454311970072096713987702423121941875904007886653313166942906022666440029756200731873937628421019130985742662742858119511713268689899680062520690701717617634693481744757215924557692638656997650886610468858625808032922118838392501091637176116404782716269961374757166403430814424505251667053997228600930754780186691222450495984521848678797840828145821607828030707104862454410281684810249647241489825547842903764065435959248448949704128873330232675616975308437006555622405999150052444753938387533718771543157432618624146319634054059912157623441231369611998076852510181814581957943377629004347158168651911720608445853739997313897341169736380635373472233501722296938797009252426582599920381093467882697491394000925039259544542594860493543287532374728995860194216140843732915792338264761204845846573181899319759704054852101280933516882606473302109017493393512637473811672288088336234932463901117110878959545143720935243565867009179137480033964599737529794144761226758680979880643539080526590843457613196344753356147115225970195633529584065181624041585884034104964067269318718441907154181218802972411850929284556072906056436353155675187427169531144608104735527992708099939074962133633666707706042476957512532939536196016628234603242778454565351913326447368635706525152885319472918656110457164274766476795423423515554709214366988040911899781045350619144513263265820555577218901882220417065714160795745375659000644736571384698215503336650855254839035483351630728550174017774821282005355345113494109203678169378311387722593215621397597778293372391251550963625321295907037503609751116041374674877132843971890936988542586185941082444299143326092881078904905388696252279391819735532960642209064586163310176631960443829535267087390321385858974723044330925336875826977464797520515051136115257970926250967483272438478722804266105492586815403823254304558548349904919555304697637758191399737603906023876412388021299718537371279549789979094739969292509943069138162211510600756297310683414671947765154688033034535142139477604651708902975221810787498300293267423212039056647398342931789299376641288540073688058033625429034932183346155914665112296259658162927516187327005800473606955559242541383580944795773578851750173202414211026146717522485044818491021685961007109669612056676335929549535088022752701719044440344072396380987517587365739445394452934565063509917812963118623292391022378997585270542505172509749795022517988309799449845149078449835568557029698722736897633959773090286947869177700424449856785645945568605802336961933451877256051269321667707299123468047527252990950890210419478134250436019496041509950478910170333884536842690531273458103262168849775436176964849591017320027553047978603105694618525054728276558823087455587919881441636133031929382984124915515824505493163938946562898752147294180570748498496534892841428310979596122758087175642071901133457201836460458272992511800468484211804459593629637478586147583533137402051556709266645256838906555931942314472653089228207176050579515822763979919092460392073706215418995727138953437868837855619147117876377574795019364311778895173723869599311381037323062099418223437985557332275383603773394612746733905949917140642276651249790512390849678420569339438132275147973951945670442123000929996775871663757282848909075192444326675115115597998077599083651243379152000496190391403960928509738094265563185047607992701828497888616259662831215679273908835178251823655769121299621426801435319754682819710096774465084935129565076475009196692521603506819105158046725405649431426079199156886858846545184531846381298489071781164610990265361959910904068074687793896938968185922761524736563302187285595873593623001403676262651879620703546566512232148885978486579124081571328499879072360834942634657370457791575778041015609803806116200077531821660167977087496865680945070010369126140382002063975374158685196872759423740197837428025153405803175047670759744787250295496534174548536591050140454507226564174142211231022772161796149432523218524355921664673404160711604165467459281302560103607796421177279674927508258494921221886291582089612863587358593515483915649223283500805511000647574478656799827072013306746067686921820396233749006080001046196804128188465025882393183632462537710808265002197206002311398903163319506730103207957831206506819244034431555860007406803421807247109817054810140034512429275328243665073469115716805327489780758574406950190016226466761386502412015949541656321096828882850958666694516784853412171549668277068748956903069128925028133896836794749641056783559091042888079212494900728809043907237505254572413449272387593396887355363829743807691400169837208413585513044791143367831602714490421511824901066341090368304316521296865521077637211911919580599717559144796867970353235346817815018094344592921762621305544872151582466995369355213091746469569565472866649145759511143703935974602809612323691379771987785047933244782791352834372264599773849574562673930025514525882076329536575380242836154144832752644405453300954381045286442030317514268565895132925979126108087210852798967974289150880293522854536426960337428598678741696446343557296560929863979158804898163478929461787800533168171998926340363006206140070244853482653084404670757282498172697381852767871971283254996709067643605135581163101439024377664543479831119791178897451128716722077911678296883741424268182536208199817135903580687100216372721604119231284571756928689860548427409628310442162552532112094388420488216520493727138721510685720950873959487479023426579949231048447919002924217240741870544175500330288012291411972465959667802512146806182466002424210775991530072849765224516989288654934118817597783861606478384367302221751114554505442654641177907259782190182026734486705679180175109776282646255623012970745055706849508775188793566324004967422204011791809885043518537632428521580988588233706288702467341674676120336676948081422938530628362950131268640724612391163005211978443989857237828204495714179894493040412539310352360055483213578274784319888636819779025993943381475610557871408652210056509506791226439159732761033538126357345987091981513296969019534176434413521329648514213319610974037214901918598790313855897378229322661582869058310964394708211755251606734473478251959340491722342511368260229863787000020509531249383648882233130988715180790245095718804673812258600525625903359137616334634547669662470249570183804121174287423140016569129474192847905577731421995320778025475076485462479202746215702817624991739485602423242435935066739137373931110339738159771727736947759739315609610342020334719058344206615209453647588928513795033296850805549684135557284537200929947980059280449176784239487221070906018440205780764646154688489795659207018695691960050695324383919454481281408867147297065116618850384337382341300639977660613382664769678092067611094957209222993663951946249605973877923734187396773857564487092116940126395254752441488644541459210929030036594681283453256560075468197952780007579292460436251283514606170790114686136103381627926482407519205853712714198215568222316720949420449646703258403468350866146762917889819247608087455706842452985226308403733085060205269033493209741123012281995111064414966173792548869488155173760753352156100458338454842429671105879634496565688251741563311629067050128337575845809293019141183261206712980680524989924990120590887030414095545365974708424225024243962709653107876088520841327191203282108451601880353954012517689158032389774295330349795306554405113063834723367784230484720765144376282304170212082747545838994057676728479447347577770805750532196671366022270776853179950612610657176341021581667893557271460239686758875220927755862837699260893246049963664569610536153042193017991579436526441009926504249171134155073724203925673867280522613703860900142181488834174622032259817437544610968565588821269174163433803971654408030521555221419296652996945550003113743832365096331927943193103257013361449904961498031905783154027957892932936731376078191185350456539654418191834276980841858362401180305669103269910561189200865170150899803003571591980779011098147373875411289543274542120278734186421579574377196988049319698924262705126419659750516030207741555750780712683331209233897386266880412832855058136101631458884051022600788807994081379270900275638016495172702194910471680308743216358577571629148281165445400319441131682310222667886618910766073467130169631800567424978711686227258030325991079677787989454927489591670202569461576122411791106664625744072844774598036041975158498465737481094592051834398207723490900990343255231788243158314915748353442361994250863276127503192544573632892410476228200635488071047611827893459046983326002262873198198295918228415549423877298761664678981643503121332162557473964317999989201212324204097840231152879378473195306789197973922738873563844583958500244618297715341282371170428994460858128325332264011837442937212681863103832019554562497597789302892175428742420594305316466175598290609530601246776590398925854929967844521329829609521764091280799564646358308314161506551418558707449902354169045160629930024278081490399769389417921653033676034985022436198147549621713016258996439956570960747794107088878408910475193496273300299306585759526446855464950407415290525498332449146007439596496400398295931817628616350812988825722259180644644966491036019125974833143829739538113565228106810970060295773506911811145815917816804094418592757726911142941011733011274170950428608434237988733790541260481125491995663746438956938701006712782021074108910919626207189972095416199153963224104685790607701142714639443013107616343847341760509507466270967372863198360334920894890358395272666392487644675369449403075107030683279085708786465825719816565787352371529453836048720082531658357694583117197696810121007713496705771694424063034871888271939504688323876614407032207783448088510322775595960933443537226306907846542785034942850347717142086152340760242217082583046473961264998640455590785668063084545371178861821748132488922901532526031187985492539755273280776402468966903423277601592738034390934400360282100438393286250301498359606026866707737109130907393995693087339391987943199939483047406896644990210874176415972605803597943695302590056227186941463705529489939146173686639467243055823113944405278952611888791369829717187161985632801400811214260474546790906814851237144304830144141131151412098016949293127261875209765293729999061328711835031672304999392038721612361123390291937787986782146838672968380186865690271231757323823784510421292563328007766985766693221275759308720264661068628045213681586312599654553429251485201379498841568376753490634153888976507279006378410355407320133111140199947798511231705847812148208533160133850445870399233973818647508904069463982956989642618040981613864651246636942911236481257905293644210908479471498072733250514434018496477712874695034507019979354090449053833550834034279350683439804354562735352439426493762486335459597224646462943986673952047135751488506320854082673605687399078219552547042803258020710153529683938323388842194585779710014907400315630342624397663538136071275919526276598360116462234542244023346187105575695942796677978745555995772789010946251052904534465273692525608518367791752950385155808369985787180888501062933935784371276742852098741982070526743646745701267418406136317909834572690697271743639498579494689147482938400720835871784803411100112300422370881881879241702181321989067855026385284076210815285499543941452551207395616032066681891694543577845755807425452848877661085918268080298000880628134954678197727445331860695404783454462006281017491514313656725480574639702325809491659670092814734730159584530488785731812915835656307895519785017798346910790132570210719777438866297262420490657078747779584296392891523721131275200248929348632041001477401312706546656077751512639718666697060131777610361660242857833906669954151229646602878562761854812555890535170842994132243785675241704391323810374008297761912896313040032915113119888170145275385159767635301822004201065718087669943576953981641076077196677416107979836111807906211931569923154887676227147433449672970290667999333050358231448925179013946264464413395164919391767328224637960852741060367195289536807972867217151273076056957118163334200738698526329595027567496222946676642570741864365260256519219560827454141965751902247209341298994594273705552959702051807859375873012318675108767165968096535109863463937572588646070979104973428424660499144846982908782632445194120197349655291357931195498198768094720659782252737659703840233729106626967390088574044369553482470353111931403209078645874850933806777094652245156434817156726874411195855531584598125701797610416190122695262574662701929279126270430021930481216596351982662852741654823008778981738068548000220477493360409341355056064939953236766970328834433085038227115069159718164940348180671235979462417047655107976564243320899656102418281404507893699509329446237407262126175720732157285837064216549559766963692058843439850232455130377023132852723858257931691389780627548640542094140309678601723259223392033081774954309514254959749131383820943187596958543046844512271687751560991945095365760048855380595408929678431216698419556538836884166342183897664232461690167686548436153726069863691855018857235999453584015911147554088813483567057923908830442154340921822398947571679026025568506431545870022954819873858632940368022807961382794288679665363726229191412615091644496098768900904448752263843678130105448113553083183489788097233013160433878860426269048293061551992637993213411247670723709531793081973428839722743894165845292950811462016471886387503430780088798366995819116666348480636669972879435461613570060355740594575384192227909459550570424903336256367709254696278233432965798435629051305874857413478234550215148901097850823057564969637481427688513888949473967787429639236890558813278021474645127814672680499120642955650932790836260766683607903994237629997716826898019942329056100547121501559418912482710634027236558010767545142192268081785936732118764184122736222618757382895384509659433994534971991645542021756081211269881717014625699223009744498614919917678316450632021287790911421679376975605817505762733215621569811076091801028265541888594075845155158154674693233222140031434670977250164202962770681758932883706951358145529134631652567771108312129148890600351918981084767606708315129915791762982189809034907733911576243556833898580445626906333253712911845391930229121539462326802327719152420842023913245859348182214865213291482080712870014167381341628656671928461221512145494162513954409124719274670667782200175069541725031303671074127500146810359732048475057522269096398737199207554051483080960067878714537883942929555718310376064834214596393134524416105984381729177114110484027711255474546801387778066018613532007543998787931054848367207784337605666623077401800859112640576160892194479321990692830583940421328527094012088031211316397833207778444786403627320622936824602427319310372382763258665780393544964315657495539722187354148510258944594354508709963392379272473796554883216657238131740086330050221103316857785027279904099846035824611252731293158471850118950153598510416291089672007384313914616741346321502909219267540170782004477006249861654846956810584004754547870490234342048864702889222095263258992739090207473098121466084112541274583508295748753619078411940113015094924672620685445049112155782064259837959699897560981116213565709177688260749905029345410285162815375806470143277961355010595771055892340123453548764418152044380758635400986665191380933515438495366285718342107535997002942011100292837450425024128413113078664738087981090076016034031252849140831979623096207747433284649060886957168219641879851996610264912810496038261955420451803109784328395190365566194474236303093827132640172803232693937029366879496675231216344637927842416229572345285008058439731494267932301732408137521428208465937144538137311578217413201909460994221741154654231824832287221077063756642767312428662436192764750470377964332645459302105340822689956521759441837382114420651105364647056305871680098001197310475021026377927246001518855161024709271447379952189965567902273838288618610951716030270439794107087676905876256098770935439994129808889436956682792768585427456075944419271586595301746372643445209525181967795070780934930134941183798808876362364134101127029969305817040434936646651152165815367008640366857062641100960314368972243909176110749177798113511903454790767039925382869506453165184905662083962269041882906471261017796326348925178957728848136891709794714443725099466173932010224131786104318627025976044893188519217986960572193269845478401989787789105394258552663388477069957819319836757291382927958512566983081529919788827268531121976380717922033953360658565608259949809565169082052849284799699616705579082980572785185156719416432907304995879104752524333050680094352545613849631095828197352978187059501509712836208884762659484581769501707998000268160779510550221979615530526088041199884316528943984921272429620407753138467753518921921620613692613692263083914990675034725422084174470696154681960756433017627509477742466387241166828424065967217704383310578267932833598415316048548397346098767562279834911621706613418369562557109021664419472486950079049238007581930110002112690363908605211252111158366907593880578505673291725948062803194065069391656155888369217506259212575251959529966427307103777879624282781530199244746809699713214090335130825508864404918246835041640412317634920448068122973801207441136647810882954608500992102323736491481387994628249156619300770380863387803272347990794103237610033281150468698434526254454284972894160344738753902797957297321449222701502622690418130290548092992402835256913602628903901530093899271362970303578155286500708929407800893867629579339782377677026361174672179004531641257212366100652403896301637768097409976168481720534579696744160485024366012656539969464526738353310702102741907039272670207413989619379798870999499622960969465826589132499681296575301354705958995451043999163639966060640647957309711548195160863038527181034365533260783194560530641722626924695906648898552855385713699529903682132336928714698695929230413774317577358547805086428597843774629621989772929346114495612099860977832036769952653401013032858180858502807786959703104184025281147811945624890114452843320403814026100398685649740371905225072281615083293112501536812468330524555221242472357767631550068094467918666788272758399026707516361440664151993621917854486912418611759331348145579615256710111806747848494276801895329517506734775506567464611591436113209855435797168894574710404254835921370486464993117703292975055379637850285620899681853659249600363193486175468872494213697369017314301533250259598122996715124166589983041850663014983122085211301072659116144445061922505102785367327518790260975857604826669483503094098603897219381056519616424388471660571369869333658936167511981902061514090353552405332411107276787336186949722198283076200118605505102652156548003717282226013360669444135983196368306325544829084794880784699835954791911479736214290192664435803422152108721467335750469759282990537042167575834821408309063884737290107764817315200662472300334938296111446179816647649760898788538646482216519695061089136355249026135054453271124566629692200015889476142551405612281260164913174172406484439161614238014637651056777966871613701934255690138525263193779263947064579938542480690145809170395878397762478552499026276802439748006479316591549004588338513178044617705912188823266754542554394363159194755111373917426147344772341344227165983241222491263850170803007462486568609963675127406390486244860237692553261525872880405796120416226539845127592513548674213014531373231623625064931056402450076433813962425494205874177429098862368581461671158329026699516860179640901808167864513284958073537189197851772773700387988746654020620519182737611641321686093614643879846932154816506140056718335984225124760742996715917453665844097951300365874373778094163223686472438678294421248017068805187802821959393218623534057055802441013798178592572047523077542831049386888412540566406501791851390680546743679819138206201639500554547659989161824796825974807651837588041724488808243664639497326532406498591479949614439745478114972129843744362039069121592068033443629345771983816492696226500376373253908817503659939788617078521670977470113163727645664341292809522439627220868373960579822778459668592690349985221806994287986352231670013676963732230502848545959214277179152325667590132410438281135235952272946735784818838648011375626092441153944287074666460950480027543034047563174892394827177957918256875848585377173645822087729920189957381542938333501863583796105395658604132408335901604131202868791460863634140211212614250438197705768527798982411765987644776506062586391678948689354183482881121983547716476609076302081180283377257490736202539244163743832331768839151969332874819435588264806591747202674150813315416819228809603998729639387818069584653282240809535103268939888581759984721860541138016372830171822583979253648128703875429055190162652637690630438674447697370584322922405215088736909921357115597980093715762333692669507345536467077166477173059201079465270607338899024925450817407220579726768175904970012936558353215125978148755595687742044758161304772484582628023272543945108314925939546806539438393964360910856092036444731221450671968261057072194447311895557710007288658419835472426649214573232796279736867181713419739788550868018692673589922861451135395716518171567014344263942835260648390944207443418204686121324447118502119728865045408007916389463195667647575052045757013473992250333148939069344291370841833166778458283143969172927674575778911466549685001511826941442869089489398146850109710192476964924082150463839026894208636391036463088059425263342388239309931042347160012431690441100298681450816830349939293947469058838002485422369855270578086541476342885050115791517381335551756462368637517219082563090997977578456250045829626407713217628644518401098270121288100919487341182777646396296866589023182108804168720463330946131925129255294551596480300425421113174496098072694928430511335715268649942455612920627975689350477992170275918778737134634849421312643217564186177351300086628179726832185022777729904891085529680361552821381483437159887056975854510419699668735690938151032540384691589774107574282447531440887648841634570238815058472324968154737743707450020402134661061924781458723927043841632244265905442140298810779169871595808813036447555497220061373949538729257803737717354390889461811722236024234539508827992256189901317001137354166458427451969324269388637422556165618194324593107205750931628861927526840667512980666253919945480241572558327020153012062832894442465026299871777640216310959587874585821158862246246997501991215115122821312709926233073878127789437456164966828570459253421934325871132896924787480985902918653793084207761376822003089865122086995884787201683294397242570719707235042794687492111343264278727660286468276234059549328460530706149108567374037796420512006369093533495850876540835151264868797155605233089386608841195729090038595549264709388317901519042590413909146418340153444973991171724334750624466562648514231212468456944529228486588600744799143469515384348660803307791464457516461110804683483883055139450119999827548894009232687557012825503551037446934414398212971478878414512970283295188165733105267613379389654135345810896909371164282574548521814469317835103897760888016100187884244543798400148551338693224280108436544888164969937735305698561155378026877269920561565219181650725692480238773147111582006057184705755676913928239849277835266563679429595751553859263105363945689385394041828177124419636722118389051545413077174069838188639212225894045062203080589699266514454992134240667752328102004231075274221128510884323072675796899308727342448114864268695097007689670955128142147644958379322544226525032284703912433416645093440259104480045365791663702731168257670569918821083674824926385462726539245219819823629406700469064929943279706812924388591490062937546382845427655439258279956984591896412854675406592235728946410903496374858195654273091097096419401344329299243057349099340268606524114906395641901101546737481607472301674519020084207850193910968108850786974594025083285171932133989452953783044819664002602155714915615714310281896252572651599270132137121648163930071383435206259288797216530942379438067906230073671913307146791246929403948229837525573642546398834039196620190354240517789212108140207331684735676788770583465782494821763118646690834099859791620677823511165990011668365470027761624563728213905309579421184379307440760533566646409356079827915785810428996235877291591210419095124914619137280486308036091464612011548113946840874734922046333667100669655062508290253780741752536752223787831519185242394040438633278394138843459543470241752481447177727180119211542804136049170198699513946481735756520196716580436873682019407184770340874043864931945692814282521384993483244488370870627669103577817516147525713891790079692711685918669285795063634708311899502801642823468871785022091604651582780296484466168959967718717692578539150426056394400135158763940912545479402932292247221272908404078201265241916108004095854980392624259581426633442058065403466186558767694476953182970520352617365158787834031318085737577556449766294099489889387520479539066343586891996487587583167639187481488631268344899118012010454456744054554170739275369207180715160946768107864557076727266535118929709041383623617713409378328593789231473191232077504024835867053007965213600420860187336043341787858842843749067782050934058202065738232073552310168210658711488222091566280953659419748945310555983725503594835894763621998797986259126200891910969968682947949452187967371202651581321464092200420596223406871872515633768173632659285156549054474146727607736329041113918897635252908246910529553711570774888268356758159118919565186840030217454366833940261827564416579674119821234149966450019962214634464008742216330400890794282383234041686492834135997934062243635409276921124173410296090259175038913732035004423257188785931568798439233775491337125983876966116497446216360547034437283292391668049598989852141444321844927018789163380443400260243466788780978943332472482442745456811786951780508323804596790300743358168718877423562025548585499691585108930626316525325840850709729220572075542626688379322174076541795344667169300577878597814933715520087430333381383093561210036894508249486517641186029584852116892619413717314574392700299691025532478573804405170027664473687457823294430080957304735175998368263812113748443033790976804841895262784011473961921579775349060408693593367635581463759137935095030862189425064173186268708696036850021180906477676081508623203104213962324645083688007013844492797725254663981275009253339414366370811652862783940193533912974151851083962363710142225355809673888210098852032335873723795870043787736958058292480985514048454355635332357685638804753846615246562936058873089596471210112164382338015826249381468603270381654407787566113684567814554571281903044625559793356598563235143846402124569892274779684247149933252511240583484098384570472356724642775194397374501199064088093098592623803532900967658309785742616678143368969157753918277098774398063856167422529437484002218295844636570204013312066596015147334424567458774467057309966039198195543600426809730760079131955884227008003011195226270410872463001981644092742613136875472310298601792928169444592329072126653936531673099072700432073927178056281867566804719661276237348595442106520162207203191434822924095333678420193401686438824258559300752718579431577004740841648081527328847476981078291980387907592162625430587884647783422483116298439251051793844263513988137639024488889020896683888484263956868583742911598743538622314801593242836388569943839720499127878156661459720750306958244939261358148674599829632809773730006443695062797573888765309964635943140307428451809694967032126414782040069706313881117630017626017003881166219282665899727044729903734220966981187189572017693673446481073194853895676081832235545701923749227172574262042137734294428540607619778247202252487375652703999080717906769950496907158745956065689623463181883546011666517837845147281716801451817196025422628656846042389107101370457858925681205785812991577433750702798833819020363304545006128426823726376786522504765685430420442261184281493726559080155630173901031760745538607380463874562466969285687265296296352275756324734039870986263256054605453372167279430082462396609541419888973447295425498670425171393262868732255331990080514669993748578385227963617852397664108161512978261368812052074181972315717029978220677341974585305530653239044729801464189178566812920241257294954141270580111738342559170094786722001519521026351911248600030292008859690233407209778579231013087272209661589858228975099448113889941969057139633229305677489750342592225169886928542906744086450162696141135110880184680945571174754255892938509117636470640742680114611272785767026951314196945004291547300254544682732432467695147526175603505268599997439552515316537034052953755069098014902400808367148362058409200845358794764613892263093454799841855638723903262762591499674791030638669285871276855561934050743447173281929958652848441651400187611569102417041918463493126559243439050787786680957292566221837079464012134533123656879050482058474945635494351928314924138230512742729710229641496392051540100325269711665254284185828152769870263738187689380507127750717855638587672616657154055042686687154758770321647929605313403665860359636919031290875283097231517086041470352267255793160150706686054662789649242804105379237842199370764116636281731171361146608484191636671523672736122321673353358107615395368897473131846890487834442142602012316388345689282736346303808384273247148248431026400710015982365421455662123003734416914455246852028082609271091973067324631847293087836236505071125555088301023161416523101831135681704505923675169587984472865859491349615697021210896573114116487355720437364736603765422816877278860392692907621150355373319827010123714460631945970311995888594364014744055897624620782302690691630230949981088623325358865344339836418201109252257373712980013884376677482155050281975821070076770332761977469278726049468766547744405145652749155763113923285789432078379660900301754044125310983790309444376498527961313723088453414758959444220504987656164219178690058723706386913332032818414018964027352947637184018377926572860276560001317816477850257119158942390996852696780574301071262554944242345800299894852784749981645038482495631319005218833152809933545689520215402072014930996849453437221580744070131775127274352992600362580319074752174659769292397559368629295032281463068010295233294213649471477908555940035485622076017528452394103553764694110862341963105885041000278985214591359279895118043256719626854279582025430140819462321567190260717295784629975366546555282509821119939150925947621065619501866386587938752254400683630628714309542451887476338611842340009962845943616377712109994926578918674668314689590737414779323844456532381453258256771616943521418950438104165951706537962359765241594684475011574614098335021553786749320495549408648356846947348588122594865491460116323701071640865978288539995696689619914438315121894950348533653549900012847506537384507013235169346110620810454231731231737939744678494377737355169675824602838344132712829933566730547862176746796262386823284545033909029875357297504050295670698996669872165008138938027641586791887874642049413708595341692798952217728830135116291745195922663602369069782238499439434748673399895961233160722195337703201839313159979502507597429363835112431103761174138354616772519290984813033448853768578448846307607594182119417079868037240450499815501677545429545982212188426326925854066774627593008736449547869235391833262016586832905839220584568566258699073518186834956340732356413196662122562724053539349346683797455622779958936939796223680052259616524964705173410504101299954520454853060007912883547927030048713999284928634811805750620589847767529768676826822247457240105209121588059814615704547229988708977506313061998874461774936869684815648262030847765885730930155446362799390762858750064443238573211413690598293639410287602816939485742880643813425358984210527241035276669945936400526305471618968384660183998373461584707401516475524477172300464808537902356891636206360232623984611063462002115067195859521528640808228669521534632864276416558760882812082699663048687334694962341190189050663818899848554461390541325740760901468437635119986001759896041081882997789026994011677070630605127724367407310376513042824817869890280338158246871902475449170059449801903388441958191680590190182024736788499505834058524017429976600045911761364017995501947699397460689633343647772650329215887403804404705673184509656235615440212209209064042100323809375620394515816617395134521057323558398545832319069345591027734223345424218519296040805419575473244381113419775790139310882908734272447595315438040754689891603905751101660928852580812372735212900031772252912464011400004345726469686309345380962444170733165834466348143872962392640626594114533427563029962349225519283512206768880773580136847583605413555910270195626737714918268256618060167495623626964053714069527842502499176035083813639650866494961304933375656828704663726467792476347840830398614630184663975046189991831550174270802688293349834147839856630116058288698075836089678436316472263666947681215183266439607619318995292642232220928303181240244860772117533939020329548997033241847570679361812446891248233565969442105470837941398753273990125506767514531594642003404068604400807542465317139898455701221200345757349134957073436053020625242877787503311364648924063013082247455857015395869507200855359961734142726476881795219084427312282752488692632823221926405267358330592826143324044465902280910827772233633228002259180239339115158040686117859004725027939678552271749332097888698553613256793902956493869742954814855050266534339313463032569973876990221101399312810169983080540949902834901854390685678667836651919176652360788320567949625682653042925887388922071881288914841317245722645379591889633277530599133196666682559846019240191388788115628862995533927821339871255537058187123563883520686380431188276871515030271184109459954715618163498446875943522954660660476481114049825960140828878398145674561028190329767853910234115499386154978057334403754539918720638632022717793870982879697729127156841196310976512982732322875132120560900811164477759623764609588510624330650349040072256096752189774939420151887981808332525534443023496981240044993884756856907752889877573866706052015606463598873463951173262559963254882456603756246342151035284597441140223936888435008958466895264180807358055078214230431437505996655475206539733081767859312378668296977671246850399609245328369884152511314637189505779266244811512878435139868430537070518335954178260943108129016478828055371161722645841681992423300001007981930417648756084285635051205004711010221618835386927807507214865833506578911282593654542228217523251180056909560592323321684762816335076961259350614901491183803072048390858443614695548025830598685933820046975095558398070516214627662126601874549221730929197335263123686936681983445202354146113334030822058959377438978628681729144097184798145736333726017573008438340420323706716511467367157731351740012452422642323887234589023708171414475115602764879270940569208792156283068678810897615073994535898779425862558190047280353064040112187061471071697253584506040918485778837047131442305048955944689802563955999975561543722930980348521937194585900117630913053405235007914657598026432194165974504371232193183232869704632776156507968237401099977748722588658523317996731946383651230951366017426034210748586733587019884593034032965528925401655371860867948276829661412601003859497725914341613790802085842039123574310699185190744809099158579031557929512489460183151248916086834614949653003415448734985010874366441495865016843589640663438278567207054460072875075054497311395434721500158561016080715001992051973979267004709174096082603271699063271438492907517012501128395509002626993334885441330212536328811616495915830437904863709567009306648751353276976656816324454643046861415579351654742904311903546450551635403289044433228343739071783081111571181435579590111653168840648827764620483599269356752364146757420524450520386225404880080629047529335496917712293573125820495984789666680618165365847075561361380926508686838858753485042369503669290483734230400424973740711359780614404937396237470957795573410086687242339791236323888579816531352445472595916589251720650442037503540138900516978877859620742914113079269782220192945235402005813468711294874483989252248700103012979111809966670655962698979901013806175965943690370405053026689413405636406937010178476237122630962639868639286492910503776000855804017977512828005068824921853802623661249793178179904956970764715437871834573260712168324929764166439237958773486308094586749899576436878945376775109804079187420119113385053357456883738384372196104163997891149061849745108818773084900674905555154958431907202503498155298353880666368101872728234768051754628315988990121563146772176506581073682925047617894198271766301697807758036411135754380665533218279093328925402316666716361781512400232876780518931084607122533159358847245705495871523598626010627657129168346151931612005476884661924236590151711819639555055447015955882847864623072964959180647978176061460350445763213763901897715979615329009130447370894213338002010467091080201237016989720332618661843662778875722119284442312360435957251427569491852502917928132246495418866799395475959868429334544451595438860082554772159766637444823575584277332586078729472277317254630829547737458337280386538862220172029846318470800661151128505381099970876194318909868074671445079580769507949619018651083586367845910262700370953391297587171281704447808775372675834237019973006158880089112939730389849421282128757359027430512522863578297468533426532887020772519551733685518916602388675236841124403567793419837064414620960940101419684508653869999185282101700485717170998728115250652862948526646997671170543682034023805623046331001643646496384167676582288722436757274370715519444510163900667783244741267263904764068087061308535052521769129045869938183167110753925181466097600751584165421779420893239147357650163756592527145777403205133909730274354307553677802593143316069272674416764848439953800436235204426824933664017839398115072965518420550229177551742000230052632531515726699079083279095141118667775263279846672448869287945122415574813316528713411039287288376696827641784982476618806112571741063188148749180318721243566976750196837715296362169280188038577044674953518443209716471692141431065534155784825483069612180757206332780085539032783893132168757566453614395386312688302902211881778351733244675663981740225495704404132727608094117556993130978241235044948107569028481251370539228925642375600231832155286468932795696269479394196034667014571531104742915636651202580749190166899104180530827583604321207341588077993753300187830582090540369662288426794420533901919018712785448658878243561971704974484011373435725089611726613138329114487583969139146507630548668272186555958574487609141080302971793533503091414366855196435999783416957581843354713714774293481916686489846845940038625746680448659611621992464745349221037048530434602422185582912837150442437790377353846273952046397780588296698531684814414094278803534361128857453372644897394556344233384299052481269084122235135840480591091062268690453623855131204625992648572789066376190609915895594298219044377379570930654574997717753922203206149129333092245225444611822831719375521154426775485437788863595094616157058626406356129702099419849053637839148184083313068925920798103291292725209947473927087568758964819319678853784849221108504111592588391596993014863075659089879768726003081698258855575412312432372262962655257688492609298902287865113971427262235690085381610026499787061728371679414372648128572384267759676176422928189567461334051845826492141101325286520343753736696976696613672857111594050936528726779891178924487368006069578712115105906539115776672943730022186173543984871581111707568548918539746927626306844884498696540519209178291097024147184678098923315581702824432026307668044992361481643045176223135953074665297008878870964432987721570574629141129964024690899796706386697335243836583822864103840055695662790208421387235859022765323019595268145078896257405688883690363783866475425146480871125327915358982592000226725084495426778575116005516775060092765179302944995003491047827895216165605408753164337508961960173283523794106949081426430557766384313884725248782906992125283402515092449404232539634447637731502001010231773575617040840014701095636915270760825920495257773847764029579508178138331861821132195342313736209868523732409507485396137758240997406077658356489225932822543929118465793269747510674141154944479599880200526937289443985158318723579293568950550202981539533940075173770175452777596067091489547779441352159210647703121848021761279868442073474278234058421149956079284117076927433273532211309773931011701831902351667450356051386518598635200757888896921523375754264331675970395605185942734899198930293115527404373445922569783774242035266676809096131635791023991791631370346981826098164669497855914435610300180973234329069879436351081804229132218456114324740127552887992166864929628396601800351155117360488708259081689275146973345215587063527810513166342357733738712309599253325086320758284838934380674324265468465837866370349904242152461553458134773489950265304551116395266998374450287584479664272755450821585550108807747799806538014137110788466291978616475334894083773230418900780990891426806294409159737696850933897497805196280479382555355673178830330719182959302032269862518256886260846178507245043431010039949841881598873040775750902418513634355526193515905865847128229367254454132277169920488459302130113482174540083291941201131812877277138777945974864474581299026072542654973518152298994567557279051793299030091054065700743139747160878318435907515159244580386905279514314357694559897101022072580334221473097734104948827496179555328668686765276411148206138358692986348379593753040436830201388242007623339634968933554260007997635306862733229931763361147863467206348192078261087056654020649180666007566251787220395909438939953504191089941331050245423794843185663407446743186803790712918918744983339186221608536758032749986087486071704913379402983324881093173849562919796675037768430936497467194120124081041439720234039412489016329961134983065016631458864960285816704383312931715910378058118948913024365191813342812062562335407136457879336167959017976075970984700196165631054040950920627800668134779650755604310428241574107590272709989959412849104660227842761988096365723608304210427837282574574830056415194920481001493186688072728987537824803067886147142533990604270073244354210744884598583923805322747637804151110150840060828981576637755510568675781104084471080292488780950696254848214764735816704879763990183191443092036263090606688461643508573755814470052909867835348874988111983144889855039876061444936382633133857227107704912652322062396317548702869199471785662289314003470506166978027887152264178143860029443499832784628448149091668353110050189757673913390129965334459896438447516939032314148964538811957801169129119731425406998313907975201437485600722929967344540119947027548863859563864244590111604210967399678878457968386134410308604828245736756700092239364744782767020089773365263526551132989839854520103438670867430537635260858492060999769649112453562800105576170789126407217442158380918383456910717087458640184181517646157702068862131377387215346365292088240001086775845582755434675602182721217644454023634829548919938136967681796814371932903729307898826466500934095596210218462257719085395440760003053796138842496536067984062078568761845277052192585161430932607245334779917218961902967242042732918213943929256564387362774815860037625934015134254658392518444400927784616662702272626927605331953057743084745872510245800798125464750031337877722143967226374940453543628383811161800640176730514531837761929521127811955112493352428076413957884782239697070455352368537287151747344925683360085923163680646091829511632970304320730842527587849872214615928441460380732808746493097924159260265609315573166427011367893743386844601134078099785585117081981978740012984199310479108714534054339094790196705035048802433112613159972699616990122002734823940142091593360142800941296520671919499664534546413725923866168878846742142388587755244489884194882927726737667121364082707164966756469675706655246391191402377644169550415283095921977349731287445580681996533291548888252329409774812174849216626758600888933352429830572548375565814003214932025092436502997085444143935239926944234539554899397086445335166257175575220273388109387975696288398913124354241937696088249786376868371257358941921809630014533036334070713636243989555642078318069846829749255291848988963274508448178539539544778466302111875158404231883188830814357696620063962494520590160802853882966370767332075749196363898748335002326261057958998762433032077294426576974395018865545779185632707124760708471810976381409756900136253567680107728451333497812396125821314622508293853662346905430842249838768231996633710480071301113085635644805907548645822317427292841199429598467159379953849462913172015597251198458338175340051380033605750637575823621439607985789020444669742574950848848297613387005205575679517443705024404678122302508731165030942145005568285753349413822498728021396554553684247275607368977988517608100119652948092229782648596740143816269206082237377744964618676118517647692491624116468048720194357239523232995454471902754650960795647011570771037146790449048437662373525078044396509710644005640655433666293832190085239975282142406006723288106019450678959708519177194089656304210604851416175582296588177542385245210609743110600255212271770045065270704845105529834373941730471832043602930147379327139823651251165649951512811796732707237007650356655062951803274339390003901162887507445235227999120241623022792526111598922873280596225868078459087418555281791534156689452836882072564748307301098832523934518662050775670355921493906880273039602782280429608765545598586392247126921590321818781264055599144821019412887968668213392913385334646219873774186675198337055275102520961395260718190685845162714552455965439324538032853498829373556721072726568703920301236797224376400689109610011193434930560853516784948749827419951302613279580661770555485776823534675894092675743743670105406202063007703561103566432185093942380262770012650284631856515790226407980787644784883622432521098635899575758308803286686613325310792015044077154076502469338258624932619471555931084797927608648664070682752640899583551685158100610458910878497954759524788101425525265532219326557240244161986499778079504957057755995995933871956754805095421138688621737844640211725105366948988327436522441349753747078819190360808505673966759687151020577189252984198956881668823897492987384506446886526542080224532535248705315696336820949456457203285418914125049521786827942605247556340680525892453635312189702372345552097792066025342106422119363666675034780791844663676861097529429428091278921982868983129320771522808149352061436517876748670613217531270002298667880414533496713763617857855955697483726068730996531517215376320564300618845725641514780645796500189585750225366624651242877552800474914464732397605358025139531772373295748968474054251294628245551219984273748211323851187663520938355534524818288715221779848978438434727671402320736638548683981114754311402556053366312461627429614640129531231568758366548169656431145559359171654659433322209258169778397706846657200568548627962169362612254760006891695470845868181601787951474058603468144673334020724709501581398145733923130748941700649080485049376146738800427563700286184897712627713866999004731107980258669927318003946047870071471920497031449664307978184558559686385669381086291968944257211323387849650807350038002901958486527456959323165364776384833935250528033072825383853137214517503223035988308580725166251625329472322982641589166738576995608963564826690887131446219193840462316729101759657909377376413669471452399882452960825169918963181069176371777145711715743370383163389298698239936601733916470818831432640498331890899018636553503231459159511670818981877294405579070424031803277565595792881999667750591213149634213615991160212589598089858519133801600838241898676866195088020083437875550365524142934494058677245362593372708874968301962353471751762094217378512083031777519250753264891331058680595880780840686952797535304645703411716618440957599319992301480418477398657422275034001337480507668294099256788705353046867150398378772002654669246004901111046416096990779956663984150141654349563462590884078814570615960875591845430095574425877501739504796234824567065217687905288808908291138061945435450304385861375479454516216587513942447528254638753200405054525735583174446261230988956559174074405453867428633288244825549268580796364369894812733518507979611455623655015824963611980124641978800762113675302294482879440520596320370065483820490486107592278649730610899923329562884549240666065252199011494719227575607809470061715669562671594343269006402692510128851019745382284067240546398738616864989939399513807473843690820187677626495087961284312413318728479165008263089090001337436403766969665104475425184426203628223198871424397674671549923734578519376117769447846168219076039544039439890842386968226197395196003705224103759281021891408453264495101069674661748349979918128841930146311725034621447111876546717948663550289292441674563183134298820074024452647724509478808297168207117935019169214827000966087327392473606021427988077464234610455020355647492688428595283352657004997171679210744149445097505063081589708291300838433971374388942256836353951270723500481986046859140965123308869461774784422355891331815698343893141951837160055458796425589705126452800967327102807328598303795782931850541263748301218633712039710553992926500274852656299638867440172865703753569530080836425929449576716428382020479964531188499531859478849067844032818914515332679614010620941167906817423472950425029075902816722107733387798236377508166303921497528339787496348727486720544452558843791924276337286236612976777724042028435654205589804231582352167922548886336230666094498828927891953780026004648605314210787768588228726983776032945939704193741073516414511848270147161196151733001581639891475088324021799703537069332227977013479372076626099320449939728877594881769951476139668253661222141376847199790389118647504512513846944680668396776349714650118077399380768286819814299541608104207536057106811068730358466606127527988393073505427526171493192081568754325315446109440449235072352016888383971083668159708042417610173928281040459219698120429527132681963768617244047607726387940994296922360853256889519424694255618289187663192895548583488288423110208458632422739385985205974032996277183880654011932983341893437937024829042124923170788933467855818423146270618502412251760451558842602398672583829620768916986745176299942343429063334874780142280365868945054538893549978161234411738721882206677315885470940169779267700172043081171864870452782237890244676096097032507714817313458988612764221337063443972762358100411377418943533372645431782263622270447209060793742587397443871701298951403169607259327429621252250624752619472269956702498037679666732003687395587694744163551388624642149606861094001776291882789350474059057233071225435198154826391615970363924385398910582878225562533154633279252799974783909808590209248669855265676673400068648200470658716868910517061568117865062947774910189985541092651997293311257220512768827108318043776415071936035589759010974236533368929906226858715900226443605584016816485020478040469701135181889604203736481057705658876045534281946696971398823447611011872925880116458497003234443012299085799368346624841615230760330594268278477021483512734731701262422406590987907657107500169039814764965947410972179810870991913599098755754632416262722772715569697051054816316163989493596844578391653590742371461822885866921425296702563881335408965162497933929159707689180340246342966288971384850135530767103854248697395030714294752127430735051714896255075756566164402046880640906486558292733646391225945940419584179996353321721651891299815349428102997856332770476847306667913239879012981327673470093249531712008831610877365642683917023755285044563951123847392685936615039511121140098975896604098921793781228421236196755826388832804945159038147283381374046494732720947849337285607987936512341101373873062081711602087173162066511817882434208561305227362466579029151787851933146855760417517612334401113574088419153095220434039752366748532579527188074157169117713817603684234553998270809566184762296553659047287399492761976515207814972804596244071749055378769730268836850702506564960399025384208630219831054625887403735538788602426280982786610785193274539226079461100135950362421444887826089297851728929111026266479570872553772626454391379201757264164586655215745476978186187539327385941598419338276020444174691802846067720668562932489689311957970832231334223264383199460204655938273577053128545362836622692523924879593226315344994226860264204828871060654267771635579481395737382625288716152103265155439560413390570286913231324342403475505739624452317752016304927144241145592097174750198178279661949556388837309823249524322181291210589805971938611354333168487315976697235394968763071602783180833311691299222540325622714302177428549719981598608697812821032521274805568918645973248066157090158865323372712869346792847317265233990146672821248091399537083599373939858958940251596503726271058728671418719854022739951873311893352300940537359499302205271414513294748223402041303710513173301492336922459433443034559685049890369685118605086022180106705513765347740706129991549695149346468392408869332716567725898095660779410839368004212573003590731739386479511240195743551407201265785605676282376823588775006832524532838628480857294517585680560529278907244941538497841172590672907437483026382918094957998041759479295461953870120533587124929026084311101237123645096544231064237254440249944873872793438107242171209313131324969211410095192975315133068993752054642678246496325772986450350180349532131945753642009048940104130299935623968669448141250104202130812038109649567666287657505505805220558213567170667818928382000629581042684652947117326242313762868014570297623637459791430709489492907696951325154834143632546711496987273827702710244496923687710881600865085580640255070454641809740973444805611316225000269073448276381763245843788172229352467048613606270661616747693387638017347729590727269903174596915439015158399821113747487776191596170426403716147928020133889353586129276935229690762088837874449668424376592386886814670360034028222498630680004505664838667357478100125484869870489756382558446035104677541892096735457125860310089621423881237865893395451576976641761680476794807056960715701289785133266767134330828956161877147072111415594636967227893109828199574764295726656106959782192614235862523851188035653086867625065198351665789264263632856184417366783288618409286505249303051693725178117594766770403299304371107897450705124443842278853700065097005815815740669709295214834085782325624826018471714724263460436443260425637301582616626584739011476767020496053107530182863106625829113851781091719392979941995256948125818105734737772383656269892686330172210247274828568947324793311637677710940621197865867827355045322633234122185674964371389708768422194951740570253536049772015271826278008321986910333512968046589759999595515584181415389349151490058344828940277741842279148342051950798155647673057009151721852889858627487588738104553100235436561170573464893025255401633865291296559485987335538961016110470851551024159309503844769700778344566236241758932086547014651491101641837380809599954702753142737300242266688867327549616289237286840016572551369972466384892917420342185403768165418311302725670312710774474862848998026430806391865424492941950141622258134433937487430345635699173084491539178595806660675264473032340302363915001985723533960662806471417006992745107916375182650168064280006543998686604210621851180795806419144880730979986879959023063202746679974195960314740901162534313657823156602238611415780525484011633470477444118517113501701532700281174169707616241417218373991565611001138082049551797208588455464365364827335231759089430460740964495429266427746679995897741816880029884961859415072241642385099210503592869869063022730668509306577338049815297769984777573843913997905452275745874188710942715868193064416530643808198014688748309551419415930676329153711309745304149417724098556901269552117054575810346951358048789545409186501694793267235392620319964822090606870368039964353770163304282234625003849360619022204985630858907853547143123115071494429493555488097963909525886127590572427294260997045335894225385558089145726782128240159028060024685289271588093674952188407532975244066063534546473524527140773130038606456797138732998463424368120815990674415168289109575812217724907194697739328662056717069511186552050841713290313866340180350058477281309148643772396706642068397715938054231014127664147693688641004719761422455379813139697719919432023019179616290656866126337383552423013083041514563763368682908982162326983164041363075857643376227777427713398671876111709071054236798807855588232734361619302512673820399507013793054828986952353017520263504747268093438480692001845677499132265476146915242993845465568441794976042219063680751335715615253915467585209316959613470929376417848590576273262485959414863405213955611551008471852975031330904854340518948442016444561183666020088081710378026589624868744373287628475128108903461268476396084030258383548606977304741725137391878971491507944291071316827105765295287968246932294617314166303628702157533668198087081132205830809317365689109437592998953917330393619692951226110568277885865793525365748732325042503448397600747596445528614944149663166480751121574744947521548682338067786130758220146309128966451557879141972216770720252548789296822905200554973896088731471330660041989030630111644250055985529704733660065716869766002017580093032070037896573173296482081521103433939284954225585606287873113028884355273199053128027478431133874123626268682153597921580118741618669629196493172036587791317920364980104701441790093913569280181095207461956159466521424781834649851766999764591103233472972909186417172230819913637047567940525534262127349824412424629997892257852813554296237176129865121797579482019614914914066418770194962012852016744216150145676310551070278050139838528468178821903864846287844886526237134270092372792156905658181590194321501753794558599182807568475500940942231856504218920195731374734954513627578833908567853801264662089224878923087579153765968962169581226086275808705253181604443857170782137992771505828534745617297252877055865960249345469785517941236710533624098197844024276370745677783363663357943240197265152850848955200150756671343205279392048053253540089418306438094348002689039247177820748920294878500144098305988924375415764622461975007352010816443149013969622679978340966995956395238772346763995322851789046380400957969506650479590416445350914593973539242756175441069982131750866923513345911177238348049029367523788035772075365048013991283601171713004846509887057201152612186917230411229801730693788214277210820322129762914171731155001039356160861600615660330585526129109958700942457309403368879497415621944359182942647839767175590539254466870429598576670589512791136494624514473013902494205419766517999026660537354371195963599288198827166738049223752388556435916125912006895986424009282421796657520569371533007910593944229354899003778492387273502258805920597914351671436323677556765512465411122002889306662648363699819708579776158199950588220886997512760672134252829008020150094643292730576478217569283352820028325058053536174594764743652053658677926055912706761723108513555298079836300942433095242950997198302339093612705993254821885833420833934800083646097689530395965242792776468337273285545522599558953780550530581655861793257289316902856082321460450518496574706025057342589430530532105540997477393793282689594787399168076479720374543477686727360059288735439265455716927256362774250535217591572307266452755467718349789140071275058121095672501980773618218459283765352482308789944023229500129206856264094751149876823604642347534676442944687969584927886223231704625863632954514524042834506322688511688996529434694450509003140678950232363676078597414336389067840567706207759269872870176196479199558044871022794193085043660631480130502041610109038102938097825309619806639550345866654447183056490666128474651304846229489803873293324412184214989445079164855352469046417923148634363388239115481671170936422973633182288070092156184822082947127397464341916268560116113574635072252776732815562499341062383653894419024303918102016860954855613460967848993184893043018525535227588607741894167130292261879160726678119893088868726866508962970496381733090341219575049240208965451799138536707156208651143559699840429928807692677105027296650536541428198174411579602388161794123804724972903640961059348309833881588587269813889431114720997483432950038234823799630953888883908674075391335039059548854188220671956317916724446072617973595183388694211149774317744284086129558707789704190704671966044266057369471230739851922238175097991333245937310686304165006137679671072532092379071768498428211117826075656263426915673544051937730603318567050289222449852454446768600758941565235213119730102225608943314775683328698502075039132806685421180343630021892271542147739784211069220701411478358370595686786172297272992883795501199899399230107449931681381241756437735791616944260451579866072943479159102411248385851977872137709384883152407884394901137209424040692253722496256504273942425727869217899467019447200503745209105792185406526591917388553377497268489902960911808228168748028631216143254632888804210444515029038621513950596521769619410790273380832268632951731908212053992399523361217748862495538695160774150796827228123957201533523777295351257895323751694284726981973942259104959192909299343347213327671743260808200495437024357458270602300327959929882321464622779840193202183916890757509540717500516200642082833259075957847196826968496067021638476051977958360455098598511968565846136920285674191195637159517080421471769245315840951627449177263138593829075681153298340137601358426763186527304714150136838252689346100588709615016666535006121087742398974996034518405083988183085691290970603096328983309391852439327204974480811467242440480607814433171572497746695331436874138842135927308251950461449327471317998706197638019173498680405329534422956114375570604548415083996575643057416127144070389986853026864835014755139828940515354651108523229571505941695651536534059811650928441046945484958063009776572604166717882070464130883237474711553731525895601485684614764525721683857333243318386771517036553573740294179395602749491103616359298227332910444155480326928216888122492986206046341201188051494970202930219736431132054633793478539527613333870516450920825404200882065283056934975522727174639908983294548215863542063454282057097910002813827748981504728568213070316536786263861955547654390974526396239795965993536262036367398361654631877787951137468838022237795188236933361288264251634590423537740641973076205261461740868925404088622221779957619563122469990241450156654024110333970397087270580739932721705335062752874943580695424514156655303448980285030311519279714790474175740709655282433956663219271547123735169727261844485499826243273778463889085236930238172318758053315243471645373073845107247224175876320900226309742881659731939001637301147598615097504663936181796213002158453744952264948974161048551082052221861051495914863790870831572491025814751165671841298145969960203126099569650563521208732810463264697078420249309422258655672068697161430609618140800369138960461353522406912181368153703234859210031647453450440073818684669441480895640980754806120052144669601531038865178959230581390321533459602735047580083841059102922847701599049426112996781122690288720194441246128625461360750725161095692265393601687872113712646176248934533944355127700861134804648782989798918850989796143929342438283026243892065053569275173231413482050685840146988402778972014809058494391742122458439693802032765654635669059532985256366095536811831478939585904072026949258342593948404516362632242970073724306753119639928695708925798836899367908497126176512051831003659343590394277338424177663389671058389957145383992120280396201591588284154810536548728353617016686235030882552935421940992559871386453416049763139389655852164315517561359760295574539987323935755708241899026029644139770742194713660503007264565268459008356998959052898975373004618573389602969448151956771048967355353668141603339862141389635899051030539236740940924387356872282788975382747490403387538326917060458822399150569013822145801807308803877425596156419385383090732500286473656282713929453919807883218050827225243138604635842985593115589136293440663783853356705979820390050325086059822724082440225443035942176716523806804436047166969137802742960810335509431885089681909257349262541669861320412280137319897584540562595181887985630970558501388032594337725925962796728585684785991774050453750212917472269464420544161021400585522959408063572207634614254507255537091850615140714271395014526395030704948042385255395242825112375874845190103944545730560517380227378824846432556879469671724381977917868003690377463571179252745929529156826391321429421718654360083540324868067652030821221289458262685109487581630786565358988527547943275681943552558975211074310474359798354097172016276246783188210499932403482847629768496740474301781241918032142581926427990988377964422522380364154553058800183183118883618934636196935980128591321369563379828103581676405894028362339124028070048163829921047981703256788067569438183370263097303177308724407513980915502351129349555926673018986604851384798641649815801060320311269130081133762591148838315063692660119573279833075250118956414691096670518948710694847175441737608561697205390454898127978948021650010168644124191743066728351030126421419442870783580857171970557737532541859220954435996731507718938734767806335584038952983007625080281555574822905346062437009322101459655841039000882499015930338016814207809469600749366025810799990980756700848805784956379702833563052751782385153128088895743383643487515267348175402765114485011976409671415352070619717841030259154126057654592875492447135742780335070747216920701188527072348071826715734536654414400643175970639012519919236656027729395069064673622655618235203315459211645823524470018563058906244910213113312511546006232761543867718773545468075334407140385906591501287576642020140393540900183737853532127952647656163249094415593382323943373807386939890976243538460487037716414925476146591084764758386208055277305030494798908401967017421225414696356721947327055689027331022568588274549581709428498832352290408673909375233042787218566076086463315954798927983483945255884644174186770204435310873911226520857942683373460716549173590812146655446335721045567496889889625967096521690280514954974197610474780828881854567202442741238428968740861729884110299290151524306565599522315970925789431996389587074982385484669933321047910843960646573278612470667308015789317148996925091575582456867577784168230966108969741830500496663242895548915642695049209374985066052705507593278836903488117967306551674355284965796893858942013537268692967990643758892738113541580626818825039640150115529392995216916298027532648028257419739540330753605496599523126215522074196880035658654860900288435521881844476228313589677499991553677951234924877068019964966900407870177864815436889143814034023101517095104605548668711438176888265201950498757287156980841218469823430762227976575494438081285697433572878029318171211488559632494729273024247952965806924668380625239966572309175918622009142253595710185338944088705604965040091731188454369705989900745770905111376868739501075001703969512914947421972049125816068950704287368973596377710278296798959399541140069563159038321648041667544856221976865023961428419042354820412421568997360602266517686489037068802174464881862936391909080959810421436603493289814347908138319900707382412736460396618701000764193675916927935090124490727179040528699927729835273450444950637780705071690877339897152076183001772416243696439769817513582333272665483338916457243065085379247224819751502554723832613979998187559924905855763760834756024423865496590511656325510452468096485278882103179798093976205251065639401852833134685046030769122861154656124849748337968941497108754865789623605936902161878406858871462517724026183334116905945885356843094573640052777925238158832490575040037701084807829947043224342230370460095232141782873891615600178995479740118210132446798731859135238698623035648497253757658959549628576360164309644596257212168520331763888072658493450565075652999555249224892707396455159264588350362179907166715675306388419799813108692662156105462684881246673100949882666934718969534941769023713074048236025292944630301901024450984664247280261386912838736255713437726087761180611069998743022817623163871498521831064014018173421020399938752596607817457272847994425450412195245508595112369286485669241795812190359621322329804844353339707742106388280964222516203700694851025693558606646567230268263526485171563525368774218878666795339775019968219802705477337978025454225547085132934506007389727268016307828539168028005718130575673857299987939201764769008468840925688771750019409945584963606250228858970028121682226519775351393209622204672798038512268819039058235093887187571723040752503735918667193748835938577367933457561183041843531897779208435132252054013448161762985917286132713906738940675203098671026599174123593392854681108479832605577783141896814924340774119630510022822979413640717566553284762430011616457956103772085320338299445345663699122577525922723709694473881400787285138117768727802709984421983733721298361174436485964834580398839541776713105184269828497619791519888518840727094273570765744087853970065794139483052612683298426209604760563831098928741433985465792827205752827056571072793859122734453814393711150222453601311080236956592057164631981384372959062794946286737609936486824540082066982639649038083233357619838149005975419532669801963244386761300974631883073892544001112900104137240395987034550505819523462660249527351378655190329379047680215363263391386764066592691920159112311832098933402626572261643144118966951615462126588439024234218145269925833987804076784763688063746258317861637188069508762963991502953279629379227636562543060093174533257027342311004399889721058414305696454410237542637495633539319233521171947873696174029057471180717778903019879514196815032550728203561889952004515227970640137295077915418266958736477857612918219620888377762331535049825200728600872617266996838541404118095877273335316954323514372387919918713345848379752668033356864087651738134492885062982760991502391901583108932636568733982730655804057858083235169226275809504415797131656175795970220362245325644759763185726923241879584190744702465684712332960607930196832690688870237848361302731444047315134200736652719284797129062343713292229061495427205109940119876922137465485481423501831822280428958046259413296627899333874447692514848705657803535697644449534815977088717697532646530420645329003781013900195803746427742309956289783930512292618184320357671805963027862484975402312309685761733800106636850397992398198753281284504957456589319697358148715667747473185776608991916174240542854888591210105367017840595980921984920274044863870652368409357466470903316575949774305738459727231012713910538935662121299444177170065095878527764597451379265734058156760876341209030480880665247463586638433834320049506381862897911950716414235477585275746410589959574870085884357756674448647117812776017794514482457984445194684815678133372922809982806260294324187512958467277641852587738594602285627457708097209137181208206753605754576909994327422407538133628281832416371177469697863784117187068479859142337521600435614198000063997928610589109363034170738054969948147582364076872120738441937107042219364644572143462993977887914754662710316674774380008473524410167126929932605323698772046562405475097418516757527322716240415879237887264431920206764492996918569615530391675921278680056465763962319640713023456572892084657490927124652405623127841513146450452086334128900478184547418457479955742060340262080325411064505268155941894299393574520141729953562210213665442036419919807550084849653095972674035492151466986037296089693606863497951022964656223832868543767804015841432077786664870182374634848082655013490448999468631133999158857909397045914579315572073077912419668397817679263641333540523693831836165014148428913766571690710230759733875176985524287987488399874765261600184510523722147585747360344226306535251889607201942091327251007471645737980952146759812204397685327284095169254368998564450331525144775588902014151059733925400875553368694866901087115620379556424357659297213890620499300721386731982062523615958244058264565710095309703448744199533882007101904183523760606151970313223782724335469288068917280862993940052818835288624226670290796476672428370005513276925788196680619444999391703911141896813595889425214145843540624007445085093758165608751689875193933307831323298859764519191616600275450883543595790146806581864736288262700323113435730369033824992613835888992790164575065872567833603649734734110637104301896828305007999644191981775200918202703992209960036104755238252839924963466056192573452471765334436367636286312109998144576612691671990505079143007108349010357720608654835628272609652841242997423371610567824453589444943211435149634270549908620254030269272868515243234377574731291894029723559598481355837843695209862411707189738838650322338595262382705172333294131365036140468383943540040910586642074273557952549986290821310908348559869456887318521505268756112698623944280500439068649516849095395979143682470796141930761073527570825929938698584435128136992201707553883716059578286510609421536628153510935277997798616353530851190807212382693523650021284177213947035115098376081072411667985720124472958631153699168611173099313032997168268236533296655524084268946873066341516666013440161180062351989502513404565993121471623511630639895089793212366487270711244745505366726938365078298317326512854452323543413922985911580805799015806586635017805314894623434409228305965930428668737860818570430449442644867858370854517015295825375186703309338602313629288419504828993052570103476080404272792938062610031658130720270231977256956134885351986956952302872078717303901172714804036307621992813150509545306233836755361904014113298686705007330274242544425623723271491313203795068785477910168870013337688833192052006653853104789621764006292341589386489584414487927554705447806861520935245698904649015869016226024156145255532338528341555241089205639067524501848550466403603691442916871929868230159230503427942524333397697589306774939944382944623060529473040608231139469013569916205197334275660411711495086390688684866496381371509124545635329462246822840681649760665764639419144920115476782918218193602808641737428270726838405187030555053256863312150607000262801123729727716670009878825521546332118235199273732718152513378797348450032450841027119323101223535406475191880481602246959544045689932461781141320401852093524679580988707881333922492444528356052958239086788500598994911491865019145169390732990158264892381678029951240612928447403145642868241955157868344432628095010741521425670518959384362425251299077329833264024362729690929351398914138977138606009430340101078008079823703984345300960559713077705293720832049567699642446597171590563096726376239713778628365242693419696472440492956720866360400522426271719970962114062691982062886782500784793188997318042442011494611883893411238538379904881278165320953986447779321828749570990694129677524494189307724916213766666552053802994984301931824576722771991965658252816328086805469802301419037711626827477835817791714130976124431676608525196120637062077858720567419106792601879786492893729271187118831500094410305937893890022408737228958842819392917484396940478378229098563682331984298224359312780280663037319948888307377113105318885126055143163825067991705605117120141114056544889718125620850103304508516896209181317020896977304487651010677849354599225517151341421780030111790772724532281164189840165953209980712993839012856878467599385789669782669379711270787125108425088908413861532062867775685591642558420897788707892547138148780962510303235828800709643778228026381762712917319319599670750284049599772264285906766754036752110437428897494139943280982782792131166072409266988114974024121619486593045483837380564166290829626761271431922166524353282069199645681329653852246553631632285442531888445998407729662157932295350187553259222838219952948128017893314108270811478125031025971688838288674755514379901000964979930802548696078293338939295495141201709063159098944273092720358882612032548447636889702083983747755010943171122940355017138658688365975790984769218998741068328230543271992457171962249282871145938467732677313082907887108230672592674075897295354829931533679810326449933359828843953492105731867865532450748882685659152226573955012416023047368130910916481893201883396213770060264789888754805614282665835149116754252091753779885673316936567846866765136693292746402145391991495731135177217196603423547633441595992120812423553174996259009456204982043571145434763651181758852610781345777418837145907401258152631303110778824207986841697361885654772843743324698890346359870499579973139989978956480384050886091786198156213034991525755186756270149337574558042971925698871172177186881748014541694779227308644090616531531335518886058715768977598281632751026583323857965810595182020349415640674622951633223712219700968613296612152564487287062774311228005744180901266893441999600073656617710670621592960727869646325205549473508214555129261261834397922642379850803972371587416684463838834587542533864258077463498530979256994289119871272019120084183727566120196732044291031274321768567997057553848608842255871438126935894995004705143042979300798024868390807049137824773049213556128225199595895804200037512259305670055376406275949145593351138851552237494319683764725985087339459823637926581479730276249312087835681235915254025501273223465415422717344994096889007226813649665291769138773174994036630194619394126098203557038237549827547782022550775038910327200531177143949799923859467431257796654154203938798390503635842833267409287917765324156003577794862374354769860203378449139051495448246114964290511387751944210706515441479184075416036405658220180460875870769979780560478388348301555523908131800857257204043291028817993319371270219455781379400546259759962517436279374280744945194400568614631618623688459869379111207289760429756961919699954053803615122891259402826551173846556229539108755747649332460029178838871509632392017204418887870016756016565360533684294154441111416142559208507125552518335635851481717015842982397727451086342352876952565299590835892805709608600149678913346227372952194479121414896985510958990301819883063017677039273988491408649671524371112002571870429047953468183548067744466956194341137915211031730529213481670297912395714176077645777811565185015897653204006268514118447782507191519993515986305036260306673048915795471079243225699836289882176379532532993018542415806278477291141801400807372931233531705548194077277588189667663155583553547445024027072065400753165870694920400802436218649185826982799292170761408783579468356678885389600635794743374616648322146471070006940774067477247740118960974335370486638368269052815814664725369723866708966033488160619563118136865525941271278292777122293183323058407743621354293445868201982012765761462659471783144858311730137086143346983071291791621398459937617967210916602104958111142031125771742097953856886868608538592412298098553607617001945560910761630967538793094185085411361347451863081474411985160249801570795692085482164366996605492935216051459729442726027039736237439938216523672158681303574055512496409729411085723468805569699448767956567699214794296847162179340560923261985550331067175183288867244017165018706027304618878469636603053261691041561824156297534275166059520987573127567554838494182958524989369075983440696067556606173542557134469323998670491326264115170284708246751894279809175228248396399492078088061352204456363714019432916881376087410152242939373228021243475157637590869816143571883851161868083728017494747451556228626290634087085100521598855884960799165641635995289021918997297697680427062387882715378172455209284164305087099329877589234664387262400101079717686280093687032157456833571031148383993415359499162376731795555171874479790382897153374410341011914354225066241812967646694667367810444468582054805042733284157182879786690838938644124590995261104854994441456152317570109347663843993355362380273352813920962399445408416768661899279571062148274793588085106608927313914781549683599813192976476589447720573020119833067025813618582400080784570848274829419549066887552409997881571967712529811155747677016596706455752623133461196041586350591611179487541644874800083594998456714227300293099748420899085451876884780443740000924834904449954087057112907666055167248872157281908975387191374749952994783533353468764243358655397744756953476115001816194331441646797404643161254517174583848343156613282468728591948804754911547069814802895809672063003174623322088265988821279632741821208150439991822766336241004440495279878348609987014011624871646853641002869419268013825604709182110716374281529957159196563951104841506195275822110417126309451899528243165896172595799519049259914089745249797021408570598008062828234498397743186002088161763649661054889307431612001102965635348938274625392925538949150690671638407363624771360032555438486210872823661928988706678293548257415119741463963738874179153436575716733734616449249316571155689420123980531248126071218515656167333027534699535106680606974538576314926984599660312306037131970063257934816936144870193278935072242889869809217566148316395276269739426785257745856351062635623236834166668595165150283759093051043749442246939978598183946002352174413131451610678275473956154870790592951702103680213819627277862670583460219498174924316508430668898866003944436096159253023762017270236995581353289403927493945755681789290705243509629320722771041641795400849850487587755481127196777106253463696367475058014425094948962949548630521838581128414874824472019750589856609480289506846735640816967381074069422035324521977307607122701695535767377775187171289095412455577550687770091739855530575601658040868855449586736828546350609872490736604372218932746590833711673955489001715733321064727974242043611277385859377112819054613408962699940411341022416787014273024045742342543342185276737524950212284266432289821583434592465347358911690589141958729260535674083399978899852406885501397710906619986250979675933797690223427806839955567667585698772989855092100437749199557416281632820669503916536538404800282208015289629400276918532566291292194219288977841814434793195585203333375139771976311672325816192298088212320307503784495656380153816262853954262252291828641073447331449397157086613928423921767224187803106132579413856829480090799201938845596128435740393910489479240383380902007537929183105165948648799358828990325195653602497681338961845500897050932163389142741037677292508453033855212043821592059291964550249649245900599114977438964728378453583896787324371184501662020176659000184100770276494269851693121316868013036160471957589349653585380292928446888676802316594423581830178433633545602982517840270937603028510868689766896533557248829223997192199257341665926498892081924380922034037223603099066428018724937780070086076323033814428252053750140409339650539171369811927750653831588885382238632178931046146981995292452555237069066013229551266864983972265606333731505558229007655445486229132559579586007453516789230532244967638316328490565857381724896477023880914991981529337612430409047542743797759125233415064114500246044257259680519556544927919081655012971165129217070590234757869121363685233492834018343350055750681470724310548426698709042390456277507165178260679070562278035361693145149761148702638551040182939660539302884901120810822048880550279523180611158297168147257436360322699000755675828039669160936860109396709523610766648658129107661413772900442993206716796096437937345566190742349699120518842655481767310046532655052937948657462215243832187393045714279829731961553931814402531221203716589766975929078743994476434687938091640589835552559768696155269816273533740029420451888005146958874462909124504265164563039828433054656394668647889761537722363091169630638034979058197694160409224044187515769171622677205228196166677454522689585782992239626821711879136675529769506584077106979806555131485385758229352060091238381085708706558587873197681884939069025157040997276272031936419311272349376690100175930148402075281847306993981819444596296915464422388342414244582943856994515174775729642283981031589407058306048878104978936100147256191783052698018510110421215656428388705661041632967145058110390583576332351436125073901726378240724114484377365683234014136512953652732071772304032933097663694011734542241253914851200084637870187293757262392598032491043382221587064268487415367167446215274761078947964669998796859914346416643907375688814721171293178669281050451738957968144735116641782522830554022638892352614137305472637208193083433412444569345756393206492120055191911247927201372260876667686945835768037769500146071229750271263818220760255190128323822098911658326696333504758308259843891073000874068291749913785176514521850238213593147584469765546028088152648637700504759976573832808768801886064556925383083025631743554643496313356444878208725517747023113270787217295414462002098260430227431147764370919806068722993626617804718272422511886679898904530490537108207477624867553885519587854530764360670260092074974613170795551495014587260207995243181031035529045144750139477127619790121483592826124246966843311486832006591103097639318955218858587352751034228667096994309984945560846054066349820533295350208452320851002026507380304921281246457159906263546451067612667710995757289421278326726687011215403074831203288753560666546763242821730298837060215719929591462029836998330261984593430096457526759525409390709677966132473367090460502233828919373941662802550338790170963839829638329135353219376694950346632647697485941999942374064389221042573525241144525232545774094360680590011867826842610341780992901177919209112122078896903208416476777805273560710430181368333958366006256279322459160871419972094187430623914496769230827294048626509966608836746023016531791175320698337963535101922894779000751581186361674878788562964089578641146198384905185548160532965475038417703697073766245928494616206923162727646925766929742342126964580107513621882641143951875314607901375980572548942938265369131380522876011470143464069575362313115879711160922067258779198018524906322039805769790509059066544215490591930116576150920476316388428144052006822115974773792429777350313517408705370886299036796315930207636632939455419265253017844074455813621094014095432432475661554425828782479154158547352838440462461180185397630154746165615354819062551551177604125026545908234733643896912795628932990870726461145148750767206115921300787322872668141992356171240875586703329775050037547356408204051118521635593529229924683216737059471153253610488037843355998679408374275073458885902720534310724059455812088196759809496201862681679366111352362972514932008131345322557575615530048896735149679279514807626816332501712442179928300175052535807991464771571087339659319743006194353562672698568257347355331006086859634272179674549010503854094776165617303546242777132103442894391203022066833886605640934868898279655478950428133446553478057709652873735504347182024285233372489469661631209641698324706066928220280080998323254221094338510432545703742471682107301078045401404139456523416023354580068819574999542433117146267137177254435685503362809323773009150873282027139178153255690952771518177966302196108801008733380942682216974390678568944988100973833939947765199290318070524432168437483590795670933007042248923959011228085020933806549128869896085694857293287331753421764747789435041997944009750466761287414438912316455991189956281879945745796408480774307405240597970936111664347580286798279962950190125792524211146866317823833685816619883981977330376776592813655271312992291010124195709500317573723784920326078881832805053719824812437383142828237522548771720109212216763471536215133686694215888935115400376746158343259270210131639759496563747360576120652995415001610546807992575315052799128489542977953483308093493931819173712543908429025362853875335096106600228725591199861633461052967686208832337633485021330033782806809097204005549941583352089843058109725542326693500095645949600749045062177427823016598476820085183712436959519508430491817014249223723828607096992238425781557578234039664941517859261022114637580772046297809187949486044537384246115863276466652033568247644174203531403104238477932492606745086607876698053702973439396769798118616889300047725028398339634364446704460476329016467790428493816653217052076733949087465581483244130007727565085332964859678559484924405270508730825696017448891055032037768528727726066813377925614629450838842224995723401983556055592653785393486737824320747318166124628513343114905757989664946487477607306145467338999472778634125221830817553447698848982959242696707965697822741965468443145851618064986685024876324691935598493983513730854981757826915653853759533148803927115815943372302152173996693813270875500012035217806082819131587014229932474788204256059096426205417147363604106477329188196979563432344998176478694850775057939986425040240977266138027434072528924689228415798245818919045190668125041126114291828961822811224035566253749396464500572499699654681728629659748865996308086019763014332245118218148563426062416379154742144488196309374047616465805435652077255785579819202110486742833643225550570298635331028790167759787019577048161912249661596218175888045680979844376757386243406175320991659886239960141017185983544716239725103274280100419859937121671121448314825684823018524747667739038891946606185269065299492255581699380571522846057827000177327669632606486493057768917505560494957894283550985114446786465861724878443285980923412137612345000411844425582868097960282140925230453675186806648617879648645912733217746192071746318455719617451077711421442294962935052496726545773942117549040181496049060363172911501183127928604006388760632077282439865610192647192022908137383340248081807470930705406904401451491770116402018522865707281660093508729610896880239772456674127211183549434484705564365712493055686003883730331473662032322025080547347416966904554263286718952758931185269661364301374351643310926152293178059768714875303644572456905432054714943844260763230456827908404520356713789135762406706712379502514273789333635974587002597848272558189369521509756077832362073471757597000492067365628276803955612466041819238533560047693297522765275807074597476050390879920679979800287880968850134659994856700420051416500435235778636004734626400671215614056864190537121220278665269221638406222903205324265297921308694655559288741345061967111516741991638663669359396451020101255400547302962713532810735407838482015335580261299927946796429774539529188178402826788365333960391185274092097978469091876742352235304849704425737854257078745685237372481260315640864350600699973622261645819511242074454028696809967118636010105171475246449946483689026081364870740822596348117030169213205470451507901705524665164160097683156633493131501678729719345714964949003568080045411162385646921899696453656362945225201379854968389111635060838333356855284417994917036441542207232975023401560115404566547564822659123680822143066257242928570888852263400589576525171997347980663854843384604973260787014570650105940440135033948133930684821926616655723618713749680703695567369413799403247932477672773119541803958155205779973030671797795247697951167213686872494369349252527150854272579752655952338637898746082779557844351278414607055037048076322036571738250435140023826951170816617893546564552306225069916684169275456050649737868770584401144982687424950014379342112556014032693566167796132216721216097234054253384604628441490028590351986327969968302405498687848747954316408687860921963461642485303985208479902128404892801943484089675922915451519050114524791130648096211334944846751436496824124834453693400304551737876286901763452201560662974518322352036857151814997379364693557316028139422312393272591629674732616704404257089921626471099462240635388074327013641651011758800682560545110127188244892016610418635723285548796755172388085313394878242082632276038732219895635957757293224909099853717933959144385675870736332312562678002152206900227473292108618218997275650793915958214953247260709652682102745514010673048504123600914073325601807973408471589583873340036818131333737182791182144356828486676437259001829807639866701801870615564704755165353410185412513992521382447981282612193129506666663194994141661593017787553027459758719798689396348148009391404378809033404782276746313436216751826510563044301403045518307818287455758310914179907567339828370618479102688989446376903538136583138615794836874534350160376843036589890342070926642229063302445014000505770962495651511837286498630482162384544037829141817158933639658361471321568179710794282686296841812389950511489591222831074908692411714321692645358066666791705424248995463137733005438815440052335544427658823629510277651332450237178709387769759214720375992708843134284644264372544436405893071218682056012387406113404737287965254537460487562242516722331005750306019714641957068929398915118674359849223876173154592770042648635386537082656343951454807442758371448456505987371438782628353698712158424450192076274133931857374776500548869522118727907930586906874588113703461781508921430763827294341069041817096289935701956987336290577720739476266301604002205683441469246614909052971317608496366631259151854907944150664777048733571484134745566094403113999570081218471640454609452393747637825967193061691860352250599739564112012561894751235970301471103973336845312291062054455334465947546083188205879063574360679678341597509258887703474312130953306557981683215023182388040014487873714797335675871739621444435023060927705394442983307603645083239195336506924099009674278343260621441151073390760384869131249876339920873362082406884782663896174107376774451116139226941485145191783640969748319948716797526263883882183360083296761183987251110646603032546616218331817773495373905251817900151925068963990429919224035432918863391878396743688115116278125873934562282249054356629329709945350219286617470577812645568632777798132581792412306532235499502416115854824170185305580889616801597584849135746158172059659250443893895856392070165856283023269585888005648118222845696174572255617221988087985341125099581664479984284461010732696092748876991080734161036419154016145324758552252633658512798944045178329738256150334216755305262265116047985351545687203519262752375393365840541168892522703400137258180221298558117975716618498051170559095724281784630537343336462974020250606758679693875061730734567377935032464295269592368537744424132176974991521251778769887397409720513655516960919578403371437963252897554544813188919469114302144854116381717959916129829545684090741528851960978733675949740419030745041723182614604532437001806379807669768614941562401661488095448602372684701193380015124258710390576974368917331884973486161305430855168523725290380501213742017832870819435731678954848843043812246451078877156594464978637237738127454677974616166022023078572256498656739438001409944363948255250451829806705403942258852535048461870261671520089577835294490573497939911196536394287830550825936071037809659251430983237532181473245030103248801058847698515927219845576312819832282664773400731252183661265418538381515562158713676268199180325849716592292209484126387069482038556510257798137708588739288104341937443278629303972026632621100676728576050728439660103167757072048313975408327692554236874361711179061743190525011451155295191125037217814773972310892241311876447270697889870930152280025748874169413396004634312145427588344151196326758344879045275532985443874697667904693889572855780415981116928272988906351617845922326237600803346218922735520868971094139111521097169521394742057269591443459190336002236073612334286808694722650873740692551028796170207767003217493784497747871977940682485972964537629387786955892282074491349895245573661447742316225419080919315743900346247492794464681567889786998628243704297053372339160197968506698497401805644915968347555656025185664247705615331677049164200664955052668680791117755169480587068463977633158086719609651309545764776627260618401080217436063190679557221696423992640197035969171407663294252548879576285202299110093998387529392250257850988567056261897289945165814597330587284218678671491726942800749395986604908643882745794987927535988803673312082844625117299051525630878041213717152848420231744085575331616278062448756643977895091044002981105798515493572652492675144504292522807471404008890197227973737523452261685506116999529472293177824498018994343978091811988381054178548429633073436264118683315924167891360810193174164409872494234941051379588878489195740314038897615609115192953811343440098252194248922297341890539814800845016649132562549464945184466756747087826803344158981761425304581042457957681391851720523550593979608330382867238962930450007127742918759286686573568990059311001941545963583745403858492054025035985096882179893943158243727216735795225622594502543975000066283371837820130970728664307683561311110061451892268234691070919692607126890628565418801699508310832366553920965818104107553083474549024726513544623961313923695244508476965052761886396191181387999414972310857751302339405857476122331954853530319761857652401991853900439719594006461809775616675590845242768005142322592419949293836722590551099673076955809921721863178689428738907597306093024925560529573091872593098081485925560209316586162888970836516209405976556905547399420591870545242229272343940743107520871095196929820511339141701280830425033074659378946889489433271093084252971633120871798045519003499482678726238004023353841933000461918478014397761373171904051814675803796985095904251405672352834605554047071542358329139922250370104108172076122178331489671061724978249291448494210361769243575124371511831207107845415912279099667586764039225560255566656373832253571717171565465517729700804129048695252785290011772775631673574579802966171229944263309931966847409173266820032067966124812082447119538346574369336178961810416019493339641416874464414408155694745132242988992358370381939282799225081997172231407485968204999043748598662096713405840658795533084818540926345782631163422868359197872712137284643833629565683158245407965355614330265320873913055037769621349950903972880654268379971158732537856801875721639358606871878368548606647207299242253498447971691475568952592614172197162683722226731141471228288036239765788636776164995812437156969399559574259865790931162929443092015101309468510911556967897261370908033383089840985322021031638253621590093862926774701101269321389235562346791253623573898252508777863889479792718895911532705333750176365021815530677761085172500297811816469428303695372368878811070919266765018610714478476354937488297095697605104407520219402624876953809804274960962266980223517419356249730362304230384270333412286084736834750591202330324455642102300154941130730378472307437321077067785718750078154673063421055768698148380933805104551676840133037912895717497341340022029718153459060081881717350977429682840413156695155817423918150063486348944238261543686755525581812412889517746703605572295101956485243466805742749982488794081727999474897759097140413920472890243128199706934201343021169071319108863718784976836058994181575703258163464126807665836338062095736724109684391368486412912640661325674295150785496289413393694573755349963761915859427668223323368553294782919360311302540173532300790204034150433537078760077416485196203913246821128203642631297300596161870814369106404933653163410661236314127226794964973268019164867895706894778034481813931820126980454391657253500290492912082157724085438206516170619269755538331850283958141114637754074743355469180606360557726450672784502894056125121914512510882868375156794768962497822703245481010761311189203335682390061959926367600597178372624878918207508865270132754560791503679331718091228364230265063052278096634214803611801247338868337715945938727851119219150195522376607832440940843324545842993335338579018687719718009497620989925877455762547698034448448297674951930520838368920481579136077455790022358135989445829023073360743242527990653074893183743528486414647360774554575164733376940841098214898567087196956654939600588596546954634430926196979333475512842578177714631616557926520424925946723755563140254747612269332809655731052398776398879500270537022763713899855766113012585615574441601013009971252957326505804067453921293690181459356734132270840050644077908887806841649134188079254584135840114613750475834484372080317128061305497824274197514653759114064603921878411364851910655196221576715904417628211369542927472524283772523286345319370800522906627726616733851778118654426681873166742891335837570869423399224747757438143399099745806800976588070859834915019055924078464713334741577921665463097477022190576463793508802732914177270995397623728650991718901311674758882882003464573242093279991370690648741614258749638247066944258013587678000389470055288908193188745132794540752196532217138873102163272527449501789408834260330208443387581290283633110747058986587114124546902826010681727548006531311096931887689372094372746766343815708106019699463691119482828580858700678747297795240055065370835636948829569250914043310576103326804004772179318818310492867021345607056876642719624050504718603950732577556497512189385921058477031024121959699624775830347053293624889257775461153112099550867336333454422387991731900549204543009854393258271539694404603379555868985365726345890245750297730652273880625603008402012931542076599436985403491704187397123391066932479145758131080783616851489196491647745302904776345462778322428433809698221322226346505844628229923752804669367868108476399732390133010697250311167206725959864841605894752143273059584106425619737997978214808803404604362958678145119607648622295643036651062779301273673457880577660872793459658444908949952340692981387355132193907776660492552474299565403187269503686225713051366183914340220097914703790515881091340492273083876936169195649748862453336347527019582629638106409534106700518261286280761389829296895754066791822035808645900271066017629509580074921690569754635472287826873221362152177756797051258462994164471628564714689624910796922955858412988027601189881371010279547474738780600749954240516823568317364158861201342279781183357734249962359799651492373608814166239398602774072165909224665169189394654599480253929782146209221069303981476394090080870944975532115880954959745211076109028996278072822304233009716667512656861264785211314466604158826799671035575358701227159143842990194817052288118246541770037975597190377715122394399280268591460387998038108842970370312844483146892864283351102047439508381050337587776202646119587567226963240208082590104875994761013279251684382491661629295971757364399140894603373262403780072898223373802875359329377788320098876208014363131826001737823054903765620637541479372602390639550529400337479860469651271109491823311621192603104052755051511257280896599947305819279721936433504287695390788353606049367576474044294189208532478840693434192840537175739330338207687326583486447754857573827037158734461428997109487674433659664085137105903875097544109826522391045387141999853505687994986194732064409136452260859659579563822528260323809091937035950285599938211723283848739582043285486514753335568208306290538260948430968715221813116972616211297597135442743229922936493136789827525341852920050946801662131401981295498630104207121565422142790420336544133442606681685804140426742378030660102446763579183792708050148472419212273145050629591749071627607050490187535659334770303587989558924837659532033829455610095807170285094969148661492502649951046199014606663222888136633846334579141668819054665735690556349876416128917653792269996163240283613697534964751803957698452192794165889601080668643083193467384851856640220722898434174602338804870201765008720830968446451998979989420852165869941103357654566312388946627762086869138478511563654079450798000777730263928251155154971121774480032167682191372719174732189909516165997915576462132253422193467873715799547160616721942763899983726239143069375375176194650800772279572024854508244334401381895600416913590257750622824443405509662257303515550264952377088197014605131164253494006815207127355787019504963266766627084524000902096486857441611077005748546391750756508468453608478748447596908799536542584331457197925672031813424640405830967322015271284693558705513895495028451717165715900773947501305515231108012202165864056409104790321201816874168673314574395179946056998317078349759031118001807863302957933652230268436348661030680666188774512985972179068189806740518268284904868021025868906813534960761143368454851110185214194284532643155835274639748595994125905333641535335056869527362230868626759801565864333464129211331697565711678196554030260257558753889890488549642097790298538390671272688533174528511321642660831447369525971965315762713237036078921606165283288589291758655068354395619385001242244206064419560396524217111750263650799397363241036665961855533356908097590792936556233222452402321798673599132593506899562991271049433638183496836595815250958484477314422248254183830382128619460899710269596830906692808030588839483033172328306343842129290194590569348137022400323354084136976056291626545586839675084615674786441419382202314627979680902188844860725118462826004009942206147870994168735318524690135889102505137872178030583752214187548827140896542767910469626770493403768888038614049341864606644115093888602150890390934886125377825687111051250226488184285115376681061502048552820199596900759105674736633436790300755519533744967785607397028589619367321508700104300478805433254648235508849857737202704318802087990689940306873436645116180127495301243118696487947620602251213625424770079723699393426745012523981709851446905539129358212368343956883667222235732343153972952543696211265404283468845232949447696936778126270605057921727593508611999514201628926164108582529763801371917059807245414826818545570679599095464170907083609312404412596318794368946315530632931210015835481277240425263708087127776178621333531142673387131282912885674459151934428078885437120825918553800566124539242994597749071847881018783506085618570060752477019025628711808260894155848367420150054204003633588224204925367536118200226303164487423409796800843349142651698162127936047922215704800701368781937002189545859948699394456865868187194034355578338836577087381360905959709461713599989432387369277516991732823926636369473345676355468067710236998628184683393161626797139404732035857703016822260969946096654050598132619157216360347374718560745804361093867681773186297772278515559915388717077832849560016782207820764233282796539779291009125142056792201667091942921931216251010287746125414838677393147399915488163005804640568573454305570108645964964020393541804468601355282094459414760872364696855209883449772170970715936721601973612058066400050860750027421893719297702272554112359804653214511537312485439012220138146799526992671472869895408035275287590302240849309774739999290074832915166934435346495506290730314426985227278017227383361445565502507164195198827233190596173804586268193716700882695660563137981335625306736749794944306218838823300261173797121245340545924428433529150883209034618467551098001659560720649631394770357873366885666752804248007630610011524885860372168850548757755154613905491356679249252764137681759329610490108449177029308464753166280450370330345449226558952686680129230307877711212175780183443919323445045797799157907087666621592244063254311837036988192994731628667982656483811825307606781642583266147324419872768050776453305781712917965195999476509071637350015734429598554864035216640207697595118300622919333637543223031442826176781744958240858139219139936174481792140081601421304314354884409911115637613575718755798316869811985485305407313478337110963497770630138384688707035103253920030302925780015165173491323625439569297107801852772452211747291551624743659464476905183460468343897190441528154955804606319231111543628534328979050394837750809509719231481588519723849948229967596067233268164208520245769393282572024265801989702543466914117515838468632177019665606511304621324056034385872552237852733422974444246142450897025691702367756701032663329719138755932015368646342264848681800070587082321280871054429380265786228262668690707933518465672719684829194739455572694793054232946380124638310032816728982334104268223482648997440019662617633907883733681301765983471232625629427821703129877849000301108254025972415655073738541086504310734791264737179468878651344224019261791392769029585184991800967130349042839113767327586000676183624593222089383712188347099176489247458788557459849336188182292599948026994226577420522210421856449607177047621002443522875179079806593038619974612593733105039698898484676625959119963663531910583125197889133313601858391611852833592766881169402340502601533848867759022059969742161437452898465915149074500274254674866739798881729790785137216896973648260501757459822382731026631355574010764651023025919761687055554539190199426950102684182071188801704552280110544575517521355844419336273222225256530071067522718632516699306076112616924731276114553292268832392827800476321977608588796849825769470787408454569098125379422913588774836799742510204759217022038118661475283887939832482166589413644417195510963365578536409960244138184843556322947256841155773677214218243333445017275577946935575173201501285644843594497662188016276391677221702879295300639120672529029168513780653317404996716333626310215530202723996107760391792942141537807195880930086391723618578823243137277527645745823076447024969427960595163421613529398245372705469564377320286303979775813562264052568117078885046045159729467201367380027130004362403924686726001570342851443014230698218114345684043915377852481164667798697094560464020306305913203915054171529912288917766578811493787152407554194564920585442644859654893761286998342954200497489191351896629294677892749089372412799216440471669363731886589753084892962744469210530761456602414132972797885424461249143418561606907005014406456026105116528638460350488345282278565218792096996060481538562982971487269570426286547499821812467480151683731461686256999202558983692224839899730713590533774974551937959901608986866210322940727995419042925205950162819091445937907795539601227717582668384400260023775814880877820411682729116319623328809764272494391302294075996564100569337377884773804637429645824851251994079330152609226985601556071048472169884639604563289708976678481344963214311334517473051001340573871432722782020016263637421434936234998023379991953492155111623890652940943179091572537973837937833091232171982319861007936980998753293667159276677581650435366475656859567035205910692704392081923296838697531544648812247057156832796715399810370844959128433624086235844319643153882555253273111602219810663658823624531782204250348257518664793484787970457893358218764821196905265009208731888301518885897779368033988882687464139153137972063519951801442136091222934827392916322950518352885243384574502921520134874615032355493267792084261945779190730258031267460380587712892990178977537765287933565425494309772653102419936592795279022049703604272089672958578728444525638067054048601013882582764558487726158596392848730489734380511455299803485428610188796549173691199280702523919298534514704246714469193311376834039301845404052989362321895822673560033073762158511503361634159386729356096149812791751182753574221412665527770992134608959497484829772076286882345322311570959694687750798866161414239024844869590641860010335577032452286337594142403044013370111347060286680564367160207721840678097642020769718224734459966516684570831328913381255150268283393884143728630793045789302962893897242868826492986071116113501946826856076530406083341392646043665235831210359106931339804112570379299104914542199523535187372772054648242164925501666736014294950524461709453449322235596608515428675444522667557623226255445012049516432573880314677637909657752064129259705185006056324898161599446183086674851398715636561920660330624464119323698900236348773728727406220267961009202903936669041930366499663360930041071760845985884561829152815990595679148232371795914495240279750712577337429962323210950391702937632297766809574821935358397873709699225005010065373341953815106392497766499495837302936193088796088593811890106528861174241759172458895295823906995877178952275902728214013392473765992643854589217082629014024934121781921088509749413243047817856670298056790503187494675545986478596466869892383089918218137744440334205304696909285937951291563707889194654284887437348713639018693056397106716865717731373335391687775793043050787501105373488135271422674797177500130352002148569669062765319706701238437757130180650207765853749767122870205433248337484093184434376317708417608278172658164569959531193240742763419955890199970949130988478379985540306625094498641244909184996231863577461789724139843116252468713248832759660669964838702757182315121450563303742110307703841744294671317021175082463397676957566094995333489374889595270423154460504492513010813782163603445999601267647766632674583516503891446003166086554738301066769897322444559213324252225675923782988581717436089891319959919737328201518447144482934905326744183078552037769380866101754014371153903191608213876846980173059900015147639726879681122224516262921830153993110346700447032292560525289911569417155023424463298373636040812014772834160073506309255242823682317770938808571988658239879171396208794791498443818198959054152390778874216436107679026477084885729920333651709061600517227707588345771173665133221386503551914034670356861760702002552684917696145672802430590580273217485284393862754512083757690694465230022195457693860575490234634955155647661634657648068526928503045718150673220967301053319771482052143677862310112734087862344326792951911233067372974262385876623996946891045470932870016880801509663796237195703653243743883098798292781759953593016672847546642015553266774817036828093979304266903771859489462441064239530131737448357875023257750944066792728234452293821368046304389580378746956397595327730948090602071824221295072008725725072954427862297015948491946902244057524069969167659151285967063891321742620222154930395519178932145382195108772734757963236201523517692933393048926875037331043165496383967973086692427568706408218216614401086631942403041308716075890328552017611061235109009175162533254818941334446642939319098086454794263348626633378868458330224689323694386562596195204917534118263908559036519614494425224047437408635207856096704425884171281834146647806719968830599560982153046432905645596561287368304168993190289892602595504416066925329216957688200974845842562516658589217664495357084430458653093265894281542638000586560224166062507138273072841550860063664353716814608961176716793714967547066104882450291132814884755031620155779604205393550546479250067678697688690327378220045036941650750875765558215953214952466241789919359446368138355087425048163326854904270502731624698981804018088379785465637297290064707572889498665643618120947842041045685963866979219381731323447078086995428092437955453946004943420599857417307204591864195078764701261980883538694516108970680881482223732636672090634184335910495587266163233282124580574355134545766550624832758811316488991415257951344669228712329758533216422783191729904370246984341914270597368628392673471949545957797080294800066241693853439931895451870612974768658206503792756144886145911948138265274501900735523359737819382743746795809015958708495113202725691230182835814030931554927864242401320800922259802717808584243545097381859043250320859005106284064380773106716801751311037188652942569169485567493212770613441770772073973686209454406581701011243871751769581778397816967481301116970755182290270784910376550481983135075229391559024738573093575073800974970564848282519842721424078109266484407827276363130642978098912229008852202648525498896918464459750712483523749204841867691798080385955244634538897112468915053151623184016423217141536854112353719556580321003434129197741576278555647806120576038149103045696601272446981874003914503116377699917411319732060363095480977329974627535673608333800384807452696126822893137173191862142138505452429760097635450583842275137305286673213210907735518575597321861919970921087333044774649738102480354679546040289217404385680841477214800330984898778065334677948813286831724965311287613279478221568045886901007436518109500093503640544002161913014771756234901479511152555620321143816602635687657039400739389825885941059763979824279016629923365841755680896027729873797627653537543870964551160176978416958505904616277465772954105375447811366715569306768972151410116258400245818320173805935144797403073429423932188825700982613702394557280299975162841537205499700963007464771240024355355838394956428854155422641143718134268155672257149333920391028690626649080532594221692804779340336062659845984517722222843746755550952247615006921357746419296534751950706706501511285668755842444624648538112199998816355773487623953195431250753941608292898603187086112146937159325795951048481343908650243604212482893003451231907126017173183501617810786114130165966452956461210097417769819987462241850607446369406899656120960328198099169873698346952758150936017183026486555688567237122239185256342275181458305452486712839556978447844891196757180774480424457346709159564180316322651349756383884129245260637527518104561585107484662510063340642433772566211118587015444415988564267086596335469327754581831360406961720134511179635795968426444750713083600775715223568385517418846025471499992378196812179792900216996561009874490883010923650594286486754594980004888307779824037500589350581027666597271270194569421669207202666007582237681039289154016594997773329882928634255975604436624012068544821894130606609068823563372316198295755346782475655493172421411356659412021212436477632658973097248270558958925140586059455693839852246703891587514103205325274916597142835830214184958179179194951625694231470931740369344632889608258527049924650611716876676504029928194907376383896390760586441364672136406533692184582156860720627122263569224311361205596571588803549056398358671053977333391096884590076374845850239404979861900730406617495375356789971499643034040450549725426782127775726174131042834905654238373863521508501251241987988990102033200084171867198915844045415776662267859063808187643567295269002131791323625021396801999595947265421052777071940466577921497277758964628476638776423211884078454445386381260536418828933176505333103115117227579801185882427295421741767795835119348853053717180657960222583148007495344392227911630667981686419574093573024698318589255625958729552686966248903447150346872718822678464534185439260506296772243692157286230848112029339750325687914290414210930851188008691616320179237994861423743890035142398832058085049798357608349461237958922550625306698849248339872033934316427346331745628027788670216716538111176002264340546065484952799429798349584830979391726659736286280569581616493858834715749446970861462465899304402321584301385383150065503877796498345000006478693514532741869493849056740689636336239077796439332586179213428712425776839479854499574058879379306551904133208160498268327487305782394451325475329618376961845134194521753804941697927077906042533825971648438913865398994753612697236760081448540408353080066161931751675083593302603079541074186608002676383014502281487972359141603220508637758124809477145748958749901616443162319843395646912882718149377670375288975201693204757265226051959764998407864602953463506051352578702053233360203835181556892120523238991149923134138316050244593908411002570487053458456308685820664293204357908203703687720853743880667405903763048468205214389573985691350492979330180834489077197093311935253566347439822570809345529570104192222963749414372925469809061457731916472742734986353506982903365668315814018955559243500248449719163313566064853731339229522492124089586395902476553014778711763427713419928114922112869340465793917597885786476682810852328376516640885338537027174475165969787981730291514098651636520019295499484212414257247524980285183908374884198907575138658136527052150949203465329620957749932179748488084278063892018976916370634331990128617199238007024468406875841436260551212535896071369491234190383575928116592987866363459493714748515502812117389447643725763741943532502850800270320715307680374625353602866831306797594276445378444562467317725405176699735132661987509460340924959715554574570835388897250116654987967424751870804594639157396943246405625695351083109882604130379769290233240324754130652507690125567653442931874268993841741260563565309378623819889724428237741706172182576978891907911358355186618263040241048528781046550124065395114815284892931429079249169859729764424011894900444535487924550522533235265236068489685011592011600015244870487384503935657244881256876462046436372709372761955586503401819379972310986620058628355940164970467366119730064875793655384905023135363473864026028699392407954467751733711048398766891741786467975706341067866107235252797438428430585021749680206024595036370211757294448787498140340851990478124669710392951083964564930987381124805744069568184195487808192398129099866994394034216051884730090713366429987194684632070148931138823277417155477895630224512540255662475377001288330549186327464828125866706561433217050820167136394333143385967279165254134058867833404653912709285977523714915958616305380018276392914754300333856254920833935931748686452655473512584767561803706480669507178771842660724957180910795671242296369227722351558413599965774904319447729020557292635712565945753924696068461665896157631827177801216559457163175508495604611200154474081580558837390728377607635760548748460979691540039643143359907625253781388266485866049603692181462768266192307915724841184624892929661270742832974961437044864591509367473823512991304220365734478897095955695536177761911969429581268571210299755919331855617133905146091571304486101554197458523043182227803708481318468424842798455469153564960775975429645842789780044495307680178356842109302556572615088795497115902319382879545321728132730314754957263672536678344035042970218888712997363128307001583391992969283038006826301745281936816896211770570536368550595402243478513058739468288495736351193739632593643111797954756107148667133527498650157275166781425543568225073381695079708703121699094918748506419997781086179947719114956595697088345270470902569377404966932874046035182816056827707222115533400370280262017925990893015322024025321219263422207162672433521891095720130369376651016304832238236314985243809197418173572306428331086387133265536933938470210336619585854010411737303938075951271284233447695410448774076294475983486929809995704833894020134479160040877243562331020081863821539990379762962928714542148265425630565382723608015924094843221504606740435723255120798749536701396598433083409285329596717412122601529601521465388913843305104312130958997993990306519316478364073543053717232994706038901853566521987758600087641243366311355349754630158981995112411627268434753637740486787102540441963840782286805502463036332446954956859918371809068557237682240958241796120425809175977461894640672448498597070724201938972811317202706624012138719776040753555483546118993828646384993389240368737828425459239326607077089951314541378075567638222438937017415104990807133105620071173285909368158783019053417076800500525887600487738078413723019999850623750541676771092473511563276744859669684378134046306569144801871748657059230732306914232115395953918140698619414209895265725246808311279293119173789968703143574551815001074320062007825014736136890314721116572999564737493259210569780146872713719961748459377199837622388913234209155988541396469594908335992639255159905239138759675409140415864540465625374471549625978703772108711361570269599700970728344820233947349181347077495793431144721295575316428217938053910010223543221478711007380767165467045010213609564557636198591980072319769768325629157827074029714693778657363866318174075915677847297580099055394813609407840698809745900026209869831756318715849366865298366167439164383133215123383755342973870213047154779505990001849633384324717216745075258957611031453931143301052987831416927909766209347801053805676413140944591545191090301741264186345173397613075994660290694134840995065458536018724141381395023349888478027241572591600612708293926981059951731882691384411732310533042950898859926010015280693573635410137202967080931955072341375355708631386611413679057803407235742500256709263905995209339451104487519288992632645358631768724911426394469404710546584267803764272087689051636777205518348042858445768218963996950809028360286834175641335171646881765475093368012698088407681705796736393564179724898714291534576188745695866324554412154234442801568048829215500335331206461154196851000011336300880005570508772909164608916681200048510172304929819014925205578417503667242557777368434283785846223221756068942861535918306407663464354926857640191386758519975321053049023440092905645029737179469266297106111646281337325888936718883935370971751994594068613526227174197988091214882410502211593619756525397879071719848881309909019501587922084391764940188780238449820622569077707301900236130709008995075571543956050342078380766496604360107931684871802755748907739140122011499646302943657611195326324522897289657978773965440152071848246135380011904722275234636314405759808627892053093971775877906868936742517293574608183540340340088883300483975185512335641254925758863735905088360173505713259139163126139190356183788723010594801721516851277783708952029288611541225447180365827404587163291532823739750981240221361987949979640088369907678991903458920937161673923140474410089865817432880285267511752628636550283916112517935365240297797755852366503212174322505171355217359645742073221647050246866545692868251200718447620790184530685728155227659258955691982799906740636428120253235653891551609827464490593485579337199841978950356289459268903057511950813470127425498417547855022698948954440097014318753498861946678540124278544778663036883732706660300059276374022648407718562253251645887177466060824447911826116770404521573018342499612373471029337634979331563051384891927027977095930099748750871424694863353773199624058707456904451387057855882299220865952998263812067465699807424441063208995934414136528028736979331469884295652914259518605718236589220753533018345556348635214071477017030601983143953077268054418070534800972003016737440416784259053132273612189422538492587881274860505287122740086991942659431634601823996178548540727488376726466857552122967566900319429369230988972549225098465163254813467841465349832256029862473249085013601467191958183028106977846222198090687260348397942901683572074112897600150991905611276495899856534970863064327361377117156546796955449043138384119092618494696796789606533962574290865839209875497649121125706312220404903335482728106786876990429387995675382622810501740856744242530296054363665003154305293505485154205416411937404913026690112561900547185876682145784864411695869121146010489196586755784272753566901225878513148301737560796069985974313462958674431880129552622996681474241992725941333696662117182656422150292432303752131062953626807189085374809499894684452705389842385219757811150651944589396932500058614915658456856973720280425425328753826767394084935362568510404923742460845886004467032016031846972508810854139737782848890501111880089579966248507676330745052149514318933060558749395859291325296941953219031809875166810749615766718624191079884446042439039724423935446296328774480338514891300191999271164792710249786977330606984672449394072903820972978937358911903396946443080459541256905176791686808746866266556419150122227371409180689457563317621381057651023110819644505214438929450126051385795157956019751834958187511471374686679307198662973654692396976786433528844176583916208873183372207809010843014124659435674987513100527964813684422676255953920773372349977019865271481928218522969250598097172832612930738400910420160774396626343851230404540853337813226418720136452543367201138702507350773297487952145844948139145051464092485699470519921894258044346489497312432621405357260907880638672049332442611284696269931337461262291280287968233741220306974100805036786011337398433845029138240049227805380893548835013978528746581339492759910072244258687561503356349918304008130810200557553968047578805674752959825310735964504716928002915770487176939846809391990997967978624518503165574855105919016932870195932993433150578186538515339764421772527708934589461474094938042702265735029379063315227928038905006190107126045493893042818835520232522713157012790128427335018842871787935146457431956763846490709797122225925820364366530684015130884305957790480777350875653596368248519746042932698413848707684767163479611376563731187480562264724529844148194212591481538143622930083519312208483256529467984080868602091294260475768538247139355091850508542760559635238175370985913145356006007400732786439888430760111965853544757699595240591983143671955143752130106463427351202751803694651886185389057023386056892524023603858882234307906751031245562359758409803227436810402656389891831069349681936028434456982672393231167464502004108413026757645562508232280327515705023585489395046882607464485923016152262669597601121778429117472783120177112804312322250141290112060715770837779540549004429318566465912212626223355200090302496207083757826252142518304908217187757036219777411006413385156007659226630510182392013483466485764217518271136595265753946863556182162949092408484474740105390575474303547443768084849747664167970024930188305622842477411259723116159217830204283578536794137977154141205990986063743154642680556747402468395343393922818838701402299743314960968182709876171876032846605190990557468637111804244567216878045594263512807726711643533890366184510728726953509864342983229878715466709873094416098259631141126326889714706777801876145516117504960034633646362908650541352904207490847907463219120139826915450365155536955438426488814908662446879361733943052794776369536536948902318926929408402792878847964043687575182916894063690711263177582198122018897201665132274950260217695904324035006425767407753799007174353742947777033808638309373728279846761087420514454358494621690590348067454254317378672693880247879256376083153439886044087305726445563866506390370535922378383350943872772128722275182608960428794804352233620220511793402510896909158208018512547732258822176489039794664103388215155811005106304846263573927213451997765131404155173783688418736551386849647508659142635787692085337979716027578950722477694470629140426579512798919178944056506609109898824648639810901325568856551061320130654059570115697504101570479671000125165762187333762290200777238427935806877611641411666886055920656852946637521130838393506623468796966454451850147689307572550466497843671438974462622840615590973830327269191255091443642037836634447095276613996558252862447708936961614915222650899522538324091335301946200750380610274714825681939357029733690373265622344189684819761147304296873279594655795561022887201146169183294960486155801392045950248669895580902349741626378236172342357836091035609264907417574425385461252411994629692948016309760693297494079761765292274113070695746847944453825048839393400007126981581846241513001729284025962822736317599394327221342625158403760294383381149484973097707521500637830987616070596571607779313084452082196970513584609642208458816596306437821654905958882048492422548823032019876098037760175700073175966971409797891310318218107324567088943569715208264369875596803007583299210486705282849674583928001374981526475649216304816031664820503357798121548234847569729031285904192027942826810952699682703719284548588962357617494108308414463559080659274215787624350801006354730425277463998392345795766924880842037764198577137919077473279358834329878776533848045071270921878865276779289469078959613115130526357072222613900192887913304167157280208297328024514019730920236255117718782543958315194445817493669699727582239619077328382737788392463710229521840116714758412397675277277140840882107687614436028300814626604688958857646287476285635697196074622038465652551128760487707821647520494576089069580151666373031196642016576985153278139919240915713963939020706817773649703011903959132871144690425666197818632936844910901516987872693059546552003319684352731987928207278951748652337976542857881053327436771925553247135974196691032227702693019917417731702051669633804317911875301453605405971505647081448942395983898878538861431519276369969894824906452960979532114768385634054347687262751863770193068641720070187233673802301639535345979255294021817812839499118141183446445361080900761345977649573623430430102468841891857557795831106347835181771159302119539233307700514054580312842727576270576888835037442505738962718141299241207941218285158911646259866453893275907417554091410747259899694421391449569282623233790408325922066057721965059124401361733771550144424680915531402447636728713466101318214694834012955694913730364347743811694050366270958013624186090527953790659542770112646935692980471328779397591731822196292787849179360252054128909721183553227523959538395605317703216219730097617796193936825952241474851781013226237545359907937883511659356212764057092896597580078277766790392190663658864805893276285698572925836919737271464977916655683179734105970938692904814563150844305446654083518733666803645801352502306271402295789038999258879585197412655872028637866980893584411061546422938288290319030348610184562349901722959840450139339383471250474912305906236698767572827880441631311961895748830586724321631081999283224146072428934934091061954910493748786713272957450351609537905565097555007915252531291926331926777436988583086893437841121959626982503077090130901049260340188044660776374279782356860927217868886855494145390023557880726532741562063954831811124036439622176411686449046688113568109463340480359702754353799002744513802069835025616911487623626162103162509823060870032987340879007769969413390651166928912367126121903622998015624306167987651643549555018506959396669084108785152734508801970829049938722087473020512840376286745725677924214660498832971849415143761065287570361287992360058486673787882014190964672971698517151279156810597969775143095384968447737070718015958357035449745747781653354755798482280031062242832862020472078983055074258896667646844121565579109782093885969610542883553165378209100659884551350379810732886686263253570582271157370318059457423130709349881390154855912549416405551780356715493064256508013909509172953796600327860374670076852593988844956360331947287452427035670866533002526780863911300109190998425641554464932364812921365297526265951835532024262059032541277346323387999377782163146455517181768711809205286797461077728074607111187013894712457183171392495700947678113390445937488109244571250048279476251703321940720700287094423529749401768878391504218271473502358973607933188963039832046796434885962121699249651520849360658587892678029601727909235852087771333270990055591164539883042525676281013303199736873295053952390795982235286609440826678297352458404448422136178068963451601990192348142604117135417600652875495107633838911446057249995719913838739258286684039369730012708529048556837828051850201877490939888299950412951837607269869677496343425666395404459986542643377959560613373958615410142661840232983119493779566551272537854940174688899232324711094578497000900506040160985762913103032921781734732180379293479921781322661360271458821808789453748511587083632555221997332287619810358696533890050340970986189967406961327323520364718280827365452761465588076560454828380812458502622117032752817334291978147078194611964109330078012477719743060124431408290307656060799290767876788094393175911816693431261567089475924057553023482369838357546327253051230907620039887736509684843654785274368531475686640040650741009150012253017240293606270230064245101051537478360396071196042463498184362907462094288510954225479751939554972163212532196490517236943136652672061369995012702965150875981867870656458183397370797635001275136615950344043216903526350434242514368724878773799254997533258521939248975649961920484689080520051751903962280292426858936972703759135805805291672975340991535000356016122066924898168266022990485365075416256765164685435327795379041058875093386563910995967389506354513183119216554878336656054245368947588138962608137384385876141451749557966751860207806327375750654215266161732457672774834770527608543016950388895083201039755296877236930075287822764126707857944041255402932339143178983050329116861443464694583322762198102375351259192253105090342310894705216303766155143855703838185943908854439190210276970055675554751041759503690945104522985065700109671117965545686690684348731806764512082745580706973357605186324969398697823444125831472594875851520508826125511655259511183660453313431559545281756045342593234258303945570138432816136840060949794626612494146450360046811688375119805125276926234840346167012673080001472829752007710118429049745025052724471489619958718394448640307996391463178439263712610545974794427306449911801593712085393080428751699178721461031581061465467134654981744984122151535625726186093594226778534299813460252372410899286849929009902706681819220433615139821398555026408140351597550897198142499357584674128929911061706924849368207985561358953358377638344433461980897526587329022551008046721024529863556877211392016226812189915029373640108257706836473724383110884989804731918776242329511605337164795372567148350329177195321575142920399927797115309632418670355255764356044147974767483004637253317050135067268072309981037265907840423639021802315431167095645054212721984421970240359962931135003214740971930872097381083546378177647991884701481488591415082212829372009946115736396109947597705149554514695470389235263411939382216141261633985850228283511433140246361558227525691218457045764683186794199609770888928050650894828496160893522476975610545044373933029043532168357473675623632726022819599926122134093266430728366438709331388544196850021875687457761583707409542232321357092035926110110323877797838906608616251323233397005736974597548307806554403817571324726078829338609723909311700306042400131627545392299354998498637527196921097262963773068615426250901114584129857487132529188131104199767618371469639841861449695950452356330619720557149032059429421236246069529239031370264385736842283811080415622186109115184405421379626259272391627752811526842766167219710896949183198376595704510998822699509665308938814366447836875649094130412380397254868065731311714443064693130778919866690511263147751719800739235751445399272379972768833706362350812437917145156598423699978292468190809653112438431471020247576578819856803277145327622586483670699289123192883591382542134992864886802164081558316497209286904028267157583756748504213447928532390835890181003664515628387554213728870290565891258289118365188648966597903450243043461337791949815465221935257608442308531803472000878711318527327810219006019616161660855711396388420688600704692146777054212921277456685983526185481338569570395788720993774306567634734172247150661357698263415403591528638019465428406516328591583790713384942542307804208555627680622589505687172496647812334132174382914305610704009579340606825449576243397513552019940148284532478105915600900329700955850428957122536126556584809065837660974033826453977004472625775702837335800734216542002829204490362141882941386914815952352374606382560398252368294007683719905447148874337846280990232354742497461555856489266199677011756435272464247005806003700393088136533991699647585852506415258578166543347881332481909284418501650518920618609383861996911769467789657912999526648937642702015254860235779342335555369750996209257918846468519304812177725136635466868797801244694257736330532645721782967045343746033845055194070242491292161455181786730065103775256643155026849431187247426152749731466426544433446252748314816580125103270246369522284926062214822619989753104686615760989764732252588222427555843688496666106221083133042366001824451288804734421271080063824127793660792146674178984255569357760057790405937315841857038801081728727088855320687848061105673315084951005536074861928237460700599148121456436218835944766048434817437428128144268479425688959389252993582426539149757386278624372938854395667462900283149355256880515813156893584518713947091881765796590335314091555341047238014961019226816285106442643227207148813563041325922757564109250090592602147531856666372948569890337694227138377656587770944757093503606018174425256319679276709443051227073385545278283737320653572084584088920932366311179306392936042485915594648965347335619990781184882956826636524587828980804196415168216739880452014903278691004429489899874246108876534944007218717528980029162482149568750768112014690453295129268667284169350323683735151438181571308608320393833273306691020162963473733931240010682971458228786799782239291631428834512246653667945523735429735437063613917411444096404950946596712019922664249469463375427031212427907278862207744374294627273912690617622948088413467095075758382379712541836218313601467551710309046611077265685858148263902114179072698725297256557358533832864078576106252911760205664395214539890704347442024657454229929534001870772908757902748183685453754320307506235870811427237708806516128928163105346770391922886411631145007483463230919557329134692610739774676234003059015472827430230780026703131321564973672002526284456954013990127321236072733582897500286332128764740768226165487990962726268630763509483153924245042074803610895242240595071536741616027667589257221308861401553940592109283887593544698534110540371896269958796708035864879056353922252656904197192549592116013106892205886988017073540046389656541860993096655255554639356603957602551767499332743838812143346609194821485862478313427293637991687934513468105753559932732900163887850441125116644257136823072977460997461355358928165302916966266018388856320568184406238464684060552337562489665801245543584940454311315107072942708764580352500614661668140834510229696195412995972110757462048370319663936904409652121964675503057776713710638626808910677512912638576533339473325858467790535711300885059060141194532852198731276632933060751262626349955776578134812187706294492376423719609540436412962033777028245419599498546875107488708883028820387633995088424039017952803149667439821006738482995379387011668676788864998345668819780953324081274435086766205005805807344732835783882226311118833829043276808101721941719667414226305935151869598932491566960820617778642527812896084934455623846587772104826417417768362997076710772950114054861972484858795942494963676534026103687582735767967050869133763589325508628759683215582754271539297851681449515657227903814733693061245164819686531703419500258162971446192732604521619040444151597759708670205902857979935254654144778294025846151998807889506056141659400049876768170999052056848290692228424710405859480714983744928186134554935773330575814028600935496453196824899286536909904189333189594832293816409303247042483687283922536875731915929467978805763040339146858886822645501999251842255032026109462139537142167822370699981793284814066490286200275781510323533040735541853202431690240534104477483620427067703039203783578547709747192751116835133960536879819746864864572865906011801641884995415372967207782923587014068084262464899606785632096161446547977330716405984451896750163707001749204214780303663889502209372909169264622193772553028861604217834826613733793435481633522331909772584653082399207297073197123418453111037424128467858946397408832526042608555411648580572946139639536308405952065471285979190829267847863731456742831785828716499547361423215665828711823502375005411091507597363611439354532826827068946092895528156829789858262373123356399925028791431626013968675373466876556351754903427706902633664900572959770132074241774435405560588945026089417466611118777738013087046737793377405373711647184166463602925370741758706972082114124120180158311907567724568896666732237664569895147525507387056266884925032279058942031392059471957576174524128680928607200789204097520206499284895003188847390733131751957132627270482136903320645337686255193184336123150052930555339551183411148371459830975353028103510799899936132299499611369442237567290975606838243715235777218283323402493298414940827362034588531901935146868136051742215313429739575641026921500419706382766413944386241874910523044589785967311307605672860324826087949370641284095847467464970930432602022619964122123911054610263689055789852954808358221670417616518650047043551347528488557000285340447829293474305261865480346755970995849232373664115412431292219690444211427179963342982096731698185898182864261136156612760679140782584684548682634696769092974869830044678506553291967309470368187232893662229749866523522987497037162785937851067748451852197318229675273504061796122334423812573588243273109068088570420398250900962251831920943075034022334318323029118228278716832580007898365996059620906852720876044046212898155478439005293352508180556646446347630930166156700007730288349529458285679929461029677904678601142229657579305104533424076536276590051034640519994460063712763487343578559822493208667042495398487451361825467814576349227537281409579574296534203182606845114947001736803970372075719731547441337046765717642727337616455266256083486294119483680509817515918348357140499977375512578212154210036796197157698787732763994833714540646322726043251998609319711183165270572952965574542224877652153835442051806870098773162050889881365318220557142757041736749042117118013476020183713381774575520969001246994242119489167266350466634737661267786403470953756939561163337614136553161569643365599966532784660700507571981462366557526411151647453347389100826572756714393201483409680047805791860229955746668321719423910736160929201410786924855849372656316459809908910740970456529723012396017909538469631863557542185673987510503838175513186357787599808881306023679804865672524060016555911442046948375971420141291829216904302945362709236348845206912272260954290768100363808448601548883879260983654353461791547453119106077473646521302464175830585391484374665353678856198228743873641179659357990784972249768722134704675248263849584728682277124894163584822913332876133555347159400879772120590592715382011777370241910633353368957133609626212624224650457245445157454676133226676129640577305261887253428264515740240486901065154127010765271017669608592675585135816110496131455136762790940845001582307752515081457908409218850139014236784742770249465116189405902947959586451538590887568546603208712827229693749159869881925550184951054584414147206660780297698304334211909596703446902563595663441206810188986091745919491408206357548925974472225794503969066750412586433439444238425676504368191304538457671243721182911336529446999503324226920583292512286181922620593580360273374462366241855984669909282972050844662609858143335693307411514144931624844782961110681495744970528853741230692238242954738882814423355426770438859427610493547955566130564925405605542958201409311022869349805591679194356688165028563680052321696850126590681036617989411129165153603240303833286493089121377634151055946677637435473813319823736660542244952489039565951499886404292172170213686578220286441399795167467063687630089788473426909377687854730587227316144045297660661121388633025883333792166620971261243178350490279593034557531401777464763536210240599060384059898173127256216144780491084595944766527595342665558550745239884834012073236192300991375569348046477237132023361888086677075271487556523909555098453668018733659987531453693935305599170738342562035531914493884545932408361715392077454492350668736791198473332007981386569057607463518181233359571995457369672840890076384129877282046552157121043263712714766094067146184201200139848997958585905209943677165364541593234009096830969701630662571965194653242205288346053239865606470354269284406300568261515446520226143059895051853239197790002360271459979784361254186492646031955402709218464543566400235672215852116215721144730424215240505337440316400146308792493639623813677171227427660059851690115912486979739476649043732227409725184705642856078570149677004353454665739695744265208324505294677060458040286618314497781251710239957247686485461462351248418030553617903214006646028846392917873301776526391265739944977204011785556205413496966164547827972121871858251055624995187710857760770916559501363299588231177728427375215292503036823452092302051190792771546573880599413992651043393453759209204709729145595170662798772817603178101718612215963192582471681939118035792640234283166171912026387481406793723527448984833344725488434463299997736056859529310130704005455034026802283941853414860734258305550870479958650356375316559729878586217051270048018990248200588355916885395800080315141713809423429008240722066059687961898425632715700471511050019660389382465362059409714390421688323647770050941749418505699105095461620591416962547341375489467162678403941377982111019967639468525791610425966405986565553897990927048284889472630011125096234276975216831215755944396264026968740754201406427673943524123625184245974233589907951223913679366451687561424098075616697230605733745436818212425365371565479276533747029431160210013036373862627153675692245260189711619182132415698795754772838646115598191989777396174062436588657737900618489144945714552972440983786517566667848389136113935989448872578363974431454452543107953416756509600042794485711242295515554458500852020588056989315342439726444999139262381885131120274429195046093221593984725912584162930791572367873262531006002152236000194801986598754881869900497840954058532801859316636127241722600246237459600595570299174138187188300793850983435588853282441214920834125520887040636751059182285071587444070134092327330805736206608439276513223445148214206209445086316479307665942656990685268799248339479798866458233063011059843607425932887046512253020872196592230305507499925161172295144423757138438528455980116676447349300174728785474856955955163545191117931360438149071955504066008846852813715775210847612061102894836817111021616962371678528489259645885737447018256115580203428292115375132518270083334886944477577842183317646497010735730463193287807728391138462059021983701377652416826098763744528644610322968294475148780136268331936138433790405658037718625581082398830689984105877701154450561262943745019188722496430074892861658318421028788418818403149883479377783106680339290581946068601028814655002878332805725775686260753701696316517607100066521898055548188432911478826115293297400619382225500230581659708724976329909024516397393270309432340483119864683529479829417141438709164831155987697784187216497297381330272931590817976516006723482861608107416586935722815854127122112142784814619794948515386091750651373683748408505982414720834425332005633003431156088053777520757255424836219226238498273065971084517867286765528411308531600877207832914180206855550761945874594278997661084192230094683868111262170216173052985783247387165903211193629137001821147446849527955908169726251966019256793138893779464253418954962882777807731199445601923715587573993519559742657538808059894488338085775128369459685025527090702545731869089964033249706217205097577177064509798684782405044464314764054375999379273995851416771430863176374177321604453186127340162327282656551554610588704044764976280062247727674847914228633679775643855850350056116170514355051945647257031811494507781162942470925964483765314099368270141502980880519511592164998093340033317380980810042377271335351866205093863857393227718345554375260680213688512777523495801134958432631006755681608668415419386548909743230709542848402173298143031827153257345380856335527161922491266854057801869436229655173927008490648833226934837744980913504736792937989985208733278618142616016424643553576875858884566956836082947614276739874040214811074260510798856219655080483407801249643171213748172808486899387511676605355103415226171220308613212757438365648346262161113567782403491609747806196284057047252424454782177000908551051197330163528184054606303076451728871686795067729986584272481585699876187705933147105555540039330573189478983784586104894455523551310102592379787780935642743924848763403025249174976440417374055631396105863741240912712152220517987534239061350826312562036159561370136059232838103778315319239032929433992920632435550798365815196270272471321374765830567324243807769897953293085735230121452059990946944520158972331265034464808911813815728380669205904692931598385839905137969122330903096142996428471127779168627965730483745149843611846309149736653710279412866220622894283211290889422384676847627741077336327118399217282250737395083040064285717467322498831940309806042487838114212273902703207642428420133500163101136035690952825741571666323365401974408004363778931796881428282218966304803272879623949934998165285974171415802570109256786902908555525531643580349778064597739466582138954235363702213975523948247775935703446437964530868901948684135748456487937078285272376866622839367123585639275671305716664648676169435308562797656315903318263031168255553703847990529516610050363750482075003008017551550664396782114349573059482570810425437862511540986982767970622462612249122564672021706985658096728708904858398912625114139643861555245430761497125586817922558506375396335340020512793066476114015068011410861481028474464918305422697524730102327135457818170560233656353843776994531835319347040360514290054629075474457283389223535656006895256630789619427110273306951703650748991399127813113227770163355900608186590705097107394228240145132174915775091429199452911117925647848319450462682871421371089169291830109259300096753766329726780686388575768108204017463396140371195562416438598429840811494503512997389008284059648794761282460872944897357889041775330252048486641378310018016063590356254916781634724095274750272660563631936179341273679572311543659549050277550203889864013596585650268170050165056538474167677829627011301302609893083523768372184560600394281527685605822821254175810181364269297956330811370282975911968084279003618292262171165927154544349354067818264352266475814040467679469500853805076373374522967218418448188182730122427516740189317128096262984824307689252185971861275750189980896736199735530391417450680148578597693198384514919947621534340156814489271495718760558740323018481503302058297018469754772981271865617519397245540488655517700425299757042220224377939924972774584971940149423403110171685496156534249626414455946704752295429819747077357162196177070299924085434160931532492268976946680695983319700591243698349995518876062495072692503309932145628468587382160602768796733426831015081355526483870271351932549539467535410417966483192690651311163344466726495572750931409177875882583406063983036750507620680024791905194566311819772826245940167703797726374086734038939412687798307309479270102068793878671265595605347024383261266031101386457018900640619882837802601178407551240931192573333033934144713633774385463727898449936338699161296901440491068683577516455728498640691117608769769656932518432092903864278817603374017962497935543990554993905890803312408896984390035737129589895728739546545769207138664481097854461065199495327404925976400022156891364775764107413287176876177163328184194608758340571131686403293424427996234306042644608556280361396944298001031067671126512030512557356338937228734293344258094057193701253045569083790269590715202713512237866079002610182185013279445434593013725180231735122937499126011391881646478742014414844994347642335772138957208744778289370584375587673399066682724813126610528611191083429596891365975266959967684603856777771304613736876511214934757382514336750134998719805840278055612203032219410455886632271264186745041711179604639949817384365756198151312568992868886883836805175244648484837714148116958779068245449589422797107268258985103116916464748782460541267029194952660791040028324062124126551107182424269441479134125265050068363866302737764870217809982010873706438655159757791720701254468526468214593917825702929370875804985585991513465930848797152369521783176303492086258840436048250553912313446425759640848876517363185684721075886682126112389013931061518715307756256162902071566179146847423543354212795720268437410006401913078868705568977702038265413269242660419031075473752927819099783251663668270749490035461130991308498428281137641520344812664629407952837908962058303998651107472551722020402957303192007594301321291541649548298470631490587493568362672890910759907992462821140844572056862104677863805402874039531976754794313874033812244644896109510766741845491364345924853548490315630100185120295629595244528251817163819924411894881921798055409236525635272910491155628043492755648268639064509462814607969565801921155508579421681209961277534931263193500358667932772895876156001901339405944253072136554766860621683280602057510526969370947297725893056486319729501248281115748443489626724045119798118119953337870757055575617005980267143586508715604481641806936180329927913400901646993885200860075332350957506214501537989514322631159311562310434097599743730236044600427165125793162082852353535907321472177222172363784120018166777441494876875116709293970412322274386396870293833567859036800905141658102164044883120709949790727745598892389138435177595644706342518843680126390145326139344812826400420744759809256034669266286004735311170663428996168252676762212105224721111944095240248121641611116989995761697849700295857477985576216848991804917471408879748135280917777477681771445039881982334101690556839288704737492207682139639565181949322375032889621640079426793470626307050360991446239642990839565543633436930508044553254643388949037220004448154714383194357724496923801418700584787796546894513404584712104232448460775335228426568502763122709088741516936308029835821386840562047313345163813465902191768172329665762543469272280142183501273330148703891965401948135896578141339037584232787604383575009444674883261680110300679486388771073648496151902664750778722969954286459806420535154167186542518624203036065856931360846921044898298665160595704368242256973791028951534538137018944643639101109646869236045209600326661817812114052774397875888344704938928229169321767524088272293640363258354656439656428699427173363408618487486758472984730884434682074223414675677558324797125974425447721219676543604126687815839085655145013554937725935323596195757912129448061876201262568011412656874941500149026311106668039603104028662390132811114801971731892336884188829754123507025796568320339093533659486578371481466222050566844384866105622673799191608217578417204917981415078464030876761712350421756167741785641585493663165664209679579886399717099391491521493950892719532493045536131131925723058215940150521115008299903702735533437773457877689172529732380117104626083885877389952164801332469194721169452506737630709293264907579052409141005094959083984816899192436481018849207075433584695584353427465844186118939100268137432360801133731623337032822903339247166511017940342625004240782841845529269582685297096742412197144109650332610213819875165180977926701818314051602267743132053577175471726938161491558107384922612633490308872224821784679673816798404907533422164759894663911960790387079988235660437458059636917621234332675501290675088082157313615287289571531490298614833891631216499771343833010195316009859730903758984239081697608501704681026791187227198347665774239518585744416024986147610802047200307460876713014277589241324277452446542655602686481435060826646626348792486192144534925448377268695383768205346372467123596719147681242083142967129609168208396384166901101217259034956341608269619798463289921300242771504672789768904853297205968740278623489338308260594980187404862981471567783530079322664522169444597684169845507153024193683739097971994469451627638338693934847331983003851091606546160659942744618821024351603658736429148155054976517059449315501687568326362923280679677831805906813295288577566549613769377138962675972788658665180095368759724816696333277182096754369115000822231403932967488819144490478953497324966572759476375425458698038568112089656140024062126991271437011301175764406909387440058429441247856369752322394273176288866644234373290121236905044243711161660335277175957411784118116862728863179874575739777260218881495779682365116590047289048460307209775593709858145742772943290666412155337211406795608822448738973622361336467988800739695658251570265274462351530242635206267004246713055692227099485837950942851295838343979794837755060795450430531063580791193661937657961485413231433661629219191105902461916305118970599035656059800566502148137774002310363758938914561824996805086346631140816765703385432917875660616033461240467665100169899205267130917723353539776211755946345640554905790063197470792389497048060198988931642048598311890982323087222447347156553628431983792490929351801229527116876792886483520672412502571251985852839464174791573290941156253787395181122311480261836806634276630384884536154334063228234167861064818028746685227706762495991874338541632179004898414100158783847497177684601707245591023784251096384045136672295723978711852679803653759778791958534773228498707230531220183395625970784024135639504539648486658892967212193154689960640643380159250002211941405024260700500404839496854355060260159429637586528411211308024787469417599066223382330966738568407353948197839466836402660075688464748216286253240627008298925715213801105604200812129287866235526342918222485844456196011361909406351099868389817256291115683284362711070258598125285625608504947376556188623888779529615098386859526272979979821878319430682174681393401797454100388594810315356952863407949738729796293496666637034917862932544270806003643504493476758683798278418398503868885027265807908319007081468991721028662495974516681026274586205941896154253799079182691099334246629318471848447933144041585594534391293605871721393255018301589120857569557364910871282861722736133542073750560223943510644517604353860031229110912942441536468630247815490863254998715777206436648630645960106555442919171907275376594405581817012983021206486638807007382643575346428988164388703291528785468041686121074145618891403095354331730062863963668496462304233279288276397196096143310865232156768745989781837622618110848025818401492807357022088162264732092296825383785447746614993864578372453410374421775985858423890387969732530417622394193933329469286074221606948850262296374783864967144064513175099284539555492111158983231197233642207698613651466706968350403722247357102132357405306559403309848705088434683613475021227324309034492397455577432769793690361827770276044875734708013858971336998994536245161359629779608547701514023644275582788738176579102269089680307046431077299244730921775609229085626913891684162805378992394933395373907410045533671221662194815735264039486680488845766143260551273066863845555354841295980591788372342731888472053619130227686156182753273030262155959947131436032324722039869636611680064247842304336097232655014223243706187402468716405153410874030922773963526749435971183391170358353275663774120566266927176980729311668480573703746148167476911216988451764651665447704667593735497439191414935563953115542087271726355722003208878596209898333210814542376492336631403115371961712310473785304293956798830973808166471990467963810816819963613701483575896339146452255545848868275262747929722049775674286374052425176299689746648354372791018817253956580658427752910657932956148361485010237883265084462554399204658017186121711528675350530419885768992751357392331068569178000099313807202624162846336805358258097310869882445803322578044220999917553260427310406598385899635509341139342736230232391024093892446123704211303521490864701341476293355464070883386248838800944472967713519816562924696421660333178580843417830081291333633270464615497420375958123423884063174341226816705233712062054633551144114272930931107302385059815510716866663480702337815446766384053328257563623961806572185740664555411213070065752997039789642000013957046079590160183969539329373313746902850565326241745405289090061070639521134952124484735584607180309752885246932897971756214422222614110270100789789816635023947225711087522635730669108431633578948351904442962968783109212503437689232664613321584226707514827389166137357368901433344923772386212073656922872186129051665125862765874435206709671767573530568132115859687870104742490940213647450779487614386558248891243714655336088804534039063621229672522413592970246811795890848615572949742870954058146924257979556317935438246279662958308304758766171598234828208195217543153923098287934220750312076848895017317906735467819760790430860199870802503790264699639236723118469275228526604669586617473036472861833146768915567992201253317179982548799294636206493580559566726754559617919048986665487931707770139084624601407180368027336232699574411391647650494124028798752968536464477768577417911071272491632071725923511602646383046721731814487551918911617237723867281135524591034107256215194866079981859744955706476365151195208038150621134365238440037092325154557620898953085231010351690709288939501118037014586767768823845501258894906196453631469221268740467851650951409662341533640744204779123915856363712639326040561042432298015027412788442391187615848397584722040570972658613830498362472939409680746494328963684273747107342116115690629670393725141873735530755821148417620520815006971047891666518916416287309245913199997105680147246433548572050020231722299101254707760625431313243496582414952644860306253662164733191289077010922967946013984523220616262213257137466202300677312984260617121462973434405611532607865512149173995543823733069128446980693769696945358633387677066588263647894564845515634482527847516441086232888990564180159863799022671136513567907425250306055608255288843526320319465802856736701221602998894442172553060027397176750672970799177107354247352935780193603482101050458136376999268225433197170238559148131793221827219667243130040544419500679500003723867536714887694775001812211208916313650750828448305644061911570592621456229995692370134572825406298027863279591813535341520180281312243931108941492278728079117889971501684806224957106566718727727457064223923097261353127941769945404716079020806581982095957840757364920385327909855323850708443934543914023673481682236164011561850281475546768147881016476427676537665686310933406212183028492714447860894513874213742902557473135152422123017077320520231843789646144586018107093206673476697921617659048864988836309992392109150375617033204828272140977363573915003301827586661700258207225033078428851544918263252298505778623243228033451654001566153104777056302399576046810979560893739592602908484369615473080145601741127969382377442572348168138685182698325285245016134732748915524667391651017393851835975674410636034266337171385912740550945859327846442367125839728872547077863733563909690680767248835516494336327941593009504204477942882458666815258366412986560072267336260113110987140499969249602894125223554295895649325135833927042722493884695241554644108301822585477633588538792374765741087238990570443194438635448971205904662465287098626189535521290689693956597430281484145165866238075915008431944690434639245560207278167001616320877630886672585262323738893032742334597096607455435766341507820532839241765665177350433567955765878759063612237657394868556143229082458005991657554697983479823043666082023161380978508330130809330387347210074904706261329245796981555921295646378565662430748828952223976083606719877502756656050021847792094805250191230848355712035442890273185095579349244572448474371320846787045329058879033602202810962889193952223993832735587044139077853918633053762491542343566481608059975711369582865017572870020546296513245520688002790211846028662128785283958939620483433172892495122989792644328594115383164026369044025616979330470700110087284809047946933994151771175848885216940215770180310441191598422034782737744484193441531508104536654001223930709180161485013058507454946866487571969765475654785893796028979720822586078732377422328766227399507118114261291255190702891226721052641705492423321154896047180322820684402204925884427529364933790266118005488737312128749998336250081725262540553286901652559409267560825070723976040269361233242543464984725639844722820005829546012190927522431488650755178539473578817486536013321597985606724144241027548791436900091813135238937811645809364793857785379202451333159002745861147520482616058806549757277698748552481008355923991235995889357280800199818871747197736217347821423341329214935029961472474229711144961609891130471865212158365274980869059612628591329032437305024018402900556916235587849354344122673925334736176044380591131730128452977282328154644292019616756161019907346921225696221895311586151064224717527168248724904330039009230914917014021436021091459849395855143003699853738273927424112678809406786099875623696372983233719636951915820625497997028819946554452112420865899778493934549932857054345756478056558141999913581580155274708505932537827553169417836793936821998066052887526798228335522972857054321529656224526047751726308160049786306586218628020347397290288236337524339254254163251071770860312465555381895822325229883753463798339321564394025891758782448533540355198301967998565972804268760585933313137359859110485100788411961116919850010641861702414291828093347748708928907367129053701601909137587045009061225754719044489092343208968040061530694113583415499231378125077288159855400077063684803688029427207142321147938391269237571392683308666112733674781577832281711249231659769338002671277371712086137138344626194025099662572164947711597051626974105758499523258093661048391848528293435661030535337505477452884170844913578347492606456203168834152028667925638436032116325936396339217555105032462035274337581034798628819415696919904734405812122508990423717392118718319744070922558738609899827456228837602092585502582525560059301531374682253634934801547154090294827063093787854131299358294075968804357470386983795238000125490651704133766168046227338748615981565661208788272263040792865911545616331121879385182056367450635074458850593693590828874439532690704960233908286975012938914351199122308017217904095371845087596897890195166541339119571539084663831068211897162270931852033662095507781194489071052404751891506645849074169972132906198183947410529790279966807395585153567323858509209326182629649520477222299914769346935280390950940488252637240852818762145670912511759080092586785669512771282003030403034064768068425182595214210856475568827577984912605003057417232438931257603755644612313266465322215270865230398484505485819830064443568155990478718453026465062156993768962158181026961847933738706763107620882947196330635401900755787415056421099478204964190267613058086143801313710287322633053974891380651656412375903084492964558907045164039968666328338390655487803734790876334983731701759490300708114099964310623233041959842847438397292306609583061577482414215506223298021743162017903567911790713285201351478305894407908281375270568505423146956509643351747834380920783233976202844784759163980346607900906605617230090763575837978221481574484745048969696019428520749261143940549118964623719560860850484354009271050516468786537387030917638881988146095767690411463510933669106041737398539764834884382078411591080496304778568014487437611117131380913106714987108629933830646128593603113927650153533524642625641436182033832201720586100212619461154283446951281998695509478449694910115868033470260210439698797756256027144148033212110592143593953611105510543898108833808889472949209724824851093666936133952956112752787589462728986036090354308960560235981071618274414910355833261264140919242118014987229118733767165115386518099654469719802765611199458128633040672842699801449115772499923138247282796019739083572888488282174424126452782536875226890845815053441562492875831299226934309662253650816786570838003042378442898579067028271166490029005289175034179441838540450131912027054018359563195203845109561845381188667943346974488441595280429780289182615158503526582355412041038336466250480294011333930528514315739167708794999319364169938453256684205427564451624195096553864356561510185668273192182554636912477060854174214936815802866888396672428512702879037577165566832246917267023582133497687358368428622895796114186771536181120248461439568827283603087904435766931797457002435630279466871453789109135474476966966859775107183101683983830410615305066751681060789828931580665438804053257333788486780678070854723135472861703154340511421232622523441247785229691985137766988504657252004772978255912860902819202924978341058764171061515152090965466367779429039082849909900282721859732993795137230879745438217332594541153689632037291059192906463963445937682742935274936883872068924849556728378675419929937024733701080381335003561472454967609001547193778559348303590706064157444661753042230539038618455279340838891614445106714715507764183219256716063964776657143630031970913209690913379317288247806360849278482151329715091890462834744554112347403923194839952725963376224050659046066804709173245139941101569322759218605844130248903953219052513365027556126514943418253437776603882594009831749562556559744269846995157058549790700045795841106973094778441555308978318339284719085013896971249016570713629138477438133680642168236112362216613193395867296549349179223871328360847082961549535825485105280114587394174466486502884019553144678160103859509789286066421640178768619604338835896455237988301261672447369432676418428083791066595875098694419708877624723738227904857902495668758992237351200200214654221483958078823113773985892447736349628555637238787168242616230296956120668210514649029787461311900462573820016803786093211492366355974763646306909285619737941408654832031335214430984501339927374316276032732348503003629795120732632772900972772430196577870204438948681680921205293182288894202721241923468859749826835636726675188418389631462326381007020330540963721703589727174981715952258251348917681683224519002293113050365452092003717971453047077479826119178974591706466568445502724223941277312833714173072502396511643708092531740983601308612753701184269904962746368191291756788870688215148714708222314278549458963580108870335371896719174649231119587219845712988158339891962567490811047266623161557825599385608431117640321137104615834156803725607241670151968669524605376503620187453254633966201705176519743566486855683468190718503756164758048178510881587874739698136264935811727404838828895493635449599804030567003822913655719987929714343604396177643400113541719815086679224163349345228933034318335023933750997498034610143551259067648828368082268618630204441639077729997388965375070698538461044935030342774382463010656456777623024423307468880845232131538837838276556292342909714753351766028348109085895812464937022598166160679327317051950458041393347095821512447251633220776332332238677032595893291743528442596059887074489468504568372563319175145397095936603203384544869988900787780517794550160752855422644409158852316446506509298818792875456966078062006757839918222075951120211654773169185378294863973156321918909850609542459697689553965019720069533056439644815236854483036386946233764419651434523300057407477629586737663071144994092440381970384787098123213336010413763508313409705329036022721875153640994289712603786076653143004400796678837144198287928590175078343362993177364381590314730920077434511318982238243238061026611911164609153388814265286692603302189963344361168428306469568613169809484011012991626030431573461222033829610981465323679276859482989856253737350842563114580817025376748004431860347677797779680892650122629980495311057431073412184109427929974149470443601178009344008111586289719810773328091523511265037931518181366662964317647232134821451686902349606922781384333354979929037524174884255997268514090784706292985562519585250602042147111845614007202430537880972060629557337734597775922089602381080743517217425269677087681644438217520406011625069847811873416225820322377182786810911528742324181400941718066017029667325905759003776681911920630537912578640715825411335493350811938542324149687771667292704498639886432635169899012434339277808569837991377681809188645783538295124899596668781452254079131480856099464393551253884338356366444658895503180836552984327557692448753945951604748146658810251683106626586681517967656321224366438145074502186572211320452453329606555870989579558036442144643692256744641055578153378938522317654352133658231786001329703923158264446009663424212610777894514820750698625098430380647214804157762167028598448227251572210240170246642139720781309810958235079546293328881855556221403546625498538601028553031279989754933431912961752505387589425951154481612752158237460184847893939068217139565265238076843429894554191857398551461998761026487089724453839077922350461214696993926661856432401172274799198981253724099109948927157306751207336304607548745475841435448739630541683226365497683839151537511551150607550876237751877234208141780526786143500708500792926616470124431688488427496243623737118855747106172310440253561088316299933532400387507252570504001197693927326421643889918620319285634914106634832264190750675501866112063648009894023899045737284344820770093034230373222539992423213521292660700385590804482449437143159338264820197164866488963227466157882974087955976289158861895338151734213044382453064162192817871137379177217665845770492709454083167615800905039179261007446648312709461375613299972152104639343448691343325234613824956693731435151456575332233252112678246226237566382362196679584574714647849454380851434504138887333565309815689999738538486947731232491288103944947086947336175259091509149771359258379159348481568919604110966032916118080611327855292981471726180602820182475992363122599105274565026586748360188091916331861572436164336274502598552266584394274989845793595402066276746016707626238413833991568199840235888023918702847636669585994304276143966855245450522406321855421553492405225374458716674667930483569670377648850586824500401915674842454440243723889104672488239770278385732141907753188242794140343916327271483819041172845827906625316118078090498759858885297978980241354709998907184068328977527012814888799585239764204845304893152996389706063669142649225846887280632560484412644046101012053178439419032586569474017916873500355394306033686590725082297862957264279277843053114135885817718893870673414737095058520217675927089570038005369399054055658841247895757329021666264055830764761849094064947274072163539425619802051299711104132133322274554992408713644946024365481151364938142423764252181585917479381195317731273849810206832238387645150025875127417426691343688260523660212060586610647906085011018472040005964369704187981974762165589022881892933240451675698455133910282564040982171071894259328298967472074159525779571706547352701265397681352790374259003798330999880234629722100541449751411597023292692409739622093806061755108221762319462965276800470644376714082878491368342937918926097902769293411641538651867960431049845993501299512097517747172555256904869918416499650572978468502911655869688052496426292067344079425641676472302227132495850525713144487715245467700224170936962879418509237427337934928630357703727808808216655570609753626307894157997843926118347399541664440246343947663092741538725275180024491942099773418692718520703296597570498649929248109730014169426047576948983963193946491984627830236927301345156495566527548980035837228635241530009625948385932249183111600839678303801904675619868827632860753730284389541164090376665165967673362201015710155505380664066647844714844416969932099625167214131670853705975945243158762445865385771354467119717459243947306007145110105993270202842740497606951339280683292530287303485674088085747880322636915761621728535973707388701200832770560688089421089725571098754644675442649658490521465079481087493289644229071594631058779596108741346191472017605336762343198954594563277881271707191794276969354333913618691480089921185506183945017824607111400263759254456824130532880976395629837407437245612127398499718899241829831703457186370712409773067490389089231943259770702075919921293144651291794527040219487052450943909016243378106164557281046223460114770323850301963581957960370675827059728224134973576104978573753270473854673245401353857955241218297484025882467349474056990366352366095005682478858122533210595358877049998433458487256225422484966156033203275841122020977049027168192526492084922517446080006283516183770450738175650620479241302159792188062028844653555811939533312794393402630595651279473828134974316382550889434638250254459152606950816174372936110904374167722554008443082037822541110448468271571705120032521324015973287811742173272201191063246607758694857546653321478683234053145147524411946846353393713649219232721032922561450281486712297774405510337436949541283613672027283100330708357333806800099984550461672885069567592690620179535720734128578090233521812082715474244702655953419003598499488152891720224501675541288829907820987168047874281537079427094381554930308043415305633072740832305765414230902467603176755806363165585773485658722921773579353012302473333352961644198671414395357435566348582450098873250661269383545268440075160356949400154099036861704073044958212675928033188032948031549440400065864595765243297784259348730298565018242428241936642834941766786008731211926925689076157279266996097458024731822431668409059391788259620377063049392727637062866619015200123638702621353004555774937234616826449582741983554152486958692620167126498644502994862522083206031325062108343124182151415916423697722138194836230290612880161724324041372326952639325196514006341895369688893522024407704502975746383953623263263787646238735389956296510055664780612261273409750049681869722966563885090498927463396986923029987261889056579218280268801594619274391624966569908374556977017157107550384726795297508780247188084061589871604769245699903752087948745943972091371792000042193914336975094652795138130305654459429155695643924765153715959028544715256614485043647878085721404091722075712301654957738940666361405808653274200670789741963466304130463498896132415858368264601489906005916949598557578959762350909522948168199126886444210341218774364111601205512030550905067671119454553442911694750307721670191472387687078806476146916511625503231284411927485011515951387513151952907494257175241182234251064519788111458383026780759941258521363988891156555006018522466192583334784194886383364922720499507311368728755110873601133116164568871702394955278235026405432166726091417769256831761338556512415353026651131527756334406096100831604930421662660924391147058560542232518861301858055068602871788110075957104865561570902809849039006815071451469264585615252559758941986732518247377033061773478176341147344751764473554433898238756974791853195028722745261727469676587570881992410255122446113204517909958876051168273136580862011485269716037273475439664155889572327848055240630742791488579846018304642424248400282512289544676947251479804641745047882736927794309219760724706710437878285537090447529497911856914921346234058918108537288565066903525720884521773452838570482240013816634326588473814345512241306133733378536885396710896936143959749114559645717797736863122195385427434005209110471188002306654936172963270878285871267724411222771342567708645750605854242937998019520387789850906372138218393110420714372688020513930456616771616731822994185256836886870970274411433498156489397984920717466357297152103366809079376789872859814673981870144784575545985846726420924554546826570088118057547809152158985196486250028335810194958111164540832660225470493701128097113972655441443968785987707217869007655372129975347023571775786775834708794154884590534449826447018053763566450187567181546729640707659616434074063254107538504297503795104273998515796678676494559406187067747390249637339199125106042996658452641013729660307405988005384903243108749282567442534100045212766732788649450548100176388045566658878144602800729923096099097717487462818636543711191992371085815283158779899069252117870294117578215287048437541871838148734884372539743383745427714775948529577652610158968813633832189649857239557648920210981456900648781967595298695041890893003497872618732683519306001933673200665953274940876288301191638216571970989778861647272402053802871019657911582230617348158165551680253167736628884662641726677130706565205165208385661078475075483890334988546206488136411218384862969039982595866486548516285686009476092419127499378502288675204470777094062700847935804481957678183456443210889924585343001419815480756532283378408415712018071308654297505910837200200074749077477881635350010556352324288346986261698130638930901590803332870869356000138404320627574060773198571543983470972166065952872317189954226715995002702078328070988485656498743798605452773994007899588687434168643049858993827489547521191882234184464050268241735480999312731937385712764029013480623025603470910875013490474734997161787476932581311882018139429541619918353083636645549185543508371594047193140175327242251203529472729327063695453812086177360626608687942096595967456603894430206964924141664323983764923966863764969655787948808521931847633174062937086890654783721441328027905542287827619931832565360989481068113072449011462465108765890012782862439391301426535761748724476146086035877873008279827638428110345778262337075911812312173400211605969810692154982693115513195562406562584552016962492509349625383525843960049344061497057558307957437804022257912609829826352746363538128871308638509780818790402546113551698022886324565764543319189617192235382169636047914927307829370902912396101241522171361356229525599911058141456499405081931175225283011732221815429702021869724516824415970434706096819248914490959519258892121851308333978978637263744889062941632752597882505997647914279509160152853497543951185345019810299472967977740516267223063003315308418188197618565900445277106988412468995997744023903746391658170062592041102274822910765040094456978646801542260652442496353250843555357295868369735678628430268450585841250715179348495456215562111539145237786291244790472672817954085314450145244129861468592526542001455022420708787622031319678918332212039686310509658343795748420217462547684354440144730868271262865247613458731149041431020736880145685511360017955757841175256845444622344454728946907808118495559774760652424391959990175694755181746855345253847497754231647747751439010320584999339235132826704439537186172223351179993077989305635017481424433809966882229233428383756944554490806103879475149579157800309544876580114120394053414778864110669581696824867497219599384119185294771493948001034104079811177913327116284994837678500804064588494608912634370888118382549633090396000110405966959335359623443414875118319884712804999523811003021736825808971874469204915495088477145932956790964984433592364445111017225632775416391602191172410902310404293589989022233392110312620041326036232959220444491754501450271982041836182625733736049342448922882036500356627785197433938442034434498616938607930292696992592405754926361016806484086010034517309217274920340755364787849716601554494845972225280234536668426608338739890425665119968611645592010117954141356952163481719481563589094493673028101638991259811311071057240907963208080335688685352215627905070492463853133425135402695347860061994452133722000686255528851713368359442575554204601296242770678859227941878409007357471922350238166194888320388621005485469407354615305428280625093955771792486774945188189295971717046338759572228008637998792102397487718757336228514622972675157941967774845643552961948874489919580456163157936206491858379032329011171359343817816654448832485509728290801511923479103218418657358324080421541421668678968847720066742215299389989366022197007668639956715844026053125405468822371666774743095680428940354993761276170796020101722421659455377566057296811126044026123310841894123197034388746889188861917755391469275264519759233005871601194936583771027242798784184402090443560730102125462294667312933200724010476416224719350109540683691385006273833535913523568223776957117788252251241837766790343497432762140702510339866735594528997020568107477243471481724859456011796037038094301602711677288097733631555915301610918530728248489089918260619095652194134168158211658629599608884508637006909628837085223713395276838800694936038582944934881911571351876912752492609242465530134881180456500989914092035824653848870663711617225964659638136470842766545314123614913567153300450832322771746111090221453129030587899058082547315651185168042575230968816992289500485241575707704482966900769513615675880099146532669919402055576173193599867298861541792786497019123944172227898264325002147018273740586254984469224820342084030658542127084793231601244281273638348518729744780878212111544434402101325408601104601087243481762305866319873436981054625267962553097341560003253994808800819053932920203333921178225219815339368281885706804469136204864086716704140662269485831844504766069257342349980737411254463660927776141953447917111419151430610852865504536701732255697854760528227027097402560692144866760171676603024156913809768450984564495203057268048960577320235219611088598763996348255121411469156698619586399087785435317174370226600614112171452600571622842001483265815424400241996077539857411213157370221040779365376083465691139961784419394105437213619903405289473067457419545216496094452747308944781852015874705613186266733170767703141487267350270108829109768796876123368086850303313757744071542788694255219786284039975947281683144156720114978115870968400520593979307070437400821518092025527372745411279805225111900223691876878239277238248951233672867045325029690091377536439746028549484497163540846977890830375934311963830411927902996329877309975013669592413383270483870557390445747879796290694157895496680747319316630743237186194894403985981787809513309970597776829324432086740289906504400763490781793618696799323932918399751391145088879729700663024075054497269232141399672769798926565283064629084379483534870827631864562565267875891479032304231642939322937987290154885116484979202119934097315646477217670483114985112346412055040131477659398823378606028031555946520001944196973071985321068749113154197773497778023682890131382890017867131984583011106871770964786237742567068409867407407230536119353132857340382264009525802419428342942258301403768156122827195703805933306698124770026807997711004073114670003083035182687445454107366782343238868385732555784062156424345760850383051866816129467644980879695257463843361802013512685595490172423036606076859782308967148833165321036667489290399591598961794902844446058470471811089781538951677650626850968181803039469436071977862633653176428963340245792687863033674262033761927290833228181957120163252299135889102700485258168610965593313422122030238826519204114022290789832561386419185279579965674229465804871575946057008800397429512691971122622138811394743953913723265953841874424352160294257238773783214106249326441400279679867449798239964965851742883156685931264445972161198486264092346692199363299633390411157114555769509655667656498679162272623362045161564542823556484459007248666464578827642941882041054872769074613961337640241388569966801020466132214102330250078155989498098786200962674567206058270227289323322454567533418088169386353737495493739491274518301835210703237224228999126478940303421658404329694088832030805518328690090776496855071273244263130043011346197898695036746746296099929262035391517120652297087447341051279185245826388685482144495160473261092666799620971169666065012197420866625499987197046851921739171039347347906811361562322622895194901558011621641184768014670678049346151990715865961533734939077114024657277505961204656772464319498374375878497861706892906794429248175354243082719185441558162424470890892093077189442882467338688631606948849627356876273903147978877841237736895353109820666500557218736200306849415432531959692196247848375967965558908000576040627725374146544075485116450590640915425424727954748201696974375194764202058078459830465988521195046658246674774048509615561479504997819297269650801951346514928963333205263867580699248375112988643946602758371733683948645879118304874365122244567335045414691045341874175825544337423218609193521014286035253412460275752947670968155006724169115335932837941373023139016345113264862132459501280435360700035094830089838770735865348324769289154418056338737311829395904486079833894541929120440391995327906686901568040929813055435168782941307656038832875601179796807949673975036563704087711032089639299218914175140004143333898220720024150779776821727144461035939066647954538512214284424405830370268605076049860191915928328114900466341972842000612364895348248484707562158422236572582045341730128108559387793759767567750886054766643670369395960373885744968601101490866707495041317996047709249996741978128947502553733891657294551430493971951650626844603368429389169488578259065087069787672721313311305989980246263103220147628948344624606032646537684423684514262076083345248168589716907925641348949281405757849494197756694930678366673474726143138699027518634333033442213396937766275368593782559338340323548616104897235528509750156539825870485971872458211152004191745899303604612670568235447445450992483722079937287761771866329079656628743034678034212804129062798176248275962462097066258521644162459806956840871553869450695907983645979004759977351882147510398138379947678787534678030617422712250824858027295331447182963114427905166587869367416902803459224485991597964722391648564634667650576298363921961451718491689664467532130275788141584700421669616874290642182491546525024006792284231919791943627760997988894802139178080321621130588485741992834546867023878950744753857817978136801864858943525841205537623023735118560715991371883745976848105872140535882403169827895962074349705006397176494367568645864542896834602944425447894159845782357962706618907671785003002619255801631782747114662717174134896304833649775935179548962304386475782575410496753211831447037592478198695298680550432584079638479633903681975383939879646811484762643086956314253533435385286223600688564549856173094258643735449282759584667018518680768781020375224999500830399987883572864845282658362251832869160306056003585640941561864180793983291887734199216758086939454376081792610878053835317716648399467579516361316708629648179159469637494480429353622081552822483897346482106593708439242200771861606473449873340021926057418159178642820537379625567266854766276733535675261143093688079494184925673482172173335367324383605787741579635802553636266917489252220360031521985730431577458229679717241487985216797922620873677643558463916037158979331405641523475174736841163749567788310521075147787366754080028070539430127263840434913580624433165307353461345824406769548085724486682970285919279819899232573721142756921507843721213008398502439321179444780262727070987574094916926965779982216159428874266756680047186053384994327306747312201780718142879433485928496827942950412166227351515055894793790600397326040758046007319961076958972868298968958328581820540971691903661477193637717093670602638911458840276171492238737211970434815064721180686481883132783390556171814499665722852664992954824942294209763943111780632337339522231784165259276713283198449182429624383764093672454868953987382634737247509118915858614672379132692551054771210488725853200596636760898986261303191889471038401770638237334198842542295526260587806992209792632137921832917707731411720608579359554457107547108166430549916112501227979850162568137125357266000917703183132803362979624482605696636163892108346417122496925276180483504175436721525012667518898515870151602176619648726896796614582320398487816623043691913867919930005879717474718822550096906975684893525973590765510986164437131848695945976657058575008094853048061395647745780119669270915871994726931393237888634612148823816782941072214653454824895528635720758702001728468553412112423951249078915350455123229105580891673474178233551075326030214634103396340623713000843635033373636944344110231112702899959354853347273850286063566777872017968692131429208082404166216376847946642770396965392674768899214199608813981288279343360411191200014735295437485211054023489593277710817737841350341595439142877757623257569894825920143427507169058721086778256473286765326324402758818768480007832745685581222217895081043515531785399994399715379037406126802200780199219028200526023224996944646728350739022944607795415321950440386642507700172758498329086371099878818220683308818854298526716944762860455591943485835395710752547552307262723941301233742432680320700613959389462276944278322873592984180032290250171214107523987644334221182261098067176005379324807655967008072964822025041032894162805231296907811374704873926468315926293663575503277858597039895965587755762844129052476677241315382623714378396723956740923811671855331013413536205035850426627515255226621928808747112384257383678944437335894225946208987209702261163602558995874504429625550784160947832364038568165138990778668210116153105807616066647942511745674328743568206564233205902791407728092122582213806662440382541655328906483687113759443738278262176552442566933237412543402838093471298187897658439120331556262843116564210816974456338252062180483925878715904860679905739502340412141935683003664691479291422316048001002747448116005755062033420836374011086520383567762246085434422536505036276099699296270414591899505891148928042648735588458019537163672368618423864597039454020467376336557657113438918158038592781045366213630443820099948884196911361205074306328567468155802264913181181720705464279168988233558700154832626127712295732285887196012809783816717054293503847677119666322039816565395420690612378110841885028632894971589473091272239647682743303929888887247696973769214201818554213147781676242704281541346530037423118586497187936307603807000395640174005278866538182089835925637263584502743221776157753620184974217641857842644778688164198467004929476824625520067721860724363531811237235419290850523880792856777682986344276280985896607042800247119488218710795330039002848737159474830586012428874529831588991879687061973467514834435349452940929175433791632625601533015408870914413059690287548180779333066629280561764726527056338790615084696971168286638207869256637128524796496538666384796474429179330386054725293567161588298547619260507214925901683096717307701228686013029698442191225500738509730608614637211487819884196791822543756883824719542208703323536815586147668823815182588056427778551885810908874053079406835679636776798489506474418510450255160825804802472089208628809440636673776331680087498910763229872851740676321238146936677592618098373698387633633534667796394353037679528262518840211785013250883734661314845887812031866206121447256864854540788253540117548758876796039300794142369514455263122669037074032942966375904229397737747685102603985943692546659835523412579289083943205058791835879601369159247584964079523032016504674639325717428134059970010875094381466852555856459255218483321791580459246088037213382831687714568842947814115143648183360421248379718255646984830505354518628958707279548178525573526042430751363381556244107828816657778255151420474743073621482623439231250891659397601403287887637018711225892389780463383633776063695427318215855392432943785811779723093911823483143306896804688376325829065779939431424976675293265757178218737066888572070247062618982102347821930783336372562446208041654129278560479344488472084227839830660439824183558679597848418558592166277614255780052737594254467277960644574642037296720252852833465052580576047107231229112286071971494871161537474417728890709184055598450135063902812587254961506125513432022983882809971145779975636406362149694846280564637646909542327983574395002754251410084746798017976360466228079483650715443385267726735629139979313427599383870899080564819567746408402094143079732770567253364611937427555168460587433301984249896268645993192135820701291747213249281920559189418975545864611304695826966664273328625634685636811523013035894532318570435014782087442062330953770931678831407150331147747685949628071273548891033218295427498752578645883642833268286491455919926140009562505206633838145534074132203600837470859074924413197880179098271992373930869940713951864267970164948702539605997848321722415287445414350075720963080576720618382887680074785602807093196376956070966604371921823355947356762818105893456727617066019970086128624910813362984193626085258870894943335417341705774385027188474254491383024077642263733850855643667214595756856424845374240803774741877887525528494520244244211704726174543806907291980033752238439277291626421825680681897776587489600207943733578511552440643892587291075467451512172880116411392004332337877732024324771384062470183429114324117937155941209280953117723332044131890679292923096636667329278592245310154867701749272805341958213858962428170340877805528922622128108355159546700347363149479564123892969413776301552637171881605863001811317886712611782817658147388042330038071823092603263605132637486753071553708342738437167676024016626272251387388911499981953045323985591469475219702968725595669017050398866308519956688580687529201675968765895234601501056883104702892344939385998388242784018402379031889928664270410144625168435600095524137285554050318997998920610300047552597489745856854486882959487445047756744413002012600037720449432771843632130926914427944246787841238544849631556240683022872750446859044423915916290696189645043397361269741449874745053646958711038416976283219954215372697606096655038543353264516788286143846899069340488903491824194588252427128833755086014928673441711063922616230294472523828910400476715054404408606253459907489559297520631547611339239639153330733790739190969458822083330243972443065948786488704664295654426880312407284110878271567220121801439844386317904479639997977382903443880816950966867168214473128661443316852884395178057923948439209827358923027791353244223105013274354413835045269973119657184085731121843030266651105589859292130366848351629437454870727693028085122820866558005638048658740665010494520656491674265054501486635601530371885068445830387816700020293497811080430408515619802670936729890029038820569789452418202370332260900339250570906836496817615718253151768312797976436048604690212234164766982977937328496741191308423698751080611206954973459701601536720005146836540213644335306617636263755744114767367049235339269577662360672353042823339591577178520245358153865261613365518787979654668083279149230839841347132838451396148429775841584256527810970705070893914550678108428535143502867595865585889240742864585564526905395424089482759958733720675479909182456227453956567294470074217977526033165504554723237546857963759964719454847516773714533747314718692583741579746014638960481388108638714664124464747303042643694645174870347664115675826157514497230434131221216041444257638429292685785684385521013292024759330924363661524310490161865655097583580149130476114630160856952371894006480831290959111943520309082799335899195961564216593802498823260661533502665830873721195069137478984930786757985468337401539299050615218471577296426024713475669935544443005611855467890582034093135855418497752302492150957249573775797680915286364680198980877344662055720803564467017590902147754520969208748314212151911207796290754699836060688967488742411417360281759822942720187749062425276380389066470254774799000090756840314035902529580393366560044890667696371280159367297890364753472492780676487581230212101034014781699792521055116524084033756043241690560597805940937194149888685260100359364170753194169877824636591762158964153491385688302326066847006152192817613823143704946956759253093526889162802716332333313833706325957152745893489939765876940767355499505786390575554508359138378764299264995505443210356192346742933748805644219928897899688599488431602355869320147389685379808541316917017891005333100423669672620844657603369771977031809197577405180184057369700158739907308428792627059974082021332217096837088737996251800955592969461964251749504073778076884369473801342176896159980201459938900129671247222220470314736943142290108265201907968167898741110633435926336722289816687609454922836105090866873298053608631606018477074449474644629616965343094013866868514698600073251793935400741098676582148147645588863087334376740307515978072075345473290072671045409425292805013771027402502160411104159172234870061887460018467157002244369178398886950291908012222142303792702907729398355303122700534845845589906155039797937008134746053618756852480992459853437807580581623735778315984461601448472100119294455463167436077579979283032596358069389362752078279062910877376847778852106036902810971293496352636393130764273728988768484554083743161764005589435964733504071126113767157265373582765406615907239349835968983049630976263453926994814197618525650676068279898924534446536126692087175396139567518714477893692281679961324687518794018743775860826723640629186782410825183312147996483981766149084239963381206758364215125236848619942706472627175514910132730959601419565716145771101930100555276401270795262675473142933146889951230575447448233988302290829034525492431635781511525312669892390984067482409188273111233766750521140673594374564560718978792037085019898049961092066114240753758265953460036996404290110931341433998284244180180315514461385251304065752879167553685837356178320779278045586624404310698089962169559624893483179606390436292287486560602078136153213356342314526438086302331828612202440008956753273941233394865664023075581381478759874134627510772768971532993139961616128769322051789588212598511995478280274368048151977285625698397244782546689572635770074393670416845328851896410354631679062371072484961358054283903602714220285098821325218911134963924869981678093042203826042746016699878121318912726121647290767543059910746435658121941452605532355034030627234049921671664153111474176556265675267003943304015635303811719581369665926697064793960529563387904814928379219734618982497100917287456131454774291908368863577450924361771837689412663068238283870656662495138003355585075783500549469641259488641115011323703629449268688917099427139554247459434405108827649675819895470399068013258334165092510247035447681724909874027739806912232213579839623434081589009544297860490755809072150078298706884831706196146482931255404722320197300833890602230053656456398859181004659993603230116991549889512404813771106752418942736835123011530738125728068549729551109123593497621727551259116020908892168583042711176636980233255762094565346390147500072349092496350814388596019081369961098111588826166818488233514185785380916322609800386622492631521270825570831048460715262093982508118600912652221629558547577274193615821117237905254931119516807232850206691405915019225098791532045961739226871402476488019786900080984825095075151905933440996113050752082544704581946818530125941778470865291345311654362314000104455947121767586406352090058265321528336426458180970551604627711372427269820802277330289485411267344714829771089788107719726102215162037704571809760241790516960801872854046382328771759669700106862170496951830575868185412093063149465315113116242317371710558286350118251780872335304974430218268357238608825622918745690647828989379187034325300123154240847226212744416539015788877577589081868026676753506856352003283925805978569380846186354319595081699605507949137766470697195960514749325691555504658257634146327272236324000745487071891730975824342397563145377763148974788711795975359142110235422858895048990615619870092057974978945161202259727653176830310757311534458948188803989557262905803019939373682268295823788378881857330974725799400898226571223947592430019098544429517039304678207442501178183827237260837830256552568817718823117170128484024834843339765695547178124101713409979024453354772665861633299713073462949528262322408468574166126435595313038095235800186420012191884438535740413747026329406487011911752031875244101695703661208364942177045066197368616226982465116807720656957697533823552994989528605725633436682875842937193096742913162031992892487212081125717708995782535107113692004528553883639811583403872716803948737444004385688157728790872769278853748713694964958208474218909121666668181204621533732375386087177000198216696668957302817846124090123492321673723000965048297482395256536224094170438039107263880373647369608984932128068760417657723405869829396444004760439347092793047584193231587641019037336603977591629288379307337648477380048934382905327423632892273771371879922288235752998805030371448794844945525409446210754246547335498731258140912696675195548696236565866874139180770693695168404573209568297829727217850537517470679451509753458098100182206235265029237704961545464862208322550695606311635446741253664213881072699518046782082340091215595829349173541730306071466693356616354308999901737016213539505359810743967491422524298038016215922999759276302097441173041079837934905970325099395539553251010085666601012820701394003169719723350116538334673848197640505597810901636205706918136502083790935509767756221176651834333510663571161535089337964145321454163441004645947406673940357143819976998833457725730906553400593760688709914527809228901886394566631526009335724002515371684700139067119349892289812048144614155185052948975071472401503399739842452048845541726348460605532322670186283597333225583207147416708807696190722785151542017282749006949156754790772820409504695429269224319105991424088084354652068694769005482725819360616026711026412292791427283935691741963625775513595373325378356258225758804890826032745790148809286761452428428938595839597539107677354393804325497812828032238554818930065103865808957174086353667711384979684143423245211841282150085468821643851343356725449125789443624730536747446268886245105165927217176356260766904728721232006123752860047106912897666699069660263553229172670123285875181327489932016084271761131170336547800213948249479544914670257864085089473435545150800775199355978772023914794548142173419806456186467578930259418137577678154965130811091859515339745212238345240924351073833489978109435736884413397919226394202706811185835850812283141852981684767211025910343807464733691827941209206190645013997176545052868392946776329906211891178899794045487482300992691316477227948924253375602426887357493950077230237592960300645865832095166099650345124936531102102685511770659042555210207084423279109792909739287729618293406522745778024917484325405629666778220147260125562874522039494488397791662140102812121385816155506683963352107734254030872593667538294144854131681312420819638009872363790815337458839090613004486366266708830762287877654307201588238842437886815383230220837336472554373271547629197920908459408091338153411479438376305107124880523412015277598589610710113093905384925388611975022172185723191860045050357670598867262702274828832008069381090964160716272916063863660364113797946712991804651636847542191674934942300632848030388405990429510019273117514353857145892475964096555708502553319982800988495377706145350336380689667505073824310425926630174380538214077269750102765702232368117122431005289142446506598734411115555190283551001031389071632319222557782611689902180014156164971607358311034460152335943490060028353263975160869784012124520261053153657642687020276071656936682940469928824373358638400063769243466351665565532869259462982442842829828692235879652081258118822878775543880171994319066181672509896220788494625115731079211053138789140722942527793623053276605460053629775964052134072783986727220593746339736107846353546100527856162130174082582913517510720811431121908679719384863489230756780420655948290841977003067947596666550534245560844194926024619445128878473497321170012235036216848493328534199605623192188774607383449141860264471072922958684302882575719746363163213551929323887064047847998455150730884401450496053453989152801437877294003292824216324813271349413667483740373127400462264183707384437532679120559359797158640343736398507223048636117721509527811541758673186283828961854140858575794474591750367056665741144883417289610552796838210608572686627337558918847211053626568674622938627530699037472805777111525337813175470321805653792656470510421545114213564637540774648937221810527497815418715408605482744600282044678918542925774277537394196459184131704518957509050506202152736345989381877965108390564745203670552004324360912668336419290423506498578173665703701946373146533695911775819872888486208372393846678884677634148817467168244559334833350216558606980579148363646260497915784181603742490176514660801393852081809054637571444193116370969909144424705794428617742721326450490349272798957608907918743186068972764794723137077076509132091137321272104884509311945136554284647331040841285449002651878879594562198677815247834078033242121727186524315061672110977740610964138120353167495348530139245520143852957966495487626870864607040937935756552578120336371352163814460966034603745402891220285807025242089298116186094143560188930959663872417154100964720190843979059925947734838230725077636919381463367965614905062076816085482303946913570663606966019468781714312963514812271892773244061918383104847100663432270481016617268618326285604889006174484603484696460068299951802914443617302465068378493174412028192528164673698431747885332275754326425955679411962309741564182020718863336641584502624339938414092666295568277998706797458659562147140112755703857338543011065521908721659899172894651613814084513192395039960991646355510507076785886355350658911159119776460491159693073412226704662051441082071310588879440825659186248389036574097731245530907986812799385228430669855167707959506137287179122477143447797874831888218521342128892479000931329885092135695566394938420100070376542078370558197986301269010681368207364066089743759662722829182232814288980436090418886339598726567839574052263894272968453301174002017986535008199904116967975024294262328068366707910109257705423337132775772634488078657855375228182696809462391597304904351075949852586929093625062922670369513586977194486952829862079858782891130087329473146595199702213496032605600082116468174452210211918135559490081069672500937719121416417011093376881712544417925483008700299744065027832073415425672053121104370120957881251272396105307787297409922882106011538912916716636199918676051847701053915476439029200336232369493749904184305860106189204993880386663048684633308891570649183164834324151615484298800094877758597665037745750385484408656904510789041648964050078345878728716529332562194849362199638610643913961720115436211959078448747967047852766224241851692217019688178085654462503588036265006071266698323400972041826540505632022526260852108907898630493634947224190141641213282052599187190216864901573263119230449029072415105405986763485498673336639357200638435820142100174683402711050651771718323628587997016204060528673019646577878040537774044259417087826640131698073498782203303472869979790313856831912371471131967506032449930144351434765522871132494705791242698498818449384384424756394500317775801687389563614671836110862088543040607763400221257813811622099345813499679907799992252348711443311928604889853028950047041759463879540959277890201554576688433811672522947566555242924676744869979711375057940994694960560319342754520083045840589971718549514679043213143825213441482977763519418150421116590516790448781220012180904477205041312186643824302973476852567915902407789998558537676544538406031506930719432357736594980459601468742686777621739638329074242331420411484142282411600881507142025391734389945687027485041644432000289981624133899358879668693093548820826248721471479898527105596691058028448027829389840845234363905410907416992214818021730287916248278845668309421008545577222668898547324258555373674795331753289209319253024283936926151314087106247100418005550143351758959544693255513148922926025803787294890480287761047627667199739582119264031730700748719433039794949901522522147729862936500232755510008291535296043781078962358952073614397611508230901591331990833952322964450896939979256772113796040911759537382455668508936313548631671064917734781079002331917579977342256357964078772203161997407070923414231954383203782696183863434587858197178309718513551621897445382621451723967310106509481157961845909585561891415103560472496683584359301576066906952322672273659106121841398968199227116845753576729533653462799822337733075293892483333451814026507036791538822761132782160971938443518757002570997561550980707574990362628128346925491983271849430430421369859095331893037611005574740914205622778828158633983132607929175624586249654777728479217436928289494521483701389629420460423983757415985941831285147371529243942235272624191429909770585657740655568764943014606117369870250977809780469078838328360449698369391066003521715407026409956983920669292603454786292268805325586729165368714092966949587427852096127355056068740817868736511703556144531285027619353812369719787680446715493816387430817054859308331275215380644226453739975685488346406605408863284118387614245478367854322332308507843213119870108992880316343360129525997276326191657897942134500407634630714388277307516195304359903084731767502671181894615020742171774566288402987440486055346962331473211646210643539062399340415214506203430755950495674393173234820241173121552408860624157011475338574680309592659198424753858230206948287712521882267485085082359631640603400915466517985259938915511442653010598943593736094107998092392368873958766073242874906706188630798501957217748663601401589924848310219072860109293708327912133047277905056244478159536225662812597991173966001853705679303285774880457260422025592222530550905357990268156246440521911542524565971806117875476376663349715446156226031399678086583650068495927155222747965862231730749119709207180183550298773035959486511171740786077056939372519370494660340688170491096557699767404046214275975084039319309472098470395942624175328612148433904429482247629158664800417337357949056883153135899586308729916904220286392200240223731578555287391758980894673634458849797275103195146483075333323252708266770062252235097020400109021158776354755709261776412244942098202532177189943884180881767552091616600685380218360040169447219584693266241896379756246787167077840593597393944294784664996451374716699976036748652801321162281173928353724373588640801050044781112693902900998139283156917893600966210294062863556313937704353792641184984928301075641842011717692198998511955096946042120394140905757739962261524379037853263334912236986930308563582660893616781695719337856108382380047487422307711509952044002161977694670768378013433160312027243501490716681859241576161628087182890247716723002240038263500525731404555378951475750107124424690312241952547155695430512828733106484738504767933128171750983741681847298612674094343939992411858743022892382348014245963524593600011339956886032800175118282381712435062062463556323185570522531309544306879551891240866658791044917590584753343050580198457801491108650790121487451720632347235705706915375891965637118643041519543095311780045138976332464529954749682190766392631597081774881078061245563963860182773118033591392370258776750606074250125643753958611984393028462550029548405476551238459131289771300761746726725052850151350124002067437053507041421881440530403547215663924663878977649825319100725529830368185675888149572765698073977074304822847663887975473614442049623844984775084884655211201931345325157395592537432790792638639010241939641551218586139583854374490673864591599057310102660041488611727303207070566796493885536218046544504193455748748580456598996811963088260890516776513694230793921140032045189247395586271817192766217678907697972985689360487846359734813411838991802051116471878160365660756874167453397305487204703877190634480176316232933554794291100058111367595978269732302274888823918571739029202349825774631473301249354241566526227857239237630741415934732546387822697244988492992161081264089478616400357523240671563980817379655922847772814297373002251194406483091347249743908375650264150841199939770137318321591835162611001803241849127351270752757765342245932610645989461140980377998963230197455884546056895476124159994654401293665148219893625569616746710338467878335750737592821649951907385124294816286096409618134465361137710339244609494936528613683202784519979189360460104597811109614956928806739961249121009429830896781500137103619551299672602488890382777383628397369805134059863516873704177254575403934355548621322919198871869822918303409635418877057913942078482675026074989553301665072994338477973497875621927784495993756262560900299152279334429563665494459087242788064945306206066353808680310940303974566259368508807549715099111769194830710502191552849686252928657617569437368700776537996777737591967441068632799861032565585439107263831822269687820616141130103755149427666902429169453853830838185257575348626439668864316142063683801083127655264755149658924342353290604700710803154785211055591923315040572694164133982381050632135945329390034664131846167248336936407309833752446804062334586587269418036481074482126782117508163578660251085153288844273699260320123798778346774520020612768705231321341438842369070330796020385094977005813604640437793638678120316139504150674855649255949014066367897728097050570041393294536060018098405118160363219003970996168985083729636025179815657069590199409582117697877647484124437135643992841706279487771710213379352600206481401725636220342019135947430927554583034688829795372457480878835133551199774396436381487280250602616762636578195756753191586700385239618276142876319929262511428627459987302034785646865389399483916318795299095961659736097339592002582590528549712176673359538058001031387860810260689225491240562552593061748451654171830282470031715519614031456915133408244829340720744267563444580221337745458082943261498595608544111411570597426496609576635283712812722399589732087676171971420749939176352326409998160906283060286633983989350882374545234920470951080527821624007768325290696179176973128031130438709920519773230965396914960967189469787634555565534769511150238467657376901107047131085477281105989581144246412982067423781880960507869928251284207434720610986755800923276185027904567600787858909042864168634036730551736473838129229465478536490463227157979685945842166572578489921450061414549439094267622700162160925887696726092513858247315277124630438906530949871879770999561415262033185332767342190567674203066634599879251607859172695958321365180548121324385035480457292458975259578701668753729171514134697472112280399632424596127045073324238131607586317636063826820429719416221405253048707265821271150186285269249504030328455453441296252294839699322593656721389776438181969674480372409286617919983893730530855091320568362831099621177750190238612901843137111353730139757833709266558982336487867176477829335705288352427332140905678547902007864372003100376257766980176165377941594944779215771754786375450455045907487719920173733558176728754645990665189699010829185604524800315558294688104333320556372542748378421322136093394842145239933301905123443913820940590111267378563126644271023684453142964071574343417022144041102690852450151277391507772503785254882608596833154696994782902531002410455387502488593385930564525149043408902009585542249774838845760839579352906071234467721043441160865620823100267636931199754902347218133669971000574721483643701473328374677306113535169608059745524039133487574804357300404027385675046884084188885265060049531162823865956580899138268361112209198168534857814316933833602074308062742256786823406939854798678732477977995755313255602878305285888123433745209084388657345846001915787032371202400232385623368539890406136961371314333427769899319396219750832173133882359906878251412753071881402246216593899255745671829404829721663206422074682597617083298205155281649902800073781102639024343895888473060577885354808670093824429887142781483735086495267873752123757566987162238588679662092711734847592970421149321190104328229564519661666027336200944124076887899721966423819498674171573587239580799054378049232618725409610251758205171257805333673347718863950578221721667270152917107593355688661165483019215105992124177045361320646744803889523329476863586986759788453723505608772864130507478347242726743499719809757675592222479921072757982370290038212307718667588449414616510955100092144247979415335188597481110671775352772952366664200562163889268239072433186905675827556769027601516492358724105102922142154072735482914062190518893835748304113972008905071515329642378854397786175849829867442563306369366117358245563983569556796769596409235746614375511688547913566143592861120051180813029234053979923393666945924566058970675246706004665423040630349331279556162283949965010233217901810090498261014189634729551576187380058379118732677465179644213114247982533536296927723463740503459571206623932013131150800472472514238475196378525170418089187070420178607428853288668411282657277108396721246703019499155281899864946779106661975650782590569114532666849657796662808715833298627213709488136742459658604381661828328250493263999327179616552730615917433887042529283886041840366842194506433682424494282972534594304581775035045158102700045796715441314522234747337982764863045824507197074152820704758856542628954168354310885362727325027399133684811008269660675215505924135096408106893753568098562873865734785619526966334289114548697308473511104908829936626318093868442234711667735938818955904746947179451422572031697852667081084783553943918495457850748178170616803721557129369442352801918087783932904922460902315838913915163316076930332700519570891721188364444696452524438746970978676294288599925622194542951662784796513842804229496700141157803348111327405767650934134103424458610050899610948918383608810169821933587297422310916271663277587953607272614446113657227829504209428538464848198029455277271440889221208976636052460998028151634192324241574157427808461768772815620312618267399354149815999303953294609074917859734264523019133403509968706227470081821076977009279267824311755416522111586898664702598997558269702059671297127397448229316475097092254186214757957350209170990747843518100320378751989765460683320407449922864790232845396601263741191941463521925248108125546311563735501039201200439112879654601056105985745547984940905300438097095437707551465426780373013722768017401689403933786135630017456858477826393114647485598002967248546224870493635290243740051435142194017942850386893309982189397775374585205901453578817785569806851026320456986515506597763227599691762866486514254892442808276457097652644064232929990170193625457592548111998684666528934443789040831376557203033266605698470003102291460695957868544217750111450799044123552414849887723237910340600107018296547324669154943395868785140638911438988939635078770594972547153859042168771525122665280387369676375650437251749450152316408296937896020668454841549576012612739771448267833294120880782224794603972032633984966828963287872256999581711285221112854152328657973602539146958642058906670676652848012303506497602298942225553731314872102978075123593480176316957838783964862984414494271174494079641273815954222752440195981153535448698298375637362254741210191146445683356535828374917945260469044083006055642217349334577280405364714896637252396090870454268234026101888706575934893456110278988588901372533899984880476307618531214730382483152222007030762473962520011606584439212742351111842314391844361979542292270464013310101866382667855952897128533894280428618940810870421735891938335368049788642216085021824669622616480274283524744002479943388814687092402449201600756218933026326065398393941091140308835165860743092040551367184207379498184770996246751169341271699546847810695230271011849952510599819112088395691964591914871005479644699758017308385395931764540318881946957983237083787966545927430470083575973246975268807954996962961580539557021619828622946324632466307007833714281762075138185393830020691699735277396571431441224271528969580772762384714278281517147605851695599753993089339619816971700250449544880370034467065730152705602324952351504560014038316677905652500467439633164003074549936078411000507092311467532114455560696176072205246109075431845466387612241121683077257130351260561055760221042276609757858656824132077530069173399099785644727874251543219951832424484424472768098252925421966465224846726938761480545798602439791838152532487163349423665054777898689992988099366803374538665670992025391432030743811263808974571853834241182486913329637662165594738287262906558687840772902745870898968034629929662939453811639761652880654070986872407907498906277177823916793713281635862392989955338849420897989684820330538518396258814499837545837646184334099436922718952577136788547623022268165376495343390633004732935677756624542999304943671683518749779374108788534242416826036111294233563815600026334311902222608412333338108788171242597035575991008145003260288656690703471122953703923386746110984441905111319906248865578285390910807309527804438509733440815260867228575455631384697961405423955874909396462625739427175435942134414610491501375603974031719034056402948753304050239217252067349040932578008509124653986403414169849120576200702260529285700483971771857305573382913982677227455012689554470676674956558636638640975043877728535690469693480264045702004648807717002961596810576067161217805927966955569485616427773272197703396293782952577274600348120212274178633628821970618146035526592601073305091061465943894985462681348797297777770855073694050997662458132975094656217464507709240660149170533131597017019433382392398487068597763156971906049925837422150768851842735093911108396899587585394741529195684095294083072487237638288896823875897005922078241853362627112189918703367458757635395107450463747045812262320012098137760695311098206547202186572575578325532851991809810491589015233838250594924894029440352084150538649420888430954935018954170428814109457817688058521466924520246449380642156310866966589941584858401057209384957076167954145254194355377228239995986996584584610813210478040739691905678589265266936235821188515858028337026523047683925594935248665893869784157937809429840621227500925840312771751102556414686443282512329295453582725866572125458769502808604090281673555695681742047113452346417862176291041646304618299137629806569344298729692136362054527238338996272883229708385153086130733970095047010785619509637656893346157048222774289870958439596190183055366381452170009528915301850581100058022920762879134352589514647796721852644816312256051484390801107617679462019662178620130554311143173695688834573435507138288231785785460652212349509649511283692201744420461151007721511196598713445739350829058057879314650920637372790667260002901782295392262476694463421657762498103125308542086359916494718527280231191010044159935647677828753824907496382722322051282705527607512814835873559770498024899211098371920147288931195231335539579531087881849405838878786628713182339532835073460525720738425612740926209422516067924679357725520377280957716393944683871142516039193808656551272974070371823284867907543746549814689533892144859340815391251693748983674832184859972681179955427239374436443667903715599623297863018402412551909466706106808524603519748580595531444473535943870643550791905689450524934956733892706924060750094847923538906598380305500644201856906701078635601595586697115232698794317701912118830549244484684959261943282402611353764420596338140497488315832082105979515750375556550211929566539976353918590369130146625915922346995485823776888564065201803146387944839630765171957175599959297759327650321992690484978855082760752384793992383819090190609273942544038901340392065476286259825373353172930262532160397726194697524959943482368371957536496231746701631462203966815484503748180268992521364818127795698705354698535800441879888780942532970560166175849564390191093855524124713873074294946150629637772158712235004746835483137273911882357378384606615381637774331373937419706340962467546026047388208262751188975952142994871411406663100214337481117205626796539432358703840597939205937960759657718990519619817617116570830160767408199344040829508475185533127228344601526540616114108108170975026119431341396789990816214718163536572213654677169287347417609645440254396848340486688787940297341393591113882002655812648503870085342010702957093624531090982957375181105198059740540713382364246281991723945509126472786911347499063422203191708992185705381734961178374457805419593392568534119839669608604501195435708007542145104437994475436749243067813973926242014219923071912338874429190159821322602629910259979377012282402593820885880027044192567623561367213339777974007823774303650986240483883597436347023121247648406053230023410600745967833870775205400725217917617294338925278141341770742046613342151255150097673022709444390567108521181722229067581818701153900505211005849571347672752450397654842005915322369468599793897453804243386207682662804797619922963001532571498577832672187642722475557226755313561205061535053088121792061585750302634516381963920235660426398695782375562237612864397174916468904394043456952269416563923315981526850346457611319225336296760847181117352388577439118672421131094007872518421388668382049398930699664227735638098717307474542907031244298534305922253839250419834244684861267927089792239194764512687068037219874026748154065759491453641414831320961276190298223453489001266701476715704889383277385672081127223893781947653320192469871474980601322625464333866358788966563924365465923510640540130548452781083052090596142181869537335835167520362037558225356310981551068011535362789119389334119818541509490606342305605435890116573713375513483154337891867545224702802848197196375774660089025111269071001077665030054233479262825214629452036096554390079689271636811213542051484895908669100523878194765316128528615066153709043216869824042075187507382661439692208132370285238087752163203676988273366553484767456654352804743396532261541973527041955845744739408782011198315257970935141081190874693991571199396245099530619876948658254000471356799467007715211665384270946090017647250981866100968982437020911377015692195240740216546390852189994096567306838887872156185220417498639648518498263143415209167767618426433386811086447796182936567753696553668040562807115081745332635837584778601838544023614788974786354627958812310379638467082179952211107635040416795333375940173841796790877351513197645361934370632035663751387221165748800966852905618058179076961793494203628361009292919368923057261657189671337309860942200359475493388284196144829024630949937880925610692657454477324873405398909855738169285400813345790796576842406098727992489688543838178432386483119387450462406628958589196568950675503427301803124175651256390712196440102838586441529209719260856462320481051308954551912145369451674509320247375522900809702257350802738086126560513744665083636893693879408036857230419426536227313756746233160216007691815884863008766518963403768986911479209895075332093847189073493762716673912723592687506969115789588460427811524179146800308370389954087735817019531287816010996040552484310329103035556429516118340371413927988112896677318757329623600602590341191580286644618983283796094064911351421211112995342336744766429385382274566154642153110523826349786319346202264181140302480781209909853081488737412012968013895620969883072054239673158814244671357153266036997959591419102591801965637355019999994728076569319152666054766885301735117311023796608163045495900689161206432865946853619229498241947889237987621892358547730417393148750636304270409815499355280598024712236113912730610560735022629361154623141739360525250560916742507201662289950619563028796266621577567667903334860765301475240996949848074889078568903923498001149617754051048511867502637195552293905967249820834120180340787719695804943303030699900749527510512545193982699148020345986217307607853940557624712023240604715671642727693074160096762514810982849078156256834861643354531383218130660821407867519584497335838067975880985837763676423811210735177938438479202379989043931971950812345404427681047603120673970686372049087525734027817367924683199076762558105659272427111061995793096230459455694827958714504062362773177799149678132089162161043059758246099975005561216977749235266056035567980294592885357170254794869588482314082789797805133933761279450749585665376949682455086201523409458197153789963791216266319121526243017221811745822462467541627144674394471857961954521991518230332397925447024392866343542810303945573013933461248961458550948488015486179448516812660904918768892959209396789598839233592640583976288404687825407316300629739456576679559608480597031396940739572015473028880580375183630501841910613939545084574821100443316261836637066359469784724572314430819975772315361329988404145793819703638365532584200796841721765206352374903885564224953313647035883424725654091993543980017974319810395359387898654317213692794050818824982561579758226449216601118006313440412153729444443595079133054811066549247612472227977644952110494236001778308405347436279050753645655411912386072866309038975906812637704252173510434618242889662390282623715211829704891806897466930692307682021414181969250433133277357177117635723993877335744096417235309687060008491721193404560852613502943662538368930247370176713715090325381138208236345990266906525222888414774564702953463529179991217323504997269634881436794011989374566221531521313616119595222621224045855640360763758688469108333139665888247331496932103708913633184387968791171976798070825733524756018640950157227868159830707970683118955617868481732099252581158438207441528645413783888601634540717972745941427471891206832269995245884498613146321850435832076302333080932493376792285559343854129923820678593516315432065298289580486800181363947526224367151206965212154613297511195512674127129325373655345313870235003679185722099864281220126922787531212301867266512494332360701399922403151618217274255178453069169040048944239033964536833020780496389033494240453928159229934720501228294890701419059237092587990665361982763898997125942799048694286277131670707895481963340954032914229120852711032941745636627561573913584001702709688052489762854874732993944150752255559802475361715584070831067677965634045482062045094219084941669980243761885780366689198364151503450344204451416939035466571567303059116324244305724245521157039588850134716838202822068335962390283508424879665726842523094229413693346481545150615287294683579059823445891687546639255048309252283026629257150441676991500284424490585973176770872255379724642920726421432500204866720787511682447009933637590569807461219845188646429559275262963936674311174895711159716964389355300729578795225581136772571772278813063258548432076945018136152304513177172155559696649243678778382707108398496028642069127565569695086319738294278215518637746268165345435898969821502556704258141523407124507751211026204568008055100260620319184382728640915396179143589861731485384971862473867827453971440596124645945061498644696993110037394620220078756294857341412982568417931196214020914216618799341243754710568358149155081466848791463200606089130226089098495899474361231252921492900592879673400044731908906503813727854946320406628838842831006240243484931053363489328990019195384603247621797236022028325840857914392217738738658844554110653159627113272888745211708931041269728958424164721374665939501251914173364900093139608167094794692161675983043030728704833540214194790683834580051506405012778135027916025674705930523340052229278315970459207583828736986220977630434272598722233098200376344451954196322642111097884153253037021863943879014777691307075876794665973423024778051665772473703776539234683184481739896412997996559350150678587258567382780410644249252952911139484394711385402650051345347997584742383239916541076780888140245176567126876648156705177367942962955344424291332328111321420506543669376812029099368812624647485408198738073452766521103433824754252397169478489567239147466576012148138835133263138645015293043665977085865225807487114655331349728833696523129052381971680148596861280484694826094536714780767203100117096964124095205469261390919330186416959161049137148367224949128379543659492239284905686419704859690645571618944692246268702792823651809740200241906635210269367505014418077520762617040954938943793997686963480967793169111160996594175351970580352358797192868320714595384925970968836679935670305182757291463417487617465821369147114953452160689230361957871528002655085538165281908421749731230253460319160483607697119504227980069317621913357163881636114348659372745068485109881796616923173247084694310267973223269311137134544212523584923008483039889479705453197584646853826785503460692706285489633761339360554738056132253854631954662098300032260911013500001580228814310364202918111552990001731100143438542469690420585812759671831714208467959851804695529433758881614225491872041823116633733813592940218747400875713767873719185572936842836677461569882669112065287060068535041742738267011085066680620422946679131338844699815856861328728330269860702685099896097585260593453244460146744365213490704199484827888618791301248806102566850515480839265145357741507689144225954116878320065343202877836780053993009055236599401388693712241292795173162026793186411980073925041454823280540921704842154186029113882633525151084198761808515603544454758995534928996065152657414404112320514382892642511334183690102765872343491867089861529862868851786873452244480304503630844473854490837079763659797657028006807021435811714892502645485863473220181218239932973208182558384704805748247125989690376244211438206976299070633300526519177931987111075495242250498445561056261376968441284437361485626811482704112733686300988210432685478344875781248639632090778786387049455016851130010649136014364488243601395571406802351066214393261706127052598861303368013132883032672336724894624775312387148433562544676609532605479844186839742918715393863161822025555547383312235486107870671382775903815120343199854008057109874940487002534939597966772476244437228709580710315896770951064578844417848716145508978451685667993841246265770649839625231451366112817809989111385736654837133135462852422236567350459447961243277126283685107858162091367018163287339407854145045129172448988930401434900796221460731418816996989695891082264658488040392196365914393721854580946269674120780468362282197410479765899836595776453522272898583554663757948014164897663164242206496693620772857497402498821080936099708291261518847396216206981578222579520805831582300854252093426872767920295929696959130963796263935616589565112428907712397855830405065460408800547438816683783297056577774498584690209743992352276370814435715191928945595808093303238717941517582445229992495658693977193587298365580675706818442130119743615732519787312757031526632997841069970026578718815822339102595204739784458377319876849702898407733441353398135845462567728529925200910960092099421486906693268399322394982340542557427546279541160160980344882678081226635976641456608267888511592658469122415172790363045447742170741543846921063131334642821031762238521060246339731404305680404516740014759717824206850680045234225111705005989575631295074420705828676334700090937276841047037398590295534751173594315869651294025049941445856193422835450718041612597428310396725845657117107157755604393863483657974016734529909277546127405994870544400361479674519222596533588711702047703982859319259354834438813664966924068246389736155205986165320278447353433579598194967851627629193572290557578429563708111016000637366331422498783213195962132973617670112744066011793336008764850020264387454748553666585008917265726517909504207828851920768576440450707059117595446842195063314981974491528342256252007611976667090162446706212457696698568437125643962231185027689043661454852259672600042624090208585171542651179394609740109320831156168363398424118636471754020311325196458171383941803039188992626045670099202360521880553361137424863935187095588655415792179056783037658824538761862281268501744754923931126524064609747560152581315997864048097591959853305496943348730212547181430125708633642569658063724400359751865717749265863508594346066320791627117728852946277961521406431375028072951492885621387311629356572903260682601021247762188325192731328580384539189970936464668461893763405509762392619432198828059285329186535993832319592046025477458959959085869073543251900350591177352777951342208274989293791187582131937848163245680459463302971828096723506024488338352509406717544411296883151104092010961773693208150236788043915233579804872821339756164432088677457246699178462286688955361858164119044372684650810693083625924134003424921826070223687295494103450235030841487754304408247207048967280487403177639594704608105615531165758605192518259095553015966846154205443057219675214058892988714584567803415354780390083649789614655356433832631624510977649474456294914004942765035837827110110122796683136490017980354875508137220994782143133488168757680453066137308327318103721655212271803513407567786230207999335878193043814393820661324428603554289176388086332093641821473004216837206853212748613524302298745178623695677413666018691984255596404377731132497171703163656828396700125962488785375088425732260894881722737041019416343477885120112878071072410597807403547631038696229207989876808328473910430614152968280772519668385932558037842032267407107224678239819936597009665488820092042120719149826217100806777545546778253268038177061060375542814463405167571269304944167532573075868598882013234281346243507339194209312227936913507247538541985806704679565239214645991334312885330117533562123484532073452076180599840381587243038000625348546613235943349467932977860149243022054559212854604811348716707952339165485173411955093641446467556500238723756907457959976933108652161501778177125283552258490375319481314428229580067675973744572527295176266621502767667790740459388694603153217149718022533634144705014828223443068110926443998628236343485385477659760310526205677501597580061268329153690048398002460653725180924083237613837249671235911894208413960090952203292872598366555287924002188908559543123582318864092524369836420351681657560633282908282037785507005031629322644861412916590535557690999830762888253618436759179742788719277378094646582483791457140029448863991013698053205149196664288589025325171400879876651196231746142408110033333736006483112805366710824047141283504070053680582684885560321698550661804203265058305470246845863709528610864844427714107112514963652527670235465893126532928145794564384100296472647671284428425808666083910890119767540226103816307482775430052537578115628707053304363945465010509041032769352792883911637918454599237524735340385873614177006999871535120132741784221422467180985213665730070956049113730830247235793598064900388726733771151069864778843766545227233038734721319073122845815221470744056098192049281785245974708661975086155267022850365197305637338401837132255416082760848517866489720550791515211145917981500674934846076150991140319285441889962411523974647480717939270268912954425917402378927328444221767157064728056698553243685945725884041119574211925683146594015801851198261070339023104548290518730301621450501862234239710688259379858546332629064270495285299479292847466667290734920640557256875664072806465449931616484064687461788910034515569907319315738016958645243632063341605070735583488086412407902155815775972227716909523125089125595030521054963148345577608536078838533768586022489765678363987041245023298094979222403555197822041945783149242245574019202604708804195244456582189179289641506288840964665405557786707658363859300819015541550857597174557734754066224339792592556090056270385074827984691642897531261390952541671653248428824026053839084243421229807847957424961286965490155038296586171443977248921256390252251434679232676660954098698023178892148953203780008991471147099528728570653648592967843111070751985522910614783778866335476413018552939663665908750840406342356165383814809077499554560073639533374606805245751829906233528327651897426144371208534533779504271579920316872105154238086613041877139555810198023840131082258153307719978407585414294595423386485546639598267811597522747428345747750597392993956667018032650603643716724811388264277643870807847611648780022900324655170617241916043495218575326164798262246689272364416617848408720705750846162541031255299292047294120452196545743557952409901317565429667673302275228595159099056049871737648343523837041037253096122601783794887494034139652612632860076013488149717140684235318083957906446982201378718504776898285535546631961481877998441323430289963084202197480766292358663564785452101681272654523797826722101250906093197611815889636046873201801755756843496411941322507627895343031003790211408277880916267945612765417433681299663464621520490488335360941160019142350856199053858624404516862342127082126479808403407423121560047253206872733923038769358036558661289418889735434258466559990309883693030589122767874942849965178931988151309517844770848185814397315423276767208249687962258652346655621113040245683537865626795977078398652776753216416028685231449026864884393931052262938151827425063949642358008249057722481926069400923364900927264827597635113675645096362929448594247372618232065583790235671603794295577636778846003144388490246485132426789695383441121103745997405035669922335527745780693967429090411612532212742875022392691877238165496865686571850407324248385852122159374618901276220522690046019180598299387001435074789308922215038494201030056454938837026095986596919743076238388166631726855279751337269396203864957683660040953473762133870012334793779708803645321481214921928326341710158528856445335144937517902193536691361003911979548408575098942606894170356590232859592189322453880221798000616145954851274517962524394528799087842932970363196128854377470379297630151042704434062455095290997060404740503526385203623539408627535996092775480006289388259474568058892957561444207297800860452916746713386007377223987744122257286119674731569624593053493982664440636431828433726895320840121973040476302328039397943537918210872063612911179817193269933359371383572619344969139196994228209740345592590191454727417996006865706126114630307277767263822631848417111637887159883557270883358655830405061505965837831898929174261168058944917242748573849103542461557497599035704445726952586605107769402190032113857662009209502964306256998057716544885977255878024486480995071488112755923055921825659869832067392729012706885230539808007371905114762108814687513207485579201953632870607609517563644650403967685233768370377112631524636618366082873296848750037419255845526081701066059681945751352312623611876881591031609914965242819801362387917296870171478343593208123749706947763678910239280500448889998681880611972198668807090334842714336306638289425793993084016903068980892731510499998946079484952241121920351906884963297796204973912589283380061891981862598097815710183804425412868547771853141370970434787518849995480141707594324603579933983924400158581994214824459043345509014627112709268332355639657603177278917544001045401378294958482092155344950852327132045898576206740806622684409969395061819977517258101334465144363264986172070370115814800744388785792154825913595544899276581253486418489752319709509137561438573677118175761470495271814033623472796666939645989317480737189432303960470109852177157221853854250617783514491717622080870942299363812778476122411517428567084377319271530894458585127613483748525133175993582201983856316477377267581311777392405960358421432320691311617250011451255101470766830377754702651202269834520387932648829044062094931508498775533115935510688357081068853256069872750269464476642267952510332709351618050097786682701773437510031510292095933711355161893698285143661636294634912374247737009157368242941276650220611162692419801640433345255778336175148839594055272708356153757616342583937739792863547709902007342674522128734587287302955693275138443918656474222819332303081337695558217670837552188906936253875105679172589809244997640592405361139349651828269848063359917402360605914798625344226732577545376778347797122407497808472706334616773724751781074461025921655584705099997655626717964914657320454474701524501304750273464114382372528736843012430149971856315442936376856249452300868661055457229557814619576239977063619488348572563854589101155775853946497915901816520170965428106559861332423769804655151234993340099219439282991498851331977943367944316967462009130819983470678944487927528749234534877108785300965760573269532516604266439570639321887437277275289331893990582606164212370443676014895262544550935639674367610774991426242186352940295552269996517821798094910056826816338314997363456348790548305653145604234033734933463681701253741281714371803892309061444942421188468395640220183827410330981712741535220995768808825409632031805331457083984500943944675626576027764349657617344666754279386112213574272067210218259814938833514611670256537491391591465725345063928484664116222401020865724802704216730066300512487578405013020155201245650158568208140758113667656911257787196978738267324580788181602462870088047873401582543750791764828581619865013596579710136463032138924892574457774653347664641410018216187296743190006290535986064708720118208410825116402313849156014839899272783267839085561209438840255353579500176126386471155088133093034348994507517129348795459318520319198147228189509805039386727992666273984763704828884651726734189489639157515903963552117892789146487104553541109306381341632244811034664772992951461085267592293162186246605342119203763526279604518090724922048267680366722922507820656644902879392027270442912217807216535529479877216964805582040575099693844085858091371968109829736146712530079887962821225669977225426737478193612133670417448357704325931570018372969880972740633808289659935424492214061765721106200647795106798680589322892540616084841625794954361560861786277995361392048264165691854574649452328918516395646541220454535144541912793792263090014084406208709171518565624824582472719943265934633369068825840894375468696785508605467414181227929568394403818753470641303301373182256920294599773833296468378693238886217259556725564441908742998574565512015092654294553444867048365500685934603161509149587390063112904739936269221122702855338041608400256995043397385027292938367592188171778514472526763885139521449221414335025646597247498415800162202500628303261464721491662828956424905391855372531687477869403177983279307536038755268455835034502674434086090069720988754957719267367662670820224415118349426406626365313500546001358323302613296662235930532019642154248221811136998263362461708270601553884861633748664949652375422818664840431061441895479442927554782370054608277978304789189399063872772305823371770563359322364521628477864954204400096976467805003812368280363298433789217282442889089113730741785792008115844355634916591122342812186756255220788101311013246431669513315958780809673581563878335615493766398088013455482809486589664236729847111516760792504632207569069762303104206138186513262095767707289757002887831497907250283811300299080913886879239068125246917468853599250416824533202818759334334656620846779198775968639064060008642714535314117266145171701441878684998123144544147208915562915416771655768039395995241458060316375448097527235907545900659593323309707227935564107049670212487280677394802436054560789960712404113723919342366028116043033114628318015511197768268193574414364822773521234212655375934195819781825293683980070044732418261359039118077546325023927848701537873868279342118965972761722359089540772543053588903024469840242386803382188060532618664592271656420301719683216573621740928082424774123416426501745171651392864256268107925807302303177543090555809699481416874935329812563476680533357425616913100214375237286467726261861939363571005420003683490094710200575968966117406741890906934908194713446018633143544842996078942957040546859501180250271445893352140048493198977333610688481190674486890875332595096613838489131683725690466657711097440033082254195888464386721278059112376855615705702677956095826917574115180448693440589309636151260221241542360467781982950249334984917557466925168505368775407409772581743582912190424956871924923417331317530601530908803649760966028147969219873990162261306446659562902863833466093247077345874973114240652272880864459244144130946856941372049401275151251209509648932667729436060133413834045720936861009059850320221185401259671264469963434507036418187855571103353232659760364168142735985615440337290476216346174704825603746177017824292767712918755412368809286521048320333705567811073022824933900725535596811099260333426787491592807242417977004008580646754839660316367061812891136877097690471042057927612373006017201225817175837433830760618382167371940984107300103442144960555991668120942177592762500433072300278462960908963076483346398162910801860718167196941704195941738042192351623948016100542995192888079031441538911285485592482242302131753817811919791980972789345273904355640336208741926939683039555405403230876101128283797539736054998611500520090912921862190869659825363971748782372207168667957660439543783384584279472639160437637291817776304147063388099486713895903330605738222556064206056984750421762594074954013085857077180667494752577561711468882761623238583460450691373944999363075274622239305122512288941150102092386272636390777691163545597434724917757496766447608248314002322635114106186333555302451727157915973556532824758507450462728556886505264952323619897529551049671081259116723636316882338831044547345901542955367545909634499227311465043313998860038565444657215384456393866943741392122515071868092975218897599481485117918557334720640530121903061401697843858239980910983503181858905447280598693850702662219269427549202781340990051424983549651868999735732620358214808241174687087885371888937555447354482306310538017965914231275746474318548433573807234400605038553308362441381724528273909992850436471325502581412516733958240841135481994306749255353980841560113264303336816567153954376429071473484207112579887437045139843688794387483245348159154834459080647857431930779713743840486073627262406571330921241328515720549981670745033408537228590236006096537468439863045894403773159093583620070890382978010991880610813174811328746065498597501678127013045475604636345022011078963121125294532575045288300181177978450626508015288567768875864548024531555654996454654410757478742354976200083707489534603721601231896153724678528174855584691720421236516667421588982778805964835238488271005811207564599571430973185137325294318612547585835674076732956770287629196966950777660103645511814897923608301170761736235582158266739740683421315101889105065226192274345057152506511728673101619566741270787980604030486679159092043520177543677732877599706032176330423324564095525144621088890729598537637129776725017792932545270230168877206846058544641080488866398453071772375050339927655871874655205500218752901324706871613178758502881863342784367074436189815831238139227647952792938289057520308756360646746581813611568135567209469878911955029095268121755310687341978236135538562342261937043874593102134840547062208635160327787565222940810922736067099914955149141575105358322069614744715814005279011444652145604983844456140850349407010897318103261719908089341699384318435965967687551512993743261775339266246022572795632825264649697438198043232116864156164201978766787775665435305737238710827941151061314825847240367598016211653225567077149435346591213584154045169681701247761947815382240890357699296850389369503732119769657998107320135750787712274858807314832982493439859771195899271424487792416780957260186768381551013282452857029579968975337117310443549994146923877555875275850414193800002466827712557720571933790131079131260827876309239692554521893424868075980425745268947064868800085178659861203032284489361265851364067358243763417182661034632607876436565497776231341523177286717763287802710911272224535906528994445693572051335755557149141569411968372484655664949503796163115163528289095088511626535995895771687817725877051248646500765009878098126666722052792616952458506392611682808727972604421684541560392178847836833613187325631256661465962389178321133846809395615454729851089268424484810982479323026637984889237393352383004249177383334949209840395219536218635725739969997658465854465408162677978280616743427854688152894818425356986635632137850701040687900267801150768571350422916711231121210489956277574655489306270911350792424430718816874669754044587989923160149742201129717368666024004117392470225365842200543334598072264538632878108976305165935660216232086134420149505082684178716416549147861966661422903191097917996786984499612874071386928187206870493742677278381452548299731653153433249588749767030502819906142300971221066727724047485561100742583517674896097559834851657763449009428212416849251708096253010349277717467123688963650983558376734945038165674115898942854137056977889690106589319246559115603952954901403951345905471362548336740621562210779649411652997575729222575235486762297174165424804948147495249236773096400301555281397436463302302358818987603591463518400267933746212894335489268045114869038190061701327221457460448990762150054743092595550611079089474445991175977379159776847887700957303156555041658222313895872556908022549622820829905301347917975551518607195069754325413436111649127263504051696871686447997880288979556561733856644356225641241408728449049478193119380975769340364246822834529482119632102527951140139103394678320021908954838647429837161407854181161191222552524918353260275484816242159010092906762571817260438405210897650015759156976049262709884247331273857295975674181250108094633181902241136279619527458657628398764319190171795110906931594770359516853310729287053464611923246502388632812655758979155697597839691022070048166459332607176061123782210957846498544660842710265126857035907790640563729496484040008704530175687112948004140244288173325892911758836704144768867823537742075992815350042553811769298654036556905961387804856401574493345502215478685275699518339864026316051569507534593160584706468226924316091410200213288696577514890404774464446323056546743086546902300641757168203797317439875296324194835728655086222660637256151608685217055331050946559719611577600837686338794195398784869661666970926059522788755241478536732431959920712568600435904473522624384015022818971762853960173004382285667933623976403358197994198644817052326356349683955700240601618124296216014809001568750334884297655515315065495980657766010339264110952560144910624636777391675583117058693836890520902651023897101217213941303424131566110722205363154172298615518517869856835444001885104098349185504335815526181563493231940537549181684763571341961463005501067716537091643183398941759063099649257853968908883912879843382313457132021439902448960238151435078220417355080271078025270253199847036815909888987945726088942682225782814681909099117335654953732289253747519779068867476469799615634028243163559065888907809532186149289106248742906792454830959425000782082222239869937777393023814458900697764124312638763444564070637633711589361576917053829462006846772259009113483644801835293626704585643304276680525626716821567891335141834600948569715784027866044183157655808843331082414366308897273681493592225354746104498555168892786646400108904961489812867994880113204915820050724331755524622988270874410782085599622400786136245483432832030064114342185563224943570897136273245222211695671624207407015617067803290706163980418976722527732251949549683592243616228142767747507582093951166011508253614292838491971555500427830357268983273270318631145741067422354979179644152709632946275814093012098180201683241626450316597253853851983338985959882352750623710279932658440064541413446656358077605824163933911071271253385333819093681192908529568984342297808928952635204620029218129322966905911814079990150585225199330802001591676533660542005310351870862823071689908852288444713520416493536417016994092302820432631048219768701749684640697459536765100755129157845643841911910830174974699045920053218147673619024674381804663212427402576168059864493717054908924029956079311492680381854299631755209378441629501513812243221498980217347074184942664032047967621389015566651411003131718899974676162924707860193841728192433114839677122298509506709551131239141192932519098985831747427547063509808601524390358245811301396861305785402986566431954338468152667736845398947650067208393209120219316173438575646219603238975231787865143427081471139013160357818618747888500889040581790810585456183431563334019078290147365221837675730842971486728734896014402950657759263994083496515007414576863180799948040825155567574657098396919923909194056162910715023525858368694993290758278429824928703670621917481835677428966114794099974897266950905742640330885858269993522724107802046163989078213533045404971065765495636233154921104919694911906298982013906303434207401873004920699926860494888684633557157480601613762842792563950174481746549902797036338222186202500999749056509834044266046991653129534025669305911851586318369941782062975718217112566683504021197920755825544913707414604510934042012502445194776757816066738483029167072423826141685943222550519552558187067612193202833564961868713447663096675197513920907137822609042739037267499426954288759071198579365354904155222271214932930634731136784115942892006327545962167938740052116108682961846632000101123885507355161608462725752979080252037699047733964445287537540833040543068479142468041734589155417038606476385687623368644886474816485253091998946530297239898019738156370099142163671079305645434116900176985426263577419033566544107995954168910068634072751695789559927040551356766811024879372001329877830095914793873414432666923402255218670916404850325713853047762014632628127392759693236468689268517620181392283363070172598428970239139768630090797814493650934021847764250353023022758391525576504608634990274532330633735759554169789589585161726027283790311692915673738929419991136935185517444180799571848286083657227488967298527967857967359053765517918378934541276806989547524576769726394107441646837663322360515848022809099839695199982883864380479794890203210337102956838940114449448370599070644778561446924614126741990943329298686418772144991165490017254429587223192987902139757088726039260581783878157912972626886267050314734787370605143407761367640351705329923059182708506456037176870843441152669857242283363777076132400267285060962113451131002453424819602934705308028646418675058645951627173156074755424403047659851470520269454925758241983395238259536087639250331826629606978917921252522518894925138240654958373896224547626585605424188605778450799377900298564871539304385442559361083644827952962926946423902268770619101695859875913703492427311674391998322463231421856364237533500579676121918335129852526430619162409846154163144374131827953198651379974443207240315396397665732257091345267101326671657082465362618226089383340041636277080445162695601285820079508795804588569949470831598346958176870356911638344925668874195894249151505867027341290232633661095813279007564981441923104360355581295392603858679939120347223448553076666384353081061278493410061926035540829039719985254656301967519051730319911231316713921493553713008015888554873960134173956116033208732547511142053490081095269572146198583161552889720429354519084849271176474555890421374560663515364247594354165904925090119741559230055170629094491602035729989936204203420970283433781043892255889811697333680746860193553375331112202634387729098594842854426164105623271467956395150631118843181097887741321436655497815203498198177183672811545218259196375689720572892436341796641116341232433043249283966550502469733692891180846690912890280833827905943015645084522092031871368686909374280237451875956615012944917946970010557613095631560973447459903537686932784042107715699140749079231975205457848660042415011425807718805731783259128793486472040502690393203988490417561659347432241093884634155222406765188976222201227078752884890668117468641583161874305916422791778945456134826728210040731585749185021926490913746883364456635169189194152247212276256092959453353099673083635461333503667447583453744494452207255537147178458259454110451195537096821088403538247272349011498471989042628585592784331335001133863361281637868854204582573493888839322600569179046007639247173165423829415875658839450306370536488823230586073137129996411772481929456599698888251424096043110234277303255731735640752747093408499440904729875908280849995825551737804910186596241892307166334814311174925664604637067476770934650568166687083117077722386766996068277525823992961652197436485120409462094998995906520681763373955045760942722977630630631814944614148783968251342774680892894571850835918010029031198254325529673921841647085969481736507828463672481855719025175042336184898519123585735206134887509562424737872152528519220621625439087174006977512461689371926000826985207721590238170786206653202767265756238487130913361972350566229758959388596274557215431126503802650320964705934514863536648943287647897687624427723995272228290304108571985790144239500017328084703255843241024742417648865599492698383020706307878368065662798397841472638719725592123099234252426307576304619633599447100290132389965934699462420397386491873090814379763726851696544083426742466489885977728621706995627281795727118641643260412137861438694155655895602173944885051321296104241340265401988697900630445931070836426194777905500386754385906796131786091402353037201181660984271036990398510570917458682014677666163658129547583587754878289037931458319252523132974120391692729046552844248264087376898021837812361837789466316254887314664241857617190622037465970670838131805713650272257610851974359529055071367168743677038136661299370975395478524662086837388800037356661789231053135876491122634128950701167076208635883878230754809063642565236065125009185554625687057525930149857308089871801103543669554191356917052667430508241477433741954561417554380797595400752006881152468980967746283447589255488190080263129971141994811201713011933445311754418784403971802610859730863036206757325732823610010002988608008011030000000762968843969368554171865917464330758198986302156918689440150555110400917787470661198002555025929440911405155148007968075095668053268666097366647131237021025038214248068402106527999030396908630247696593910708354219060232189644527916525135872775636880153550023763690548994734248989639138553366358601181512573198727427453561955076266591004262646457458783149232767640248393606708662621613625137611852655963605596983935074835543735522725569239577827682475634153802553943548058385665508357917811609668900220308428125567766008510436371029959425482471641995468956534403414564472200290819639657994949529146084423643297334082571985180135044907435912342999762115754973897250548018681699537693596373484343478501789325132048745161682348150554785781453680494589520172972934761447077135364586225680308516308748205813562115999435560675892970791610872474631792447585599148354200780149556395013003279556600404376988872239498977789092243015279143159583538390526116310140970551685023949270841414284044393796400162410160626968108763740563048442139111552761980950534156218258553891030274341349577860238706415175344458301831792727452107444570568248654333017642272175550180126327837563702020452618905205346365795405641503307542872374500320863294720735107252013853308686057583793038486291603558274900891091542609019465822931482937046696595649068747677688640470031171746799305259285358261549321043263328464115358248847178233346098198288934877474685814996017685030248627796032461223662842620081443407618128192263136631198117858073127357530889439376910362596926281490838318966777555422999343686202004827494923405130367211026537857047536077015369513554650290947183588356380870156022419820883338426289225659611539249678766438072242188008905082965855175603134538922075636660057056993272924502436396153829037843508948574496201085763713442506883539697277160020484084920412478021931761539420640250028393647571010210457289314954663610101029794937749542546485518104229422366456273211055995751068354385847153571576606809098262174692902522092597388887952531264623505493884197656994802014708014981467926652770680261934578253907437312719588274452737759093938921777294862297627368668508476837431906083885203270184600699463576214117663986086350396122956493900018239087789353918428328618537731558758349376766878181162401397398472544151111897087117716508808781607137501202546633444880721462988993424229671376099712784855600100269020413641648469532514965555643421793994809593139675495218630487637081416891284461881047841640470666313523272953573147224221869134687300175535635823486118302462135815648272143613923124866622282710069180576507249546204200953647432158887583414459887600211523717498204371853166326070731385399102580533372349010939029665609508329205474542864616540541267235015431653911506826358184356656948804877103371772447950850598890249071056672504466321580302655640782411404994797756276916417454382734286641712106834885756562575771422106523178483465313223104619263300004884353095726895162174134654132661439246023072463122090086542398974404597547535925031781777178765510302520564880213161641611995734781040643097867311605582547136127960148930417526255209783347224363538545132684611106413784423225697176593863153456669100017248604787956674900702075304850011525779771677613505021663345326360716353158054248626357643649721450994328620318173688834241632137002232358740228443130553551681673118817421888544512981027615252722447613321739585527435622024528249826885418890554924840362281403179248977203052576489297607232837608917816799909643270731629097377390276822254232740217439029233030689084020444135676504720838861495384219992827408334622290773403569634566611783550635106557879372081214344379656752566370594868038622383963325890012427550559002423398000931823295836694430600721718953264789555188305590713311680837498893638446027078006148313928271883394820169847263719771990505516059208075724061452051909953168167261411103796881734152955400005820155410039490653323099791770120155069705355630521468860480052625252376424223181858012413948276883498178873869835674828378708918077320399019995902211169773254930315170900091075368341370637106070970156863901413030336724339941384668516085056335552453055977774746208624569759237694934217673655963214465546601605305255220040317474579020887820118096044048858140188320390677479394847715657235499333844496743387268092921964094173792679543390229690465102979609270099084133160621630476945697084794031772014844710669375741676424089834809894792810317579055955776164101866025178105153640771730099390110595677969105498445141108737380898844410876770743717003219241528083537126696882294907909852793851325380020654748823842191227038678759118328787193820472570866094727104007011695833669820078643877960768462692104808984158821074772839355844694020073874198311685394149855587512698539854728038266679620696191831298821378734903664385735103529121164747257344414577269997341138509714538322339949907274550842754950700258777137106103405153199581800218474604361280585424976627175325036645626365622568532125806327060222827389728898375341218523640427762384238038048011467541708744863578704280197360693703094631343150661417444861436824565697626941122415184533169855303637921285194860913108949190635805725588402020536774901731795738115016418809911180279413849751226145916650026310461029519711508227114545676943139338381127389576432040855868220056194318995917204704520998117526848557046997194392633043141008160335142428071227819002969024972505440267522533087386964159416600761603173464545604714292482357400312447730302407496306824608268424356886823303769040932256534265925855033818620776200390931562395745068775013330002614193568372948422768161805953449041051679394191487931855344914352148677194435636072626003996135693481331790968386812559324600693138054016414969018736369019373039014186629186706825369636902259447128724170021696867387145102973537796149992514106932346264823041642748793908312358577431280576435412625615182034085506424898335961022141274557544380556239283507014470697293409257044099717391264377051150072956580052444155313862092616925160998737654783548055196330987929037169512312620256362259680593319365365434121222825812865545418702842843194645906900839469712893241074511214697896639029204335604012123610375155005191753094719825559553574152927545442917741409938456238910779034033588982097316707672963579918640438780659267403993514990325194654550502458506851118807194242048307324795666726413747162498261850664732399677077896209356615229455582967276502983532161350822807322689487270613735022664471975964822814311949032700040705830703637535745381910933515991179337480652215446842915816512605429720632547375149614806172718549661955731212236527281960434998127594233687961360977884811598521156766098191347046895937215532783640010539441907666779892911604283348222546910401421347618608232484642192826487338827712914871976896865997668573787263826772966116388414216938530691778468863402130713776267814150992822173992422537995612873047574614958943803949664295697084109362138294028541078993813139743254603175584743877570320235459472599204201834472118273480061741835556385073818672566820201052240280179162428601978595963910393366851157025789362409098202870804677346259790690087823459752587862560263254005688279736388934120677600548914287558731727586576876318197183831964185435164726564129303469567225610753730026041958799048170091981321089157118675566120518133189774052095114848582721276359746077937369720668098164658373600299376762183894233399871932189139349511118556245361314789514709184360472470108643914454765968818212253583141849276471080275903229713659079054147186784126675649565899637744075781684625950164162384222233406703119693680747920352966323710181503745255358894791423832320486155158097440335545624888248929674949980897550291359912995604084695896037660569480752809377210569250456502222563817741332462127425883710691418277998671460786675619221320882253517701336259368455636792424603917207835418459070727997822569480605850519026067002821525888289567571446108930411353969332231424741809912403187484486186124614568952984477354291824656015453306061334633678305257520535784100134801146972214504904982647976347481907206057015052789085293896577833513758561077716118444069312047859613294464485446563675445344246185322762776536019409018243060808896215003453179632348091803417258640410235743007140852417950799407280907069542563865281332403971323054240982647354475995712333538255036511232028963593786113585542737241122725759278058822856580824578522261184899226455389087175625100276557879082526444731966602462369675790726614862031753064588212438626880193582952057083123190554447580491834552681035913100278116496613588555259345347404423924018101476633796750337059260363160514923104602278626850918466735576589436279480412876696664020325662573527502702753499488553600904752889893197287142152997671215047997350959344019933108678087500393700087406864486787452576974038477616158947070565622462851321355900035985430893305986173979518539559925677949085879045126379117109545237805350342818567776793461133955233579529656121097457534501129027062062236616346699538531762961072583543584568540017131799440972122041554974956938206367904817578356690681011304744713398122258724117017336976262938999615566382561832533132411772758185151112920253711286203208774339853935742149302012436514423510767608431268464818899618222606219886553102977279715590854315382448226518373479342053405640821448689301911018274086143074941025222809219602666418717127016461492789257998930935006752142988914275371370249237488774664039102383225483318204047307723037579055107810043981020443398673086460290023594415979020224263849508481046787962547830386879778737406837612208211080117193582109729455654512684250715169085880947723888092594349062681178857580520827098262185482171916731553918166441666600414545696740363922273533196340776948086237835267436310350190596319338307223200817525698696600338577891435850521734670374030009343308164448799250970522111553379787635346397874842122448380636590518173363765059041536578959020168435172624721599740360047553035958173315633027094192890004071471043443716300776657382617609701263923994534997368493261455111050075171770748942588226991768602727872447437408327497058339264839074306367863982346554806915937851749022374231935248634867153564043208322559214045210356042586546760199686961227550177686600293401801669803294940504057353616221114551265128004978326495019529402104682176815018664526422439861573374406932881523199351798745118261469990794332716917348958084052660761802980502054864944103824208522331400973022385967204648101205394990944070228495857184909430638327840973683609215705785153714512005520183583712337867119060516352138786543397983079773761248028566430852648499818422634932150070625902423690549170125855846703359966036242337142690848649180600201241671248856692907890064805582266785672209714223326485602163427373902160872021354333448747149215074355674059036999408781050871066418164036758641907761631238749237463422739474336478693991340311712031868156586569909406633083129221723981862643428772255603761955993487156185638663836128699411909415927838006238856015944355292991069246250201647430495343091980262429512679459286950040608499459495550832961639004604107513051540596590939940538420632352623343588314659666017643434672697841444403993732549026315193307339296300699174935607814094408880812236007091340594466246440829034917569570337049754273244256918639613964527491634134891507056868624542842685099990815750678518964211019241349624757492532472567369217119791773925038368321294883750624376213136028826891896717862353283642693273518866424018837329620890829866945585624327589643371102576952667955892082436887137655819081736533116996332885409733351299171855725231483143705473053612849835187413220396648757425865269442686358098116747314503635338665234970016537780640523891907876523450051614308738187045152940522341999727707829594699701484719533516962268109404803346305491798364698639275932007646234049803741796472220314575837290649898022740321161526368686218472693560305949022859090483725411056636571588133222293636680805389351691588180103251655863632382232164349248117190663819732540740010523671810269835372723893405346177415471221902727273230242763614810970401356401128030958531111765622351115718690617368815324637844237903158053205745493720808411680610002459637356041613842125840592806129784813032304082429607383432124479120456044628209032176959373648562228976632482929732550528419774370261831795070679076325187293838913835019756057131275654104423093708043077076701831681230198220577374811222799940583026340908396436316903046790948236613246793754184703322404824209267997300483634090938076607174453937410398298987414143137848219418448269338468479691683325824490231117468795986759190390732417392476666986877558743908108419270189052244877462778349098238394400035475815787609037475639394413318989092957427932711544700081211153509556902536953766503458702572958796207655751777842669855749446092521427082427491329952877011255285866261051180385526732643821335954038519743374612060779813643022303856142840068375045183700123601446948026656502850611631116242575874134140495644660380086368286096606313015760357340997226401796624818041247457750663185192878473531944400829145755082506155300784805008305374713785007993740412219414073208199305894362991867360949935213383917596052259450329826985399502298485460576644299809418709961143274498090608775748559956707575943588071186713689816287750098967481519485787062250561424935932536056425065368864092867545354991058717094441923447136600019325637921673423504423559316602865870820792622475056266325875134037348643232754667315249881886305872269898248385196147355023344545531227454196363469332836871744758820440550446028988767134744261899672117854179851730073376520317300932101363983837191934799810293841915795808272426241665397984968179203457069002644074787830455932562851283189018194221612247574479275180460947760205532274960930469676786682547045779964947759354766981144810770258280735609057873000100846869584957245128125071528467662729356589481082921968287751185894242563273603996841827268021781860635425198970538904323836251471495620178459968602948547118234307427784855530096709540110243635652298206182689722451109643190374732922933480207559421777171855473221690495947240985546141407477299786066120786094706005999431236696342356753780303145138076803722623379040046373161102210769907152658567448271160834809512510853861314365122081513312791952674547579318170133772922277711584419204474917509118945444808355513325970039742942054278301219417973234970915301207411569916123735491413284024876763268608512732189932637259206876960471686338277387627790349719406059876635730716897359523491983893458060543157265958382511292580429438796148408830270146376509744942493455824418533104585364698972319229608781557238048604314108469812761753641326693316901863424823992316134396112573230406231500464719400103565871723250078409912335666646170388294030077784597369630920749509262047231469930318778501674847999735561366063368035405031854747528959526554927814653910427466574496305748820163042977190445935766101751669821397254918707055480939648869928394864700708066238378005530614773438751323315478000162343027550424657026718727957019891788530000173289086208171265617931226500568260865828122959762911280425869225172791854306692344715543635571566079349706178749375997128900298799999450554002191570114623933760593155025911325998810284849282277767049252866094350237807454405817499153228611276302358820237299661132670307397458804880748537696874428845113137679368909058818897640240076813687986368960693520766333480082074893071185694752334118118002648100162131900241836547162258384397837477398618785613055012956059083494725211842658282513265798582286392958198364620713401820789205251948284146823034544701987728514342338964555008173609383299395202638998639492538881466943719529864562591943254933676795959316120548171925765675923300820656740271562505742634502100925910406779734255582804060048535452954169934607795184340614962545308536106138847271339936405612808477117096844431055499788787932936086671253482133713590446032566801409821205970553194273417300020030741186567932861578733331322746982217476046925716002013032821793060936865579769999699846099205012256259088050418393498295356876735140645995859277796700426959478480350375411094693692257438628944756062339633499598627400267545078924336384069945390372630807575228606494873424399392029487703882050045524893394493364412435899774398374931838151906480598013823747961458384189197009887706755970017084698552614918299205827511591758865857477838865003947048224979141773498367908100422537696865877248770382452354654916701064092177600127980965880332858586242373160155606347466187297273807332864162428020985914853069657019977180232165304982011846544400773878953104712954308748771969109209745631290536596763939118359582563140469100532744652274483765500257152704729281165981384701648836897914662309688300802493026000431672428130607575814721242649027883765702589511137165551004644698615028053781014738655893583287957447147244253449265318230915731290383263991947217515552243282434871222912655754549884248810319850202240716234856482591454562881084029497340414344422372720183874817417399339494947845790110694927937913938970218584874373174333155244358285831415788848068072270063086854575420929971784510248555219800418163044183580801891660902995981435272765960726154368113603512828145716609395423827775017046665849827771581759732792096032221589417201228084948920651405533965778249943708166726489637267799638678531798858423192140818354921543464863524893489061998452449366169452102790188804711094136157581238972190855680452219093402197298079315878910966744482455659207347488367945966305372902909829718801836432749179771463717523891020003774617904573749039291122117579331944041491074506390894909251284266319084731332531547739024763340118433814869526089991884486430617974703896313604753085107428013588476602341091876996175913185937668149369674105437207119980550007190008455659601280526168360330501409342934787174786999343430864047507947718218814600334402033237008269465097496511236982366662474453437854693205276011230817502684197295408965542598332974197298952861770365939964412805994059051620345934324647050200285215127246157070464943424997721835375672640066317587509933970458731243680914973984288170982150997973898701741040299322443421847720532650708042294090857629905827727855687049243759421938664458526814201034125713104625731560634097430188677233580853912561129092598945438195976501211778732186874088229804758964725355933991940067682723688257095705630108247296206287821656571611589222199444042343660772731875344160503388045962331423089863436877154265943937023201770419245325563065012217678601970578135106680654327005251957631553721160746578111947150316726395232026677319519720881008142491589229514876714777201176941012817404009203621486756549954172045767006879953858699273964128082547366650950515321715142479186240419870313458680494195440205686774825115954711379336410453512714289953806916232384590619150330672783368448728646257699567727098780692479153795447493118138773789937753074726044325005935286641484697473046746341049989062623288832230296747656826369077613399363865941188593231149385251265496397545029216613805645841282833155746463146621575970053356750928587523047474096561620007643226094489863009066095816961131763909672769184769492321743777843813970831323780725068153544055955660397771799183641813074279464929387840154679490102037445513140271334904896742693468333465732830573030694157246702991258545694808774457444290617094866905348666899349896148255524951994225038220226912107444325155957658761629133281187871638087700420099522244451607585097168999719720231634730171432954437429097753711604091156317236333165874084120169950065151130817104978019977313880627562750702044118657382259663373443715647694077064908584070569035845563051103812928251099045663579386430924899689553406725402222194031634143698218178129170135323739470262095089042996575787322548855013023904972794528950520878442474968864662175222463695811817708286250980763595041860779893194442858881757839727811512969632407769802707486827656153511324183833029759322643759289746223314508214506452797384758259015582190286673428664923808313897220979759342516180999106438914756839957671101411366058958611447822530089521904693529894736364333533306929763690801989855696754918341150990753429594073814433079932231029875741765092818527432183350336246660846346703162969167424872447388936295306681602216775723980770472939422533541866317507847339085296305848454480267919330837403402505101015913618062398833670158036568532296449678296363867471887102411352069351147866044092093538480164883143250949017723762114350976802526170390583314381775473537741159664960878424354715057870201869699720085151942328434134008219429635004962432702991462949680905955458305473914736628608492673379512866547842400856555134932365280375580831963741243774193873589361376360907347321147462685862103400883035115997060487258175997234349614283878288330386652786339828882721096596470741495260524893202966903762637594131165058004457574662849527562183422536125217564843900009843450221068971136567829618000512829528671825862514181118525721698224305576851353593651738637370256859317685650457731912670744440950852236087550786694535893358196189195585179926398959026652065852426814933169205691767107119468293091551828643618653644433167340407521917369422350250004415461548801605815446721375838964058160297799576998162062894641206051127115965851488611415908247449450204733756427212624454265962427941750844702487667978239982700937272118523258675643459477387410597217084759485228727679435628006025939893016048857215882217194063563964306771272293342349503495188277536912512858224785922832956016930194353343119224904801892584472081897960346660569346565900899937322553908498193100542520669595518232519894852607602614356148301201357390228007186426152218783325123816795351525804643730560591831994173774469679896839853448403783845638314965515529743372175415608283168159673044786171222858993580416873036921963088443271271895258548064326874674573865032514923644476860890936496299637115392962641324148223786057510287936960245941584344106455491280359790264779616298484745394982721082957363028322614950546542926809951476662200973646110174850862243933449164262012414717321088010539302182861661180914103997591515717595683025487281890884954287858447291289501035433887528397397387162850649644169024520483172192381434569750915073657348221593592184276027256353983464948235959124959364614541777422726147008998118028384646106416541243537636190891984631417301864035702014392736911944843374341647265266192485569088084413705672959150219614394207579377836397611232280143579035595158432327502419648752970887831412989840216542335961556219749803447167504155375712628643701897523270006659245583362563987926246446556428627025796690541800807795878691470615840478546462486237934269967952675943012061654204605090525277994994790150509333420040408287840944069738229887994067846721889667063145506833467056090208635425365701780582858737419192003548005059219725816666458136387499880725772861749689122146210249489795034412133215616829362109646060313565826877932582274624078047666519299104503424423052408331870798934144054360643102600257439569031485178514899340103341626705262539514223224870954495860345516476130940269148240868463695562914981765957271662683062099942328921649081110603206871317100582193171412005742831375317364768078831514428186120202310099303949443944514814851542734916144113538092380051300734994115873351037489951314350298237650568636477555309023751546102881016970512063656766713908175648007926459771422214309165048046434604193452879759340741594670462416193143417737910401362765646880796361196299932871963744733297785964558677298819607840828725702555016284751103831574907311208847477397261371064741277035259443125267232903768051103743115558519706607445834188127961830273326247652370516591310622342283374485328919167768987205913755784930415524768025700929458635878197457821444898411153509038873197664029747286569049618854471270432185293161049167648832623274492445032920522859693173420958042424221507833318862505431319197079053199988198197059011774051331533556517808129165184413836941865397016428417763378377894610111223518948752820624410465460957511126647216383184635241406371511616180226164072405435807943353757366519302510328325615691182054769060699457835034218504761489392774677805007341059930327556804413499221507167906151768683023998707206317262686878069430047208177241927549889927686948910143300663543651782878850939710984457167075193125323027065836367954026384993214502213023954954542855303378521937938141363515725626947673330065557789037226167418726336946588214706325634633872720686266585693178815678840794433943032216190348728424324789059253465025583373231516377431902651186727184144824821715283549720812705233016915182865076388795584278218316243670907498480719027546499062991383724134439292602741866308374909655386602163764620864341131698118232154208342900407177620275352894490447734072836962804922241251691702353337388755471291946877621141053751637857616098021366766539098798643379390611198033270812265151490402077776606580611724083121255222379621224245338745095473513068932816825125697892732910369284285785930128802556842329996737357039874687279664029678685542993554527136224935739127529150721789589565503996006907952091663262110857783113265637994896952844283607548999016097252733234875395838533687445378066074415084841016397792943107906124376942352314335140312518088218214318914031134490607924125170638330484597203554819652601620513616765397738792194718070127593299800348299679148663417435950262600246263811476902409951713513926005368783700252807841536261609255537803352212613959913567288743700640639366924376400637519305488940519602154215820070476082890993802342220608200521128816805760105152747510535152882312642822538032323245012260412463003225102120629055220079452166416630230264482111954498857461962568838639683808420231383464404669125248056632627861908249176307539942271399312283456771207187643197453531089997062293074535970001153922888892123293307548597061599260950641019455299642792018875298237883371545875400360033004111069456766776391119442286373215468820309837164806006040294718324742369211825617692975074145080561198738973862039651827381282924071000442551125835702350802838900842371580600805451520817188797829007126113295323479044629380528533113025174646476844718085749311177513589938924318341778426182713983631438927196585577434487732635780858254864111544151995375768589341895232144594830548014621844810325141410610045945541989479964080038725103441076648113327026705098484029134624347617626057538528188439783899959349364538464705054958428686479209918335423857052105895993898945132099840330944426833562326127900178996806428983478641904508301018151221361124657490924199288438743538869366518725777375886529628230361694022992461686183627622291337667305377397621048845542314847670342728123862933583781767387096957491693014323791753214338584999009369030743155491474926271352677478530138420860175534296935332150953741711369986325944697131670151601288487717708689436563670724948632683462173307833055556617418056917970051616654723221352675702959825441332080022554599571454780393355133396491850368708619632022920276368297160309685846724885671398058228160439111466959475540297127785742893443764888229419776476560129052387933453690751309966706478471478944545328928349524629806714267238184041614647439090876592288115621428454874256092211237020880325877657248536789076135847956433599010298224823759563917393378188739209376215308833870803229311028337368456872363579580267005919748198108085777474490924327196175804196564953052478864227324381673353818422862200353437969803455436982083071709911223387187333357292046547450081962550627380052353817530593639777289318988916545091046966650648096578889219251610889531242614517726154270039204468616922500660136651921763742626397429003736942190636118357598861962694964659201477779834976376926419936359709506408818373688721981234506089098844142842757558323477343400589658992142621511406181828276957255607732186249734361869666151800422649863932349867170584401344558042961294151191177376186621695995111520375374453602161488165996023771597217082101795621992345190324260481644585357418938544945326248021315806413021714704171022392999374172587224793351003637167691164222244107953872101663269284267496885388086456292491010323412665157551349349446049719920965570818022153697726162140560681348175417199354354195088404341982347372652534894063308682882487519184033980753911354094204357897234049022308747829615165083310273183193203843340273439181703727238440536354539617042532072980286620926238171567040489563633262072027961799205174567798810487710835823871203843186985604051914338141720104615137078972280594762189383736173522466688198051230821550691372081654987026447486795756519552656714796826542818514367851591048480867575475960256400784181132170174076872886774176855044445454808974267502503115133051981599433324280596442923084478475040971748972545754391630150593948737537150049316064461845657022568860795485249581041206218380109717270780917551242854124046876044211333853646955749845102569259901589423317673073695620765475140566753823005411582678651089380975124854249456202748392231719670200894711743973904657636732212664748051238005909607712607558496529787434000173369384423243467110136346531034631199136746850101938667395373621842177250081638907254112740547716374957512104020284444847142216617038469145278217490376278623955676087371869995720357071883407651664470883942990826797373687676760809680804645749399389086791707087246774567606405981731359047297521691517281894264969761090814463557105142297483037787036665227043515948114674048782109078627340306552041345473486854726510022422361283914105714107062886144795102677364681662509264859065536917283285756886389530614646104236018382035614055288453473860852878998912441598883388990941286028774847601183831786196697403680893273991379760442222488215974304705802766154665618571190362617157764960655491777361615589532637749043635931319304452422290704960761735577835050922713141996829256563496235959969464920164563505657059720824743759740588813850815426756108915990876180340001727704816858834098007032587139515525290068636851223182015251432361690724703372904814208254297618769209642689197563627541696025418812555305902604126304283149265970523678867056092274785508438942050942516497335827090121549011339793962184628511552679541902170906016740372770256527745963344130219902767830398654477184433458062050999450106194903506948691351378436467738518993895417273091228326016436390534174835283649165708441719937805081462804286524586097203630211901102151836482732715825652038863309229253088869266517290620435104779822645350638633415225947050901571982052364138447937323644775644110728654998260381499611377499722087582424353339046685128983999894312872297816145993786030575696607572032693469096964872942777978347668868159838496906453853802779347569835589262438481642219417142165174280715537346827676450037633950906371671963147953970361675645485322708320552277311323801569135821756109755984113094271831986408700250380864770390233213242467119926895603592492673312570393074517320704978253962907122648667674659061501304609776001742456356621366753762615149804857510580639462560964036364715890433864981876344597166631732083842911427574133016331440917532532440055956868536678675082943421527267649972307106036571270668730093663479453370005030514025541028483581783757093704747273209782031387366237784861932053219493657087557105446520441478537942649333624088167602720983319111846411707225191115866353682720373523962005248248592943257741072296657502552684116361588006340680269527759787083293070929717696151931488669900396752192707292429966674080548101011259599404667598254183422017072980852333471056447156845334644885365840523207836469188105392509129269583562694353933194591068777722785570132261691890571496585802700678074381583769331732307160240139468439276345092552061866101107688472489038952405090874888731568830389163516036672198171382055559641191787012997745454605375914527140047440319107630421693506291593000315470134753896037578784871948880969161380076749671145785994916204509742033415441253200001426132208957343977852984486996194265735069809618238820431792212856852163971520682141066213442027493221726809069081642517971497852976713727368621587318137756735797551625209517551564874347063994312164234588485520615616008898806647257420660025532364066633503868025236583765112933700974714502251932579377532037401113020812081061545281095942040173825243057546838609629022582948425211089565976689736727131160514703780612694247757986935868901017816843299504166509779441052903560175076834624536073595518918005729149247168749581782090824234310762102214027114089049044245368774867686186729927542702485780377199921549730887411474670505998111838651738531451158795096454195845219228691896817218762833566773758871558427803271914414529826726236116417636556707641988014101082565478725005474027138091468237331858800746489344725923032884489307618952422274207761736196615333231878681902155772670227965480108050814306060195204472838029373576129833393389135018163466589693851231987358452710029185437722303164736613020993995913183578770632762421457527687666782716192715441577852847410562938275439641171872681607831119366539092114411401682631609486970446177115318200368666664745204434937421057154459612337723014304765688119476625032011900277642811576908791648876011313260064365052911537754114642338227704201633048519150783489396403775479472762863787506826664727054440802365199716834311162786234623528629912442224875573677859548864587719651820352128065247201269157409802014968813192610777629915733370909104891816086512282784328930745785656831994864548322079568727030653218720007791105351583898137136503207183339458527202950120337033396086867794134504261984505946806765735124855323969480701529676095616579723554952485112744091554326992373060764028524721595001904987252721753622352307314241750542120257280594900576531814609219498291794058981095578696937587498032463446144997760071647270728085245313887507264823847007526389006034934127307592923537300294777327440525244499546448926892649628587762580861702232639580276385169970322987437331726840394287300440139765226176559275358522251881495850669937869435779997048664706837045730901809922609292273291997441331465269577755962149078332115321680098211497483440082767620312304660009920478624024447560143318921078630961074875183282334166849858208068730418048804836202934652485057261526477658596325036523649050848093538947213949568212714510031748359211598504403601553839914066503026933725767295784031866149202241797860884348360741463492370534069099634922687118990357615592309733435682564202788193858179263315794573783759941158142573074777346053064670051193696573343301529545680030138893063312699780480036309620301104266574379035641164551865343992443445466700539565709041487344200409363366941071243625468775594916396807561743871544543279709800362143024247954489926490114536522819636588483437330861233812432599292516044727974024231353188540544925444776401685225933992313420386786467277782599733598342756169802945827686562412598056405619347077076698853883649341339054193577966711802284455030135030032214217350320537064169306545212923219055996739096444655679327004959122920284032782163930798038042382270928581624810500816352769650746800160585299795000024799164980243337717284962661927881187862984409263785052735620472017394574816949832716450313237020680666186506568937789606475462438535637288993081025229562795745562457831672990553321367620717517514172047712478581233256482874314246451752784672760630669058313844650152978337749778580189345612541097805795980744736050199688403226549202204721856076433241193231514166196043068783649828620736735010287271889947946426538907013880637055959581458176974437450316883391576604046190918663838615546797781128113259112853332358113437527163481218120364373427054102911646224888413943646316224925487705597008459651887324819391269896119387769143342636582271452768639176473277683009088883525356816820443128521164404846968656031165718711822007927997744799129406950336774682185287051752642752305738712999063644125267540758428726312866186222330070019969896917453714563173307144658287005709246198693971336934987455547719941459644580888146584518716933581796246930638098430890066762236590440561586513011255220484196579919806152115011160369108082483808352972626092222690430473677962603336918483499575006561498630958716240898951082033390777309201840134213729858627087096968605072101386124125016629287232017836083952967581460119420686828726232154041444231662100865187135547706140119831451309375705892227810717873214824600752654186375390442968803033736454859800874614192644665337565351726817201966089670875039710257695858731674039873514957800464168905940532468162115447319948290584778675155597448506432284044848710901285833987935939570133326507026013309031455596785401028113833056713854942097359465049305643472439679935133760036598970480013834625934483837146999358412963760662052236956311040533295569765876705019908694403443161222808677745745908322298626610760354707223550896225132261173676037473574559462293641716682762240670252794983147307027774894778226399661038679770073715420485344617442997718448697172188528681912339253405393567359727456019816629418627538607101706721688310207518682378702264034924048272913394565870481636044728498349498142678113452521286873122087145589165328406029283185286155872046237257985702878085045914497383212919486659583588386237679325217528336324958741114869810792117750910606639614988922362569648443333537893395173518233730702305308956221024397891344389535066015628018973134894558858963624866930094539146210325129771887833981830679803498990914219740271822014649711947834857775990788676685392165531439089794655758654487921245274818678663089760897710474223255670452723068214770440156237344455515337227764050505892464487126769342155002393994171964220063700206153804366266474158261757308633380958663707371727935379783318912168562897268279358098084490400265701075614703573205692559246574684842230240986844086607788401948245041382236817762433438149218111670339814035736117383931645516372369748203489266976642356089215263290739407526047102973190930794794533798245199239742032837653727924734076122421018386105984447591487056808791648313692794008423816276973030471122973202030016693204715656581911198898816895247313165773818172452942275488771219440900530993711707972185159716119593640821393815983930979438909439304089184850796359072679133349579973133643011576328150415467961630086057340250774410295063164370701004631501615967119767565026445456932007289679471269136843212001550065744392313610470499143116410232398363100094873124565715525122287834958970686452773787115460438080821458805145733962083928383531689442987067242705295363980416550838203633702824198531562785687750214836047745178836728192719895828758539733095064989216914682796838941157549511704506636266218684238973761771543210121094811542565744897177963215585035395211597034606555517912677537869295946687227058351188686661907451313677399676188113833687501662419549387886278763985452202730968751131918757722576816994894116320352762442743624907315867921102497276348776671639453814915059491773163333316711954219383390280435451005848758499619872649091789843969739246701139624550632276031338445772998047260839019748348948340446815731266736572190917039488419916838107081867444938983497338927287731578004467057068503062254460492432608246884646883379624438886968037832052333440154539314078294150846810080319480165964874068107127973403425490143308319064219134268421618439023920756706617991524331989223667112168796071639946528436035629646374247936893502152958796468567002093654114426053465421989702090223640882827113948723450403030728243901268450945849148176477634280591906254138316315183001838110821102098251376119916532508550777283662878029505526298147307897081274466731663454531402992869338496771312513067787942979527782076056337923706038636464268269230069180181867343158176692921635065735077417976757605055915070128437704302153563479009006163020129836867699988724818858605045771517022406526084384329532233132672614428511035119990310418813125474228666254886273423509490555266249380143648300685053720100345138629278273525635988333670953044301027040822429649193975295119591983401933265986962462178293470356638653065637041724202209725012462057224708194611034034198175350969807440313040920045937729732929771506212195293209280530841227921505224431767577695828695333272199942296068107490181691340136864479442255072228524316927860594954610614840979945805044923781223866964722229432689044567807095119914220696002721374993118871144590674693493207894289078441724530184423344862574039017328349681317004856727183298463609899370619102471087237361051508767467411631987983985626992590159775324858812796745329960464028882765253414703687969115740610795292660463887291782593268672406627153809166115279168969078440625007391817079323517662944230861405001865963642624121783263933144579584665075171927528512341466256707485159329877732216860961835998189622716913812178276782732647122397983959322409708139573805445881783782515267953441904694586508901100228752862488355777833379418103627085031767666775008423457963654409126141480169718171806055631114049224922231130169876672421689175741493758998953950365032489517300436156892273914799591433631384087158575120837954593119883858565761888662582690015604916930313073532237455531363737460109290129078716445514044131260130263431337499439420663625415058653533070457912624507037327470170268821575014702896893596744655138311753465279741536939780462422969545145605236109353773966822977977937723474811533446588105870070398137499130965665086570960997204536800437200155083331627286063644163234723561423592648472104536910012024248545681034940618782241840726839590195780012821720925044314023719882151690031060753886898092410227343925428963389882466276097846587410936398526952133837542401431606086156246281571645707357724591267012726972771758770348382311235320071332641763340932047532135032736521559251543778175799552620277334666073318369183100391098209876940056411365456864725741123107498050661205384921558719561631257558550450182411704619415862339168246534135151387254948598947180382982010081736731300141487743284344550547965823502328709231379733950980505911783096511475858791182788777492267413197781075286432836364071358510929977739261943531652343339216168373257202048280640814655271481500886105164034172293412086965634432492887086364345707595844701269765479986962587607014978546951760400285271729264956634007395420517005748673331443436880917896913821208968135170662580183248759921188141113581332804437964383386816131911045871615697699927161087334306810992726424719964214601683127515225208066181208259274757746852731941386351601333117409920233310747904211281820055271613819515434579942099495841081746932571629002199923254934417873162531070236008002148899848611571103284135633502079892191808263330265242097625214265599464204238070180302435078731318584877569173604053945195039743401943840819307645609947202632668585835253441379869668560479731797909471581822211970196816910396438410902199956802495797509929340689786473002275214345366084497805039657972878266983927338437121570082856180495546542008894085610441795138071818527296618051746252465041383504584609753183653966893364564730725481071974873794454887580408203473615164050260056801321426692315359406892203199328043439450796013025846572727246643731409647774848403704800365495173619101951392273177076193159672618422670933388530963613401154099359781153076714325888901159205997939253036602009468392134107887832424294017333288410575288391723332672078016703896218334563630702558076235376924129683175866443783005162011017434636015560249360078044820358743718941302269060639704342384556712373934562642012361233771137871785006503824666453826964487285681573066260228006892104942803880072842187356896883445528286878691055585102430377706624758396078462381762760687113373181824191715960995616770253697985247540077634212008415632025090290765632155996363067113007923781552645943863540557676710306382197204860214004431868867810237297781429290056042032987239199379560761841171986660353745450459496456390820106735072506248687173194492316783480649965650099127515297193938224053450681149097731060240142226459959543823745644314221347053813462420755813776328220207633718332857848926459385345450912149667952330195113473752791362252547496528579017689764455047222435443098354532184073904493461291073808822722638596348972416611931174010417762480641984944228194185705920591298739905956585274357406200791418664290502972640489770369909908394223143394173515595365056220686238014122491548515666361643088764906898036722384595865210944847306181863406961878613199530270331420885662449740258175081630241767567481209113344525078849009797469631670599623755970673416690093490773123268269469610205979603288379931632812872090749303051802271546114881325605609299557534433837621524803389897595383764279366753532112658047529297353501792588274431428953665071262951716473491157608306489332908243636958516267118889816699402645408861777980941234366105505469036045550284556874563564198390048701379633937896356537191550092274586287342778607162999119048071057832834150215766815665167854199413506294396280684237990365772927315413068125671083908715323415039779939543672431270197966415986372846272574841228441293193279755812865692084485190763806904349930336803508545394935826645501272858768809421454327222729599242641984233585553403305897731820878197288973267817595078685787287786210515966670916801894645509767533068108738226835362901491994668476605179491631714317244818052256255924466555639691190942121073797124106220747314109585841854966928083011652470750012152251300897271416090495193953748574838448124650005873036463558019516268798231268921722110661680619941848184895514431577906329867587552171780319887979328964411766909604484217828092359801520789474541208639296057754719167363189633744962388019797967819137502171904075673227558377480448861353307623453424945148505827496940145900850860438166061222602664851077632909408007100559538257725436089565628668092227557535447859578090017390991169410517072962864493651637994632857100817790242965998090543780660590113658588369929716721953021469182678691627960994091522902108642255289578483460744835455302073356639956861582577639082601655721998124770714092715963340572730441749548069020273432541439299202184533858571325926554882302126952461672925440776819027752877987276105160425459723921648314501468051293628715298418497377973514546564141663885849624201128587597648816394416761972807907998693735564463303934759047479276721875289150996984032301801721015485318754899499573105739778649485609113131939375601193847788603324157076885254098458719305903184278405004728201486279742241705766284518329217803805001749919347546959325409719050467043203443144174850796474685929476496040186255020735113205432297305666474187912440042283190419820825144155977279404970029223149877349275114664305386949914072649392666365898568468226050460278725474184360887838166702145611703172411478193232897573462494742041976317668961577788662512897816855143282717961231790351864851147445489407808486376570177492657727232769875654897791871362615074982049753012703158157586714659616527979472395615580433935714506971361801224136769791591205889399298817155481256897883588441317734323976582711615537597478203082358928299845789539092910716350222732946055169710638473464708825926290872660461631880969628489836750286515914372717778933520651490321565806159464231549647893848366669793401344277205973367425473676112046427707375165211111489522076520348558445586079149267931382116443106321643979023408227333356877446024509365937529836421118835020326042673297670148965188944844916280830001840306058094248003046268156727675713262823756208962364466314591921990024365719205426559393594992041893789837451819396525864078111612117708297135218075240430464740587359203115129251992958639099288946642680154008054159976017020225600948495640713121253811592991865238204031337009914704832925131202130583754612415468555899229547714633131934189208993918823901173001625786372334590980134845405356512103522129375288215608103049607272580726499760079248796194384234306000941770540620217806115547941726146505372953276531421623241723682362839066795350713686210524308538135471973218248960561004676097008496960884234250907845723496597531603592827606169782535918264989027991586622158253510012601161010997893889450397441149232997326049453147585035608614568053558752103234222702463079270819458314596846176003537404198271741432796825211032579682302491573326613390365664802713518498209475429197854392158054179120855956420451090855227591989882190293638814989592336037349426933043754054887425738735496895460582280628431348744323231125530475381044596660692117492339219416900992069948685711687712407242477786658156359877622005170598535981968482931080687540212431832754059253197958849027225197267208117057288847917938186398294392840783654031096827138472919633700860180412414225949071753974338929972396506643853812770904489249041316185795066323057539740606146596981445887951537837074968130168534330344206540726988855787894588471117730469914341911648765908424247882510910933421006719512230847418295192085783341679829591057052135942073713561358256503441120180480580077929864482745501399648655659438842332987917173574198120210759365101096848851500258038182504889902278825293648611897269227688237812202902814883109770542579807231260728519454847184750612875628702041637544269189323720882072935961528148051085210373922194232204451092162101854801648768967468008712851016466583082272710061796420307831545681188010380291408849025398053063659813033697047144034650575940618193185729655810110689790820488628114432211903822650653991002805721062078048598119104251443283214918661437013350230806230807380740601492830655090592075036645954985735636199076456108052593564713290164631705524972042233260673235979470671641402978085466902011267262215647866500767230203051954038854056295548243676578403968734434119229489596637215177022990074262173327308649440306774446485977117352988883482176722278395460928898293725783935986067760144947977833234154812668625374636834929015670560583191076903053123559856693258174439979993014132386172761702923315416151012888668889349967512765553045822219398835171705499391002323042184848854168462756210571246027104676392311801394179715546966137963667958402490745590258323661186397094547551029056616949272441045758312223585171869943806370994313493439745515125578886693147891909401566583826127608772012016649991888668298843806057744806541557146623301562969812104788495234269176883502736691305263031631519127645259388434567802102117085560442562168516955986809939060273318828591545107210373128328826246440362584567950753685533428419232618690760249224271377795496918686930377502706529818275859988341903588029660008408239707684505953051698397600425191310546389294669922183116625754988717434621766638778521167371297835663896836906959273686323915695035075601835577545276550639042086638097111303121778024999402278460378840925413249847851871081889453889802802541741539742401852328700473969576785274628498937116619159153368480630750523652586471881910711080723452577659986436716529555675400568602268964299639413952839836078426103442627151717024389551456648535520347346298578479822852828453459021002654046820525932705894169710467859749054763087068384276879591547640273311838568529753898615815523400166581768330083135159128825242835424509922466919407371364137446189148042185194282780775774381020954357678881525122850589838750260773887666973644097889504316323729077049358026469060294741316198088434098732144828289802949244532053705108560087116060660875961602669631874823504911113935899409462367490182409838209284229242443533224395018226353183034067707652811063873006426461961824898627192044850261998316110873444472387175294112526771014734081908219358938747095590958266756518739692960128600854984646689590205273979438783872160322547183945313977164854913409245290719899023710312061484399944861056387638918228503769572885206918062444014616685476442747741657312718565801288101329071242982125247129130422030454425484566123214510378291357358240437705362590468703277229766649931456470471932738673840950374676593221312329968582029596317983033858136294538038613338947434299531996530249263419908376506656952142908305752753935435882078634806499378992806709499127102170660557102881487331431640553390618001319493331596014985040452405614064531201912324118400617712954178956963178071009217717800260252972166742698414655889227425922888470264391531231091346413904353974466793032812459773532847135563748672370476433614763185875529203692547110326694806725346037892857058927401659356109057329765483896115747704367960981385756499584665381712840299340332686427483486800757914266819053043485376715200243577412556828132457170690617482827008274277944855859407716392373207723561597113912892797510025303094963054273476566858790043780017702490298835563438852618034033808317577538269540220772592968269408400413434435193235403122100268762947308711851215117355015539240143076329276433547029008435923469870110849146752656818125039957889231958932802919492081669596824827873774644489263264756257033429334460026104061180065954694620421558348079434187893527477394975990260048155665370167297537903849911384520240971659258978020517385874404513214748775914538281572894764736558063341982770160061734908972265344974182682924820675269735930050543353940445789885888338664122842511433721545081269146285213784607474873943328507017997128482608271975563060071468204846843430948329214191809048945755177805368167532251703452078308447165174163005792465107842377142845892506538766236539956086425794622378253387533906097679739408432824822324235701201850176448898864482502208100304082577596162045312725520211565167310588888534211951821844515567613646029984956315192360860710718965010904580539693295365778275044473993825512443535211119822500867216354411179643450262388523984968261309026988524260682574490079989142837603171047571829832321307411283065742119958925036633778781325543394947794457802238868625315732542496402934919357208549109123893752707867617653414210377540890898086309968372159868242989717076419839542459601001356003800154330762146840875081806635176161146899563128932599018512788538980502236433004604385696362297314061626155017718440890133811785509432921387344230340036687627620733425839304881022307972364358195204690174684517577032927113824868381785329075739238754700590387398815791774783283895074764402423502218570244600728988069346539854338838804116787742828470915391174990200964319595310700767484582459066044057237224668367568907732818340785707340268160523550165797822822243170795232860337877232594617943048620957847400902014877452189661598293337173222888991103486266924346857578559663959051595148734652063290806070715207934595012968720173801319787476356026353913995434456918642844518414993258170037863657088355695233900454324936598800917807213673426870702998224518257267242322922006317338032557433871969731914695034562391998703849292932576429784845726097157182450653860319088198081956620101132633251740120377977890499533526462113828474093892134420489974175482587703041795242704967974190738081129617056456262843173194431471430877575673758193959325956936667146631557443738381041019085788479119471561982996647909930345249658313815997980153167700465326144909418213028930334699407745481851875828087797962831032662808180031105713695301899984068208099423171091627920963466082913773061587878766541694013755937022285744467839820464992143191383581324558434743611372894526384731462844124570564310319029473342389562434466545312553401360086113912418501310733127813302789353940403818826025299243688112310893372589454571830591760127945949286547543578304127013286517175310709219409091142008440575278573277355484506326018382540259603598543969379560370748023714420087965316091670200087801025014282441039309708612553505724873855101725795276522572846002179755494442291709657978908595109562237358735846335726421794029728361532126520466420119108233421518946677767162714885953632372434862469317277352958767647235491905824009141895176126429803337355552849555062565999716620064203565814501058698199374985434116163535366271845999509164064128961336373654800888601729944442082026163924631458678131096554397963905397511390300926723133525289984821297701163008624111405692865159459048599422427555542524454259878680150784361374120825661293141979397309539597693732911695394278287840854431359717728767290678503066792438790361331299120302619447059017229688856355862998174582204288413864634627494381458757420069950087089255039824992079566206856749584826461661958970342604547415639522287563177991733434575193625467573973118100128568057183797371102586695602300853375444489492027143819619220868339085645928456800975511835493542032972149101604875746742181252960850780600744370835231487516901500777768890167864808129971076318732115187581978925094213443814522066440007404079234196916248466531787193726797949367898351622943870796161541667597060415264355464438366251273229696147662214745028688925778647842578720889794671753174670081930074825383853966681900808510845186521145527650068106300866636457461264030631674212562203863709832367396986260598653216547936632471683690323729132824751687548320248471928945511030659144903946742543323871504063544482468397426284124809008757393968393954940210075998605494358218848493753341254255317378414359993942740741829406700368614908533651923103860096222942449509210469315879972150077227073131894253208276880919612478584641369735868500018069947376636945402779590229971785802475499733335589130623440193119422196486395603006439768755161517399222542997300125163169776662442894022574298705480659183475264240112753115510757989814341720780497991650516498755318695937944154847451232086939903417187394360816995433981385658607673073463050625602030066271094987692822307670469050026181456559418348963890762031160172021460206768001568938642526566691715123513080492563076933452142050349926326113100911281065729632084413530529191559982427114599258394127744229461975965864191091055956728315409748309644924088918348479358676355796772947001906816107068788174625394344700896437354966615167800944407218590319534420015974104634449896167944575893395419625024555394954411699134509195101181535435894882033364696721637449532548794336560635282306926361213852416099343102620665192095231820879028071171516685829932676994677437633820356298912102155968540962060607221056982626828592192124358889128804180378419018473724745846503291614901850492857254323190532768058612506113823592966215790683149602027454491917706084974062464251782295022304100032902767756390425696862302219543672705220356230484771666928795229013848768329608607555590122890049703496493982323748972094790895452187074419212434858378273538947850264518499374551528312970631267584607125467907330198879605090998715441593974132348139844070728640383233606224719416818550574292595723145077154807628254986031008482356229328904020620643673666428408165748907915794296837553104140066352186872679296499862845327260453301038643898344388412365564615284160470970081068922513184624098405560390342038968427141875621349637731968034556725403387314896762118108061953335728985677034455555678313694901516504191075722992631654449240226148986472111933684707135923012577292002828638218260584164864377867073919157223846099272161037991079103287653779628122260401589809869868632002783944003627490842132508978134269051031423005993375847114214046910567620206938955431272731612713215518128034046137292519642439950066003076655369892602693682706692781125407712136808945985105699727251846703271035743931775054944395111229670922842257343589274134373246506494049847371699825640538433349865281897826915329835599124184659042448127327938403423481661006612580629843326488243070648843084049751422607510588735990946727076123551809077999325665902264019951700444529525561910235321577904826712698324377884810602660815830201921174867783080737346760125129415224186435617546794841010342320952692618923383414917677866535779716442151594751111773618491009319445387504206147159582455964444717680922987688869780180037419868946551015149555329854977505197441175263661264662259262628776939251459287491833895990289464131883065418521194047843778256334138314886038468048977409208513207837467185874512381571327523243288674694482755577377980812233540663419286964606171278938811341242543118400662996315270218447700110466762313682160493350465050785223054698069815393920941093648672113462245678954885945765490800322291403131545008718402389363312271645284340159871062321117361990604982115435326888308163430404656809346044235077593113030771088247158066305587370074568059285468301512296719709052634181641096703890307714065152400629606407839254769684212018053264380368520762691412290714120582469071343889831155731992430026089645710077608384153664779188506007658770000078545492109129643316057212898399643794918618754772484096585286157484876237988078836539312019801791782998991107512791082387181636999188782495345841717343479009969966251439667745589215478227600545629780417226567222236773912926884246601282550955215465808450052692608470230017627354496740559219750845914487008278539083041177194186653044256209102106986705766446179580240343331418010556236495635885123400246185344962950973357812644462272513360959201229903048972331556340854016998655977083356318904360383163548348899512838310346810274420867415502488486967685638141369910148679451070453251769866845378983210152808709463297315987796300455485572116026819213699064778914834790821532114732974672194568767105968420969216248172043073000874039865492168023261572990103361620962534242656729312253165579404909675524031552894384010811331353851156109313598493006234395315657362191258201989583172790097515970210252543706210525301935938420292297966230399911487383264608224183643304795147067703725762404908349816524550196394231742189079337130177293346066021242592703645506064749375157040672692822538067917027698112161417529272842465387104116507895765845231236437480192373328580991962554492039338144569700333216796093804580088174203978819697802568829100132906657948763354435802517712192679196772021674767859774419429624051953389997753558320350317402336642997114557858815222255297942897871084001916892946837775992324817060825127600812274414061388226282837330519853806664293494654874104654659022913547513384214125793581621316033857769853493687155181741065495812184822728071421679056757935234351935063409782110623124035643095009095796705207945448509891740697749658951746916784236662091153339222817243890520206987710389744511240043571942210992188257555140122864184408581930905714560907711632620398490905456025279365148596523644031123383890793683640668707676389166221968716191051274597632941508029242629500644770776553953957621531797942013151770036127870743574314895348766528444344149016205297586111453210299704853637600146608789568873297525212065427268416801537617579902273577918127928465396898285762865824732737611605166690317004643377003813590568533217435774217507341428423915946760629455046810514541691173996900502909870454274851955392326339226738742983017010722939531019704103266049355677411009219542744413386082890859844139324250500864833900768974176206693298323757401201065912758572635367283762141601416122791398741481309729162808147807478156817610021387549116218666010530947760681624471575945965515300296829881730153630387381702230667753879200490556502140234227912002763213397346730954982563570991614557510558674676079479400384801127039855956289144221237751962548979807526723784717679377606458459528818444128007675259571555985476829466582464555592491970082448396604471220427803312321948053446289018484399883319732228086249227861344191094026740959953433931158882211303452928834543282871788667385357465139878073395341629839551813487192595958721423659976757782120879654191042967313321695682777247985847416562022716425751388768623974215603989942829945935240820599205645039139526759302386127626716623516179765121702381816273597838996242280170933195645977381422538049969719890923395197680688583007896141881049978502538072472754477632939719886581300803918908847950689028383240042662974191579824942624824289700973907321737768991571587034037816728654996649415717822522247834372419527764083853188695943028796388666146771304248050274097326050077209656498435680321479618540560979515563449116917272394010653013770284373107323870472692985328106083355938985107545689119003615670992114333741370844298864002917060291565859211277661252553745983206320775123401871930755335413633078860640754367683722619779473865510803797590517899687037459993247254491208113264962652377774353482322917776347496698946211183642949197756745939496266460115985360990653573789148187043690135971246660346809500617573479047790191216289083493133924504190297707726637691975167801990705697055489215650317093909844769205890188742519279094617637288989206617399667057621033948035463153145468196975353111393612972433809056063618646677376946886626149780790198103203562229644312535457360027009936273386884188036493340657293662647359166662279737688635079261677839389660575812729037715887525602556239823158584494780826984885158559673702377063158086672858608551708472431963159333068846491718143229494858968986483737178295263450468764204278631550112901573273845304945467688787047476845687825973053761133707712138946165002695326111016520804385358498202393785154282338047510229393513797043385619206548216326116693956871645905448770087354288026869626978248886518743735832930263177655773310331709223597392599500879476960255865317221892301750474814610557752559729103243626829745034320650409174305275576715769880738320555496521616178707395280958425144496774220924358952703055678531530562192878698580968705220098152667364371159376632686138776102080531591612809614252560109708414801455722653338954514074183644333785514957734572589462768484470043691985883015021048356114697845204084380193447830902458490765798730795493429345809817101447310089390237848243805810569288699001490955467532344540932027875921735884503427613492693812914369088157804726145622192784214644843058259934639921969912739789795392495301161271737356659567465819234321073556291259186500175421182358346954545099003230160461949573648523631579410162177458949814617794359654483776792300484939368586696821050345906043151681112637354407048344120331623637579313036076508123903663177574300354973913557617094635636529175136938360547049813606019162981656855010145525062445294885294081920522736134647734658874394673178511532128520606812408707923065035769186370667439638806446210127287631586814611730855004234573313470972679074522504286419016621806822244422210864814577941975530161962640864128410173000077723506464247750309487132382833873289896422259980233484876847463414499365993201238918689238255731210793523401638237538729336976585117070436901875111724848674951226266339339825780253039231531431996150256790439527299055552232939254643703042099158962565461694834929532092395874953213413691273726901931427404689377360347576705710193993956334958345738166633213644416620185193497973210598782776438344419235844379067266886828641677362875331386756213325689052756068795218707236448873970938423694486936778258517116170990088611814205894702582439296782270820422110815797835398946283903298824194696461808107588888913967259213248697807457114136257383250901777807268150643655122455373806519971511084942292521242174076280852180420607539461386209661273915158708954716395051105622305574901824677974386592900592704149715020330483034980394629860033864506704426146272751762298842070184968558394032064783685666334701330891429041966696536728334091976361215578564861584171115947581075043466119658874314395207563291646213735475639457868333477035654072226767405114914685245959204448219939549639025509867233543419589782886058186928420669273209454451846699795047233886833568631036015882253307635812763779919437192580645304928824962984434961497385720102883564312754681940988054914719181085229980787036684351786604593040709388616750784593550188284972645579501427099961484322877788189798502503375369051580637575887155213062493374956696296589946438294792675628701031817801595555283305009636829506819139649979783512825091777785289431532172676039767834475368272917966852304707601844072735420096329969781867836049790460416514570962180443405177040415346028150813042592015539719804985472364238311751897510339708390593900460606646703821350617641868461652575603380786717303625627109557962436304116604487172206775310666275713098041192142910295404118577349480137336997880817460198345982621713186158623335660563323783762551158685838054946016840135969099289532192256944435764265254532058570801810420673482312714023892175488557579280330485520263688155731197553849927586532232859431460164003489000106689650325313056053966366353527374948059739141673447727978931310141486972911816794106997188592147870112157172560234335094594941336511775754055228735345377910928326691799683643909979865025797029892630063703062947208338164372058478447694850869458234399098077054290519240255294049797676999134698921718934931434552693980165114123955350846135575750251925609388610116575062396949484681764370013434899181421617991354100992922658164089108130243186620164623313804624146086883936050897083663876792033247629435280812737915930595358066418181073017552253175103631013849143563579530172440301087242012009400106457346077068009303267929307498895870893964335983716106807588597714637003761770791042440133356427188756678509197756481001693831068438842665000629870181080210106114124814772174512586598301683779828941037526715369337493662651284488939777944134282833890367475547807924180947094784455478675947057706763429691535493238898159965451707458634360041043736650465557779959931348954203714699290498333708689275853166769087312151635073488420900649170613079831136904228951592309985229667639059698200821331877210406893956686734593785535470110324755530418863299164396750589167312566098179239386798853988464077915991341101603475452997056105669151553183976992732621759655014564283827580348970335295798932845630534560910828766328771119388873413140879351363178758990047694448119144765279348063715701871790955362179407057639333791817013579566286941105456624197197307527003152022262217436490754414683469760041601000437921913397831956016889448569676569057105991150037288908911992117514584642390226025142012165312863710625745792052444428621783674688874025510729027346945678168247493716525847630797421181719460890402140788022694126396917588304287682181050176857054371137902907105515533875147796438249807967840002374191603131521193101162011423508722606218360710913503196696588244156599965906545198894483210216060630681292405695269277869365154364782642872077770303061752728551674837534269323014872239667248325490719455174319031768243418719485213857526655778122545375472862018101809444402406726448526699655498093517403108696939948615751174468928129889217609453048478370135625631565065443972956249954359760128020123761946591266018406517467867646074194016688689667401959457442146087558333957543877185531287413808014573436476904273610697560784091364941976206676986074242617687308247099230719116452720392266660210115672362914502504705908008561886986902145998808572581127627143383524868090675525345877840283912507395809893011098466972045148243182997334723579417983983605260442974135458638148389999649683781864932946436256958445440335694702107037473727899101800111631060051110905283315795809904238362101439217431251966192672433980022202783863108195849729918477454393447369048104610233880526113120537173794598128352163877424678842015704777700757708325440592618647878878629880239776149685499371977941954560232438354332230034523979681503541227366834364129396515005545455378928981880941578805545017235003217754107051656625812162200061863932672981046240572467684802285303269864699208786903629124803115140304740978816138479601913601633939425088696180140201432904371112305056213637515520827286640655901110349194894363363909340855241776187427120797427880233012360431173173894487471219985092063076394019155664492178723981675962578589923707745677584805766924674161445814473792576976025584301867322251823626026063544479316619469028174881588764534032636101624415786143099644916797951376063016547587288080488905137180797465752589045769050858512752042930592773332135372856479076625857088109846926068298387844826141061967279399562780457447360174420076019449153775843247515597811830475478669821583596347837519584795334450545107459003276826876109265709997268136203175263910427712367646349820984557805761928420750577958857252635739845254805067248892685543978084511088395217172380927510346587067101643227508953996144660325561834742815618940734658571110167190226479624206671131591629974240905359674925249862470110549145270842885887165355854145958097243804165858671758429602723222030087446329305423964793584088099823117278026861328761126193678421266200193132047425879774564514504140438396344335554795009493710563747992905545565874650470557509960372434224264452057986665635297461485601820295920247407258441373818845300054290728054560687173521811156863774724181544982118082318399406991140200634594868860540423161133877571685409913265686394054459292235605623160804660529751076724971146313119303113516786144654697964855645172603445540922278790986855205246547569654255792926719265804905992107045826295220816508515958328982939689593766630245533587590626676626380771470291722388397005249986073442682597355201912084451251402958348003382621570162736717239850442000679749055470698523627913384561320501491058915879276185295532961559698718379013628584801224424564750677890504830970789713329278947390485324530236587707283160202135266218999271547036819723861808868148975589788603805468597571441512246387020610913091222142948546452651847399837148326936158400340140417548010444850022309934999109340695802283854625707986922074307420314251633375256848934137188854177633890619853733074910277741672071683296776178434430797430848017920961452958084285878204663510350576357332985775098083714006539025170737979838595330531744358878782173413470381771327928001405004826628353942982232418793445429035323847223799377029526015580474385243915557967736511748109733264811824517536412812459694203085580165669444561187941138436749491357840178404482317056646574913993724459822694670077192782110136800100127469869072348328605390306902655983883990740286344372658858348476607958982157007602056853806487212669895261364923875847786920787328232713555121970513165212472262060199219587358479702545792192177013096293577405615896931480409940001150230574248459062508893720849896226770545438836352711217933897301374494836225942764410262250880946837883258019694885438085552111068900234699043311893517290101825071456697028393679252386684150519900130498174946623330900631594212867237913327036330086817833829611680914018663972448531404206773212771085045123267953259933020369753112701212788373767338925802070157819966284289285989586312602485795666546047504148773387790868387323745077327613257849715050686052321938506244072872200466999874586137934179886523226181399213136041773572731409116229394256868410394082526990951830330512341085821514868965650322189126808842090441484094851427971257064831731242035532502022528483346993265307345556297214074320113681410151629001262062515784310212276273361754594256036271797690140452778082305866809591322183918066187342879422024669726609601963894676514518562040773187208759255379684858557535197346386534592861866878657948983203670418798946343789184535652611217743062823592793541856403688367643169233855671209488019309462462538842959945921983068329927907983168662524891892342514807459298007703487826283154300042726719085701218973877420856132676617679301982779185989617538806843487396551038911397893999900737313232007832461972647087007606812859316070722727125396949566623078968218738166539027648500977377343608736394234975812139007713407638712480491040508740385112428835687205326035738448540864299643845948612731347126939244891599229682288916526174940170822818708631380462401430877308363575867940855747605144971958445486828351788946930398402762652584215436528530563700474392815498560070140450449978914412401588006693670522911508796797079654259911176590592776076358549074222731450001710695853225603378841565794003657164206684260514721442317550561925430688863969329157061238698784356426336132259175829505501596605039460321233315767826246875452622254050777031852619146388861823914378196333326161083680000597269886517630921781069807060832379790672809083974137418772011129547268341611732660006175970346547146848562127933045241125739694571136052130200709684097616849501528539045657246868973860276875027063127447566763731156377426426788042197280711849942010845155036880837610215273571919662917425404575600592634061026027315511623655872366561209238551406967219544474697811529876813815598609179974016020622898449629611312391642056367760258460079767644434119326067693096144556270018219025050228465275240459580487283150517739048028813705270604633326730084230143149602625903548124193524368336495069762173130517391354644818081068944491965832497110885117996869232584479528556052727211984188958005459677090221348101863702293612838377474127991852608195286159576340193740958884509929161610245679931757109485569156733246897163259371378740836394095917369616740885633329227349681593316979267769494968944430049007090236527048516124582994701661872071546543761043226381020260171471159328457973219756089686534665631478315294023124359388875814341533947378763273492026856703498416444770716056922321516667347555289553782251479243926679637924890891285842804880072000420451981452874213352314959357456956833240845360503312708199229277848379088894957211098309655797724125278327446417937446407352784051553883145421210592392806972904281825653517535257664179391498023991300955157360958618554220584215627817233102092674574568132938127829349567954644431081921778073504817684352498850588511272924943336597521134146127371549764485720224326334425224773391523629154437807343510608709841636471717244870655163524159208140106667102915120640283337457554925195140589001990909178956002924050660235327836055835636952646394317521726879558787763969870312892450450518372467478890190092619141261578974523843275276060814225224135558214898143565453392783139851572142416353568864791300089074608762686688352000996213879513128308715603895985694142821961008676660345816521431477563712369595232619351806466808085778244137999580819454970246735883006029934676584495076904768641102886053022286147144655368834942329564013339452873577204249802871534507182281659760719866195138209295758009587199650021188816967507844940785485013097646907318203299656913131119054499985189705917786915205378398603169834425975015907295171182202387435332374899015861485160513425545387664386716643010304479806973339670828164112992017232676079393013207948890300234348270953195363556570046916859395863176336615547580409241424311504240250181006048969132751752290675638577252018796327003759242558300017630195833879984112486825003689546589045309959431804107198473293818944953211142915093964124188600185454594665504726337807130152117785298841583498895766528289634476520611477056753553968094905919395401582463050650165810446030013087279936300991331270085977410647770572492535757034387133317359983896271623721720652316446763051363478382967205667644159527734758456740765320773956009844538118717447935388634868330604641808543809187513440147926946736860152696916893111183377426118370896250540796426338358357485545833622825791368288383169816807756336950960152323942857210452964590964240846937767636921591939034404503246716338020613718440386088623461577112591564316272710289722362494729303415534112416066932080394065819652011965335376731480099639265192725448496160062873830999980416408083795433171132289304341274315773919804799029253936599871628661391667924204030260440260726028706381344057004757030497781057832350833011174124924976741856984535216522705798572007843370881562828860217361135349607048602661188047092693234825411459550344561601031704992974535624953183694958299489224629162228633970588633019314391376888313963628573921629828879209787732938673483714267799899201546494254541356379851821542578243786969020873895631541586670620516837254874238990342097721837569976330861170628631358958788253629843652272808749574242194691951818380472114125394540784997140686735052578258452794876095553778764809802152564550027801765092742288054106755895190068839003622530638541663627832180680149752408530309888761171268608393197193916358125752336463512371270624814408561320301713326260837737751357961743413522629775415127580102731894115692514902086355739943841997299695583388491439362478276233392894153437210086301492982457540040300237143115742559412841955163502226909053940753401774399020948889776790753427673245012581753766224467025594280131139017118878902704308350722485997980892961350718028426647293731996153235249064700888890614241181010013272556752345823772490391297151232135342035482744497767728395059904952065524145254095508329330946880870997068935550339272026240273882990516349306718005732199345235114162846952593500556339527027923980312326392369218918348303181438888112360046398826583956432795708185196249088190234523348385548347965175715692577116194463355077165775324999867119535056501052788870235865253457512638323025995581658347919886937129035764512899050042116405620041609252689850002644485405590954410601446562596347739738016266460760991253835638268533012022781571596222094846189006103098082094653899578305449006518154782767806114490615071368184202943141039201443416078855430808358843024110139152553071681725665145479822737590607414234767359513221361366168499405364907162145604796673318709657636847449265644776702161435610537221538758383724032055069533791148149393786343987475715925117960000229688720014291228361901274780805650125987405125994331757471332894467521866598961144185888137647865148201672899799053176350717413766256028124745381562103199548925834320001103296880230152725666520988230095937715640974677166262772984449931236397453990806108936468354456006999042402139892650325488087469499408932675464583729690376591804779246842265710442760114535474961791618929609497467615360920728219700144898031081531599436737609768720475116086733789744854975320667151809846913196875319973986628273576136965504891146987403378619850857871731066635121275180551505937578643775252980664951075046165331459659729315808792688196755724821982758515103750091733864931487467129241500743054674547205475658738244037536170437800393516664616201346907253635097645704607615326179895614176140501212872976311241524348814162473496674135981423811211280998908152977691266322438923316244713369469149869522173831824636723939229525018333365408687378345424449984132115875160007142800301158112167646036210958849523067563870131563849478929700755382991093501246562815697150514338012007592114987286715565027458522546155342515164675599677081072604732040504998380193552524814357051566248407942624298887618541421940408581352625859288874403072675022914329738567542065556183384389333746465331629557819113220508269557447720793442969201425773704740035825838316371865119729541175074359192695181168314223373196124773766263076856359847971216288661736465946005500941956532738277059147139330607077709387052119738580544358279348622982199901692523944471323227190745700147688394267157861918372327656174163265484808629380796112084064623377100171169937908044628480199950305055832301257712505471172845509387828422733506853614185850575721149163531949925352661162348817911607673221737730800576188884320783018446876135367852102841086159622085283877384677160886517387101177615562633836117097659754745949013917952387556941567235878742335286119771503087892683890693774220170397496352936692208323881321378875135051042020306718675835996813805649301143639594990579244971641233461087844741940887623690896742774174465457970039090921750944448601689858783040862698305812929104189807510453394514110627707440948061915560399832156527735332593491324918174061416659686517088935083826783981393193288247188972853216942353739364747094842621160530803364992384784107883439500247977186691495912548946664814118385525589637608221256075832572258194393961581176515756470129685080069148269322361346593411149178258945719430977186833301090373381894461456093711210400605949277889602180678684196532162132394317175410120595545299495718070150494252125076960599424163161471559935135870519683485089663000497884949288226768657431525404396558022051003565165133786161115493243727244107139370204490285664497557695916911669185327767711594274949184784687469105989744026297556113133897909291320623235241201450110551990833167414331366969137779889266900631582840689275857721245032629111823933689784921068373203339690308984222050272364296670641511295222569979683934204748057248870379098556775839296789506539495311638263629809899578960514613955416183797847927053212445647060360967040675278220098432522146502419285428533372662541852722390660216374440655447284601338897720339802883929364702099505068008448706553019568979661094226775143501923095193065609201587038267559121332867723818843788345036105932740286072948331206652391559801058296168282155683648593176088990457233813019249962251696483655545874741510962470730161223316214040246065661874482976153674438876131104793185026413081524674351446372289329766366041532440871968931562201343928585994493014671627873290423684177088284995820376693585061323178651226428139430354142444166817104865003523718054462849208804633156666978233597300223538148927013269162334415534447483146202348785416601312780031011762151769203891982068405740051289396060899348598464552028456381750332003549227725589342752260966131786373642883680576433749001970497677825110326298781712806519886483645199127770968470416330263368942746531255184863027487841210302783184193408069786218529587906533167806797686835236809741965132665681462666404943065648906710553737443292385451587967822049359135237387156536079014325123759920969176624340976939763704685493057484731644520111375245339470088045016916862242225788235951520152379862235489218325820042524534634191176970743922380951136494769336896847524027904155009665932277067544544773888970192393945263105392927235864910328847640210741970988951478025485931932046142843719486986683997407084394881000085421508143310031233603947668767816710447819998179259646435134413928624268746825981133034733332680171315473244697746355025526042266525351686358848085555089215811175491330144085558705850345983690970706346181902983523591830536869270937612554683261907655578561512311851452075016777522869327904687865925036426010338767595640234177129549013771994615282549645584560946059965213480956137346066559761706889056722962748073519972959071833783939121483732318143501681101982575174219606965949179590709646489613085527763002812289663626026809362119268696333903762005447728824756459194740294718154772909372995076118844595329528393696469128209833088834964976602878842032066931401020339354867381281203347555485405051808194928966843579121022964980936897377678639642408325281670750025574744944867092161531057956848283759254464933104081111056972232980226984604222977885021644346788557431648256429789065585708463256051823970034952467270158258658108652693025309997030963463206044425567960632534392686020443529080242602344714338453583696566647016821803363836973141910681753124484193943086724510299991964676572019188806084571892459246548111927635003122920310129901254731614984426061974094070098440589671614377624087706196238440772752962704551742865265282235161492589791249681713097562987542587844097683090874728891778488766273191275308241354797753644842950637182543157252902847497107628059290849961909433487379211658700460373342223578267315876252991995799224283805417904087883543187286958360245161043695560705112379766742830101363797883948353756531783848008789615293347248599240383925465938143884036662592938249704939568421837434999899607780787196996141147473393837063050309198923419498532361976614456896661363821495524076195408932665147896618220205324080713926573968493448039118616235458512887005317385330790529487177164802248771755728912111584744924815799924507399513192061451461424300055567396091151426587828870675052798559406709141700056242314780556479748559440916952022832113919800962368393244150155929797739389792851043629582037029442520816688539675426797746765805979287575380941902697364622712953475449838099610865087998756734022670444667292928217800998466351459590151758149943849704894516085124912080028764290816709852225877618959225566668159519086831655556381596393293546338438353014099695354442098604211432055423597936807207221700305988409059156216842637346433261554063175305789299401029066416536383284036423647142028683244419935898831179435051639835982790790594823231234085286079863942215437557172699630957386608197123176577151465332505779567187322394117454076089148953647868799663861007578577145108630204542115607878512424418870788436373123848454373015456591217271352233168590781048976077166644111403284831164880353077349626802050366600869296835566802955036276374269556149582328129560396997460360273311393989026521866082850015155978963038111064288231064486415023309240669071259052335488588486563867384291902109460734644013647516058138041395499889683283082809990985949339134862104992374036045979358076253796363929966890265008042985772730343808867891168793143069765011351937131848965681172583822677351603387573819065098551396621266745647930208256377827201811437415429602853767705438900581253787487435587675579010389094758006974392754805659237861166043912661614773560257891970168011462472814384241758349517837539832181071226672780120772132664024972592874904996561474653348255073924596408976673953759643315675126440951927341121050121574288288208935515465409110412408829432901463952683856475125615995343624029855514425417554991616319951324340177655726625356473945020098694523740792464596771765700187273959576684479136576536395489596778840205863625631401752292618187984192758164079493108258629040725575929393141566595284617291201576708643999979873574659127329532690183385668459480056951934622228263829304819595898779968035800249203409788886002803816634512158949607636535970010130341788679899402192903596654889503046083734101155779027288300543060931493869788631759472180464873065390005197057400009922921600937443631734885777235240179505805596871894235488431448559420845388721826017573088542551908829325518322281641596275909869590912932895164271619423012801031449352861087481497152042993808944444373073980788267992715801484070573375798557429759642242448277976717811546970354789022553042027510363768696170218532705192046977955545366147680675953503098988945284841321893978757663317512498384928898839925162576890312443371697313190735891508791236114485011922879691274205447914252010241274716816868404327064860711638051970718104332385098359390494584804889607138538406262721244906480651061647391201898920735844543066857509289068854295656200552346473952005704815261729647486534319195888540222860616842197567492454002161805893026016749218455609929648698287852141812373225207727566850826679889788037111601524737531649793314175315100161699250524856791549401961001407325022470413403614973921408808737667920221886821869522225437083093676292009158987294806739846593740238427229567452461238086646313830658298731218230339615337213111987093720943675917680491799778900354961206708224669837396747684506885373234543361545603225163609751068708099285463301100823476918766299569824985609921039025503535238732514703931801908403286930753160828381268223649307664527928007824532199057027791298006260186579172540013474753712958481638551141307279081907005224010927921810783500644682982765008645753211326927861916930599025171007347485372255531068477917263824286199967689142243130015284516128809418095648025403248231272043997134507265854021200116318944379733487183605166533344693311176819221289317377083370994595177471188326649440918297252893609829078917174760691038813803121364805347637456950410367242885447160699916860994326289587343968049096534778301460459238668215768978475346151056678749746509395313721917801570294216474541468414380960137421091610775357355800640243839881085196864237514029914599686456963506131709009996744682982020989839997584215400961091618732980860201822871144735086359604126049642799810180811788140190643861618900220448080712809416650029045159592233889523604888120846085797427166778212366888782722378865276687960897931673990249636425763402906585211964838091340176048820900587372378949434032599764438529492782139281200458805049214784772933526277196186101860573090303208469262535203482118135590087176173576080081028073625140583244516410775445081130356003416532598374572569354785962374649413216639478142444119043773155257836240568578661202992337807049116438687383880348726233226227245476102224961012743265720478904756781161910955028706315835039314983203670376299728194243845162167816783861555130191615367683885784419558629752353616165918718084462684068120548266651439905278781048509208322210348711265014970157960263033068054808253713122239046842236858306391431644216377917857411528729937305357870926652095704378237046507591389989562119742621906414991907238278020114237397273426817137374751376471263411736920625807586471763943857031562356336442147688624386570180489797468456280390788110248132284012367050691361460203162313209710311999641071096142458836605762847404993854903208604295768179508942192237674020885771363886457509682037085087457345029494928890145532516133600711273970796454877304006241444758896596385460172993951035166687441981635543428311889898330393103151617481805776668100173277895220312564844250280858704900930667681150336190977287654258622726130914979215153342977042387542574619331265232429091847236417513843107757190757392168277407592720227287556300375728789032851426815855032718870543832426820791873093732641972307725349032137023502678160943815110154976295578518501138556882621977505959958090274740158998235692611395481592411240118592109091766560533559529179063674050867471407617028910765614120431121939118037542068775371100674094353974645817218463108158704860008194975810452150333460827873125896683019454712646072438536182812587661749420324803568968672375755662963582629677079507887696696681801181561367712316031083158018469758703886625972242172422878183738285903848415995521364608364756851908345544943578203798959922276569098725599104271125098789818578276021853566617923191357825938949422506615808593505021295192793257602279987206746908909544173722776117629983623332330889260022720937182093542285134092530890390719707027717263560300341089443950680592666427175530270741418490304182388430453815969882237324694383326273985240900371232709170051231529139232191290677489308828039880998906618269756695024446102307451796657080407843274555788159400423372003797229691024157763339616472425964087922374624328637533743423130715180315220499357978184114213949373631425820418492107543198463700202540253488746015572049470324734211301966504690350923917227213620780468502339635323413194998982364564080278928105798870136304637746301846744681847460959243205757911711328365964456085397095475741120208311598121274260200980126266797148141705060590622589829472816960014590623449576754286520151394204929177005866856037188181590047905986838976757951752939838138387203874755967627981788859211698838125469261286927638032357523285919123102968775316697569867840407390796027238225599388558034387239065723190413614217303404224237249199612495064868188012746397453136372394269058702475309520470869041640776752702037494565808397304526910867803543895472414038528348207717202180673338560464457509497061868746100412058284987367222383085276685548236738220311751893939010576339703960227209672446671402439358891851010254214316081862945142161903862159620181774009737613522331768621593479645852563339636766188688912499646418410385118930820051859677150509760677125308728642418504533868776446638489565858323185618429470456466262156573282087000501956135066296968636664507430568102798900776087782930841311429040514054653874325573930342616431299487342017141028119487808087199721921096577938580553812751847440517610780694933840064055310663972474227478010954615126664554160693030726103629265081108157769188088171510563506253133760515713839964492319510634014893128731211440058020844429314943233652160588564308681013631752145493118961284098197572834657944053444900929963051898051790477868523915918684373340267464494390943238550327565411377515462486591720444969720879970688318897150526961294143399335240115592063990209690779909722430579859618237769782306320764449100722329911672501590494983606483711231095387185182022280801568355897436862242155586707985977570649420326236157692591538622621348105387234619774012202901272817382645155743797832971466865192648963888596233993071434124701094316471834031649600858900901448716512162761605242039996852389325022948544255499271322018296467095452448808808023431563471200961696478028393448109731263797795528119246920894655089812787155691051134597951937102952632616096830087884447479200972784998216575095867870483852313781869996817525563459633196925962126879903748372067554750701455792934364537123525701682687644866015294893855341303566486781715401297595269271544393452671191228406408060418583855012312674187439050972169958586586184693994631299711102412812970197450516408008855192183899000100923387076454442233142537410637676666956956175608628395847519359430894571061028179614712127226929961186762688593439324938325551183712607676021088851419286778628201211326651754328611782052400937165939857466148079868196781517921409602897720032208677982423812450866018799305973219978418106292985360053923361759589681935904234041260075057710373239389556423643132371153075933195424699788998722899610966546520570191850486575428079792004932407641265462652805023961266805333263434026568799108154715818362131115634619553056219669010966631421900190437618688228823732700167698756485811852725052843542567125902676062731623882018621526636095206743962958675074624496069247004581230474719595345200293297756618070747894796731584138556387815876158713833148734081562018930586733050933362914693756467529928295165494883889668990262865513187724390171921096001537543704933023040932847528752454301273645463717176431319181283537584475309962369297305291309042149614040958595927857367699696275990085332762027283319404426484310271853750061245548651624766192791462738413984396087798835662978828192826845378826395230647509968073277162619026826934961512876573181908493809485456584152658041681016284942030710869077618991799124340708235353268945534992896815710192221301727126623335226410203301436663100411191646087539498511972491866016937923822978785084145918728289460117214829588933651505099479239832720579266865722735205234655061988284852173252385673326097408012599721035055015787979933251051382791298597033699269490851917773829710583395127732313132751788821726237259092347383828690885180303447590788579069848845824561530251833555477267748201777041254993186045113382903476984186008078625158391042487975487204461109243408727807387470994551394836950178463937432344179463365834773115367619564571332953571441254961426465982857479628914501943302383920059290699390422351521673503578154465035791609780459046261216642731147538844949484626415684229872210680762766541321668363700581662504871351980523712791301126842720091936252834392769260247635264522093076391943016068964764297018705162332838817997417981931236486462173152675020765279976256037151711240311379601181277277767602612801858686178428685613274865868586114633818249727228234979024116865661841879129560868338463953590783262312558973612916942579596092245861593860909781426175866841263565260722228339786723562214017226958272139562587599913913643901342020179550059668416774011027019508244191848380289096643632956173426081300064589183995448381326245007925586062921164164016863199268970390009200111054271752577568365029337088285263323448428659191866427099444505104624416091606055311646082721793250577716146223432614330463115120908303438399016158040643892457719351130903520668989534199043303172365677357885066149013276456583130143344137359342410942744392938225537264276828726131876545335242311733395411601004812634993342470703441384664210633801934824300755031208632345909332234517460278303466968984431293147496128777775487131953887648928990848068452064207488631350261185687407862539280938829979027230767727909739799952816869581909042661550861392595871361172679134355207770374021559927943777147878865615954588388047673329430835917547585367327480991813134938120859018764397460047548513286630250981798759351532994327229402554856696671622103152964087607643299754402677419545994901140043621502151804575135879394376766679496038658748913712303927141324448106340051649982171505292204924074749984710423904758915984660679636709975297390221750580352556887761277664383939839314971589808005978547496348232790973601728250173938753549821533814127623763203625805466621483641587545740959456605321869915415324548964949081826537091176203523481843200419340437091023723201642109923817667040693091207070395869100772611450490585154749732550229558317741126229170105266902366359047137087565806352884859487653345530318608489126997388642573133785536733025617811215761788348000537753390130906120028962780572709857325514160546648809214673463607344404963350053719784833498516888015130496502722422052374590916341439415611206955674312826362729163271839372165470795312922488653523660454164870400179567351934920371613238720933797999463451408116550382112722407965161335790908371377805075288369755449929784693725535077901789595011648160648659750855663288356414820889937906184779760137626796133533081661214262741509506329570951759351150299792031539180913536069486766929160582020671265441755068022371637748533980861799234645251423398780152045482144093491938348882964670012063400989601516756136273725047051068252155587304692481527657588297488927051616448191247837973096388088910359508523686478313832185274289884912003758203861208427609277981595141036080027435157889772123368155876676532101630900057151696158340602754624545858458414368061630486890284113408736893408373289031149573757871221723908159899270003945726926935657056732393574208839274599574890808895161982092808141321592795155351706928546606159703741314478396146457682645231562905775025965280955264322881154795959348605843586664403304437876998384931423636648463050315506537725596876102244394340350155157484990679246851256503814559016206190194361186899906936062657990721797661227069167342722359440708803879083778154740445261748867031989406074083191995983810292344470374045908156019578139571039894724446123731773126045235138617774003028064407090808801817488243327723332963301044198995124101447700757718763720829051550329838728993416763142647798549381529261595818356716104655745047967439779093384839440731754083752480713278521124371374172510750359695430428003466335125027688254577583196356606067016279153597844447961460527886858983897848450161559066878321421782338813726236271016671592568637276522026529601435697390833928896424487853118355062971329706753063298884823432271344546092131184481568580805391091581566852313186387335341985655707118580802469100552511238881651777713694682420572195223214680576896329614357280925078114301594489921162279725550674769691324699996096908325788946518606167566600505964811819911551169754070775246242763296372060100851164169068221734635565275536918777896687016023340956135641603165864062701807225264483426027453568471623781260648105902598044618034594641517212281614072144317138297553871566420509363689089460209181456764245813348756005389476745114217605464593345747581549361670926931739365228374181106580180801139118311848951824580055583026711528370781036422995369475707979524234756866191489000801089573661883570793153990936392645650398142132469611979521356521559401874595289435099562584557911223374295851964361862737537245048025188904313740084803081606003822028583202873640061643924919936811408325169335158195029823758940221174624401286709653595335346119093338660760745696859863467709091084297678062711349706716124497692720571117422571137615855848622935687469579191296895375596261459236948590866584846044667210638865949633085819765073149200604088358225130614120219018842457708856913492372085571206453559294562702326014176095661983173704259559418855396494154013842919105764125131399984037795105941302839654554562924453678228008627515773134814957670581837904324818388140119467124706920086501649705119528103931336889520074851270579939774685442339123165116811361534136991456120914705411429944825485316090030511861645766012671280209042981333539782088889281287481010081246308924072551366878336759658156807253390558937739962093921731781027936565355845680986573330906914512604664094207870676658810531318876901129827272321547207738629657386414186593422032150573774583482039491460311415170688274239124889309311350406655094730154855589245696580846458041762946240198796773144997833551771011793762218314068136247206662402498965949407065734624919546641347412486233233093515461466823139372801864207530472741709248211417336533936486211950596995199102530224232554621760311714825033297334554277102460491482418190389252383168602873003933956810555424002654878441292809367121031779135594719435203892629875374196559564892448580835646197721291918544244012002585879320315421965223432213770186106196433715304508557759280178005962439239365262341724338741585180428661005973752396503384287621631810700015771449125870209364432495527438996072835340724615104980431696193273696899677965573037581154320300699496778037511582449639773931388014916132007267250731359842594450413072093848246242790597082125266626366930854620880969153317459153457299345777377988153714599603013872581812426290865550965340955735865582211071548484194913821495124879469719111530664391191335378253800799181978027406502733556807436204072669626156592022015860616226222505923107680377566236926403530196897403407365148899749921133639492318564904687865021799447193210634450943761288949784869932514420820696783326907687431740922398006835280472351238491257399235660268314931114464127018811941346801069020669135646940910752322831428618355369985858332858668722856064541584383958754614125826271554831939656574052807554375209691149379252282122718922620728641738638909824282931167570916008917644982664011475406251765036311116393509085895619148467499952774293238291129563444184280829632605410933630244965782532481242733824643652538659356223327274175622137772394709976841342364338409230711840378927320498533319658894458341765043174820016871498628543314843740060611799089613002379163266273813470244177064558042738877860338491888593508679582023217212952665628902162506339781573377762380709795070356816329805549152591956199080753574420769268621908788303705881327466278664958816634451676880432750248180965814189945540049747439798532390701608540312896835715835925976822886294886441834672437549969393267185497148627912509502645284194378403295776325554267631029439444374151468849059466222699875076248734872390175491498589801181477682817328386489701790490886639566355179281665727576549389250201790861667652513378161446216477747140950658149667057304865954527512074650808781428018699770077902783267707070899239706404109700928985929531735771263485280944648667228522825517614460463127041168207959784898783668849054873931836773491732069231930368580734728397023071710755902100149758698562973840380171281316220428955266597398715649316051559172204121872022914549984582233843386550705989415831169914220494280767179508124164395162558750560333824900046619263229096200327586793954494061604559069055931106637356209115434515097415226305201275490645695807469850998089549675402783950571887232145673586602268571487850872200452941843202266333925856936266392478169523471615256170968202241141940906268672167969537117859907079274375006070852606713281843925709063666473679199986264563714760813552481283580986442261139437133516269917984576195997069186296254075363881006805908689528728255131548428610880800293213700406211578376229714876448187048844144856405919213608394339103485685320924411929064455029271353329786863644029207058068750279930817029524732073956044230488642218684546874864836552080237738204634872209892912229228069258631461815704552995055698806005437950976640988131484276674364992505206005062478704263688928534688578903634384916571945020033704985046388530426766671920142911159395284612029164921331515457943841702985169163519010774683879056593458877741253831303303629929341459824973447747330244678302821643981507310004040299883567555269918715141311951589990127289095900222096253622911373892773316273561002530385990569684051636989879585459616957176956815840540141996362493735214263367400314495100079708589293423899341274654582927229785655007704724756974757574538995050907782717419535268929240603823954405502664655994634408153326100017915844615260114284191753390165850123204190862758314524722546317144003093345450483593304472956006181403478254158545988705902152902398014644658285111626682456376495744643074632859368266265518923946356079521576837171813151829027755509308537218724738722637590083451862067067982902613725322038016760824331433132813873475601830803825627552920661689108091953142468900427050749366794860981751759310798222695486892571028441402249701431123751126632077655428818819919885422836651388260595449170718678817207703168433534534875436828691522173409593365754649088990572429660863682991940304861350164628153357206982862782191160170505380566566464513193953222709673032613004137277506110514245692101372582729405702165598914199415080887565098782630207034570232112352421751503025932564256162926498066153026085786685768947722872813415475028758683275145343976652131343407068271163160784231861729625705246573768987825261654703951053044798137206236487699482512230513737397149425447764459020522814799611237381029618832069140641201467190294306731601789535361301388311525824631082769696724617237273342537777013543575807115976039459194631037006201779684629356351289782812930487672957195744937795133159174478364770745777290289243061119090880317765552910689903414069428018138784970688504126708971149755292563002238713738719886132975647869175110861548726936350524446706386313078456500912174386753833830422722554799693474824446364913434928159417976418278235915620115164619655991924380018294566037569382925786233446843639655982765391571359616613845890330452572457319396429854172816984814623354988048146421628715177256834442400498291648055838134457439751096188494700318279563524167994666649457089066019934984855717804217220247856292281748779520279730832865242612555749324389673467324021493531633240405367899723497000884814601883812771206774879993172649633179459839402394687665238182324178188682972470162057294256753588869607515349904905077949245911835890544925451995125962441222657823768272307141777162451971614870738984354207693232956961257111922372849702142060319103620666156153549769267763802719732112537505098750167114413503361648428039252424651289575931393400419824269506737487539102550649477143908194753152814311948828158472150266318370027795176489460915474564445142472728079705068509155841385605475560513485061099162341180898882210736485211818894181494129750490186030153840493550349454460623483249055996116753729117415685209568278078757739905104499847239364345517001993365869951707107765604012959965429227315741332060798850820236465462858159015393908944558526729918427549270799545280987408094332091093354919115818252261624325737520736935825566786497343668504025149624953810841335206538805095228048983270159678165158175059620990353604548396749617470266502659066517621357241110352009350917142462066790952147171951810039479068382978454850446645939912716052061843348554598980894960768659834506329329722721474315209667725407280744557345057436782339921519325314766064005560015560394885911181670500983131045776638746491287723858702276270686601226273069086108084614873418787214335376998853995895104232464228170770592091904660293133797454065346014335020752771511569863288839948073598178417559581371358874735779907749613210935753086567269196325193041240497720940663032788281990963129739737721613038407046581291277903179221469942076067441830407878019699030625338019727948434428331275232970465709955693150559914753723887175548457749456189550437167261982173827522972081205571809052294131956451329611880258052094573953093999648600302015238375800301784767020026023864762155055438033694087289393630529071010102921832604410121488696792799564853296574054214019979651553341232288289070274442232686956750992164055848922857366581052189032129272173319782072979217740443329894994359253210238808562879961362605252730617624007681261016570528520439457135902723005284335180322055994997854328502069010552377992480170600333794001467187357906154770014582355870013900419919391309151276918932029182422487657768272980420937156184590231976728809136067756312355705022831947945944141246501052117657788108519792808425911121418460004089700006959132958684239854687901979267802884217410819927050773729038564357735768771970750082370676204685014770441452254650401160882463863087847682628972899784440816338464963278433966799938165804384699225941836169902098101476576437491126582545956222348400628050422796604986195112707901252340157092436418195131321155664793306877817482575759902571860411854147869127640223124898583911217661439629540920457057012946768985899076764100144254789491605950177302117751610772482217430179115388717341357514956229523820854913637786091306321218712868009402695931325002674991147280355503354179106431152944882198320163406080388019378945446660157166555222215385283187318830980700357094368912476739759464790329345868514259596887554051332655934712745228384945848913238816502010278332021553785647434606877241992136611724005089145747070039269336292502563233182298939754867482597167958274073271481411367489407462990881735296072098728533370214235566416288857710319036712379741706821115071831081215886271449817465248700399062658988678018910050172881636547637645328430397113984744223300694276229014008348959301845802354280043474364230190251332788595055700482202546174935827388446418390062836957587227983609561863787531811161458601491828047943909170262746587000669829007328151877829478517796087592585482591944964335813309674232888467970720390461887764559350357222160676044584019642254918912212573740612562531924040774133881553894860170010086804833934804437369671969723049473065595968943180263953630336335466736666192096043839381540443420180936186885031947462503856829113485539171153683931738875445234207199984911438294296135850847175530108350370949542991906785340907005809386364823693146757114519854481989319658265705662687278431186669962623717195515204876895764672305732365359118496451283193880026236737648547422179456607696333013419632689316079970954567153525029570147340074768613233921287350993855669761578388529134120146910896262497064419562107512044997223525360332365297131705231138123309776731823312277194031942745141037691868575666387004886933936992613287436635319473528266679920113381374005004364331946042159775558464744196731329563570530085086206394285446284359389892864233957833279292399047172342657173466921855092103779680952914049081030144584993545416418113967123852975360219475878349365075726830894919797857834521882062821358664439508464211392551678896170577724894148680655742072162437551454025255480315665948341827492401163945466225945731886879364675294821514659729464640165135707531809052774021405984285151003455820152620312321139091504324245674131104178200713363398892352141437301167458215903925501216815386947222304124891630103971726446160873338295079403784849221090514197751701483836174891121065309415272320199736969551954475437076106642048578289232611513362352966848620832386694960483164405463724706039188130768864882724217672088375221723400348078890129702210185335880861473475532887202423464683985339966505882724956394455666381883339966286368781418670606970271922808678196062374037590554342450587358619125040561987972399065137336727996864942235679413178241270411579092555438270213282544201019249617563064192760162170585462637024051786762195236429719998004696637175312011242653366819891717326759696293916735103280338446154004671556245107228744057685311417359307587930298757177193444535701556768649777927135153924298736582960074389814075244323386725671409335217511355476136629994389730861024435036103512826837586947749150808094702392578381447207809196580108196834782302246724568219679303134462049334018132339281002195754889671601608344291586115238539120558884964983735057097116462754814445874932630378737677139639183596082265131681995555578203751561548050508066160716138670697062302890598050601125937390109924182663363046911835045332949699747786304348868574071595014609202405787968754887399335921197776896310144002704451106911920867138873506060829540620928117124079581374052606538536917101767252773418078842613892968235303663492160825530935840196377954910048925899759210656772068054711990655363361893228616184000154754355638590142400165576895510957726914119374035961018086789435339509511081845297263996733582323357818765174703620405336306885088896380103924280360739682678552940054494841139181389390715251857793339626964283790713574676521276441960493209009261928036211025123850332872125797569379585896003598065922488675102568024862744935667093022652599976322088326379411780563035863294979865914088395253187406692616536105499078942931278493781232314540164716620476575471016473606954053422653033575272479966370810570207247875405705161435440197886039345948476149145998161902574841977145236134767478792979296021643654388280993384293577011371307000791945421919932131353964832580528313952361443861425803184153257838081399847212402566970296752466894388846842600531404863989175612371434041070882503088366844409253518869353624796841142754306918679897537543224460560484062881821610628091992420648223021362488518315228253279032962921531167020697635680879322844912210813320520834354329379222898943020351764685069788011384556772148074924300693039692149189828671840534062600586886699483665569363686986269197347861700098599435645019644630696360445788317494377618655730845441477427972026425509300993053289528609220941309131073247003774006528858430051084733923920759887000144608967606777262211534480246948283715737670913139876052535961806811492062151775292396063877008034619458219133255778631270584851421328070270679123318536099525942408487784972235213409774992507415704603682759270090199035816075721373917616069148422394315626550032866208791953261389356543466203283659692905848143499110537948413665203654945869508700613089653750051035935718437713830662398095476411974690610034453167158127881036638728768925896667318558370513555412350221209928735299867280763632529694281197606839068821410705570041900925216669749628757607982599762523909165180413365654253126698238806063328111301042253125692738070031998802288712935798466490221157724897697315114894173581239866824776670887283118389272101920971048131511725528966516258113678885460644757637025961634910084123696544456679711656920792019921114865868678004305563548068348596021635932865892679733279694882391196389726706900971798223947364629703690608009564940331079974536279553485476699493541989244495920818513366216327172471493772735740703461920660729498073819396527784293742870017032715626722642145319817104523420307928772385353049998753211476179473111062413218878186267295390004306937611569104860597950508509030631124525782737970718121450996615382478095180598902464050079722999833002232168510990956498774756269857195542778533242288705816399055585585082040909995552433455599297180552674864018597867517926015849654871621911025669622867853463210009714653890940152491919529509463958623568664490093452080652031554815973477485368175847466357376910518829530659178794871732078121893580228739956471420075905308904680123126221100120491807241476518718933322675558579476648333795983000511523612625934392831117154146528627442114305228956473966013362380851429400200124679847359593496827780941104450875689606805572103941235122388448525644437512144904800559787057280080753333664365504111985601195725508865641157480818782979582998090401757823277083527507526243772327451075473433260175852962194251187512680816746454527086526726486405324582553108318665558714539114030774497118881162803422870085715661111392545134098563900214590471555965643474597820129830717758620477965584410156066601551340292891562153910593660534201367742631117617673792148651144455666182953038842283858869391756354022293372499245274915911019087381046002246228779273970467679381815011053167929647910336088999127565338828070526886369090192640908608563799842395656439910830313338619686801846752350112889819638497378283728547555526789913772666319269161944168563380867825975523211369311027787598342555735320322267071703884654960809776062866272031852336480386964463976005745663088123922502967200846514426479405203245375900406481541387607360082053252788540669912087724157929683039895810466134155346457957483899668571545640285954584052523828937795784524276888050490123020734905458862192909811249138157116575735966034606921162927449297398039444116015011789264718464609934372326865882058455823538199855740899865127311176404524186660889724257639644295120591777017531100662463277194912693999326703612387235579965768629601728790389189737655694698167260505294169486469741320586776718721104328469747332519165230104295023601200285686707829922771237357879411657145898990504943137991695655151767566276715124926891612616384984438328130260278383949667224550283975650641024742446165312401943404599329165920080879664788701705059022488178628549623171499787289130617532649507188145386169053438065722774101099360064463101716170402326262099801079775410703025896989476288705571042260685888846446430512354563224199973266017499355747505798547751593694374176106607988346902500093740429043551082765519744085901012460034595964158676571087593958694169556846639310363554479559847759212049115021033814340583633037443982179010533448889996539461050816425660172314875614311334265654082712971717981076922975925980223848077792107153332675458114736530846582179895303187067137282864842121909719325407600510200162295293396844542123696070935839988784113743338456164749184391171630659552277775341976965546631885713176998176750975777504594535204091133473431109032959038678094704871978378071878519562488927922902645366778166424854380647956351924097369198094556728084508704579635806650908538479176296237409505719464778294919334549964647639516994253918389771750531879287453481308539765471341024060821991232837609491404056681946730187025507744297621370169326287120411744605375602842797964117745689271546818729712470560806232664861068785244864682343528777131489227654038940037022887417221301475047642115852567184719164241570505896723903124249599688082790863921881362639608406763123787955071705996990693369787701827595899384220162309111903357662078665041387755317216335745662125898178967721326939924055906776918830974211766523278100523374475609273272799781486944120654371930601046138251175110879323001414867522224811391932020834064172239332174851023106792559040267333481938751732685323237236438384101727392722045870357155326720443409173232563591031649166128924456388850726452732650648718176228691961646398899521720150217777834752518358122792226675618524241467982510932948439204553169497460107763546291937297024779582586283838018492201444830526793291263270835061019948382883385548904681890491452277675947685374708478099555476513913029543918438565870917797359578796773150493979722343057476601627302281672970131851945431773189073554975964086405105513884525156685008495147516841883813318506367081771040728520731840161381702069630385326589259399706815475733352177760110166858355144161394110722367737138193124201064100723239287230476500351365053880661005100287284156549485330370658737775656254215597419433979726978620370648955293699040738251636255270682028527801418316275728913838315548067226399319549758544143293507255911338539890453674549961549713532192473494915073254846559714516082580699290544825509810318714648165729984234297288844619645433854417764295001982802005257913957815777988782738912194480114057129527141844322847955545853120409246613987615661079865091051795268357522251327724816546940536190984486199086527166411419234130642509228318578388184190161498438866562486701795920124410208087120873793038976029636313522843728321209373109869585676050529832229857560767736826041251485618828186653945073736964174758803603062703543107233953061606472164741195814952801903884117225488410323989684102392994009379066723170252808831548352128247742215241817926971054072002374283403660786065322209548269972790788805974264817440755911519875807648223640340970482317529169159781516481015119424864661253007675926121592037417396902463719816428410332869016567812836680015971283068469350112511374517959973648470529532879981605273997822701589357737313683819790165467346476866217805328539298976275441283114197893227162032230489560020103183693164970917066259168578208331425824383209748680267278326378127988100762362635627929075295704612872951784074072015599422234490826514833051568435616985565584265908493024261369607721768872072724106046249487091794861818360303181458680379030754745793488436690076699657350461906967275467073698662082839766873971736368554641729932420907451589476478211215418340488617790839952381537102562028656981869607991259338310582693668994383974109276791751996704480264534369828775113207889100833350034158265912280802320736266833145862965644473494717676228918513384086742597752293825483674168123591962694464549805754404174826829026897176359254243638201648722393040400997049335696767106423929885877159151249052287806678850065496575554581913654388753430900812922511714280103341081925724741875143762475919181029178993904414964764677588009808918905353973298514706875230643244505148847848591188823283476060171348008357911881851950471996765782058355380855476942811490319253887476662530059420581872400055627057636002291673424778825828097820040050414293901740062409518407403456180141957697990764310856793199373559694841333132623029896434748034099421008398759331220991859848286862493679083054218415975912959086043905514118998403891153810704395455183507856732018548390676831416868237436431057538674385049893231111044755944094965310929739027809925203052772693880832760613327815285609749276277881812100262158643316157304368255700755360157875851258168861119406878153597205378409510143257938294785170952190060659171857285847575283383413522524321616629355268599435690691521391457259906353304636567467940851155169740244719108195164206378351008812453423016071822238568159680982174127128093409516371507350400620889206245187700757779389391089998916497298182449338782696716763714209874270719562212997840565747755830555116722506646060690879247411920780698477596256509957946379396124357960722072836137406134635160094849806968566209207693317742223671766267026105487992571069461329740101113720928590054382195922945043112982729172933990155929964050921287718268308482704925206502457405388886742085615493709731649978266140538908132938367375030190944425469362470305332145187299377153901516128688457104660595519469786000189908846455301826018969980857998369738415310510230366833192996081125510688845858069458637943777146644231350068173093628398783180775730849444181204865272682486079306150772908104572230102215298958138812370233428844515572729431574980819905048530946010758511410652860552606730456799619637425859577261201724192188820037917429290051240576296499128275365282972694481984224927496631328730601942100506194511975442389394734791805387025749056552458841094934738378977553873308102996556912603519258108090510391131231489427659732021542828311231432044633482438331667984649545780979825155024245382470291478254039869947896664722435859355192694759621028316312885865378929656770379162214177167256874116194054927103839051640309607877376156604117961209406609703461347265925825834339654550522671025831304476020978916116842531846562661607849005872886889256607526297772998220670698401142521596103112812501140828103522322422285306266729281827766593174267217113105138535415593538462935185965501380278998612626978557119721998874483436348946729957486450791771683027041681314229989310290878813720826029542152076877046601801507672108366756441678305333059610541664222935735511777884131121410495694976341375802479730331594331907849317580556153544056856839391008027998902276496531306997038744821251676840829946065458833645913355741640706134299108447761637305889199492266466886273715364698972322729352682074657350463124757300635212387492055144247891393412931584117641104525385583227692783035497092914057982490089522429086591186938790063857525601771592358252078674865025763905544160886467571265671729195174245177218480138406230999480745045300178961489043559786500534919874024026711786124121551034556534430287174695174345063283677520211504583226048781010521491108133434146877383267448726349742375667009445341263727718304228118607802793613112011411661368318701589829057034662432761646979206185655759101757321186208832211563496350779022762585978771888248008447584044483950532258760057328975620011915983875635863175664372116347084026055559833308826738780568747289301031568096367696604609198389277998208962381376510135065025052508025815392360194500474369572963144148268083498791881924537133631792706380109598602134831516952590425572515682601109263733594724803085564393596044413870719022032225596591059562178284396168797599012041100152879895066130887322930462413064459379204208649022735175060855652640786435779819786676427997809849785557206498080963554007018028940371877218494531851492956161737468830859670526222779733690260573470886119790338229981999166351670362567882863557718256719571236804527013650694950482709094763874347064467599498918553698165702664042860588786012906678869463505780151335109555813683488885171513686428673957142795772515147415553202777464421366629104932224919810738652491731735045183245319815563060792639090594582163274376150451387661740512719323320037720245536219124535962621047571364615961461128869566052271111348470735408989835486420646935510338783992211222767301623392079965343180196012267585669223413293247292979545712766430856860721182059182569216653841073601315524825780726543458605759293120771679579577095859046929756353417851417364443738821034720943157609162402373823502950176468898513697951232645705183653920882710675046688184638326562116292820631233502110886000955777224077374015647748087685248109425355587025852196417961563581416950101105327857525082403535609276121225929831422641907241764372248994766124844904014416050517586473840448412845742080852327538788950417294318577236165376460225236351856505476408197123346798833419439035015504230494987283909270444708862978510703212916673183661859441133347036707893203267878608287424234936050983115869114791728852706503136081957936639562016643804731794209497976547655724084059701588074776723123664485745454783763387475846701165043752748901667650762591562969777447371292098245571404719773546387958350504412869807054649219989264473746101882257806810369046798750308247111726773051363777961866164331681036251180402035445206972572646748327235419316455497662328639269914674936420251222364776797162205500485822591919189463567883163122530033319751512199563609633011362894033104759867226017765129650923291215441503411714698926308299670192328221789067758956701426694061998287233994735173014606493122384958097517356337727079793365435056805506954710802371449575741210483035977742892443746641105952567946953860724277217133471081922126309645472130749465946184820411072744213543961070502383796416214410729352098056097453053459179203378352265734178571357090964321981092759529614547220623825570329349676478581281714733245355178466390459492126221060136882239587546887438665731026633650751030362803838643947878012319161065532117398761163680831290083023950258641719584869584550435050739760852709226836680196759667507504477119975960056462076739984922890137991447395551876437489485980751419962899094123407792757032437003213511458520602532144947461027682144288473966582095636259168960387788200474529349423421331778758804875703776893593814921631876830461823748035736910865230900287268843916928195608716426422491695979288718858292444845536069107844671709978871946168289573648236751143170150824345303732189468611928936100186336349524766320900136678834070295009921811756929936321028477243656397392406505999329405050934183850247868350570440083617273437788157138929526909605710445876389570138557173720792892680933802465609040319408221039366979609038246833900403381126451649784994771448266938077669425126778890662218161184752470142878714842986796998421839073278418408419408570909582683942299586384999413433068676702128661966116566104024922057585227962205121641383014033898416719538704539269330995979719073621857802855447420669453699122036766215396381854303988707300328665012338407566130253880869571697038974497568430899190067642632573008937070413410863104358875882258996166233967974600692911276706800501480208553044652153672694624837462665567466702148013520859735742365752164170781796490316253567509124674543372207081944302453862556876170853068665176732859292625531829747068520696164244742002885915670305077464854452986872039246747579263480448215160172248032276066449618014907543435705461723043962708895236754144814913478034960000780725542177466258836834027785044690207984411880154284834043334333091042272675030189275511293012800388320065414597795086887901288883176113231521774352681537036561067340959265526597722371671003948307941692363314832644391995273520929589483371669656621194606558355861633863350965762469677169482673805554287317863280055210559960118660570580161516053217624846666460212911337247778143614445778465456045524139918799863127100565596510465993538143089249236895219433216872839411371334978588082913403052601388188307009790705827622132834858498995239710332625233876060635392898256746873283304290272613908931954650297377335225191999114937322607273376386654595272872994309949158473174687552222137165741518184980637777957859012692766361930663473321106640836766014217151171708390408520977034551407376483563322533379060845206762081322895145751675468044943010886543853169698849225928332004583665994877563708896603268214584755972951886982386736287753328648067308527475611210932812175641990743141043875331754740414189394195540446501383295654774348012021724262169350205072271890571917654483330301875041244374125152964485480804719097267436865830205718246435716973519476656676604981891932792524205111982752843042654161236522732989723169250604395948741681002159625681467221870479357071896492466900005754836907831415263440144764009279118044617522935561419954663001802248351024747377972755541009037412360678920752112229302917062489179318586716916990793773440648403578496915542121395821452084015455194811614397558604941748519321171184526870825300207815298537296235864137652367963811943118329303761659691233736220715822082572362276988596956370796029281990420676991715729693732419926632360491008017808336362675175947542070517868716242873953384295370969718363399679687584012415474767870906652578013332657188237461178034541126869591259513497422838754981928555739800014470012912987897727774751102934474149145019982546203293106131604481683960691207538911606455474628598516747140768545165858445414176146466024042616475652642604933047008547361307488633159010392924683165799923240533610672866051637331651883400963735907666348429968629452813355777268253044889237297494259801927066503655107010239442908566299196518098556061368321307287601763468765253378300478030753942916417667091208391092062059364220786047874105559469471951184350464150012949615802303933205642660501897899520689304696829295502273858429052627332912374475948478548501762966738562608377171047525573486054471602804922043675520082491347901967287265546028381869507430944414622109179017588332581087671511395311494286510940012724596054035698697848611233243647761619756458447581982252987084396219759817980585466671368067531411986868189156955595395969006650893281040709386950903249945380958196463944692398884509948367720801570900950848311151704912747626519294092335183816811842676321299587767427223308678244846693190089506896067746645852794216651512638850422881379173110651884993084926411505070007670406261562604465424609719116274979403363584480150000133853039510226714847294913737636794725163101807558220075776305508934647922206412769484223425561948586430016789031564384527287303776352099217633423764095750056206222253802718622861668314283986859704942847979005420431740042344485793824112881015103991826176565929513844587709488819874739730139884164172932533868437112765428776196322805228072674433919725966678368327539495890461834277346050233045121901539278007587395425547013439049371806404793159087123706558460261397971065261375037744495374905926625773521672577454283639725662528799630789641379735993067562774873050455464165451445055599652189857446527728590906445282307988168143014364852964653806502852962105099261928302194518344101791992071439315110894163549228356914653982651216818317150069829071200428214406820297097049405052665651794727665240060153196918521673148323150129096853167753771877553683746993490385479330507838452526784670642376841173316179942216780901714518897950199761770646936090607893909071077943547382805408518574176139953305060564428196626498684624508540572970918602236029433844035943797248985165284401699109031478729375103558243110212049558608483301546387731982218354705325347966639076498874342589015064490053811946821508915186512950988676400933063041216176299028959691674535941940897915393760753662185944037860017144527041514892040411836640030866139988744686133747966287541592304110057127650491307147697466300057694409907962072736892731213958466371948322776650706508912032432551558888713239125349706220621944984130870992504822686115894559749093866888245481678548037836968707662739691589511550808420825996576803576875119582815554122056159303411412008282400436411794236940276989685002707025046926236017930767850424599020152642179073540322995596895429463082256379281735213527645414502000311710343092625028487067477907449979582454543575725853796102992292424855578742926719980093574007124038776355122418618994877387027782127257020431860225940832512445850305056712818270612577455756426100960537192585461235000976253167904313055539348844103932383990122833376322725453613416112175873644916216702607669261274957109965295124032228076889914878824610537060778107627155470273047504342850868180270908460115375835236213133931643777121056387779705984352315188628506411161840168569386869653218524179101801527842045525625225206932507456021156290975232678364283438235343020379092201410200077653301996050182728014736756059404372879483748262613100852045625511698123804882185956208727807226371663522608519942870121502385773869256872193330424587654158715247223391038127582650933115545497735137619746728181180586487731800613404287653277683345397155534548620240921811259593944706960357225542975131224885540076867255753838747309528319650378185375806682548294038795253764790286282069778324249408509606965573519070843668773333197810565979571438637981210105377550374591734550576788453869943851072114957494214463527572215742984628857154581643965133850871618756750461502121826086679871787103485894004281636211516274499486799745448970940541117039937066816511010028684020075589020133297459506437790028773788741833871938584440761244302268375578362220225629823089345209175216363871706567034651817317453799815746275560823722952570163077330456087968289629359821500665749089962052633193456163739415443344458763337092692668256904794768597689461694540772861494689673197002483634096769764583535287912303055305989032338110081603029602061554493185319867811730005417211932542996941150523066069140360786036626044925891110848286793932197179227444892303750750971977829038604146251326866476072729271352935777604364096801375288366106731616805969414144375136641164386806291065358644672775889345553030166879249432834032814436431725824557191053639419694193231305779866908373370480250914785900629904760142383795369923542624451561871399931438069048574267798615174695335273248119478361801783720088211304852327169657912716579441498826154043068308087154137778283735865532454502951867266722876796651330879788329435590301199832523563270581918234278227224262133277449902936959268345979726628777897987680798551504788460944946295181749047945240007794380153834277994823143018320431345404803296560993377407785261659389713225749432968196077993317424885595878675799894314184727149214947647476539659011536435591369380162098965016768955827236362651303811525444352131887175748309823858523098104781975210587370455615348558615535358853888146915262848405327774661470383989527041353054783661877732260695679199815713263945887047845287363757650207110903845236813798330618431601036221479241120899959920384381901188766327478469723075065457881626520085826448522625798935625481929791185519644076763923880226874284132767332040956177498876262808514652286419987088903278491136605485085524720338321100500051022944011527666479293403869520466774939638331721356019239670329057412932489380015915614756717013522185311487892483397169248513465428841133151919203388575258109406461109857049351744208492293540513283797255065558613184447797453676620159540252825416647452372006113221727923600296883467272172716893574323129630740374369945463427482101489610934780630516652127790219528497491329954457098622289801269278777376063271126954475812886455473438294280579082645589491150850749013850048839533984860676321558014191975491193696422282437802692835762168326532066421904298577251950630891341624214969186325854774518573122678708644203483950494573877265183366285624386949565769932223691520692480951695495392741009317155766058047051334921678076041737294417148367002995195274729639626026372044241851528634783661754279050871520455904855880960259395927136630518385919682203932571882836343960111529940464510233099484223332586933605125683920525777389262865780531833681216704789722453482132671887733712268553088950293588455930158669562268079390816896838231683719621452021841837289967893955305634440656666799586086566044447938216230218678255190060209300192470069058150626087324067585294184331867024266028434731898375211578888717905555929516835763739664625053920682619142665202612766384276654056661914481396917230406266464953278772841941969944973208778089743054350075404222262268620755648095057877388268584463489837957985286117561718646651478336110515958315296174958681634917896487821481073508112621444868835079421866547543072560989277671040713993306603933620445098463601045243170778897780653859373504888108395207003000147007431695413356918439366294039227292538589969253265347184931926351778530909605121830869849061735626966104180549156425950433515181202933456040226825690555918730373762605668355142248544945441758204207678169400694414484947280766848797001187532910467729237353282228806563745056443310595198785578135502463016801505102746963526121598247444825966335064985008496376397784972697344162084498696554660628388794370933413388111240714308237696915865049655284334980934736192721040354068582993096773191296433344721662120160419723964922032429261439275943389953755351249404120928176875103954774179429766566337534441840442904830519164805859879343457145727757254378476995233023011694108989637778998052451761453285787259007547888139254737850857748058650392090881825028958206353141565211969227000010008599933814619843170425548186107174295209448457672781760082793921414900177414911297366716524051643862478222492023732594178101143916797341413332019889825487546352143448998441087171151452271199201566066100193129767905165721254118034135773274509077105507516672813103429679871693646619480721634942300415176448522548436448774191299241552355449539757131498393638904881885140726244776791406682201294248019926371508766471363328571354569743036831090585668020652285222100241515484929195982943566280515900247566486199330312862099482969309870233523323885997891094726427069573619283267786656934041428778325507801067587832686610042123539672527565531331319791462051437822146530894619394450902404116417166742566695246836155902944489440625669462759236416170991079262229902102332844829443241849068929951550982334006351682712624086722272932319905920008599793521735493305928964408352622098133212318768153986330561234244237133100506100958818196192915573328470190466740656241320512382447105334057575802105563569400220173891148345442053971084730238405929971443436013302215727952524854918058420520106568740678513972498265581447807693114781265917110134919600076771211490756966522037481626849331559191902897664347935151809451326306383105024095452776228001750867172445474968264339954219072416338036950084846180571175702033557405467240253324024600830933775163171172690394209970990983371329311601499374665119722700836112784718434460744374899731600582156465065794829248884293351584399688958825393897167351633672416460782543149851751569249150461072923406019876449180720502735647558174996801566420444229023543788074345659102738037145690211436423064271267388318171700938143128242555241873576023949950632228370154765796736059181370960423192634651187107515166219742473387405341908894913714034317858549658718060725561341235693365552879813065933347682489489588183792727581811175184632610387364537723081292947445233172890329693424327850266478359030904108307039489158208593622477990169624838437190001566936554638780737678651571682672058589810598802397266455132053520641475728540008450053491991162545009450253272397575698566754967447925662443645567946705334122121626977347771794543791173379374618108177391865792711707368106400856881592254839225789209760324250479803981477366073536832428301122393548994832171512829608529924744460106982623824625228477014438211206130175699969557881794014840303146327997023921673340425482689044817758884138009558114907857303883606763609032944206003656263346208558654402455502650008670277487119164604800318780547996452275439816703568351608606294655228716391741955604628502873229974859862531651071843663286113031017455582025421394533482339062207194680918200118907274164460381010080412026732957347007989096202420505445091779353071313565929245542030102584109193381428749660206929500802604613446255496359057578852681221424298452946360701048660763886003521697894924933113956089784398789280773342627707617333471185204413033818665686240186604332113212975132566193240055025553421570386677016840132308682377478421110207424545977628030546062697692478464621087927615441819174363198951244035424209603629419415893279003278397365686657650305256431752259327595181935802482334649857803098148546003730413643604604420914262983516343252258272688440644240218409809578400172450389850015840517400598310264666496616278997418211318830472213428752719303630568466423371484127994730402371435085678034849990505146299673471107789175482666182293998564972613558353081839111381928184287375309040345407631361603593123770849091666695636363450046649320273926837367533478024817024857891702972247987869197971552710234033445089664872644853719272822609680242305836453861368115513822933071519926612719327649627006050266482899548156227846267382196605240944250042555729350314542779338932866781189105123565047372365839384825473417840875045529195460854995965008015101795639003408782117548565098900001977478183503096795022983597394893156677250769525023963779540959725223567842350653952526935838765128862919002543909255632777645802964112876207318697886743184290978875234137374068196133375961451106869034501802198966198760265896162083429395159894028600532364906948065816530623586926594368755933679148180187250662143188145466397469413232992837415538554578070923966413833405271606189827658345947352580554528468495434672297832320681390222369636073201241920525350234508173848211349458951564597164172630180206922506578951536229578180348265851102581643086322893497210952705513268748488150007083760851353344864081455144310770725221365994909883723112946039581613835251920067517523934655860860850052768933889152348902470944767819969234862905357650378323628172096530707251984424786995268732519892274542481872284428889531978132332609242320972369114488497298242164269197485574533736461521069621475307641564665696701913546046306042566211490108503766392162721044622060147340982305127082991273973537917786824141266283945197842830459730643016147130393260193512418541512983495952335860529656833229827595604491544618274588274783870203450725183073890798227027309470856226911860952515153355494827408906707437720138560819698640481863653783083233011420451431256171466373563668190968556148135056682888866989358209574412642560732638005473695403932391473432527940295541534626425957021383386231840287599574194078630813331881118998698454214192944011673440517701553791779113122795687277601182581333994006713755363149237408712427091889409128553978799134716044112409638733067312201021631195712233583209036463525069802306597688561651625142724950870809328274960441643527504230706034251119842270539164409763638879298064681707002457696103664691176823962120022866815785300140035088118937123535574616605076030875693099537328060851394571847506761134667260885325779597134001755629277214391777073056284210790670731837860424704079390682663171948472339327810828748123289722352225562194817133084971302459643467128332909375590620109307690960174316713898309089799821295577742386895773643988707475668208955195070549636007612709062640854421455253844012636080121023740552600856690152159994147624451102885358356666670101095861381346268163187578041635038350092836731632550039737911716123763176622674665395506283828425969472694999711946364341754257178757758381540577161953866456763568834535887565741679668732605318611188364877373544654499798640494537551680456363824869374614250051633313469364364491443856846983166169606288419908109269629775004801598148471844675140439022206099969427371504306985775761547204869949061443901211890287315417916670723341545560053011127390295940979995848039742868580630413874982005895999628595317747286533964619420456218121852314410179518775454699793325700577555548327124258137803940880728043329156189399572360392366113692229508127356424345538296622604816510572723527726062912245039516067462931711002797711506053357433748942956937525214968668998958669381467571997719634816027586364407709105920263667272499722549374531976057486705064696593345326311609860238444041124835369152672619540127153072700342830086520792299321320949576225970173182734375193617073427828478699065250275029460922093343007363086473297299447187542809462245686229483652635800220620255977516314742234195746638109146878764633363450532125016365079313882710720536212663604087874308519834867339605892093788876665029037921466898309440914646397030926721821470022927059053529999201530612813175226750932497821845804781366364304134156766327123099789835769154878129665291860293359279475110486700906558932157219415306775741238282711184082157282941215640411417014660872313177447239091881284031190713354909076300230965662021134875806353236105481081819284341428780395701226519867177790306895979904735577978010140980142325455287252164694749172938465340304137437589285592545954463162557403813428470437376958523611586613674378619287146294801625021511838007536273708621067847736266974576094077704462251686276153107996009964307004354575825769253454201265076522791483163833100296632014516825910271361789931710161816804664709197754727289817032660727317192529048736024542932482888971525229072393591913447932334210873696726151648925973357303315215649681692474985673511013958419588486433661046447865121461659265062681109207547386670099558495891033642182519477484054552044894461324255859902532511131213202888939101448473141411251677208139141392917956069052840300499118575649925250101259216466832501808000253562318878224137843660963938521266414510750094674059021574608644150526800788042309557718568074652544009284974080456712454177347283598710505464350190448758012156955201037594785692156257881249651606113373522130555622081621590176083008968083864484431041426173034235339917997323160800031971450787773747454963192114638120394659278425127308567107075837421864413888553585361773420667266276633696524351910316736111685854918814660302791612828573904100833617431825627075278860433374213050222911488413224590245481021325456337979449348546005234303997074142967521289365681659492772930256114834842650838043828043354729738170159948753158099715107670655539297269197976182441641619797082648632586761160285396412367379622009352192658779926495703121573241768823247119636334462621474243571300101368393885213574867822958978811107787933427824239971251417969117938558495602431949853417728629828273282971817745396377905206798447336092589115879109565183817922220923076705807633887810658099578241307019722133947847173102883747619050850736170891251042240489668141742859475770009611107597859116010335127191545295224025850806890238491991344550902984040508772444911657745770000173603695742209736111958793387512918973275663611949735126621864865690229048982696920035532392263698328291197815261618555786543294859799052658450059216321618425707691446103765664523985286908816103534739209526126980499945571930783600038651052280606920642434733039930734319326761377466153719874121795995068224476121221413836641312133578339726905995731512678511080050370938357512994495930131292919447413358189541300570336127370216490421192074390100915152096969897230828401294059220405417866571451964404169598423255964564320412815665523204446375633741613158999084563731886451060529700737644685402658428045250822279658386408996934070607637782151028036971983026342261958694713995352036062523601817207304591174640434326026807111277786255144318313729064027052150717248625858458652447016503878210992255822055115549435631440882863366964391094058184270978139494494801569671033425220043275479643126312838481679047450516366486245432750622545599672265429329152459173493877144594572775824403123990482769891080302557863627252368591075133661791200105238834983065303929174059495534556161098953675640060563025065909550542557019060479879127509079758320668488565503357809542417425330930203206334126619175339024971106137906998830431219043759058193291840715935457475383061873140725581790096555344571688182595674110570136337844379630295076199108192041670718889609718141786503921559421352816706614069039796876647576445711103136395078583693680385832512389479267699481307644908018906705782996318649413799859278905218868723643776937382958928791553452811068271709012456474705250087096172976295678070924737195659839518355087898673170874075301487881085850952751092643090664794602834498674100106613191514156724731211407373903298433718859309279477276761909820161129234866265910867069495503753369643467868360433690046879017640226851881875824300087888590247051375969999510649775940641623264154329740851664928713501169469935028249248472521318552785576544498765919294722727743761317328443878203978848205572735477462715413287545873434683963331120391031654919642621359650092822985518428144704062632659504830353902785898915973169981722253921960914786675824098441853590024621098473131639803028173456927334791240316141274323012001973688507220344424023478663990220457324371462358622277943947258310150712668864668191923749214776137453041756251450494166105295527228161563377208344622724630063089178769568829783681288232727295283762335852375063571609744451658242591655110656610190733689375782780044799204567934690661885066225765147940327052283096649454841782336273766130606315132511700135629211093282264506461235077485675741935036991687914107135590892228735691617328014706272016011706793421461240996757365838556356465756059280073553299634251057827734198263032962973017430536933235420911976374337354737470439299977103936476399741834571374673016899586622151093610892830986608883872729629920577574421807205851421990361584288426554102271950197127887526392608748483728265224645202863798151743125257944555775285468639830311058434056939893670440184203258913477426408798993009959354008957523431164791646491574025431595308359423960294631438648916876868939380039400829209624934803148729692570235275480799553027838959993169189874253264575190468975747376550322367442758918876274863454927442634116947444754358174009479972424426423649331326240644073868885670112803754251542121612104487698578625040945525315718099468190730749363557145397404531618400213193862559433673008088218428788345942012021768451882789214785878295021459471945790287248142936068858420149455634126818580752633502270778289952771320571229798043104432837454231767248431744173022587523268372064798775432237634710080400420277517847785027851906759583914231557084261993879590663552652889215584150670637635439303136535338434790300539134151402769754621917779788220374076755053811113785200706732327888062200269479877857950797012469810335389619553116791180118097150906039473593479457629639294679013752176878895808656839924600617631248301222711186878427077597231751707727424577607117468405445833199819879700123692046313258247175031517062463400806995796958194506668099563340963728658802368900485118828195726170526942905080521735330797991677628112426836643526163398404569403287801863093886611083480526028974880062603447006783585668033467231612495394995944550390598697604491846450460751856609943258683529243243765201115871063049439189860689528863562839286029229792797957397179938555339980418617510112056090700848297189729824598557550947298560310756016444231459272962749832702928268119486310259350731694951385734944199846159927190935204719775838355657678124316151783659257336288376144616796665413012150917756525627630298697147223123496681493992924024105934062834765488046129287362259928907786173426959145318088662648458258058305639432729018999508201027467111858356721098024455186174545622655397836234216016240186713660471611246908094741760814458312660013130980005998552080042509558298131930292647114345525054537067782467454352815569947699157284074983974441804077369092082915850937240823205386770885876155433786438132318020583555763684855185512399094437757211844530217383220162232429575377906961874923671616790781876340571239830291532737148200246002280806310771712120528443666987825586409303209762882120945982834487702771212876086202524119527384025246985720401443101187272903399566289214664485138296809689692008753883268716404709050060170075740239303490063281501453303394911393014251585560811660926601494254327899373453016354549874664699590265680820139751824953614388033110901144120574455615553349507338979374962537995399252995654241501456337084213150838658770470367244994491834886883852394277472887233343672275643059214083164261600495169112530558054108709479374016582558299592176126387638824938399579896676604205250517350371205172605199691834767834812495015797104442659357461400433571394484316136824981472900307638299664662113720836080801087053522902713338393796113183968381545535384462009255095653159424336424391621513259750135411277426890692818681474207907076491002081355551082286366894716577799531586825858099005339329704818539503317760798480211733039946884495905262652749525860496155163830978603078288822042659240090832748650723390324916995205834879327665892955883717131417875483879635671203761820290036076847807433274830805202512345994862344484963503909921990227490976294999520161248815454087740252268244155698535056448287672961481851255328702356459814996577699608715753184310546345542532241066998876801333509249789818921602547337316403895874510002251455338643729210984251030188053176710507690707197779719532175908970193392797735133794978279255188608189427936314690973916863726799349732759319796726337896864452769015067172741990507899322106887292061732673882560526267570020467583877581268709844606154624400831968973698355269622951565510716383268876509089271204967345672809886054357806686093787300618054908288965998452872087057634323837211664431213914695635446521747128550803430375986960629944296641396047457209845087836795729920673210421133996484223314840340453866801847642378301625756078165020673183909488124361402580825922671234725634339873112763170349973154506850117605481370469381408665820179537237967727744482778101155762382687564343435359724182702564065320437950034728595976072145030999659776921866044166252282004172448923601446675035306994060740117159830894632813399608137580623930730969285644857063022121970729832053201274095014097257201962441694902371268086438688008377510841185441754195974499956727487256613439957874710657295591701778843692999377367119491981412652446782385110491205959193066445929099966187590157094699063073340653291112194067971828827473389563468168806160896572766179373325169922529082476310906825393791693159013266507387336703904682730387184406880867637490997590951200994067448272211892527726692275206533561824004587575221600541260349737359006083486544992393889046906518221447119988665370079097502604581139002325469585884999292075820465168875536382140331980733084781943095630801480362934483058255447045054996059180773942943846960317998940076806908729330734762338431956749499541498492066610557516675831299202369741817607103349072765723166612843657284620848241296464180331328822587572327459002324418203596390973818279374098733982101934466916976646838759095296578167911285940238213050210236969399171807019848718282275563928606688449621433194370508318852354251024999990344096822586184496925966482134383362271923660333914838052408075504627210724458570919969185393430873628804445669748924090064956774079629846899422434810697988814654765242615790285170101300509893266664700999293640663922970421406475878287656619961094070597474350014666039977789956964644383029301877965483678132009502906261232356308712443676292194638868070214415305693772756482844425945314991003934117446634656587818853554821587762296707066312479108783147159317296014102149535454491701619631315854169013519047406075703417238594125291814525105305614971225775207590780452888060150288624539188339541984772227891153951750370242129166039268274502184310209172641460889196572127283679875956920151140004622355190081936339439943745729907065893294007506521418802291622058638883951531222731388118683445265917911615061310027320696234407347537063905748374009749017489264280202823247447990579097240412724924038730153061726096998111596462247077862443575310968341210604050200055238649256962157277508766979537567533142538532881800999684068531306272740364739802896053746229708162126551716662575577976527602641879793005479959224586867269970657948528594084338336039359076815705827782650670309183516780435474974762987600367458030206362105483794264660835964929991958210556769740463067974728841745022525441162510284366568329608128266889329914118610288892313433390968757160415984345229881218158620123951316093083424581701823090026490788509840311751397520587368412297627841072151505236985161880067456636949269967502525640690111638515336400622585665115168629481603531619212515091449964628777377418477925075577978102425679819947459944772125469719959665913057190932028519179452325280977873734393327954176563410588972942415405219170433060157443371627242027162711534281802560978014798098629528566875375534937221426856174697673725554314776571653544443174853055519735604356874816423322576312195289822216685811214387348434176409963984027037812101636611630254112166984338493589714603612452839267114069785213588647085856921768767375439434725978132901535713654900019062944978374324238051215100203233706223136005916828194979176614131396574527818241836794083930854089168147737909050795340485212871432538306980639532738492349667980300725720047287956366882627269231210638747227892364607891214625879775510120987334726992984512666950221482203074521966445880757318345678902127527749539315863184497919867058390826134878237879850194654972901186492806468440587179626100866670443887189600039006034568988073759788312629281154169864663054652229480389024675521134227002816185705544378869816764049590989566836365625487351038401472085312978179150722322410051247225107786606467553127742907840111834060988479704672250687300461039025673469589410230732193037369776182682575676243378716270291974578441625954755561462086036397496689329885985561654422123062278306683371227150751923615034475972045305072302061712970277209076384364263392477378910027014670803127272440558376945459327412728750918530060142376765714925889600191452425740456811713761087842143030724731712217452978518782214539175679227546111122724826577563170298788256243346550800609476412081864908106850445482076252274645380286954793205178008147812647929039133497582881781044560110480105507830864351657193775071967340155641919045691857308297682361639648004302217614056699949640052300148845224052873294111956387253589568208439295418852049193498569257734646639811099889211196317527324077746514726099955392593755032320616901280555801940106656192517411221098455204376173374514720086126986748441997773043163325863796668575777289982054291571611547353025185612653044608322784607551711780598032926975596356268531963648373644916998901170545923014613483733302938716527464080495842164425258489895154857710955001588969917160744377683837181118563499303684857010964341789384053734056521406182301867471555745504065476287441519161183552310386044697766590304385360685530268853696341076510124872892140791331128271831877863849600072248787381494035000719863498810735817298449599819790313587036804958613156511583493669372057171623696602908903874747250533982540405940986836050149875618696147556265208807335536069426585876811295367726119699612147033533779069026921603239751780672972115167716290848149380607546424144347183623408278819179768233870993221623779529279221578796588811356724832922049508007917292300126918575011774563501535068869303627299243243730299752555174147532075941801706848312135129233002625921652490737299119994363574335428856178628902509023319191926937791973552481175217318633762949400905720348805815887127207477414685036905069474879239801257166272998508533796349236889381661727387754677985249468615748767145862229019446682757604258014196944722575871485083423366110582033648883651906854226860133986201104121741541155726389143943642205579856727768428674431302812200147565031333971087546019698246601396198360838852510081696807488796728443717282540924024487451550677592405984655041814354544531587720344730896921638477745856344817756977895405870409653257036669662166661350591031952122422306249189386353913364915298921047333815870475307157594821171081245194543896234860365396870549467914422072003194502810732261457246743937991522130967508186584926429172088464487314526574076004745078636137435230446366294560575139417365875858016157979133185414147070683578060645544416718050170475339955421332769041275799950593587093733096134214429526530943281593650521228694556885576791166417016200631507815864689891429742408111140080007460683714760344535770640525037565208101764477729209859942040178758518414827934725740749338937567090834915205660491646965280511567827418670073974439034496708885766811032498617171634559172647055874442740356496148953784685177222650262567461459876688987716783155539822396676390201171653040375961134705221248127591298114540042668727567217271069072027398829942584286753768026697444882341735851805981354009983750373655190506566901923325669278298844786475079548644639089906129102235323304655671430231258078724210472310237482151395455178471672266151744709009793355392751946085440730770524608177376484076425749210548427946026154444499540776399872214278357895119552873668034302118432202312600284134230918325049341631245184382649989333547983283714231070701229546875955461696565669236240273686728429906358839825978538394203006072588982294670052511033461479116225291953408973132572219303176148918490513819266746772015643956469950450211290878037323091850980169837747296105783951501659075683628511398887609039072382975485986726038502599124603217020351837750719571132358546875857389731249770496730328547669499301880006222029671324449199242640822879497246119375784951862859881879513533737008903929499161266718119579852084588983441720416910351948448066189697617129117858856646625201948331451356322186415267069735935257661067769766682563606356121367422154897330300491957669058990185667509973008235316276108703940376623970066151537211042051095868780829808880234330891238427111883896848222390820917858001613219288520982453704435410003616184084242939308232978176606009727755317214430268792428520031193583885583385409662864541764418632547002676745576564838658129346269348131603856597233480603319837425250512054462234723783750808826143439017585767832331361761491534904201313215662401100203949374891415619420266589814575127149139743163675677573628177575094427056700316280334629707507459284801413591906469167621056261051702883451478732274665059147863525809992266948666638587758511742533787890521058508985881435843764727819188969358871423696324337956115691139723681909815253068934825728017085579529772804353919555566287345029545104754000424454388320043954811806622097369213587833961528080267424209448646146358086885153281204012693074912245118255045315087304543700136859353169762547281033366792030712281859902885524973742711629372172527862531147694413823366478892277462788680944313641589726565063296790639047737041161086388030703298292138345517163714261819428745957011619510629963204652140890550016822396564748318663363440445680966242738835004812440876924886880525435458334509383295297809577784159296367713306766395437728730684300318992028440158593242906208586889469771808097582788678893871694780423889722266628166012488961031352634185217089828689616423303083187625945168469486692235810077745172773198036171200067134405038025591536008299549471865599579148971904368941317416275854059369894440409594683063571118985952960291458030963987774896029833462609076794804064767664654591476372866076622512811146073139399545288047963154721721838322303779431024564577456445452223709888055867168074751755984669032350021290454307676311421753728264133507754220402476647696215825174891451498044314480777157812835660059380703169183268051462379008610700945228496963257024412755110407471238780799551596868990368958379317782777152511914541292603239119964327971937359809983616601037581798048903789161500623182119438284373386917897833177827603497060234768077376218221431260787096905165240615869251165574002082122475581627987475414861518526787027582765249684541555658260836833588476660936507952468372764992439038364329742989696645855090132820476957346516621503071651758841043188447292479037136790192886520414113495613117356248881860854449697075373814010353616655459937074463934093910581629119481621675330897360473750427977414319111445680101871353050997558138044655110674821464385430032353478296944060733895357129839197442303854454985186727672414401742410099350244625397754279124721416274836068686163440699632633907082639507746206734404587694544594621817971866242333653223728536360971340868267292260253266002976351688258357204255942078954123748017043928994084544745381952578956196819720894223740347335718278428254819439078945593293784354311663154245227860953760811533043476624650853625303388394412750302560073450064965883521905904367249142586376105140352064000601456196865692717624817224005369727196331280281573882975860302220694862969662420090052283553315151370793438865033697413712441762421149532152961746871679134556486242239617477557093419132810923885995008835946358095024736001058807155018449553156467666003852472327327700821239168522910373623706693443190451973945673605780999865701941746311623707677410473446408287649757966825584219377305657506677585174794892122837138918821707933427962291085020196116222611830616339289169484842438932234463772304107494034161196222573150080729879733647618011940317118501055508009480863493316170143156085654260852887864500346452523048783813671850610165004712717458564734396336705167372191402777278379113041860335046684149777128490668323231997933707738804120566291132352175108758212520881932367071963595975692584414827752463490600818921273035133049295210807424550611914413263547031469882205198546297787308424442256180040977382225963220912662318217111400845489523773258971985707375397272423878202446343021280882228572584956329573198799712348526994957681500186258401130588747973370352419044710623265507774236799982167990570791127511547302780393387554254029506115018015657946791852771283043323249818493952880759569071245530413611967989416174738442437983374964542219027511603296952150125131349245259900416592947747149329833359882478806176976546490424427658186659447547723767020947162138940003510742743683787859219014067887483984156418234995403480587279660592367429097390381780661789695914301864250134392518044428984813366205594630904430911278722556243992369956103726404176379658878466654128650143823100996854820662323294348153873363072600522911739078538364704996388597104337941032550102411278419539418739292259478453455486539710092192946768326720891520292811394714043563951890026148664341521278862628581590750495484187259083456956680630099176227602685106893001643246430590052537701277090904287499792959953570035993360051138896474245008297086267377819443542885542481517085938817773932432455078320449277148683382710515111670004135785392925792475195743918903700729890138917171242639951771915212540010386463512358513275866519455813593429993328620211807822271307600693192623726462791358204317037494188730910925984475605865420431249150131069049278471043873301060303500850910895867103930141656516505936974712767283304235010829024715389231326687240576280597126782183944701690121600163082790055103525202242163100393652398043903890681277669322511225254723926184031099579984421877998828052848499319470050665326876888254964367785489222247909029401320980040271342888646925787708911149412627613113267912262818797885853085052288626542072928489830174574174049391278861545354473309295623763325515586335624829400428951450044689732870142695723191941580161685828027496240187047079952032761348160446530674639483108195734797737682298994856731870944773882294791058476741439127309078513097061727397900216015888000476679901223994650081197132247898381733001915911806601501209979401828216722166834789415534209729827645572709588471861407731328041294152834184962513386992758170267160345153276057330184519280035928170033962168015629602347192704802462035995356324150063992259212590439950344374872518427788145181601130077216055619870339944205265784128414072575264581143594244026332953249272389539309418717663835133868765520845625667527484833532038971170458800955022756277386121132205938079407041423167614790329855124936871330445194615712560461778177669384337080359588871532731518195643507054262600768795894969535399654598113466053923040741123664660634181746692324099814028899478985486021885725007909379952674897462836532518680861864067116801516367766491682659365339802377551018611079949513844450311832739388543264581679253712963414788547366834509101999737219581664554801335881795295842036830636380677307168524746418212065077221860795031268329988301901973542353074682831174940141102333180402725334644157011611826828111559728011920366426561702957756559621042229745404301198102467057008237799248568757486580358968497251892377613687564211858569332809119250728010527441613381013989193909571933142131639199437347834482761390687410228846294404987853028203705428909231622242624322331158925047255521778611173282157255850866056296982619938689157143197600819022327278134253975831366225462558313436050340297348947302006301175452723387272577048136192639230822139034334103892164873671952298713538386813176412509381082391876857421652992109342165524237204477466073108672496888407959980440381125925831106439170597440524052086161013831702737567162967983108966968157145089993546730954585337590038333589207800266755865119824712589456724430551239483111661200037362142441520768792573894989775448220141998128991909485138126243688877711472244814614218231319157186088452546638396049547529838342687974632276024236551792528208715171006677694366602949703327164662577993084985985148792839791266550794444343021970375323385317702464206442610666305679543734713021396409796215725677814750941124265723629627050595634089734296504761693675540117667785501271688001511567970821476902757711273964628177022771742007488139524776610600727060544539794602049889001341435854438737373537655804612134587817632746358713428501511788276624456610394839663990075629679345854769262314197056474548247578280311544810655283904907724031804816040978319670398429887573250535345069751024165946046479645092622880939348045419792053602290190781646453420064839648795439210104314034062060586897860894944493910646356061753122476464985514483899369134727999460765816286021700505480573287814166388012059603232191819176241349267897595923900724893259583231053412379796368691366916156033329474708861480885773391434625496116325719397429486844225797564400745979738144551008156877991390211541280909614095273653298551476155222105096608411062985449694074640889778773196313465500150057393100961832314707684095093527005796624651704696577578661801802488617350652775321613039385359362817335401613618116092922931227774055460594289853181970504036316088719918698962124475706056790640543485622974029516210755905187723395948025234072327801353815960859548768506387971303576569931593138594259494329633107396748897553083822095802725957061166921906986347352037946628698758492498979780475445448232616130240392275827630504679278470580080326870818310841134954216635416960122577524613234795366351325171487354199786056297437467598097125310659035203885339149228736006503933309104015846076297752260986389665947108060042246660654492654430688618587162743262861879542208343429245800338001500901123561366691234915618156269491625178347812490035370170626182894786887981237352465942620997375262509314221813331046202457616863249679940835089684607963910544154571857679325272896879443362673781432056084676776948749471270991780596463631574103017368519824147426636931016547769940121584790354033511229991116357117403839599728493833027911409838312146867075966588878708842440969175180162741148081148647890501831907768491383857511054142866588933961116780949025472490773803227760034764909886036225516767498554064348683286582766098601042907243884569811397427213222189334358974571278942540006232528695717221557636643416264924364014038534673076776259239721125886729318966053391643537926048787023472812838625515159407299282378965023068771514956430987717642333177310593578050503748117172928860753067140891896633714802127611082721699850678241583414041425906268314139484399852725993679726056900452779995067217274007809154023841848597744621650480937082910670620913523952855132788987455463227055499041832180284602374644797008691388661633991688713529053570801301761720145614873926515726336416704373838874573706326018817731449084561493144380394976522559359975484690372627382064598225645198152892920876673644956804852196321836747286243228364206554091447376365283875289431786030882627446905407154315483015498567009466898926343403996705476386291726486841879479097624248690123404394861763653178595915192602836113978351329307130388441643231245968504112954406160658238885231080331046768511142432059651469178411304957987765507574048651021355340266862407201258665553044720838274452441872243031484889906638487328780174056187651399630923775199735933776346713017642835553208755319340387034687192808015968506611874451317575006016290870554814550063743776381803775098452704496445247729121875344766653289782384294270850538248250423716070024963295045533740243682221446826326641900495628623417117885713928252802985823585158310509068009594059986423881743183029213048213911185043850585730424633225211110499786946132950788339692836571325379569411760979599207069124666419627538883627806826780309970974299866336851954934800679996852620520123538054383804707484244010767569974992112568337751895627376990413606679120251401064784051708288002459270354434925698408365325732996822541186791520270348985272604745782428281240217275240317407677584283778776733521416707014581488222798466141567523381549811509430454885005558026263961873100971094012487617705638805281195170178552854292752733985614713725653752220373985479017520717301975698365541345007709081142663424440741979463585965861165865249667855031755662147855562050770678474266068951598089586363688643306086272022234746297480925353938140806066945497243703314326046574391835163754710383143762885074856009085377978309158099062537268733728340623560140423295437692530343565915990337082151223131298821757621139873349087909627853020260093389349398956790220427709800509597327598498646293549214719164300984763817830769079706104161899043897995032884689528838591401390348553558399072938025625912480609901590487810953024437516676757088296207387358561256206432150827022246442346405278200064551191059592209674452643722759740603834463671976496357738881195837015206606814806045425729377380727823396467997852421957254868590606506634711235603865922758894183377758586301998780792784016488716792346855098536039876642569661464102643224035771988835116008073524481556696702297336889981397507977935243730165719261455075503863545057089501459065325410161546526296086245139043407439117605659122339824624908219705422142370625506541680979471349285749232063604284427773833069624760935962284924801639192635580438237419938948842456558917549946716346570894258035182778330579437650555882542985069987722440438590172925314289975187795081756458432994613061701310513449433978150036850079842869317998851384459482961615038533109854922356980940533956717942592831462717969863679755738999557045820876105466652849300439315053954389877621109073822618792088743141531747052153808487597529756077135322815447970058098711455944473978613967717777100081041912700098421102521883937669833058820799375178734307780337540602596113376040374524590360988398862281930591658419697489374065875473191200959655182777298649385761376712155376370850139637506487274845543565991313020321154917463567679116928834329949668053635229255193851999984780085782980252994578712543125751041058075335097231926067797970051697682967460400840257649761335829475547769058242811595599275234513129311251990086504319566656017378102862055048496054590056702698170888960738531940210040512787893222466901197802892153894955020699033558432863731835278907490506331711091332261520660280598500885571667489273703185694319178386035338287892566009532263913048967352701029164306535703297993715506636834139987619376559724937219401091605883331272085753270719428520937040216442861317653227649464402181663336382374536783785075099104369617858487269188150446573454829169131888488947039014995960277776127513550723654365652092709433221706581725993430802916853079147123737177340256610527541787249462683264473970011635202421650166893485585426376148660707607174296137608892543203370746294950552513542749949612997351905811855481020868195838255350479187913237652418593797651263346235747121002539927049546719781447619276340343122776483883887273412398230281366973236606446390009550874578462035854311847207359836326127210948543657179766604175224973575062249968458183811669759207416944478893595333686670714991317157727167090847715955757754498007898624276480616065906247338219272516921367489334111011160412631659735042644594309367480510395331650848936354737748133428865800121155159158541674514167530182242689430860837239971479066812358111664228085369390973832120339176213108979179043950637958424944720350639862215047366856960953343222739226249221276379690037244031079650162657171844909069591196557288705820163015219953618076982176555719556961062680482003915328396825316129745614851998559696867836506490546574567127665873124937440031914932889634971891612678023928979008483326767227769573265211155304402670696223141095150459894506881163181047124902812060866555356362094724682868142208164702964082332960959529977219442157502414549896764442686492088445697270983373224978542094454833304626858265519077800246581553727308757819373230586442279177996927152178310281306758484011144954001841019195653379718250245126362374508249118774135535412901353358974228823967472529797202163219214278375932351134962869618427772621991154279855256105938582604084692381863215235484751025713732417115321201204447966709263810380440047556082046194176119756806264298786944418524164645938185306273727007848362244392409211431898596802098386368055484121212713495106410200580950590431340674029801994487510319770334037982971569408290241974300463741202563251911728161592654864122672668020532010667326925958722814987387750767126247524825895482051972384904461976976955950554326890169705542020906328244059595606953459490795646759430860687977285181305398828051091473732937125408795958975124888922047455017348904851158177449375318935264612452819565458993873845102230199190913114108030526177252461922915966118124654192402532593719753861488890099123428805118548213551280350386805728864761274788693553537666827244330844693036231080699182669092125138893985609184897240902884525357263931931531081724435139943693929910447762171278961610253913375077036502730846221669237701060621349809108756128991631526800672771287695109103572614043950689909617626418388505400981840290942263025035542748043432021979406599535405492725741238443574243202473006117462631389960531371486673601938625807327970795521295561693073585344683431916875701397150451634919600923555345270853509651738749621485650600497581058753266295252709203381451245206497278100873766166013575782244147889930278819484472538095617449935436154786853275730106668278996831072181461212167779946008975827677760165859334596203767755265675017314092934451711972826869884470125389795733758902574911982150844755449194989383921128087869300919945855576162585289951279868323959137902345144555734688734392034429622562880351901014989836377455833694014362741712642684849920665459506020140400772679740724807650583176522009172127031264893150325474005353324954955591058201242341251179137134505848930184017318415704360744962758585993251424541857026032664345917323386449321095966300020176658551220814960730018267493376853467514906085447248146630525826700951256116406142256539491451752520713210043718271842643873511693467664066695856508735101523740972824484650794562278920609809167091461620576083441045066891302735489996824988209911795186463927023018781375953628646778469452381808071423739952426807690419707385557433285680311021712759092864623692060599867192292392834929584214642053927969968453091036168681803133592631708562910720953835412118474602591811261929484688942595418416283784390297695478374523426492104275240797973936467025974655171721478343609284377164692310209193248918000974270221285744558422461777018336091093727936093870768269930530725570220352975206305642548908194381584929936268672921615779299630348638887132953522602236103741875151191049731593794774135353014672438269113350572136853060829407492433646154082563173192433027600870522702841097002481310115742506997626797916921453319304848351923438270047770672726987867905135284792871159182924333438296344615080836318322962093926005921345156533040979108232667815890017970368003217233303497397620179909879187696939727790984170712588746306734100114857197683087178250710768371398260459817473485034816285865761687375990812580173636395470550588426149763502935301276936439599457199397929897264530792253418888116483122938560877439091023610516664776710297957388835439912164519689074068343801924959186664825191477359836437917668241623467559240897563958740690524399422384238513318188068792315982581590001658225384530092733150062318888203787908094089611597031479794751641140861030745471601566894808907828610639075799734961523640967529464059341784338926530251209662183075212861100640212165364443261428514519348741036331668970610905420004678662796309696293600868560248825236880417680072677635208849653699819031192043616279836526733722481739985584203047737298420617836031461180084357629047014709721533931232133909861004803456204648470761094065015350091613783294550232649811903357848771342551474988852247653390070157326250351443005540562610534964275148729440978645295409418860672006733923383355043748526207467296667746775594130914351767807063260547619661134244448507151943153416346645147439023605179648343916007284321451582171679180975496120678789527964527635200011502260937129666694566199423803940611584994758743915476935668320701240920581621370897786411678205865076355523002827525900451084382516053516388760943109603485142117321424307986444973134797722953377569737327182443579294901652439001396078870089306581902177660718764504851571882015975054259821775411058757652616942175536377409392200034180857110371947605730961721234013002090436007264383781405137051859723404546232182218484537813015497878276474177693794870098935387983990499796037798745758079034717106888313115513847089497998050612941669179927710756100259490710969306852175061404134260217088735555616683161337830737109132880352329705004991305903508136885155266802763738570461557812197690371810982411281138047758340031803583196485564970671206411885076996886130619384878487603861553978888691215812248201594400524128668249786264548332191772811545287093971085803844395832666857370792134986943545744690096857173459088861069259447055157889498019928489037479769075818561027446388374237348960773309040096357191285289837167081324190613015766889163990692711696778209842935879726584964979841964820472188974134208889014071078288345203869863503172242286636079739195011272867446595688276562849012534019698468107018550681311448716065764709182400633631754345399347404730922124880676233745331503080446644440300665750328327421386216154291796495655418439350252070790340547421576885235433562915192745146477740535611529173644330925125490653371991343694744435957877599164720962035445523746622768704934297397413807216229884492682038943343217413229443026582540262740872078499181834882540636097656661577132884409698588092427052541376395750371122811367836329401962411455684185776263353388643677812766666301374375755321998549625288033062823502290295972485771406934402473699408745338266125641698424744818148475638711400812712571693802800992929022745654742197453493132581737616912426529548589158592334306906493643985870874467557251579381931616913175636666255893784365954708591997107716284047186005240586225636783963843976642086200312069444840218944726171794658557039530764568397294283656038401555356310821285268857799084370346855691849124362908228324760203593483413929325726410017152235281204342206657223221582114596712410265572166809479322875410475907683610735101876008427445072878393596387658998898433808430810201501510393944668659427586075327262425330228527334123315018692574365504343828381270658126426604675068479231511519091730745949298006090599304671554370368809513344407234093733456489250516427989537942723447173811069005183312556537056635651565393054877038163028260990002684156165798494404432402845911028173520150127718347345825902372894555606746615535623741406331753838800949573165583096167920461555838555191222254618102334006853610061802388573859377932400656965997973575382906001545418634313118639396449253327266069442829621609245695083571256733461830359854176193472229875962218799938663039028081187349654567311325255533235807694109373346663675130896400846906459116830730523001100023504274449558714182108403293535574894051030439965050615383686457979948685662460378222929274751326364200457541592416549456506722232864781852525557086603055160660806987455330625270748160422931626276267872786305433020366603495450182196581308468850511815682800135285020029795604059573095017638114997690618548385806004708500687156610738181925394707911396340182054995224877660505249609728332936366828735197975109547757850623276172041616532842795699607951293481998574175086867138896676581419239738835342506634555467817101880132243030250884303225641982125041899851382664893367635921937465073362229860829198739437789805849769797443346362959195082145820830924035283739377228972314088098508844146309429665762026816821799123007364969549941350503528081147761721646760335822674810544992765506345493962003040662127756616914160163789276398277342779273316788022536651999626638334247756114417712467554752696006881826376197479823836762223175833253661880248347825316659056423541528969385681838732508308739340866491598660133044348450576778012659380433686979872852810377775839881252126835039122092373772228432283742877757726135009487200467708801130700021839035683510131801798098334669770339641550752323946634566241998554130536132547872370734614774146705213743686591309573837067750917338014783837987809412385029982877588208547840693508510011427804076235878254739812068124164689541424195724718774096712697642182377845911725543207662778469012492817356692717076744804352115210471155846050409100277441759194647994914614042632446293278327574479806214307079689677227040520722499476993262789875049810900224857283646364884059426713199936817101794808556133882397124216566853231641971964563079715842096421214138042050821358274527189870986815890306443179688546785084250533935531223496696077380041232708734793607756000444408801819447785946867178782523566442525189243407793582672049142265109798115016367849927854261275598815034771301660482775263989911616420599757132928280212122683799145365181790763723169545339841852998269409268518539812338554679156904742466455521883665358297396081892825145070654595272531445738890639767416155624483405663799910165616380158476527579030921103962405338911332647399444106487641197795430244504353056150971640046675461156427651878142161051024121814459561129611240366791306080218868742376003809624002605762206701287256071467957722124171927239326446138098361581186112088350488757020518679869824879719724154280782454970502798123956075635953459610935513540693377548512739140548533679127088689048047695391758050901436413649416941767625709115934657369414499596073876159123258206488763378704047488608600223438378367995666655518645190726346181885592074785615432331721068642804599011850719849572497023789641034802243855604273036865203344231997597850354599579018703965680155007888680248495421293316624189118524057300741793104601770109715743544998111870185791740258815465242760244880925199652611150546362824101829347612964565451671512300522782384482443587040020836082280942990619543999831874981925216791623070539740301767658622569021723391840944371227563189715817989359475356657771561389049947175913062233836604799618552584170973060557230793192872652967972367306037756778973032195298595546146820120687335864093802618423048610604375698079697877288173577453965804222916582591100207945018493492174232333803443306100795757746745370457489772035313610880605716121556332204304098809767211356358911400437269568133419146727408912561082796981534857341732328026513527252113763598699870279971390115725050944062576456494074066467484782183041191661629980930169257399707545327146195619378658053987855638506203958796774562175300702473137241299010245174573926567224475633171521178489300225006431570265716398608604784199872588795302493566802424906419302965989924709174058468070410855804080743017100676224081661832083468112243877628232869454106178077177383279896915915607548565566905734418721014186677289355496991319811512990717970541799932877610806809664483720742537861315181657956610963944502946295392656128900161502801549021801598182684039359032440055799810962709760188562757803620326358097920358260428328172003193360963435959614263864668909761470205701531448707972705179080325338139854428237630000752501448912354122572974275604195301996395355662342130238714556428775831401133761211070252007312987983506514920691382354491263112253358618406651488232957252473041226377172394254358835642402055401443533993454955125234158317780497868537467933964855663275056637542906002587382759013490841552561231667037095424663838029822714785549251140126763823774730890954962366068377812712202872375060874721832956367608780878381696112394843332305863618658032754094493848190190473962567550100808668932890413454835539932989297192990576818524434221358284022554488097176664501361574962887356338745893243848695549342671542853769206609383354414249750486528511979940605958800952055814993523773942711410240244347654200319647368441748634773391160461437671821843525279187464635562149035528095794141386569523938489472141101818734815975846251109790811413744662060858318283769953965971582093199552714506590686314967402783514328752193619747317901940235790349681760615941674709474072392076596039137356452971409662970896990991128496463076581528947287262036168871073493850812226570752297201836228250674509898476827329532646417457085323125105598937593122336598771036694983406143564750125515701270127650764901619906245742038614768294259430148383014098949832147497274278649822678036209172493039577752144449085855857958004108218298469097794541379198658780323864761577450731697917339440165351068129943837612998305235994480027696471010356791852420749821732438978398593061990677344758899090695583990695949506120380356830485528593904653876207602522019753140077242007273283559830723064059879086281950201464251677947955922953968921516226492527303351012815586147818380587465629766052132092421657398973927611113872911287929766351317134605134380126049236237100519568269505456613568795978455075387179201379565510019170077606674911644673961876407278989241013537731761122712489544554152109056815078683616058173480227271486973166881009765923399264353767682098757862809192148664240356827500516859507874110149779903081368122514517534729707575561681433216266417348717037264784518386184340637094799639146916848024456145887927166807780285353016780563283239389057795514818068146125992194531511869684954512698182960946992992193806960061288320942676418776003929842073373867502989062628495984987990461678014635193216886187383787755271846713552951901508966127530450755747831412375924823991813283973167261091082857295843999012310611592306461003236549100986460277680097542435507316276517849286987932295622278365405921165598510363886378306745491260271814325874443566142652956452802551774955635313777006826081493650323695079946873758353009496978231090664912433624488041587474211342737325492401968252517714464169489371269785926570512697287172630921791653119675076637103811274926404501793763878744334429200202765185731343871682738472866166585540500884431607397201599941176772774551296902936190035658772303752835698043075631347074803729608595334804785829454188958952220210835191599076100430620762900086292868016242422402861839922693649302162604555591643552688818384088861737754995682557309869147372502618448118926725988662737890292706898679974989918736559766998548882236415194892094148556502176122691492565515437562864779641278439360790620948234161774092062947279252223975202802814049196985106571992266680193105714390174157905266388961359549698451813645809725552022383388850288052637133219638450783005147368813979229747058649482865423629587312099288442551088937882514303136196710610399148582893476253651023441053502749777057766943295956058456942399165973765378915260537696837948773864516229068002572638560700076885309583556883074802386475149378275641114231317425712216773479629674601779194871015779023926313076684190844121516826742318271535864506404325818844191509211189656487920480883221250899997243757102742696439886436887306535805349229215658044281962586788865844295204216258369789453106910791134393742797700999303882599555586192632061110122396592546681101662073004230802445907944494580559570362348068168487354778426004919307431101001996190982744975360311450947767092313407307915378514971213284192185731668777564066040951973861901530519492376171861523195914154677957705074640051328164553248532458721354394141277416408488262944448087822460119698829426172166750933558534695036333375218664566883801138934867733761924013839659081958563537076406639612802893446675752588558339675447071757898231504876536628346137823595225136960077089771349520347526498550489480387361208967421842538399697092887918248672681817155969540755770531350612597015811146966033230861331043387141306776081791071924635312737088470831086163737488120806455687360794810559907166059724749293368386909733245590215537444933971450770587554858009264552046280522971977679932025022200138192684840933979653403940886431497437872008785099073485237475506673811664242161102797166734651441749635022810957500593870701248582510896680024342770515917015818412179606561911497128594397571297078654350403477209753616377510994821009879732309212185786798081662004483631958157651970149018329481493505707537942583285038634628381385417786012766395044370824175427914826950158047999010971959936714577323050973176836807870625636270485472966561797143112713023659597457836449075033208466275673978755053836538264567327713335965021070953666283908281213389890368704319047007890723730451967208544101704689936781931935422376845354236957697426632259306138127689653579323312656749857232273376046650093019513691998197400913205744871559078501624238662975264526693922225860916306020024699000433323034614375688107688178560329055116056454688069355565310693043269777312512208482767053598169114302387350620688302434554391992315681871227884890676108152311992249653275194272355398811730386753038958188462038360062437919056618117245562514284078243329345425130276168247914206687230110293641605106015035765197609513839912089480641037038618584980370179315445326015798125065153355048836681115696560549860493508470577569232048087034119081124137592326268741538383266732481328929569834864376496952392728366672673203886705158601625164844979547477388016593450333735195414917774761278354159986191942769359576246646063339683860746862172995412797620238394414417092657107737661077939828416406032357397801735068478314634736434465688552430920589744041038852293365661282184921348137250437907363753517917353292551972360280221888473809885630214839470143785613196050378323770678993547800274026545122151701769679991355140177858868810744182198535510716734352249185416785662734723657699984198669505725972090788118512461564195031731267987381976080540341359345309823793711134710140323062375610389738232897878935360334548633911579224434919017781695390690004456839676811365137353058974767470917426120222812245469630672743489334015116059018311548965767595979583289959544964077526388188295933525902150140257560819651538062472824165263173164905549066899045273665115495490928484165538517704666376332751155546363108134337220389090939142353650346779808827425999502114736994708267851753535385624597199698401610046961246409009666964534346236204335275563811910970929045584187058448532389587334065652145833972059247226663097503730878811945294614594736987098328705688641783132509183605458212087241805067515592897047281262974577347699759632553897447233060543252101713862145142540112697180830579086328919128584536807564704303091502655915113843541691520573671830827136879426576456862539919758072841275376588383140767213470011533699274542424574227396108058475927397970448689876372850999892899604671893595786162822689805072190706310892644512481221546109991074764204883818184445471921538697043197760128815752901334453565914033869619537627415390031673452290275921891622595443746021842215886060813004878038156876107126443069128795404930310075415976987201546419838653415915611506887173889787834333791686890585286935530997986301645227579625386389517373880954685681133384992492582134746855003422395093429777527363708044338524965251839949256469161617817537274820285209755668772984226616254547687405954496948425562417171505175119309471364693166076341934482485978820134373590296337771240009546978420741897647126563845660223510414143041697574030874144549694489153473594387858576772568333278571325841591845627548194254086693272029387084909669033185132809204017636385105967391620714125526948348355884432485851310961641371587116757349611680462507827884939498614735533293639448887460627398879570649214810170748675442252392069445689941646838026701945642245330827408823189369213130196722212128597396311393980959866328575724070620905470157921708520075024581649769874301958405092239392106984346306017081601177028198830914178458978814284918170875892397964584737054847787712820299025193000128377344979310088292159779272224457652025720898684232384050615760488290439323512052845374860380855904357604898531882973174940094010026471022761134795935892876951874977504412230169759818485950910374529022418986738533552877593019962474289787159706261644611883646080181776805028552427895602996289711270908987167181026731976858414850749431947141582071311155092604587797408383255349669031580473880085008220291203839938227841570041647651724453149954966637716620988142658859548081111133253861198476400352841576206450814706515639332295354639747175437346070386655918428739622343573451067583562812835118760853867093479867500557762695665217008139497966084481519435283713968385570023046935921304687752976122809177660590758251925062152012876081590251924492355331518741837151478026043348582414372092846969952756039407373216447984151987933861343314817480542875793648319263854401223924768842546586589669030005454998004479760029322820253448682203657825548286390489169207355245433156069485429137758702909453768387739467107923683711681598395942468631635761515949751685832380654115485840168744979159987491855843849671012697623076896785293908355971926776433393915361684012517341849043093299220318807436980240235857528341444821597263067004756062921324165892323554935446635785609438871124769826354194198743491735955445656305100324991288209457271643157281361548920707693531441797969399718137289500596067230146325268387101441086253492909757260993338419043877354493570212146443597880708471829618617443342083300816037427136430310993562176896873646987749637084675145123815607172712802428538640186508495879348552334433533082881204078621165924540511930733191714327458364204356510205464457023993413927725997043871415121839271083596393689971878897956646828721793812543889904902059231133441731413790806830755007076379586531881964347006013743425629836627312351079952795241654970439225415941619757716208163631008456006723677730672646172506615391147756942458480436560181464906724611435852268664882141296857391583486651732364599051312281797828620390448174324363667279733539676846855332234978299675678223466207723032898862219181934871472022623764968419214286606915135648658908881994774023031032937438724216844815797284367987623416927511312888569681040128593314144925595685502339054649263029674676137195216635035462563986297475294756121362357785822969250170625903326813373686553925750960883739344780516907795211465312499404779769153737326543496686885240041481221517611353581230150430320068681005506512882868202718585206260061783290566177509270929913489115936660794929268748845490111778878836504241638175934153330674714821057568839436664192065175795040926512439413003338649091738594215719255024337353552727960957589692249348782493938277845575073418039147454142050190575193725506349868343801260797879803155334385526583860764273013351997195697910908287458073365872554211424374476762010472790386814766594579498501895534185322439474608829241298855402088552022869925973646259031490478521114675976239272015456811431451668833887501030388628757292405858020155828302490753520137064235457748421300243199388196709064278869420839353331121820842247425591653142836359013873300230698844221780293926047484288191386422806711760228806763226483629587142467982749120887399210347973293073768978187902850455828165842899157888154112826808024381709013516764579932598983285326095480367139466478649510485131311871933761016278389885215316801328370133872423976792062208320011162504460979392110355313645072674703677795438247940911371922606834028536489178912089578611547312109037767570873372326908749919202758093353824501813903779933392933442443598543200644351404030103060108715705508642526946284307790641855825846205035082442603281180648144008262160668138719195618508498445697013438690527996970034815516877872182919461399779153214755011575313618855652627696830597647276755011580934999196324755385320064186612641621304611403442317622983808427248927383709311429043837546162221838275041918615105675584785132445996900906922438217508085180202869807696811988378551273507581319753997155738355378878172734956235303952718191159909837763133162902810172336977261943324398245631357962344691761279557888501712830714392440561369354054714282891103972132075083179600450459170459657114651534136377104907581830557580358286383081952599551723470359561825347933404274137316352762020255073287403528154107668977019302999573254006466280974076725174928481024090919138091096748358092793022254530211681923609023778556705444067041167428782544184191655088051162353421139304427113356941656591944382600006521240482271029410661486073402186490672936735926016718705661999077674663952704422110918700389060570105479770935315743758377820634160081577619073773396709846811212539691470754972555516191070081663738170642811094635856213590921618446956818931689269601513692985508693634051024575267430617292141389300649700061604195077908007845850139389491366579356241679451505649811171720579886913045550405208526964020482832376899692416377899305398754233512897128392007243210512109031434276038125391019418016740591618390830957816777406515419354789439277325733254133134336756357352319421240038510764446837495606865511332085174540762660607524562633754624312135310721737545012816683281454571670750788419589912669531079864695481807697126951105589683240006275871421773241231293152768819451407060806432763003246398313746298335013196859955888819574672965996909958247123725016401252345857843396302927291509898070119988944660333552563080835185901729517356837965322143858258735394206495062464506308299585781208922551959672516078927394278644101481659721970586236855263797814883694827981428670942480620981692873366026652294074257793578671115835378345718324694212789342324454712950558406889454421952446733182011427240937059201377290490329862253926732767829195813461339315157528593331521534126790742508774995251222744882493216467557183806430676597732110488272800992929244790035012177890664982191803915294184625305741410036818328646551606501028465918525014901964795085228259996987003052359432055150671723300928386549123782288039903576765872078610320999980503168753276118287377071516451024530746337436400253990792594193196222279172075343739874501657092384934303622612471218011252859671992970702690354195308192913057612868056372168874873549229456563398983363878976767663442469785882376722843153575201062260810258256796836179604526669437491692491247909400366352733949848400138116575935385146009384732638797845018266853132699203377279442839006109915685237624573420231523105152723276632980101386513350097502627717948929910515339187430373781465524246397095665691523962506462041619777492687699848174606286769913616323498307117087733468430677260657272475457677901023672396705555827057685725553670497011265863130510225306977621060338114804876518195600848565219408421427522416383141212928149627348570284382268399688200519504633559865478576306098500177524104907743854507288858102666315556625521199399199572017905368320295466305756226545696612719893399080898169790206960269379898607014277931889867123704837287020002231217575584717674126795199857120611949613758276350993219419337969564641365479198259906845374223058778778336187218760878356851324240720891441037521699648467882315292200422833808363245553993395462624674547598019487893859150615740937450314711908144551179241591605800398100114382950584570530123380639325960670332369420448525010687043699979578325906088425069493714266171782161084594865493846536057378440255450721895657473806059207189564120081790490181737833320530713316708866395211199363982062885604482896605605846208122183754516207385657833631725034338249788971425219245197783514846510922246456061393830881268491916429700379699667925598952368688479951865023424410799480621137073164724407936604222461910349219330944115074801675794709389219554198351711889121036159829069225310787231408293726117498673571850858488430857194491384459547871717592346018723101555970203014806968579931000859736986910520868337890903046220517761613611295311902967711327874424750629773390715515914840552991260580304203534121659041158121643985448715847449565809081349036689313423746727489014952356709109296245021238056804859967377652701858079292084025512062732451387440314994124008962928129609767814257935190003123377442734926020286960203504787505896039274266635525803027596442080544536835470090804805569242568968202662665449182805875089138264653920464914176159640110999254566280344900995899275209235938304815708209805004662741259152569078312886776377914006319437738011945470986196810954119159049705578997027775898701480399348465562647861328513483659011371415728663442486722576608606207818394690167015622153635283029561610456844597032888544512827163794963738671733061861871676478678821365993821224543311472784324658356942501933379716895727329820263159692250284544860375385832962953714900699299235909604320216647698210595201057484510744037460541770150052992347239541809130633702936177056508068065662702058948844474044820257687642018919665877412197010376615970708215207557712743927928232298315336411545156469592528148449809755315603150050003911120088814576546991351852823101003907758327494450362514702949864982077905702709978141093463811191889607078411294458387349780323991625746431793872132948207861161891869373899553548213209794372581568373091065668554337770541280339326387958464589114252469438280233146367826893297833420269001029404925140481360416837547423181261712450458407100401474307644135143945022122305660619704661427189427372847794852610778587550111840422756933788363332837665025941959061762022184862717879788828692169331279775870822019571809501917911274688071251595646060325918455481022977188301573147381408089253065000623937896538222319757737565256699448775466720567892856473162821142449493928970662895806012688422309736371196649015087998702199893239052858755030915204416758787592506257366635510114184303038001416920178221878965168145072939935626319031142349021701449741777930194125183295985205219504127959248688663493665143893230785949931443802655264161420956737327716732888843111885217620676915956868104521996833825700504752901405130568870222760346883342251721006961168346223776823922633509705380483771364439802742663067295716360189818239932227073662543518112293237247629204734890185784668735210218243550174319835646935426489863211430148674984685038184333833729155926918378487693837495620098724791933759539677354033049361618586334611012491835624917474944760056579101865209043221361448409437021139213127142512400563464085287824801424957769548393386305167246864612521389437533525239189985916699644743578075865639505983839951972514067571363242272518278252677703601959615961974037135313904342829210706039847397510943821400288657039021733161091052626327322680053281027564651138579534839215030144162210541142466521791174969125120021134651089490310943954830419095503638359646143116184619054843993301829534990652370815776588829289066608449606346752824756117392727589423085404074404436045375473034034026144104596151117358454828987277788810450547704516182049911020977441530345802548260918692310360187885935583905977863941990414341064041998058770685585907627439267739836944391345169780183906526495637196214935623131882152270843683443376725233026880922567600488705235223595955573732261488898801036290994110315519953142227239861008748346594491543305944804374676990891439335472467062457319883691870459017887521208777067742068558463427215425304647338641448815265695039237932516374232017463024753947877485332627165807035707938937103205375378470358167689393869104699122037947401290147899592200817148633679143735653162203388151328027791125016281254978181603459059908391351618947503959750425636648920844533946910151488432436350848900385054738767076130153570329335361981982856274860758368194882824210583232747495624171970525237800987598236625758260069450797554028584360445034289647657728289173892445283612051415027875895055481398079351806944196284145573554909643432859356659549236473563721351207068512346237547576975697587484048133227825093932948938607510601542657527488692680672036963787768953292495518904230872130292791503888521209633852650120631246547150270814884825732019120340299246917666864267132207441075452044200412121150584092223231257592533881542364762775488779876230433007257883820754271441501013569870459852414688305984737872826402215737439228042848905891995594817220461386260064277741719564562232146230554843815689983977038151527549291900069924213342170423864252432885196519757461409209244524984525305832922882175830637981817537585758388316518684079033500972087554756640838996986775592583511248415971499285421590856687196859031198061521786692262365185573114226220014959808422359455458438174088191706970737138236346535882556030777710491335026104779487392849674107836458277160298834610494793208788173113603599639259092558956976890385296796808432636236435877743433724319862077074216561270038396859510216897493509813275686240982525066437151193854071179611572237862941827825831502453054293742201373671276312165630901719886595478951735819577478517785240979162521252942816870941011855599879513808388418596006321316331543839415868079405387346616805680918685749514938877560640266421761037666019199871811489406124825153262488640583295232248828096273250903104201846439338866489223258145203589353055657948067386655970379039098067196720676770027616919153585627109854800987712073380914031401148976686446785405677460679498115361476353872730937523974927849690882546547566073245122627493065663501090522863828375612880543358958503224016583820799348686894906639150334836701290107064644676321842510081873747539900016147625419944823969952599337918076227715762069780528341786829620655862740083825227919797798965023463408687510460640715726507313739242665834606012982199830671944517920178179057422031906651895599106655986445777718537070298598421865374871224555820456607032764239545978184330362114738956318433139199447697095488671703474755209428979054503571826695745795402447311229789167350846340884027143724116363718713192660148564601374308243936431554461911983786786495562221218381440855556150536909481861882098507390410210519840436386807474187655324400252046930709806615327319706208364579321359859808937599318545208633618227219326370882641697336772859900420024523346170481150670147288201683142599947073691839782536878083977664759264990668879208644747767783385612856010558403562794718721261584473388861559116964680007843149121594163495663636396971320717390675701899871662734047723521938780418265151680157478989351767171005833431072963714135897273135733377851500930476247619943937126836106339901987067026406485672967090398583863175454447251729499205697194436570474877134689702612108079267161334309471205880194173669743752297634625826378436625183105908786429045234438757973533304280890565201588009770688461595936306837828309247045891859765083609375675558492544844884854144259674643548758254974112615073616416028943925130815512911881461615156922430070246174754737235325231703920588462572552259935581309661735765230370105017290408307971745923624606324033720122949462249725615074955245068282390226340149282692883934047019608227963229311334156299167013941529667795312046157771794992327671850522668333501632563790314449965594487451352906508856071704245002556263062716404625570711380450769539213916846435414918938043791551851333999127081964201284893352002394306336038762755547939095158910476114367846061956976562607725996362998201863516593813275016132255992360442447042045610399222203644116132102316792841118676308830696556521542036210346445280884986847796690053591739209649238679744928468637093791214592223948760571565704951135555926084986247382109075659443391590448814389810272080643831719958472874818638794516850287109604718185034118325999191651130397494687365615234219037943693848368856760142966852747900401194483426960344135300635383337644679304152804578064974861994365456860557850475193896283422616436048595736275141685093584942479772082103285208702432380457429837970620841750611775247888144884273004654705222020448499072194014721127399048700734600540381467863690882022188841020217596056606691339654639386691212616368776770239955881755443970132389386154467915973162544277116439952018663744710438951635994123616696425547098588601282635596154618231963969214221500103759564616602473634902138344210231114891129545718452921113432452973814876728289839300221356747137433719227101072068090706551834692779588256824410127730965028740404926604438065676882237476071761093921449741552648489711391536842081613239492668654511870890803349368912795294541358268241189065658619456183152953689123955765526744417612944782745235269870533049185077397465137534577531687326663467177874776752774632989065217871806277863608050802056737892119230505021659719647814990074479432510527228897141181792209254025129319365588372303460062367773122672477695729948453362160489695131979749576891486901220651405520279909026470909662031651539388112917138977424183721111953158081227822261294004788775372234771800809240832681086346565886880335038026752057639573596179034804827688728146725285818216759898502519026595210945003315120413885380121389630085974305661822275272177648272124013403004422086760580069210988310964242553771495434663003930046447055537554864037970963954586842518309203728731867802858697148358718608478552905806153284865310655539397215124620593156469803225682090382253981045380940443892298683164584564998885441563830650895376222820843378453474474889349240722919137279174200824818233160023641870080004582644503476451213930315660040050488456089227167243618285712286361966197746092617772585940243855786937501534136162082918323700860504595953861373618785736497747652848437444280231922185804609513024968428335086068860833318136705526885723335808391660367918355172001955242763653400115543800215871432364551654180355638480017243204577664489762059552676153199828630354968343501119418635232468337406831361940750017155637441347308721026991995639515116347388563125473475490479534135065200235379876181951164658700839415732382633197321995416033332708753853783670625627082899313725807981381751396765110913488913109166702911427676953919584592852772228325268646677789983895660824530937534955098158795508547119520946857259816047828785676794572874967296080919196046250835794259635349843586426178381765848962149743402920688264746490232200024768670571480436963652342832723263826607714263745412658499432863916390410037324069935004765757205152823462321510044121214907204794587477603709369907205822043431670169136733711189969074242610470074326965634440095713413050615340700461448322520526994575788469962416011088133009144323603631329919073340162367881590847401844887305189910678973902352121611433113814339149731906967252851717665236691901421062384024328771531698254158106019607748921800777747903869168640213618902670125004598883261877631466045281986530852888092404927120217558968752277254880960915068321919721375247128192709106531417239493290840709997185905802860566277107959983430143948073017766552472938236050792696818660938688358339113915727406121241302181496386569267723953481209448484331977541873153373770377354881300914265889864906363061307337819706198201475921498140030092335824599892540590656456600042957530820437872089672606236486688823959662371826661031808743034974515179768021461299716408882463298433916329178671652958988902992651872233309009361695690242563912407827260806076483189462357352684448813128600645467122000367246546637212290217860223066423242954598989286889021733719842824667519703499309225907349429823609475223284804106017209541308105472799289023448914934966027228677278897476490183152502570079986964387941576471928523755576143738870524005543375407575356061182216342156590419678899666633540244145975245094305337251648773132428820025466041497509247762902912391004247418330682864636765132794587197895711806990133238165347497298525385316429949492408330762928059805890895219580010461210260683097828517827608154226248744035060411508444705813096897504960679046003436998582969301884120692148035827715021805658852682149109883743540525088197342645021724531819324032107392765481800408156138808327147983665905233275616968359692974679162435188235648342095618003162394337302430116050132610949049656243847712773669864358295036383704090730315225841475864337173347834787986673930741199482089591014807313158611008426650038015367183808486173389009741908920950453306433627621119685867369640195038618162276905332485241077450418933586305997882977942676010121592680491576416883392784001107595949983616189025381559249841588895878815650423953759339873649768861214469180392399394321576950573479783000392431799964974497735294634712672297497843142126252142869105521203679444497710740893007160169797969429100883164561723600942496412498067834607875204550712810554013079969719249873826332275405511660951484144307790518052083606902013493565820430943228449997717907163345142161870295451785384214278285065632793558990616621965152650927800515517427197989837154870247336661904240527905153800499354773810652450678437105846113288684711074761352998150487354930352687966920303987799077614251621724709526642845114058344824287431839683679681274505223665257167037979852088240312291426932504315125034131148814332142781278676385578064706441794398479411741685766225979353995512670204078547991065613705930268645690793996562250632943766099976293427608984033014903813301794638268499677530336987873042707555820983101101533351386499146375358817838507650558956465238830903706743453373735013353999060641939123130296083960825648001029687209144394133511738387341826755316709265922808123489646294542162297738277028777081946097895935358151306411000672795033201842202046290202023491527989551878705659613913324371274350819815862610710357646800412579033253237576110139902143390640720620897624914157333731413009760577388221910803045015765707200958536465130897402208373141306675994717821407715408137400198125717363155989883846288955880804434478019154218079827485773251714210394785830759402856567637166891457481798950271741296777037350574721657165637718849901643261767175131404830888717747858364453459064696400271970340353435129580037516443496737658306713075374431978094412364912392716988435833705347235464226739922938757470155991740889643306407594613018361198242624634319758506094193073950956352278952145635529271272547241359312311150779663943136000621346068694105961627378136882445835059254609418994854178017722552724308124594352147106767091766207867696931531164528803061533175515678076449149889835354688671088210213221049627619894075539366838753891118773290822828893587344024859730663392463871471393275024431633284006119178961445900880359288361142034589156982369613457919424885015132127611079619894136362698570286762063214204152093643865375151839616970150130073202186367233910764636981680017516302603143143808563175709922149870805508133776305175078274498471778153502066384838442499926328954246861056896855055762595173793451369126720944403659709673914385471586080386970144440077970954256691956256987185994339226532000510042193526552502589185943328056562208218832573645627642279971369429942304223252368956126775771579804368348682315048223582183858824820683442659539933839695107577486176945363779967998061185977532702097175855766665527983616821270622616653642063177567917520535547714880093909173579090791833697830206024737762460181553103141502766048763709954643009425317160095441808517664881794677758832010479789275838529319093867720766861380575384549912145824415255650465055672046662880030041395381015171301048291204969153352271387297188994867952150624565165016787561211676465389907150466229454468382091804559320770702946101912047351470639291793912363286038544171340108241648165530449459720319505089264564596795096439183718011685547578423345930740851382960122053896404511377512501715315374852503954788486934593363199127476849573203924887385181878795417981367796801556616707666737439948003621082489203875132849645836346327486026995133594522165813404475639900524105527969443567071190236365606095514105865234082395059590605759053297332564217663279752825668290730431915010840403533460571022377069295404023437326872127728953517923566935759878880154790070809250558422427234501635775295107834021423256802245425478044004999587458129458258421431482316700011727389622543211171611494679935683349000346352952375922096992058559066931598465127029966541208139648981891857025803844312987772540827628135894532369096709800244135879939595802244938734713853199577278842813253551995645606499855329476449344634193992680086380393907110911653085276272176854138218449048227573147931490032688511238551933005832513478610772214370858452750033145138224905394621214085483858587187995728038110900122226200006384588771433859602942903269686666136769348916661998012999934781628328645966051083007811567643990040652954485761102631080656145773687703360051183415371477653717861004657567865208420030590457894471565634258836095452753355977293596900063344089003658392607859411911457851304291821690074166399717144855322208664027082171155977620839193842350152228032474341261016170742915549852453795837728732172162401743948841002506313572117124836268472506848396037845448339489183188439011256721150430741883449901725750917085601116060009429060546804072038132914748953418637884638279535631360420795562578412525466204131841269318043384686466714882307142449661716730246017182026209649682025195364442122210095237271239412897080535286386776634009145451952204875969933458586561302928384753201993464130893923972637322197784912545039712039988128076567749342471977695220450168893309748466699090657766387042694808428848527478327974633914063302042500062484592264303842806038325341642120254625633662018204255218800418157118340026203980320138417440574891496277329260915825016550515750826215258156335580799452564162667961444670567023066984511101471787850104516855514239087896754357510119477687979185335493783317552904215213027992229662728667883366048582910782982154801982447552195131083388102198369641552122495817084642204805232874831895466416082974262523913017518916970583453378407297310934001708750524457901826074888706842026870910838547903399454885747737930939947921045454951115977049436439632001619227583734225634891264460237960741734601282615311254925989514373081562482504717144364798850544338988472265063497610690523825820788525598163642601999767859421458184535523424152179249204446180803257547656553725439859882111461090604481229488972670887790613373861135456462677923750454974252578050634016018718880850749609144603016989229867682480418052793635757368421405426070169141788156952698768896264229684210455477212073646362137993918002318107419576837113325218480491817019059222066448830489729923078119177191116689352926646910299806965973651043933556675303938147815646886354123119510538434493611419227406137771780860212952879296175912718349395600821368048329498032770848650430752312554023710901476035903276298596463957105262815742567729227730868124318797614249225703248162175537531553451595819642207759168497268087144224032675673101233384853639668540125599396844863208843027026035002564427048358836485000264748803379913688183905200185607067300153514538512491888107983888920498370189671972795984666349037638756865502988789912306091471683120153056308956725063845098951336990367469722844743994219797886254718404862536755932764523835438622122699248357087088462659888958859280724978734665365695850386983949062187217641208231368956782827924724110296960265490018797487721021414211571949535366276485118331160356696484307394140323023558169092922072168612194949603914378611302841377361281243798951177564491518561997006407120955176387965155263527128255604620565684018364211395975456795497201817706798505560179538240876051619549523829047657463370431641539202714490289484940954435259038628285349739822285618568231079922106947350451721523352472721467274280723529176311347985360427626156731070023745640428917777033203255854831353703384171015402568355441240625603822023870184775100963273874055591117089036224170341439963178472597318987233449021547804669940079136917742996256986852257004223604011584181510356260875195618454397861961212449032494235771905761624188987888407120770680961769995596281039887442272592818090303190806475534639358852072465690937945883234648772218988790385998632409832410546904599353565420076541069034946462057857881854973699919445172130980401353845382758906608940429839004736673122326073381924081058242264526404929081368745577928229592317245422998022689615288191406101307808162600659305767713515463575035239717806260317315600992092482394810376403549488219319032434408597216228598886905591531325439408533283591269313321454408099732156634783208642121591327767533445797590966584883466483828881559400641570681080121829962738899186885247012310473441634392242663114270904072623180024987253528934627843302509753286570415402863324009348390304154523409838662724990945187249271476255955483629554864102131410715662146233219077507305566050627993390751955541159681040654427262996919494617530549081137097360446820309573965532778878484446384567124148479484420556832688254237649142793493486451901181640499056659077664370429094489146680777475320177656872602119208830715537812573275994022997935984912537234424063443763715089738438610481508398478056620613104093094754183239544293616626591874328516182461918851766027919378613631971437842178211638526137423954258331420594933170568946622312133168568221254644926925919695625619794698830600594492906199004808101768462827756208085787893779176014951798893393691861878956428295382301310527895571625280333610711223731785316185485752503625843279038360502790815951884314698900926381706512589405284750212417258648043481784002075003132967608761487207266264065738825288129676380326754497364911307040762686345513663359647359763167114373960290497791194424201937584869273068510559750790374211704122412679042068299684619811687991485453524244540239118062700141076293084276425520752537196565834603067384007370988254576157665829148168482548564716974655728826753404883279458458319702157655860475523019892690574244118338671911819742131940111166505947477930475330700246674171539819440988276349760014735778488398744238775699066399429982394740925930244100413032678755607743448874224132475640954449897742473996444023063773946875722938528184232281499934617445495868435546967907560427327673427327440704112103276904682985623099373829345488968844132354222360522692322655206606622409099817954971780271968305022559266557684999213701092999152266629596257406070917465376633158099310807059640460547832655279075756624291027237370122654418322885357812430946251933561252074429495376112907718483489453718960761733809150002683688371482478854269096662895401150593082292441868345630164997647595360804701140046176690084958785653260030533997957001367335219877258071240254270580737839734909455846927121965604629888410148307498344752294142443001670703037745042056584806425012580005174175333212082156662737588208930526617565175559942400881646543077823634777499832241479198884966987566731978735696095163856778800818534408797360887247754847310470949088154781813970004510902763325347994199857731901532798329821424177528976039666890906471666451339917252761802121162419869150275361600638530712202844761574389007115255314092073496259254553733054553760100928297318263528835184309974663439723951660011367023192059002963643549413048934200310780583516305625028467520193186323432539596791091488757782958362696900986883872098612548123930976281288216306213355898167560294663947776860896003668590540438667375087613935880004598435884496670041014709222901454685965897775349211237040934451554852232635058081404923244079037527625682096875281042290313871093397020543627705845674548665695442818975674148895029094361190950673107940773289509222504147273015232422837484920179332390639104767410255035551979256674896373295660102584030806083666347008230149889607344564750764769047094597316917147170229914327037143177013347038992572819003184075688248890983924332610934732790587632469091322102026524994874140362298883631463271802731302117918664481514004266187921097658971378325175085297623786730902248381969088446414094367522314697594578251285502374063057239608546784325273911846545832676898251202817995565571356094072325226582570981635342352064273379927445312607113913294868299023438263461809848177931058727206100046583145427216957266224533693017485007449321756291963246065371240273169554037567954592614771991644234002031880244472849057797271350139124018383084232101066014548548055809339066023184120427382817275255262554423960884326715075470326935006811299665523490237214454077311002249585930734566191018984495572352566450889975092263004568424334692614850443387835053569683669407663584462642600119520316561431712211913552397125341056244541746918968323456140374864874065684819909590657999029766231004738541903206121172163245709823005770154041356605762020255332213625590195428825718681406090953956001696923952888359211683130998688040862980747775206368222983352027546838219902658711755053389300278515397005156963645987013375556498766300114002768989870555387249595813543053241482226696095415028784130783275696355130514274227465060288286535643463903909519599082919092502083728956596115657453064643094170786721977126253964540885011168447794378032281624674454804175627398844107936498128458408091436511383533348503909959106694952438926390342189747332895819481232658361589810008696559925364690391768308945210458941305077718527636620191771994513954221687528464389420036711136609910255021699459810310884795682400952933282571036001678928234943833212235088302883804116657397786690609666718486135758680881443104308515451235665552546126621867921666120982854468229782822636063694164000775142573418228701620378601104277131474842392383677497969495138779818068985602139038081424795229322011843463538710351405166250097300792747009771481113254440126064787129504092223537801014055273977337821302739412362568453215658045918257370431926099438216820495316845547246800246596195250129884369817445402081354727316559003804257662643202363346106360677606883758812929217259374673427423333996808367829479420267716324662835580972012236030250986341021209456098988755717526944624712009124547978322937669421758345042487854036445235964166693033323912773788859099756947846362961186513646476476216118905374230028793429887882035760036741829434917557744978922317682454392913942967253668108556882856088080457567753369807383757905647022176170996653931201463593544701411313044314313571268006080905738920822880210208436765632822505329588882481664924600534453530169402581529555974496039417246172553957152304985677903484659701653764724291240995138423925039542503164200171964133819407330727945479549733042935562902414552856612682862666524293382300828351991535401062161339366137845197173551490688924910631108229131295141154645686248423716437385549628790403274963147808078305626944501494178729006039456323059385037155503309449553188143351520309253083431532649143626002808806064115955249105096773718565416890737383030389278865004778879715312795147096655393169024068431182806771132709425270368019620304716172406036405740039565731293122799325004202895205604751264565300182113945786627634177251601955819467527302347843331150747709711920963226495761856797020849322504909388312308394289594171656176518000762764674082437067039169795897043197805484536873345379311121401661162259084221469788305824797026890455166996832104689753988563666305930790788960592436648871419168822632929937545634374444231823888607668159024559624929542769155425325779691580381903714497420470473774204910051566206826340067629044219605199701703274603443965041512900047944126820433504828610509865627048488082108038897570809781294298821095564888472706555663348064865472322546558631449824434231354206075274534894106636789957918161603713782963680640129726629885625033697088620671894309699829722056993503449250316414921823559754325033458356129068902463883602513418013206964237752738630601803441383166173999746431798163033882647083364784771980862162568439652065302326097321176774201205643452320963708531102429269636580478368679960968036432056874622883681548369303055750469784340981801989454090063074487749204957316878346003399252980663676814964344716902371749275063756607089548188752710523590719115163920785716183322341827295080423024207160434916143370082087036261106554412856336103669469862234880451370362033540957707104061712045457750098559714595907386534425391962583407701901888846996990763630537942826162972999411382725742479340565201234717390914221855575645895098284166749909595174271830250291532553775966358396555298709691398889191827007856341037835016963402210129697152641628710048169751066530625059117613778415098072891588462101708548236042937249584013133486019435124107341253140882143694476896596248957292933697453800674793989865203837359408580132399162225354910703059121668224068591199201354541598785696481887643219643579713255840368532693733609052032032030324018802648471618511355752804501869436203155627597915727381453293341573854222263644475689386317850930713251732009861820174469016833439800748035454652582891301906695526321102207066498986764702084205105874864707635455333566006589920577960569683777857481620165763665358664211771618521094180833417078902587936615532492738946145512047044443523874781686780270067644486087485957863833033915761035669394820358672561185852495012503924395028852536015074428773309706621685761316407190236600293214984950635348604060618103779835650592616736950485107169046903508860079174174541440116417664764251825108746414163867106155616512837946218275607033511358744087588399051028544041138610769496158340563733175937664279943972730531248188256198545930760390837456458036625560621335593521983597024329573134102165557620276019524627502505419483727383782063718931952979185954754456523549209387276292371201171707692829728283649305963066836250721118272380593738362857807899934329532193282070617979682872663987044737909810646540939552410805959826682828398985912957021278195293430157034022265592226372656788032869326832013213904196870271043406275602332512886820726978650086523840937095568528954949367711448005508165155621908074639409930914381766354397598792301212644904111853101510466329786559833440016932281497455428084066692795660669560101365751042606471131839657152359808337566202357724276192249069311154907942948701141700690531999534847258921943098273635608664944687095844756509168285701059096561497563679287002924467307494290551595141235341791222183719395030554024362722031935456046200667702267759609446323160581721118980183190224735782679861293437533127002617830763555537239991249035220698336990190352255964926282167536686040814522540799872291937684939446672620870653947083855186819552294749863828771336908674640959223401664282496570672094413965648735240213999592564100928696633064008518531210110385320557335612987469240646911561894595766772523252165544740169651201290581456614680416043237808468438125713242585803664189103996824909949574329585301900622401981116976543168515044014879654662269770595263625481230872646453061091233332292984629482963032619569305874266133000684098641460982620095981205269319913059552142730202996734024825791436184948424990794706110160101635304152041165806477866321594745586452537396074859294664851463020552938432107985521045875091009498360187754985238247878731421936441949073827035881288930213169701909390137514905471177872928381034541338789614360182533675345888689891564729935721593917474607602546989578812980598960420714013900580401483255682955715204455978333075017211532898737054376890271016087581271038077856275550317185978169778628005848112357998466474993845345258689603439748610368615080655750584350955077342001625826518993912303893849147805084097472144489000843258275238301860624209463029501346105138912905352520160174845749958302017454627945701410255389688084979863407013011982258969859233907179147234137793571785164080200360957089708851224714915635917181316962162224759247188924665511715427392168682547579433286359063334240708210765811982311323854040868281381441702208601593260114544658596422353700330699910954692818259400982730023303074294344140795022746332978940626889296413365980526160158014896209282404335579258040386493764392681271282004536715826088022998506917724613117965427252585634170414425875941606297683182670579321415180809708870284371137294810031405121857115164406612882172535534587422429082963931339924165471796085552436336389828004184390239527011778465496360585507064825599779154460537610914218501522646559538436182873903380415574161263241854331651346181520915118304720875683601257147304161900391591839283009116594448553261068664348278157684747164575451331197748602886909348707602841046062089674829939638475390385860643855158832086933513138122815912948965981805499388459504275414099593906013073328880062686786709580440325466615599815333610855426017542861023875214107592229245147062470905018913269133116158535066979179232076480973958531589013924260210515618677618340493916198802821042655605964400673298188035942178673658706424013190429263324896386591908874049148051952350154002551626555490270984903247041216712833339242401823709559179766060756628712997324433232793592617246886317161175519707177373195390905940922209858144448780175768033981666567532835286016550969461724898302338916606459494594681417661935149524316595295407477695762572177032771776120157867368644793775243205737528023470779094472793475683181206193343267934342637720261482492586664397242980130931563103451090612065601972385794639219727449665311332521982208966588946943892936519187607358637716192998018137418038474029614618407579268986168254181545650799873511069008477158038267648954707258572128300499309648088593110626107422723668773145202348836228407409142535695599087502555585688646820926229774690384000375925281416023929633167513893343986562614725495009856453769358997178126895856746119940265808871689469574161642726714234324580401481600540512384994168664454224605698076692439681606105601012999121219284660510777263186480954479614817567766505641738561515469887130725528988829239537374955214468192170546276893089540634261678931547445207177115868409414963139861223365620362030648788299119958035449144033505019148579607859761116772841750545647742323405864938275289722927777637376555803490970558192942840082181468614172543565216662513275671276797477173642847136815740554351732516075326782388175478479648650500760263829121326376692943516337699895299923634696494447845069744599217030437489351285395294031530787084557252829664686908764492894638140495047917877537525163428564251464486340348517908506723971711793843291573329557046835719715299913081295526463672016456115407357163668747743217730912352161646565281536796524528786180331966332702576844903404383050135242202386058279642989471478131615374281883795675245610901439372924354836975555433059877754878470383683582997679781494031198054606371253455562230372067998863276071383794049778287694976913709413120633028548384274608144614556671026497117357762961546776129556810730166295888095089439871217078035404214734361332946851397217515157683229478997676533305444851453936380658194601120310238645337137257428302820432836532987330512971347677736657807022996449337629176229028090414282226720777930708343395200360438499237318891119929799562886342114076713097924374998885429640566790499764589050647150107836669275570171088447561764905827291117793776995004864192867905747030999716808880531160997616966325724638546380213953398034626470374589699232786959910875903253157559421904972919611983160639474589620034467425394580077815940350294109795965365941296222529450226895156182964500508846434712482306154604164592858570756885600986572982166734866283963090084363719643614352044986424732495773976210540551129980432147686998287527173232635815899658703579509347626424702202708806919452410468184447016380610627732397823201305489578479393293927787774475467151063595126025831810008732587543150444502535051053459901413160542981034335403397756491188801402231875394144941304411789320742790094705794993099608352744875334069936716248283155273386513433605191040692759350939234932238783114063935839212500035117357076362434317806991447193115998779445290943181245302470533051312374018375138377333238658361245715570544782494975270104336617561557133566759285334355005601323806932530775672093948829005619438738636994629412359003532172078197254897054420243430218234791267442002768668900851130371454315728328647839657088704558773816963923634250081100228175269342723879688742967169983457728175775960047365079603440871818602758694250750828694464281177597839177216859166596386811340174000362695675996874545256604107649704486081062677798523401455504943253072213642667919111288944119636819917918455901664118846541414271223186507833873134602314523204039632759446429204498587075358310547963326221386529356211794020882527040591941953078107068478616997436284671265282361152800467803683966068622979698313317690546948694418635761547295126854922719415859716320733538208543581139191343481564389643123979278786120757949370104420251739833576431593287226730817027555857492078784528527838722932647601172105405896090510209446261249841893087989445637436893878633094651250630637655029866795808174448950141952300227023729994161611260340269937759674504583120031980614871698448992800294460091841688212358440512863764806081949831923920205200861067430400819393271698100293220792044802224478379448841661222531178955484137643589966330149470192395865715105473874302836465853028320466819415211082646732369212694977689619398555721036264537378896692064964114088147002294990401826758897610916274490044140656366177830185435832562584997079577642786035753717972212273582406382265454284476189343620240757737050861789090625077489038643605231094685612649941273838274670148044976730698873402915027017063536561725772911410607383095230337987295559113437732744740046205402394652710458358936896692451119086396149176617947232787959035828508776422424128332953911252845776842417819816709151262892071172718652901761513932155252670464621219343023712725116675874528062864383787948094577289112858541431298810062890308245817309185151004148459963461330096286259969730109238454739183971394033447522280935310519190279373675311923558364958772414993636105739099572144071580142629182209268871573370025642012798719596624541539539167179448370351861899639798100559579415860672723351999364618212161922826267421254439403340085497434314270147631781026772567922156996754159691530736133557192417119622598492252757142500095523031593395136259838301961947922228418126066872755951838092100974673862573328943269482417893578839767790186447319979996749882807121689411905405051707287999785327388601634859884565134791753601126412933349063580595522129393305890296551280033171638464362542609002137637348585526240635730925059936616531137091812830506185524750956769747316434777562997661542355805144599851054252909803989996348478870001082471545790260615244850352598575049937413122772926260682947125652530485996303183907050786363850565513369506782947103211540988383978168232859804889470615900024322279742058540521597356974854473824460381270937958785009581946787615538424794056141394677540329660520141280854247745539211218789971000966035059591689748479829944072835148930742373781601650182227847227489304548651481705550869281833681877150848502285936877114092306643067290918445486268540135628018986106156048071213171190205866269592509508258327727825071993617936894776647410426319442601217840528313787183560893363948670397569111871056090425318718656522828444542167026273872602094457576371260441157707774374509134530461607195022033584763973190299500468822431934432938718990147088268494949182929335851239995681489904499113080598938379210367593064328208376540704799380135818070446940054772987571837705577154149816789527940325294434491188849505052463394085391599513275032597213906305208157330270013491009524496473579562496174477607953681822534636949244654180316584103974754431045499435498954694271354667781225123261843215687009389188977269918799118541326506527953924441132604516557354465968298455965398676084865751806293831297671983585500011182415374961154502805527233866823695731723964216611347448347397276542140727772793676047845194870148993359382675240621741763967522043473206192065247651493424713988057620499544136993998402754391766774448730011476270701366232720944221485046919816386215712654208376228823889697202374906671147242077643455261660295639812791824202971110962073841724431732235554644674374493752890134585772976060195129654765446217766655524718169979960467404177916326953791220019418420642548042576775983377671274548301149526317875085465149455116492039803819507111216261125244878208834380655837052758652714518257015637196912851206227315944840112418034359928133421719229961091481880098004237011664004975315165967453329905539408057440686120347492959838991579250916790232350761004030993536513045473897865490384791298245887835780625574242037671110437865879685221704166122352259247132108992763660469608449047220733246180577485830793496313520914631737604039992541393395701705010060789398861304998532161619036509694143136063022646687155906188651907431039591424588015091158621879536759415361954599586780676123589019076358502708121231667032037549961537664687449714963801394435414048095350100361567323990050067547163543644867599435143919906695090752851653581595148831053776621425987759112610263728912434225983556678548387288186494582123786456827552825256213130267292267560462880165388551576768150260500581684203694851188792490516333343881434567595322749333995109186388704624639604893738996020138786534563644663391615118955371980883645048204969790973885484348084437046551998889714105986611063189227628524256448073905562566583448025025531520034661091395293079986841247706599518096218217869212965101230140616830187280899845744581622937150937197241202310307007511591621131273183112264710115574189488665662320501316797146845841216226141515993013586598405307333315502330183671311870626175612806936501517062630349276145512209258656444556115778855439422708316652751022958227769771585303347151968411362429813193306058061347074994712993409213215101875280212802418390998924711539292235792479648301579444441878756744274873427474812930524638623618695911745055459574512407061821940817700108536583994311855602188796360327535004639070157226107290132420543378498450582483390049243946992760837395016555547281591220904012157933820253066944896751574165235269334104468578539226394796274797267182270140472297698017117796245059920798730950313741898724679646940508105432150044632199766006847096821632572569727140608644151792150907958207896346022994564881139194966943357027795840591701079758072112178547402883765705464493504729918954399334749389131478432755538599988426542032250230978422563921749480052460379726581049731662777322438669865842573728389970395121491179055522728099394555500327606723731101091633146491973749883767720850672175879029260086524476373042240403179406034977230995294926198047674377285182469940732031747668360187556799569806221039466002690907408917349033910183635018030760069912670470821464769420824667980961034553880559966676525990564667377315139244335333284111804132707209972420926715230981922536569042683094033027191119536740266182281466445702278491050619950086887284160398098777164715422576735022828426703345894110480314000808678253416836395161961163336672199180639612720740857036569078720507616231584589155349857604847838305261189794136074332662816373712713961997670377910312192627423311944545690296507902423028593898751533245110439917362773133344922418216556921672518002506005823848598350522591675012270271680447163558347041068500832014627639346030666110817980241993892288710799369245930902570224884384828810541655264102488447166950847980500846190597140723492190805046518533954350667806420389742202683765660802664677158206353533792309110681496468514160272511016421248649553532428567605819485644189168951030845592578235852822164544653883242766432040336166134905780636521242054130115653184984433377200918308192580383578446961544375032601102055994308189621444146748616816251178476992731541060769724983781574283488535214101405244078874960954729063306822304779593574233536353954684853241290649574383282908213486160049154528775159357253250964384111424215232531775822412008168149405616626927230689904778855824782187827207792151436299828435437064878888710797702824500609420395643413247765377371645080650753514715527513594351719001988212148791992226368282454433089730478914051669113117796073514159687520286056875441050400296965594784855836932065514303710228124666963664581178265499760309154058525443209320764231572817393061335863911885140918551759496064000719147537137478460966937588823414587051600349808010289675305156325399185392923310949365508201690383446230843668840090415667151603032212597622767960083911603084033653004227484824276639410064457532602601915734469970491902044083809494159742449425684581700284002116994876892211239495062076429720875102470558806866241891031865874431423713957013551682051300633503285038211303310848621454692212206900813061890494009765938515449543414452570177164743465319417907633118964872413971204600071029435369995068175045246193606120186394568854007914177557516093162893680093949202310813040185621954319483783787168429232455512506765845749419910700840727895522862803011543345487296436880298537287131904113844928831946572784987138868042382248808149530100520918184424924554172318759536501510291556292073900496468423782599774231296593533658883130136501311953215192395874448393131689721081523061665127324831786647934609874096403128522691920848829998662023985351874069324953532855119097430395056403253742909439780500279761761738686735847505206323252052223105138246851570152433985250160301052586628017276331573039680830969901617363786848540447293908187771898189015020072284461209438375543988628489357498548301486321387427285401303832049999393666054679045647399084680039100612582830408664800750126813328530993315709443116031200616830053669162756102591129873775564913346107553555881763572363101557022701103683530355476084088698011541833435127312083610308485262086681445042406909158819381958555657029116987941928548068003557833069202903101815640656618628790032203157786479429156301473501159061203579820434567707427600618549562272705495755223113615602697079473155017860030760876902311481746813096908190817689265922454147981892366295187062907323024903078220263398841764322570292263548694989952697087911328158554234280466476012008098146322280705734697561490526726970189960238735337966935174055247670528264534053157323825619532440620651226491559820347552585769391787434216568755220746717983164433695079855572173635482798561229864663539983523577223180663671274350991210677821181389580757772779480690026450290034807655535994738860011216119971752699291722693809026461198544755292119485533377152665837566127724704223820496583394212806459218047317804774465524240017666542519706276440706260831623858129738882909527361653091244709069241982035052912118849819785632744266538623003634838366705313414526146578700962778919043682203714237617327899555482788857533431019126843959857413960908301140741330902128539590784699978604112244287863802104111233609459241588199953153979257624893412319372021175880449785713359369395741234524057273359873689902631363793652314864440387681700040431469026288486716954740058569881978995679743456663612407224060786751101713844137186594119081590118137702684076578030138372634498967949414671713257834202186459689438753220441112322059724970363239853533075594252301073672970611710146991206784478651430669185212939573023891615426207017006042322210203137103289407830227431356410628650401173940688388574642342256197840397436744922944207300919291923494581013115603624660286756343859426422451665446533085341526668873760396174179148270462895205915389082603314750448598173754823255611764611512688976589634964125760802581162724707247594742162543752424439592616120344970990352964648054641207836195767881573786411585955179885423799347684776852660889294968309935436444906606375252323176737461395608502296207221654314094005401069760541187734149050653383829003086717038020820739290031808557457911242634224535616521619888872410482865354738237749970896504889310626288025752297126144840247576955830218498453750816132094211196766816807984057976895362394926535582186172012938651067634115038786974929470309159045487132628426333947335846004100619127210173902320317016155920624210699072634361879234992477214456543090381176711978437073317201844814270177699750894986161813707939828489445786896602959386488133943470305314098673836154944014374289498822996984602182789649240644872099451582655066610121905719021919092343718162369832899060027350403873242605010828011927929791811485079496634299369393869551776005195237739471452499455308317541479772741475392540992654091263226371410799524235914877479577750465433794577236639544516589634649023766941151673898933872689815082596209828378348672712228239945112588758522679956890850464287257094784371332192803766199399921610435146792153035495087476180465062388483124732339924793797040165801733625602196352493146808581852931944651983884913004217359151593668315606252046111884183648261485823332511338777940553020469606642650739806871729222491462634911928550385338770244924916709603233966262818362761267175692987340929072220175176872045145159745335718661494715736544261906175206002865793604845021219049689098757054004999987789871653986475062166704586587269178874406766461475776532290969275624521202674915614147432802062472965091058435365043818921662163978878325827564990643976277708567984934208421968819032509496766900698308212413753417650787061335117846732511167836592942368659115794874440038683559341078714353742237909214555343283677192015452183208563458569937380097364251424167991058778891725875216657950064326604643432707178237249809486932211325196254573885982792749554482817547915170172131138339992499590365746410016590556654178306519519089598329329284923041838630546880583991768748875276209049057568269467081116296642399978850176730703047624591194212422030578584667249697448961674847988653545791071413281700585442755998439193609954083613827177293060996181228056702352727410915118179211782101792259932645209340146628343893115883336250884753423887133683546669385216481345692395320922408389835363329683461995516683444859789569305643222838005882604580545947069110725829010832008697423454998731700232845984805380661309939492429886947018514452788304345675033046514889376956810015180562145234436927076290688195494805474825483704808231952620414118718928337820855145456231744224404118961162011433214436253877363767303628412277654630999025015174102221474007992579974818364621338867126560580956934677454080131770583103174558915574069047239565951166790470193299598981863161408087640225075175598718981747783749117905872247501914936891775497860318442601886214596000608932120011481841699122995607734430186790595678706087169585815607607310719114083500156892834504027822546431964506479505160784684030207823018065425758075514143950952532412720649009901965647497617690076437457452611884494927167572989619444327147143708713678036823760384330901640522538395586779150005191237393112278112018377407335634175633887783824522634621718505759604152436234173552016036480921602602532739588959233535376181624775216583979990101557615952416049216628892816914072780826475055022559842654701048579556176666332784552656004074558218018745533906747447045882767500434709623781488107592087553816947406544957615736836306543393589533292345975725257041039398346512392871753591514464463848081407924548039034445160788188259696957479723817541803625487334390773305068952310075587356627987345728290631049694142411758867476681160880194794077393326532808672412684273399072417522242075958479834089102829822891811918453057290866946358954353330963996558337878673016719645072923843333731935194659383189234607397115157099654167517034675053957401552659928994300063075288887647113858532417159516877184270172113307981851655779382056741026882917460598932898619090042757318482873920106317206012208634307803613984011480315829763187258938161661259575970481113747571649362681539858226936574670583575402279506857928306412752028662362169509667472356156358801753965502473081325523859764530959833555272481680843544459867485153330945808263478019268675750381875962723772734013781181915149386315933712841634436221638283819888041232772142492587440525723576805193896585630135140063835414453688732303181840239804457675262368286451715577390820194421306824842948013425837263200816910575848348865936064659975987931029836705106367695104373708776937382396477344395607676811542212970633408803132910573869565633101714474849771022236895016232730251406062749439589979173172456281233886542885026882179782103842273274536670386206795342551970283826874595913962298937689720123180040821985306319582480370437837458280484849223866652835125947874746492694120886875484284539254017258928526205828107469020646563492779506132219512090858041411953749880648088548171016282566781727774029812221079105305561919024471082850282665044251966145717993810973087141886279508463168680998432292003250744288529537025776862925278292518117167185169438523803410152348369713053273810904474146258037835058798771609406071985287676983760766735264289087651588839023535123006216092236429744896203728433071446748591836410356101195097359112305671491889937965991970122685171339804207572712729975343470692346676790160516659128786716153524278450604750833562398316039468489907036362648996899558608688533828580538482966632037856979321697695133645539079156102597559164697813526078985021114229603631735359344652733024845763225697114077041314014930825155717787016446598341124022135261348320433432737898836321310978467989428587442411210317886978043742667754741820297617576278736424292395525156068549446971258440884429357595333408647406851026037683956682609457013395675648013665891883534915372266502672449217539150310658201934066398212410672466014219682000655818193275830721316567031068145931832523407140589392545676136567583201452339942019290592242850433094708910327023310924150712984674343553820819850638414729219183847091159154408563698189626301898763395627239464610975197426310768834236031382337842725766056834364336214355882478183417167934266528461394909703410629831878990225262939665293842042329381138153412219559188009737023997686616661072011156205475257172936612217924598363615920245645843757240092432765279209621049210607618921705877696804597298196549316332737246407009117801389274690695337102863910495147680035874211369678329310715225128214320843624024474965414577954579528452058010136312058917907415670995188313971757503436367514880848122227386113017002787932092263043298615478730622879305189117224143545471319356536391620930880718978914923779868825095704219552089634865569734154443611939100650554872702685156882309041688198974380346029230724503087683329343185511502916773654377462272864290806055686302956106788645465335115136331143941366209895187846548551499287750215267735997206669856752131349680168496878328474005762751807494591608752420547302165310830707278735449874487095663702139200077999160934015774522156217952706126825744965651882022313158352746595513982491598743141155141082946663826476007772318097348161172939431853144668990754661697184147066551602033588021250184962750861002870945617433156527442624292790890697467700194084118909931417749787789525069119612423247807377485233445216200876828931819018723900089160610804293292430128533571020872891796179368075901822449312080769797052110244009050569297260542747374848606167104406388051238112510256323856280084528575354492323037450924155415104752077708240956370812725391002637976912804225273390553437592825455754940432779110342703141060410058072473621059913550466733555037004356145009581685598941549644256697891496033725297527345591392871709445283438336920444409883941011407944724146461563276771132577975402690759988905611716832333789809067375967239607575918536177293399106712936395957315894692009312930442772025090566317834172663273456845114540127884441885328503888980424231497744478002979607943850626218193011076300275547635741513434409088261271153995974576206511959429396719073911282380190311615077801179393304630560560654893360122041508075339169214783418929795028291292451755766503320870741853299939584514661108529034493689414001509388755117019249580738946595289343177718020297521720611280690874465185827279545357738128003113298740617155411091766870379278325915702808342547592879264130008952279279935227625036922717897673687140602364117723102693591319805714542204104090156766021711122371948807996532461951681714799858311594691758773937652978374963161229898665951990660524920452882570505913362234551763947651079238415831933857339137183537085422445307741096206857861854286598063106541711127761671798523616214126306626894459272209451296266299570483439067898223117538464884954480578748411894364461775517806976846100866441072329741111396233292845168976466306097461060578778782750656823724233609311437416657130423675155940159664618715252933613996261294705051686045019003651182270415716624799959574485540336846376318507598350718516753119434371131535031145064745059526173896295987435616272441880012127037712631372652770939373798975478280708152983251934218990663688921359654335971128291402869885229585783441285455281865487406096048018335800879084787295040093482982352967424529958792442826467285282257200616888419305773201389699732681030688368905124757272980770731498030707667300742447881479332489490465035057967941789565328010987308741478559585083562565890137174967833484121230822465141135190862802517995524367497396231809633802691666230900618194035718528949588768345336447642408537296134472310070968556625321828995807072830642236861120375697440865293965464548134797018389818266845528336004199642532162102318006948362552073533116855503806474460478447178099926632063919772421986084983623396465688921141875285699892505943740234456217426904960045855589308240249314888176308491896819934142111566385534262856465747290169158440097700426881624689576337960390901058755458146153558839305774815816161609177020278139509563132988437681042274528800465797426641565667991942439659639116603250087412457827495885555927863103564995132837903932806065471540804102673119565200582449481104146859642438757106369470682202591635658373228023270476393378804747510884318389585717386045244182134585434639724531855105355722769948005729015170848212332934815534200307553260687758162254280607144917334208651191540705661913467340299174835384954838404621474358486937283932269620584869289525337339298890268527493542938932123275761500716095255967273309777304239591443894086358409644087431932053422911495022353114222674844671259242276633694168731884694545265488620076810476321554297232461001166432470803269757997253983105385632204127909282724077865944849671898024617919955487714866452699097629654699545021256927889038287031631489768737828625922378834246704588971499957075864116534395927770010144533088997611480075873132983233268821953613150190512900510819758286360721868777713249859483374894798270510279203435953748171300783203315893487462384483330165995948378407082704013697119374126160358423665984071847560030734627160859282658396604513761238335495188405393318113883549194176565336560177332910533364169606363800539924118997862131171541677663726012176178451205826219923508027490566510488541457986376785515608754325692558232593146586765351703924778435753055866179680341013942407372516246237777198975651791307540678446246514213671106635202040396126608751325746844792902233396528372742056348790488024058707863021230133643353169647800990790685409520399585660957365518559763674111283616305464444576635439697796219226016736505153231669133220885587964556588507589365602015917088855288856854306799390410908938749901106257477576666384945978135809513142624622449548902599898768420188884128100402808977553119268609911453603987222991302311444461132747663152675573639905321543580047785909193336398034471823733378513591895162328720036735385859497810043409995181104830537324005432635094652916538580856809951282452853522553964450769075165033759243732348132267395277256730216969855820961967119977591437877228653993277165776768869957226424637953337284862941058429927524753998429944121567572117136833917463642079278853619412950455833720443941330733756589408831999267735849312353204847775538194222872742729069149951764104617379050443061444209128122841607456006502276000912118657016044793347312446550047991648645646195063459974760291050250248050430567608962850531778195329531707253455483571941840387146153273322124036434253044360822867726419026325719281882880415786203865442226675642642629067812083319596033514729009100784822406498137993419332868158995154385704925369055915489127647422848164531896821803744453291361779335407072860316296735744395244498239092035698428973071919573550382221868906103969614205524376341155362911855960256849871712237297020252218131305505692486919466795594274928735962076659931028714526539291473760962725934375887360978645267625277830177527933807408383004268474086423664965228436457020427854534209836852786061530064317441074044447049531880719698321854823694625266258812493591741026622538367228705708010803307912538290374421261659679298115299195770030632793497202224366143017503651838544546896626798437489238271614176960280420463137265168224891191613604369839758827342388131916784684124339511990011523944769140789172784419676308156973662120745592352493613542184521280435123812158082783225023715927686378170986979314323152532806178099554350733340274377697561720428853357564738164365086580749814449160618325471482163019347429453810320554430806695043621616421310275691977052350590516223620815383150407267144130105703271452374121379347426858315155400114288766594562537542306761669934861267420218496981344304587481397095177106459695005077937887147588662238433539510826733554968982918226460411551668670240056019774067060344170936653899186530240172417519830887674268764717255074584833531886401425902262914081309967136687851830581503829866670048610963194741591258878051136206163433493094191575089099715654132596888139913037767753514941565221149410609722663013949582450542073767732904617434494884024269423346215688810250302330710380009033806101276054477584557569873285907249804645322106326454939615484388109958747227216952051929405741242454687806827748234696350703864486199871400892368527685601266451548967091830881031057544615849989214730197582848626814772646191894076036494987876908102890372796674011940163642956374530830196438356172962602741319244318195245561678217118253762759610468720965176776328883773147523638653029778714375006631612994161174608071089036018825806513874941151613650707040988847882635586802333081388896938675097076001620847826825766648463039943874273007306051646258935343764034309561185432795708784588056948117769602537690921892924290219240477433559260634708069332725048278462376998128194412192053457792513027544198244045908451961392032312345334634600409821354040951384508242911394132119262919683767555944151658997141159894425475675714925183301019713622204112409137477970496212474873203433015822328006504459194126225508511019256867137970510065514106255375345068822118349716419723954272040159046941107822662238551761902154844039496839710576718031930508783643136104622575428872708348185690639865781868159754335487023947140358301241875488084383847680268157966820713809919057731948777975640422822968927631416247584830484383364317418684972889553208748034349308958593276623537375232114352506840773282107090408533668575602932379650800360158575729457450812124717089716338741769283157226839146842366047132316118853159275287576078977333713688609925974106517925564767007820849360164796622638659929535234174280986386187667467378104496471904178597651224627166389802702993937140095220678379318885242450236016517604413401375018407048426322441146205378215123124393006828255389689573768823196724735707393197295973028480311175806463672665959438716632548170664472113757702609490145133152793953174943266835226594050630129345719389499955948625574233535231430133459809996345559885216973537534044810460350776642306423273547020770232529778569325822890342806939633279504424315508584693074348461507420904760694328992690838081337179757382265736423972967112459288050309863552044228081348603538844546431537855033644087474501030330166975756631788072488467618860768101446182572566584923140049370767857373395936820648785504516088650173071489713824607017634179597257025413719507877804623376157767002278547733799000696762195214973046485365007801540518000718129946866853950616183113876824371130628750636453561267214724204382378465169234294376527868060729387003639589421262503805699037052687921388637423687818188238866221782872373726129801479179241466939213843255007819387515976561264083512223965940577411564743495411290226011634831830994079020856570280301248414677030183601905384373308033312811092483874030012221701712608505243833427254932302591822221117188696754481258881389644470158563574159337572054289940730534658707617647886195435511448793398686307279317504091107757904240603920071724446627011641074789458184504543502011743413662781779323589262089933003074556082148987364811010044079777202859217143086849110044100610095303460421876314510465259156924986151052670250616979184691919582634823508696686077477564687453823270165915300406123932576394149515334112674570393145091944838463193183850600211754518031332664099573109293398537031083852334696482862593038312727310167786534596542090764859588933583295481644326529378896810791040843117512396514166576151316486759053345366205413241887480179410514714720824083253960049514994178156334088901365093406944556870059381819136652605134554910001026712510465907531247016456852457276027200510473649090311606949302718242456139344535550427225224971171577238471075702157709001961087580286669691069618208933928867534562672560001822127171196352287390611367014843663858561021475298525408740432028091392947154671301596485389365302046886750804675392748840074194369294045385898466034426151910918762310305223834987034198573251115139184446429650132708010265752740312747492281177791273237063563172255149485009155848416755320457636362603061773995169533114727761693195465781714251464802752624611624796196969318354530593006190506191335402482054003258658556800960130715255589910127798561605570930666797407665634558230006149126883241572906060319611395644487429541827575698404634815125311221068733455976393199435257956084613423251074455878699118841621319019784460775315030484859334163672060625187681062688405901079069020508934070398447613386626813226576470369687129694633292804675329172029581691082902906262017742768360858773525067362585681195248182522606568962876605484388068283267731967059081379304244706252174059683087099220511039390927275549983030758219836142093822011105381709218766581419425887477268785297173333242161392803108361286527197647243651231393154029436810896481334372618641977761413537473460608717653469554064228836474659511325566857363135204666241578889765610894643245620012627833294120864006586388075326733863428742032391804513757052915325244731208639730334714809595130782313587187057746477577737223909310439051089198695509185619802267866516195617597440795407919259567049000174328437744677721730755541057242435227169329365526230504380310271787548315253761356984129146646489764236087429266388027367762884483994561528685084984190877412578806264474281599616465844706209986031534881315257254936619977433976940803451075605345453233561086414166619993891640118125226287484657428786470518481351892537465085293528573334848170751683797205779700101563478155336119321757580909892013185350299187117976770045896863476412412503844563978632707561485823747449528289787537002348815653166421245843809474254531856984500888088199571926556521929598930621481764796701294913533142516428531623359132905331584838601136670995055249495163640280660364779151228492904485912908740826839129478171944474931831052719501105385100538360523267008831897774854167001474104628832475501276304885162828282882975086199213348844980120305581653869491773240321036158227103080836086958824649092216711958267089959142631131712754612745841433863347801500175816002132553247755055041834608930762618914004735353780674066458442785264686634229749584779030235990094622215554554939628403100536501675851401160425389714474311718474551521105127344753770749724985830827751476163897795634844864892990033351033194922944965554072457190459621948704347081600761822406819416318970962494084606448953298004536527026009523446390209457596983332170762000852318485183906789864992683418426000401387785255811637511468854837082035434679706732740659101902471291595813701495287379459711251864690053311586507650546378546143916252926121800419339954075001342354177208942316063403567617690877286342777607511388980368920355543640092462604469323490144324844425041525182893637984069956043541990669302845853114218947669901849853323601587128011789779409875109864572110271037352987160152184015700706849125853540829554691118524610809668543450460148325340168486590072399161512637080157240636402389909454775052959256946885040248599564831672429094264055796817679958383513977369168610087252420786817957342493894285987875884967296366165518324388591732109607326643633207140937691826694915732513137549437410197641187382222686816540328412647382926553514638679215399113142771360113795682041477666918641220002665890335665410435929031469663485062632811855464108348118156616527526830113047603803603134404832176312948684331842363675468897399533133558831979464652166957224965469943036603435816232780238075851337909536762181548277687950918879157705056637688309049198814544409135938286362423778541424449215921169851496574463091979576667586630540831307874978595115588943066076926354690935055693597180729092359698887053034417751609900478898151111390961031129761601950976740366274891316201509958672416398032304486417091473145637156651994222189720699912773143267803383684407501227208730942968456332981112955028452490220049856828850945219362898279204798950190717570201165167565902128734704314239277456913249327620725056567426662789269106656407037000313558556424654565464923676105961471400730902428005422666718186288271813786513866471062482248748212501760063368673946874387382132685682661388543810852404636697953073665471425800269444109234927364928305442535401107276935354245742246383423825363150813553882356532865770430856944205780961398372732173137773732091620918793655960399581819892096974582190126432833089772073904712716916786529399303891243771797281082788035120385857004902705307069979180296613427168237423183859067789325632194897565202958441380100185375624519713094453903989027635746984341961930602532481920145524915016166863928521853417957720901306936515391490199333424359470666574797887841670274467557376035498572713626864817551853924569996785434852106307979626075915751064524731103118883480316731135193540507736702610846403567166705461088306974045427440818316999655538279282626067060904891463812608134689410764131297718079318417064042625770821143413284547495982592708237459630890403753658789894291907054792333731760848938509223075170956179884976223232641166806925808891108930690509444587808648055688031134801364876323159565395633036782720833761431776318753308983403004855363337046328116711860906187932618462909001044553752656194285577110512959449225257654381306805642638075825995539995112831870690072474508994924742552176942870931001228765327905233353216062861184285433030736008978342031493523459967789022101082368996634685300022978487810670474616157791289739387705420502237843600666398402518529169758407475913710283722970108314788239864136168793372406262317051904194524763181037200214463252874357083260990406477350760214363178058812069349327898434731296314748295638487574773627067421373283922270082456033315248228179764953052886021473452415164930618286147231513430627758272511601246431830368652230018192488059505809281357737543373892544002062057111410018028868134453772176554359853132675497278467677917658314932934045727270229582580916930165446531701801106469740548050044334813580157568626227073975772908716407288756823438715757461916067751162362302753594049901249558643972867009930040356648744372100196967249673262500456503734875544066310546444202222728241028403488161011921834866693280631737112162708409172203486574036103557136382211649162036221313087710503657891641942018783484382599625984582916199653057055118657922549156946352572096360495923048381706644571698388125706201257428023955304666058890266227610242183744505188686071544823491412501645096809676904934919347842835067061383350403140491484745262216591172601473079010462916212917142012397070771668434280945596873999479416803924455745294901567709841889117938735189611026572000494870167408904182675706039277099689002546350885753247736546819171488286613063834949613874877868398044841156015855910103008929513187262616385994375409896270345906459813417841102006137355654522616256777242925361430457257728405562259342836500989070401311177669793037678133618263108721566660847803436181273333215825806734216933144430858857881632181395495230916596151495659205193566193699540196070808583234496688083222834561091605794338259270509505978291283413608928641595526857354953627922326616456469246600944620079501557114206391220205232749834536331373077801894291308049111181156102712543526795183761837767397403569913811058491344649128287627608815741319603153116108390294513018012997198896176420050419315890770500407285056267265585066074487022191543686779953920336083294603433251520075779345498663363942807975180740107332428058489183530733534386759833862199670944923043349388882423804511780184665407622276341222442401863015656531584267087690718999060462532597787372643382026752472772278043071897344891014551400359508764526879238045207357617117308866676500428202000848199092327769969427380658607015447317655978705561127625750173254082859452182387219560453986462932490251434392891626987938330751658076143806194458292640908771742882064805723871024107038279262103143936766240666441943696410468782631668148924492739639708604938488637587447315339331724991234652053880826401666914774600473860980416665546885150407521147994175347352028310154929806436168070350333615961080199661359309834038034503091899615308790594794460682690224734400802908355527074529697282768811449250552243520180993873876208713663793319564159670288532842523396565138853937277283563801885667233418697252346436141458951309236034253216627696368372102466995704661050907739677375965520536230776157953075640075301937540020803156741937553281747231205288479834043718466528138554101181950498179713454327042387073214247284701557559781141891140993108045623089145843172246378687125480320347858721648462718581813826758196976024473231927226205042991077806879939691566071096928067179969632087393343795330527627067382300223922985552206964037597361446841561693781849437042397458682435110355019933577259870065459432728395494066664609829314233368037889761472519549749019937670162920798023401975585055674449828015604863175404253465480988622768111586242705442674085381935455618791689020537676208109670544282720935856541827741657182477904678304105790520563484954651905375381636058597774793354637324815539057550918574638136265014523664833781254956974938479083899205355664788410390715222137877616568632769717535118665154768712060543219924419341892841284714267871222020495895511495304393180628992451307435510100558529830546557859652110651113267310935392147909650096723006572923912305273743011008107574877801829689722060441974000802477092881240106733304696109013346896608577656580598963285579837648491140457711904958669366650397976160048490035855637793060993710184700227100513937531280358486628340636405232531373561114703159263710861467439401764732601464031726894726452945186360422204447019723143973834019537712424855261844016281311586478072711158693330441751911606400641269599058138357510434612438942072060327761389407951472978905002545147983918912048295434119780563623711280633699106070863880920759737685329748903507769435396634827102776678362906246526266552410033585263314357377690496499198747253145788347327889675306811533485577010914026593708204489803537488609244179078580019723538336386915133440128549503002445632599524256641677219478647049435225328189740871074616335401902627327741280222264230123970169734108348959829875823886473284332141135256606422671708014621400070591134098503570613693575275543217463434348632326830034436807673993441421441950720649390013591572110548576468454245682400283777739952686851107527598667195443248693444791318584930259432138596107711676395834386491826673875774163854635941978790395782328962706134588707877153072512832166892252460804172746687113500336439104301861907793848779196360042038214985168054335161589483538699497084123715166502879245937121478200793786933021817634290731617168714504456812208490651093494148999638686387272286670307012669620990041606742790324354977206905753226390372712885554691313449548757935900981681703067477882318560231594610925235431512389194973939835465980618318323909708315662355775575357369335609060099106692725283969120093097377594274200760414381000284668149118060685150977988175516495611897894151564611417462086637269058330644444880100701348921898413344499629534891231132003993424873328796973286668340592999326197971840988253139818239759645494594807509838290234697690090868552291754042510055736750197173743647754204609136292518085169403516093217101526262522447257237357601636815214763010779830854131699708169658041950412138810752557685783494585136043221266873028502104800518696319921498823791580479408268939428208027014648795912090552148860252349373662109284813529676004744366103008662263977321892762826335836142840543464203721437158494169388988823881579828752114070893895654977530214985783402965816372773663396674761379030637413609869275362029969349485574059882729168201180046840778904225301427617858337190220872850608277285744934753933893248209296130215850480446408663208244196644807119666516313970259360743546145220252193077640255223252377466614305742908116543366215059278538113270498120204291644743275303591507357433558398738487078012543926607359309649990135281847631981018595284796737685482117531901867198474010052530753878600913119848735286169905740918108841437233992237451600916633227056652926766986567491301901537845942797025094815641130428946656929168842838578673588616926803282590474554774677580698902611992824933693688284760736644337865947356771367288077549695957375338481324737906507300598546192198207725584790793402778450225281565345804219009520583174733463804749204948563180167265243951330439843773519090179708332723886321167104152566337319524930270681608871036430557321113375450206591963521704629991240886590808979635278904837495223541531213337107014982491531318509017785422310765720074611843142508043990094263664377106800877268381625837375319674595577526935150428809184691124177445532840892468467177770304672946785462779521664624668609081953775947327958506019963740984475551674505379358980733355034445563920485274266686361768154851966893135501913741920809792005753204732190318612858015956027698787257646027362488352449098001314053744308082304411641341143699416536681916116799259219898117827881583659024430663901274424996635237072925872974229856723595271859154646141310646403160595330936925935480006990251445397505962150094885536952924729927982214462918797666608208309034534876141754574356978289895170147958446524297749185214259250521206540661096318136342230123371011036687641166580855804381940608006617994699133092316026231312886409462026660750535478123088079824302136036527494367787660987079621577825449346324250670998379148647309484484647141744138479355762712228999853450314186029336635643634189184971255409410177121518368642640902813467720600116585226244000419457783947094101427423017767184467845685999287140969879914153797407465680513456645509271646374678449486941240294032547965678922166252242700034096703239160334169846675193259247759566617590497236451165491295149182727310614476746161434158584802285507499270229300161426720909840862629565123524875153757313861214323379647894709667176420635095529431513400060960784886411490999002242659998271831895363515905060181107260686064608348474427177819452552525554065566858793619314074951368033060665207253416332335603840647975280299803940673691738900162526613579955690762303058608026080001759621851747047298558382917007057768346512437444755052431026495089747187645987093652626193742785076222425722137122710377942080363318362751251256843208232403678363693127953057834017542323943419545980480952646889522751098212273139968681373855788402541891480160411256539704484121806764977072104606698104236367338650854398434079227830222488070943866168897656665412725539824349659640666908956379854994090594140167956539288476685561497659616555650198305240429929633644665304640558130715736377388450050788961751114930544170874597153291996767241516878646920595932309111888778435970774577028198634419557975675490686476678515012967510178290503203850383495785789428018175150602489583826041015730736179199128836726703395497568494901235067192328086652247947362776477625337149190471724429443208358129697048156629115954670956021347037256698177087958287290518929475723013258814663034790589062076914963958222856584970941212485091485050938334709697606566593886887430617641283072976569236373291879713216465113351209374815333586870192942548041729322091307515441742768761175158309521343341034777856038799010916862802282450510885809896719568166498981628340166401627669938394028487838815742242749184509135583779803005706291213242870170564230832036027544200980154080983706891385224765454898819870597189325486768301094020577865540589174087243345364054563579665072048543732553691486077272081320839404358495380881495226069308916352342852738637352913620496891113513499056825489253502654039710523206994790279940198766088729290367222911228637609396894556739247153570445862919624561380877633142543236223511909626249079357976006021181983902920990088870975107627548290513385425188580125266041769554766297388556684150236112920374818848071756057775542102065443411361490455794225918976645533719753358298480736607932352677244085810550078428636863215802366030860394840944437220052608440379809122798919113177983147370374557918936644761297785833494555187202328249160063206200267202880679347517248618709289414657542108931723768515088970298256528390020761382574288232328564030080207716345551343254269081154245342724769115192346783647686169186902856272061217655273752207536267554711606090928268313424004802228451637498190384053413182644878931004965015716630623590798422463037539340224119216442510193857432538751017258278228556826661758556466167298689951591423141464167917003550609725571401707403214885930980448233781860577649669577171445575616131944684191826215739648467072602974194377780589432100725227034352886748092175418282829772335708330753021352812851655263246081182532623700173901200817380466562002913982535988958894344261544726792740364337617780693703097148893720683378966323776361682749804723487029378615309432257132323187717198966704467698206628707812534004395297998430328002907103257747355725825383954083415531729428100288726544708818053128842183583320726697461051931146070537053852700936850186215508700891039623521857458062892586738947656664850200851178578909843366845943628106381508847887592389421879703774498456277875553678080695145757668196997425469886532910558884314590885946158269585806820731957112920903244385684886694457770618699684228819026102401503450099027891074412708431546850388309836576411260177534999370898464682135948995836004348143856483970722606739453925777800414127976012579108232811103905319966815416074533465943161967493020842189731399546282737751551881777734914339659491001751372687162059676601193809330335259318300774608864978883461553040964176995949693655418486552849838652053873224910978298844921590965115229882657439513301865351963296230712309752400513525293812617931057108627807513154864673703930174136974408255057759614558085207343582991837544582459434991727948677731439618579525667051034299701515610843671540459259611569280212091866014555586900941162784261800095953938698213911031924768725037381181323899864005897583324526765527304890498098207667954728132097096467230020935642573490113881301646490856717518890102629714738394524009749943504073646754728790182899940818414930503230928420208424922539721798212639744582980030722269795335384497392538531679486547478592297228521573534077795223746547478423536371902455070310570321989323327893684610352996391993069010244100723778565697930341730200710219954487183197242134230871483260171741299543844718976240888661803094389479805012309863756483494804744499617417678764851520356065425523889842301616278973358294629838382327426594575479121400492397449680984561983630024238364892823926573141757158991527479638515244710646377892270895280854601830035581244585937782834649729964195620694553892069702964717673329970835262406852394631359783353721338501639970713269048672101614503924391943588212058401332263060605632059653557053025598972762283217719503267498491150493761156521108527140767446501412585880396943413488495187211737637340416199059191686541087403664581702513145538846177566248049020147456415127993309653314650403409775954750456708709327480829646988010893713163000900736816217164560125282501878852940001097681109265784942676854411061155100855673592749896863546604808387037223122109253959252165737694790235551306387443123039582147608988463541919235462905729558356163626505638190683962942370599839501447743674842631580389318454658363511277188231691255024714719433420350385000261273439540081938576025813529916394835405298704007539360905728340909332584745478390802975579234575013015189727090406918402950340743421666208734979674673091542089689215003296637270501540003371841026247579389900765538626136457664863333711019747253425404533077350356090735013240262623975083706778502630375261892894234568618574086529748600085869509253058441473090105995397962845062601954402169955308940613733423591982042425510202994032468933802219173788420583667171420014949450127881187364666197698746852648538735784069399411434590773011201874135183647987981255008161237845539402147030295942909311904350243402623401762350354824938772967268532491078646531654052230354469121091733884830966633985025160714809974535681930854272611049443839670496446757285952705882003589241196024318992066868627183190752341528148622542089228518258106888927690439704101432289354094412922501795947066676049431823199108895406713934671407033883510109460313220654987847196723798045544560633256532360103115466436498083645177508203983684497170072113690456638400257544371499127413383344403131340422949148640703020113004053606209566280667293290166727637443833367784543300027530022808336457036416076044634649635685918664005868105625743032758719920930595466670896168393391111368687749604034527812801069082322318134677090593618860948784067929493939597446546760973298292670916949656287507358994939393701389597537163391234035204033709334402961234838918879973822560557175030241177048973734641008829604076364010465961917711563696405898795874177787124632360583429615803006204679086423750278611685822281358351345536273461088127282656456271198112358385584549162950574800080934174311042134440428028136222772137698512772683221745384014302506281109411085045735671213090682196953784193221133215209502993371245424932139218874437470276439352491070713903476265935323202927923928975937364166091798977879938668611362128788556298098536951993913964696547654598685683936097166712198691113259932831980123729255147130002068381312711473049374563829033856548152257154033263690763802480043999802496585952372930393042018764851167739550310392865171070850210355052703210433498297884030332108282592246751861418769477550642756511729733656926103820646104968334464420502219322666855782784353731461502114009426817311618501867830446853612876533399037302519070491367519251908184203877991902017944179955706676177398137961431378778497968923374477332814063993561759414465619649846219587984761417281944836828307356316568434964785187870477333171061082153106583749514166333342307407720151383982007125499881190072615942170945335331316916947141041797914024740228788351139283317766528311153281037020387304668502614703556116237517066031757214286470658985612013971863196136806591477285446474515178412646175957459060918185397586395298655088824606477272932568358103009176320572593640494569557207852041326106462019527308290678054287920612444585126329578269093601655636463256347942292739908378127134857350441142522051730808863636086906315851341650451719086592092245349527532636202962804530716930105803589462704909634065720092189031590892873415960889850451581602410871130204010256572798791598641609378936502854089385268600583850725493670732392195148551561507779809341341918613270546174901010057370347374217831532012241950408207511016473241897198524102587670753662759329315981263641910293656235807864288283235478277416013701787216216134465870584711655432143837282424735405730726399651596156807783884774250564763602622516998868907350575581269018792441570436056605410584080724238129319019106361829639523852035533539435296223734608775257661767875817587400571385222027435601083485173884880835167694803333304266157556601219015627834164998179187148705611527641259564952849986014448757112886776324647769238670653042127946364332747114575334061183658139784566759843507621698367550098520716522997559508368076937829984382119620109871170935680289982967112260926752295429735916290227983557854595173108947667612940470015430299935440303278981242353486921079793705148250264085472121715981902563771396713164316718494764760148013148394529917423369919491772431272993462402531493305086810573502520857736622562240696900067573659876164165224253156615001535207031648070789401937393331714009353174012644547828343062008045685262278280083519555656852656412348934031527000755197287053423248219987630044163703855727778416393294946842875090002533798597196355597890357533970623961633534486891244541379366281968693539695848023482790214255886744788938984166212744504267617525215861319116890156765739038367536415873931293635622231085748271728342096929147122109517256526406029989358576521865827554899078218187875680220312782696417990982991555977446466228297618805555300869286257814591582469899386298407624231582542227487408286442979940401534876798347267452109753005534023518323534607465219268079068064783924626567612629799812229454391152825908025590983960498685893902815752644689598991480752307172085924369460370775755018006579111096510570791844216123508826563321818001362991347873407473766121999648567852275258179584445474259838510150471026756632704810952359548527514605616804020705182507518521876755781870577272294667063199395851416961275594985010746932740115272682598139107011140213065996407814328225953900470880767294551959908880088648722907347388186903504684161903747855636532461243768432357801778738475024982698208032010006666525095115740729354208167834418280783409523260332307269456706880059996497805622868217902497335294351673239472580232255532586704544108639899183935810617279737514617014855270335673896510153346932182844106377152205208395634201727254935582783927625125583484545138158598305510438678839631346967709162774937540856436560204774812997677348002120742359427103248094862142045954230987246428802350104884774461995918438393574270077975096373329907309279825737632733376054145643357938973667234594267519907634444109181222723608429445982192195506308056794419473620309161971642908835575619814439537893623250894620871460982999758761445817210091842813715447859097715083326325148381057191729678196534532265210145319928844173261885836927273054152378674618963406271318068829291093396673783168142134535781186436897956887604661438023925454254553209545565884871120204619447678952320547599068000704487730647780164153176483255520376796248716616462205749367926470539243547690354301104267079054730525195811375632585464093984645268296598474901444514760286146083728057919283398428389123545849704438326397519922945643573993536467309958740429310648692191358079000267007528944930209797271245875827595638851948326788461184880858273696286859063392534567579775669997464521884667094094843325238664157545547546678352085105231292090927825207322060015033246336179883132248265873456833521377741812689379518217813166293641438604318709210947840478189210814897214912121298611199986262234254626837137446729926453557745791863399808748989082375223004360817315978405592579252774385357777183474786791438752828291711072652368475049914795526800396844748578034096806374687063058793242463297594457436738211221094594361772978255441836936011846088656884708995128573181081300837023701236825478241977943015367225011745570176131454805006875807602676620149866621527748528922816876684229843835193033834530805346553893919734530587719759736821921191408129303272645397662002368111685978932298014243801607450810711092619019002624676347261393783417138701771644715236361913377352533061723596948345634061588972056837976855989731831576346976902183815298332963570706255038175390985266695745345322847109058499756952161068876060218452148696129418201657487629773663564043098593860309961426217549183268782134173650565911019377161314586159506423631654962046063203885136131933953987556938618041894216983972603666936367783605163281131858816490448678462491212240406760290941725924181233626100282724213050765261799400081674455507932590375509407687192711706196377455528859312844986695892735007551418374463554762410868097698288866284511408271148691931296077082302629930802455732428212567324884827565617491890236059542976734602864263835300807353000389239824588364267697929129612578424707354833731864498809171593342328060796291618773830421875260768908686247563919847683027977238734817714120629389401822217349573163845768261767184307877231424299916069757314390312295971723512986249572909518985953265100862830212865064791651298419319092555814674881757070660483640373152482530762331088842182747622003045171150017926499141288645244905561616520245756610852413899203189784036924694422061874582655079054879355845350929511568081110505576512245000164904534612668865672898024670270959525214422943747285479958415875221518026247072832992998870045879238843106975200493335542091389808154900128866264075006598513333084290913257504760143727133565385703828497028698477905098443729508796154284065562249204170478308339941805015333276226769712962452827864091496287756344099057196512993044840953686378810558303857830635640913260459229652385743929461980326672131115410111596496642623400329307435839108795018009470922127738100162979114768055333364995211924601631346221348677946245627049439975104930492418429650195665229548503703303410998306660178586467572242298843887683084807880888678783515106680691874431610534280370019987229584682436810057389777879357927423161976132658626779845377299593482751991293888677279388074470819864381334378324818274716370547576221050676786634400145679619955689422718671484122974491558566957231843364985966618647958116642822188284341335349341189866197903038284192020597475734857539398074224634770197252125498154454101433176561310860647662073666580247323945285058924752481186952606608298450651287961979739585586094362883998854029068218138383777985041901418504588655434351773748704098817187605992180213339607541114956638920725673515115291823918617033489868867123114731186879844022814221275480370073579005282226262785370590204173080313831955610693534713640973985633891640236600446685381519908321325191235664050105640320463238305448032327575466649120232135826384286673884660844091224877396677153472830897957858801671119539210981349427066471146084205428158871971228683353450458728978410604923806362097193857815970317865213115215516884175282939951225021429627398151973094176179617914529101361586362476501604985376326840173086349717221565699975831840862795212158337917583234531416853469483055919819138823356874420350331430580893566386083526709910955412004870050313484292282060613942603772796554468510288221598866758730315977866795172122289788054336970709357869904726672646202292141892445051901424041180222793592880826994813652956261840204897125455724195973212835824974729038214591528270134891273084588096002312215500728708893525032646537054753887856320162939795139273284333330617873934630762191196935240028697036828265824758522935407943165446887672483276879196467986598519171009341183630475781485623475836149401630688541910562534377597164490943705449543295620737552018162576586452681665423307859645880106925864264467668900587365958705337960545622325382559456280443045032426870469903854967877779098105488662444453008193722782907257271974059998709161853478360485966040783528782752535562129286318003488380799985674767479382350671440846741148350177390420351035712666337903672529504454629899292938825672278619454725010128305038185073726858555245730043901631654608023964182781038515516323500498301976943851037997540716256133077232859073751956415755431224082486884548693983844903478048262892559235201390826258720626429689841715490689370827637017504177322974228944227308077308821622513366223466167970483880435896055424180692953179872175420659009273725331784681332766730880269713503820328422560340530321468474972847374620827852103825041983263863747515101130961651930515097173868085461819922876675176652559496436238146472828020283412843912307965978985961155404817673832952519700234360122672052958278667857373749772602437329054381450896054739326899635417299194686141343181579118085644687523145607368008208018328823726039266683715932311834193425519103749911463361612923172932670034832517613746744584913150470236320921454099659756845975791517770514357535159666144575094205305739854456271322449941955626718531442851082343688430212873776855122578561917175548687456065620436578660346498267730938102613773056904321605999212069948562537189500837620824004877651074075913959251093454150873710493276018382954509539152835561772732287227240886949312069945769317162492531458427019234392341227362402233666073143678142890981357901188282599142205930794285330422858344775611546077628912693183961619034962059079131795133801879551868088559722886508649173118953024536576628865775024699345721845737943713942271159983567293665626283346925688150847783954304650306773331915229680165165446402852939813415355157201702482755605417459717564892829508358233934611160487210521749166476045723414157651782273023779652264158657908080967177374140542878983491606521594589903644871024228489130380446526201685350808542023262789274609055247646829469955579324242576796124711795680257482449938556187526371790440018798896003528764703907567668353038815500965419122240933547434089138560650592568477838135345071752551521480634073036969311076407329221861473955531545625637555098489549848282588179327223698944968778364918897875480192366231020522337530924631711458164453693029194277239275315664277191439025515134161321160283536601177539471140659396394896588888973648049726432930025473231890127196626102245930098214885574633449872718351217499121444194530310086466092829247724330555508135542734344844276859966156006522655850968689295211785355169877396779821982929550177360521172744207852703042066884971435965356126196465601136430129771524401502999903164161712426620040373874993108641754805583444086630469420808404964023289888963473078019818183660235566166427856307807287347776031878917461108898781248126921538633222825052874878992836971884476175448512358139906269273644572842724621057545281573355501659766517997615965731561066671856029042916954065686966100922439018611302665852390432391327045531933966092820977723134484418962071851875537750141067296088655181960039111395077057616794774825162955470424914007209114324546804039035845081672562345276487200516067703465288166642411285797299716081117412269095531089922108769092759434356415214618415240862747488317261796270574739806605514561900370725480638516082198651469825278185152585625895751849931828453289179973172711371339596121607236485903786567735749014576592242980353379771239420599901936135899092064268706970649051138793282548865557837523742118519215805958844414109307918899353599328963403342559520219726196822133072096607372881858764683625104868083976911298873706672387559734358294984048005086024532206199596399513048870654657314702361652084017490403556611516057593097009377818831844667121648907792604076755934634749784320819578187150241170645673766892435213574112522708273916112997821665754272302849504749534469959860862806520221066913460079521069479206105370590974898403770799546406960404624308756015855894910517336027169294491924715714923043912938166202482302795008507032934286363036067311818271190159231633952171641562636429540359534264248166771465533205171700987448107138698825048644273573930315243728975855113942330988214682666763105374176248006577849362138257665005999101297547383738828719120897174859304900451955376344594882182517224420902113098463028260313535421544032524543616215474692199765401572219320234937490805431612432452226420654619532942122195384159658295745820853710233094983415953663605839607686096298296507046992337048340927257979220330650768993775825430586275136947972117718578491612508251950805779216793963917751239944023403242145045303543674791941592970643117259051357237880829200175721168672170541160040551796547217950174625770699375033446255679129995749557701312544354229886171750290809631536950197357582783240922338293138115741777023801915510477915031004188323993573334651962688591037271744392453586870465547468024298843349449843461537343089550021378083933827986216518489902419422284542875938374784205525683569546247573965314456139248986640772165674119553122647916239972946109170972671594102536661672673228876157690145879451888456226885752345629862991398897300237961524204576188625296794537719066392804988296626143681782297457101046650654479402950160841958890225145790023178557617080399170594835077061659333821428850363621376311168092971127425038464700841767987590990176935365582285837540225591432864109596311481735543322981896636000027999260151255071846962334589469448272761436644105990341695584750653121479735451659282825478421574451521920922801059801638068418111263271704161201068441267522059956774882489341707277955013833937885364865750749496442189266035295101426742123140271173564556943050696155773268500286320386066128294717680478934905758470546535182902108710196746396191178091573949003440377345601909057944545442118311051295916711977660357692654065643305372829864259421195559778124350796470593226777514996986107649671980075689295320954228117224070925130726632624094112620369408082730120099609301826707079810231412512626643977048148124338925649602530684757316085942079414121796067715134888556136762450803636619210189328184195805325442655464777628966789996928887099203809602867118629519462906345966915272260961824905132130947157597883154210824749825883265184325091196646235436289632005142515769568154593643175869345559766547405703664076213504038528330003715979921842646653376609999249149639998439224723343484615526324236202701046943505083007428320088559944686818800134512607311347254368726289433372075143573643028327537650003780401479701159317112569193911813650879057037232207870605395086592780004679508896937662442615194106277834553571390389561182965697363066390875439153225035474070316083647392870071848257093434030351968758640255297123513332827388922272877547204784008437601513998790395300033599968370565420496857456843034662411720309835022136365223885113273445517856498488818918628637340483842908903720322707636272461219585825856545221183006605367742801708907879647009549616492129800933980462279180768537103207928117900530137206751262961906109073633769991257102302009355869912744560797746982757577373701988924591024463897215268172595499232271703569282806431480917042321452834821937389598591696490506153548410934341489909772232237810535370909101092406110877860720225859859643633445994654894891547150685863922101533018858647979122572569495901481934107023463426615572687037575390403192104338771821202563199623460072800244271589347008456016766507207858882782445820084373482998071913209950326918222228270144692256839256621474048462736822873511939053176865684526395679630209522276265673597295334485851011059048576584728866249848479960236400085388938264715918199808448829957206542652117074808207127850452516873384861501400376686354731394762407225192303978880543374214182065435082863840170692499843069331832671750582222717081192265174390068242102335354782288405752751885771961058693904483327772327840581788708300081601573274169136469547364214703743662864492425555457401314042226479173470493687980997260458821062357929635627146003876504101088316943688774550425627871415788892270421865789568288997976672153867734140138823582144969214716069087668109825132702253889032790626252625998611536627528217203871098243109402472120634932850502809573826978694423049125185764212790251045980151565135006449273783167089806155899367482787527788482609231144331416261687900357549130630849736100108413351400340712772858858818389971194140360712565115184888095775146709712080598951395850081563490570009945814345107421601089216301984601502273684505582848325496497127172589100231625303152775366398386834423809681153962248148438902792042943204617866836335719666361428383388684285684649215965702455153678922002694724864256941143032959563170206575409078964410919496704227957240396543830700882245693757172542053383470304688481485308483345866768674612128746734457306034769572111992015907426338093681853549496508368107115585561427171646290831739781353878659688472983535103711014361652826605631359946560762231605833780973752981221426884609168680262732091064207307448613285855614483220580972662703055284363429377750520301901828894163050681619016359298926594698069811723773002943934943554984306149915579113723472627528671292912070451390687615539936180149604682756393201740031875826624486561954377570141996140811292422373046710651177561484037209840699392874556936415733810720004802264552273151147711675891773615880498935273175680237681934479856544668420153098360618159141644713558906540633480378091127851304600513250583563536589891268489548485621776360680997678846932262414081132170187838998218993082790894267368610594849569600128612435746093917094235340475017071520287419634199636312374996434778016725894895570320989979027199438674326059531149510194882398634540746460692387908374649177494026383441628223796114360066440946087828276290256574530981374149010857760582153404301618373952448504926182097766531014061329321281959634555419162608509949042698262808099884213236353659736512531416414018157262001728531751638876214956128984503168246231032419315839313708001635498482081889913478123443032532250831898189393571222026668340757033978511158154687647498392990642914701479701826355208094119717816544149128830676887771075648340462918325006280000787889865535858616697694006702463911027904418522413462283892859614390205678530928799475403343239778647227646960008534524472520301345010297776252856789711419680173368091045299426583863245428067662633935417273164717921479697321778471463459280715774921573547242470561787920743418429280433555612211989895066174152033415160977969079579823560589336776903499165180714804613701099806794411421627316593843562722059493080143695449147809756285524287992004479656944195198878529626901537441573874783626353369302212485184790952569890070117828919477729811326033472906593974206458418688936047429765668281806316829333223304752137967773155051428562302647585930385720279508179134329235897260276207107076936107127593756106349967572711551493232256119733643321643776022769881150906564184549768977532764600448130761923593505560455096542888033423375502422554528552628501126183714084051378378642102708719209784887597450186337553246182111122287995413279050154256936866598162266138906222994415622482233797695519058199486237604010321942200893807323403131113217485349623396905417585653472312047178214329868313651732994259520675577218132333114273253246910390465790853298452380680401052304483507435805918290339311382321914924708004722557429570775945714882899449212709069415777195367165825655985661200432912504491830088672505684526920795649452870234449535486063801116876272555474730986843613996468507146192977110863076174074775340717426168649397147914622746099143327605102686195838125439191546642668308837058451757050627231673417104054428536710405728320050647897361292314218763761648197941550429190649128182859981406492114250423773378923981941242358018844056129607266143113429534196120243385588491991656211565722320700399734901704665123291195005617751567645011718714228197750279251365047386956483874199862400575560685342469741050532474619872510124327954567288540819144226388711377948145640397934848104976683954915233074337238019571529210886799625074471723042035637654885006734913832994329920768726540750751073265792961661357968749432788473326027267253143644923886686177650759881099151775568159930135755648707701061755180980212236032795417713972637455494291190909857798372049893705442514271966834192658768491230460394727639943588821797728013181713526245938384187725180080459266443649131241370077197658500983612605539389955662915572070629728844433947775886958877186254968329455313031539102221279745897397593534064162302227547138039205662150320706929670001091841598107708104429664312285710927114397437625930337212576627288862540959459864315245114415510836872818752698272661243183383455616149915664460435909401739135242757452684878790170726318700227890584048761679318562565932147809672354488389010884225243597099682655663219715170201023130708512329140463441653414915133952757305528690649051457507931326338453903685332532614819254041022934180655609483202983617280205911969844734927335333947540991848759049900540501369262092241657559173521502521416583828927237512387368874698725304132485359464931864853177084978516951799362463318134602976320410357445168618217897631828639934716209601585519975891891223855469708616531731453581421400190921686096733231369199523523873206751282978394708319874788390912854961380746806166202417173491296563264173257268758990451627637238615116391744112561284717863056675739205104257842787966373024300590402813961805014567395940687879013920467920306105365742187094258563739690228311394207715445492723297652863024161384227916584621865620315359785354327302552426023550230178393252024172125289519662953221249776294594601454096663188903321227130706901428698139569852897049370477418075310906477664014172841957586124757343414376473496692577149137972027001040325524417643190409875655158236145479369255291928207111992915450898355577760122751086241182197680049923774300207872693005002645368260729961923284442368828547735589119035010623685492846414757282341552425371597472965004603198952401153742156924001478811818194155329829210642337262037463364988566411526944335476331718870398592309016538045240044549892267352031032223658389999732136783338000251620611894077216607778765406768605617015480941810005580333016193599986293413189039637293913220296242184048581187741753824475553523847686329809536296222870702321652543726748387398237192556848953008792409467537282234182006922933295093841229826680749719784104596461837885124886532680110382799764544559230053175566205728061777553274168632857541878079369065921289890157177571826110224910563947179450392209527504166494026086048729341812306545352457168267427891757662298149266247373049197784338854940107050284240372775856074432907538401817907849259629605909700803946813831166041295536080618550932139042327287853432723686064326171830726619617690693696539522133465900872452701037951328558615353538192743464796393093253162291146328342262205242236243737576233093023467164853031992815311788475194712691834532302501815286789318909748232311889974304767925463744265760863002476174767998866524880714520956116747484316329246339369599480012499147474753832925526772787601867201390133118858376890000690694468748719277277959300826428205860110848922605621953993696247763355179908361924664287377104482684012635869391129221612209507183709151087975841264338082936302679863702129223663026336081431420690302238537587494222218511698767580121750154897811768195308362644878703885391022141095414880408729106509158207660205339172392740165990025944049412849541291579362431725251291753336194744184440668593828530738763535473101207074679501855952362869390046649057883518348696845586504481359306664454395446493639523524143203966940355130123650048504110418012548548793258941620797629360520249335405024175904158723364786277719144217577615155445594266055903936145988789589030271709169156809223525697183219997211595122507340054050238041509827583614582058808500890455575658356551269827597573919604530142837256713176985982468956893512066077466438038350005086219030860319684432708605544080239002045009565794356568525512940201847400698958864088937586440010309858917927605117334134938441044100039083826896305877115349965354703195938729291611340294315445888929470921615539839243210185595481791531893488254199220330945545945483292895559522045424656230521294076949809926847918080584640458502700849889954246078270735726848634136727338368920104395790724045239763325085565007018334519002824066094320886310308364133823009962061996393587226287666251612438952940009162823910177031788704708199792620427126021442471218544344651109300696688146581076774892788812421691317121002393076493449549024090772210252737727131822202532301535628211964453452439518606017183785266972725226495933066567245425589262574215161533771088605883193369978285865183689023860016904765686320053416512997270326536349901383447307129879907945996379796218024914976921141359534211928557675658058533529114982168478686938918531094241742886657138788081272425555952535915072728366367145032005655949094810801648769548116089505204091835821915355624528488458232394726262429579121497261645715157286086585764683762597425770095760266615638944141138492322161457243262974966466595897916489283548072931011806257746676994050306895127577556684057548034386720057483045064931658157596391072618064663552319566151365964320482619463374777106556080915679093053235278396365754352634024614400444794552610459157245385245407463167392512788613865367790112132923667798153796841754102832656423276169316856718453841370942306427296887183258317909993082772500527352768375297925464558426336104015606834749658476464963170093401401640992116607208266307254068994817206641902992170091553903964783845782377038903869447358132876456812509582802165875740630643754807507952973556312905536802161569036967648983834201833985549162181826278926890763656141463803091505788016539612576286581208339759433498022299395762846990887178513198471407225556036038815488499440207482074591243317889619925359495167117233512347356951500878823226559254230249281903062644638149148808136415437702101221207701647008875319557475313871758376754862158091375017605280153555872558003366150314532722143997303951276983259035016334349659395334763534529428347158650683903546957068032823801153276120710518618672306824210663831666391995466795732107129183229809378617815479735824476771310361991688872542062453127468798904931092850864261883044939421223289251092449747915940795444584728906800423748543353553092498134745460784743574725723822962876309717725066139237293636817994950518082780010996389989186888510343814781823504941201374905451297950598542164706421212311546577188891500890558529738183703217925542864812534590267931302798614913836977210223821902794487861106027906105987290420543540657792104354429490958626221800133229363334790500991879858433207388793956183320062306451077930105637171172717672894259588955274312056448572249523227311188864283479076398199961771379835560908792193345898767643395922201248074012306770178848630616644677336155275570286853248502430407711647685345742046148504577755263441172485810233463720378136931125144687594622018215297410077784430125907923341636823803390471828614938646420974462014042347012670152105614453601959191705226224188180145148409214901690787881510819358621596818920342399762330197725302699450264716125020500888937376277772445115903413411658829187699401125013378137031973473267818669835740135085049532811841611402862643997966437136937934802905377614117191570542571688059854675641920844066649366204031216462109927080844086841324676408277672587853686711450930549350299884767387921001889852342135714750709842403074757053046574152486970655952582819627047904351942066245222972492954520709616855316400333417916342096271499753932929701247581345643813927223291454738574564980711743997498537403516139732476529172055937954107588456076554062074229169591956127578565563865381319501518676192996476147007168409589655411985935911089219562095829123778281316570758793935742277578582531738015948486043537513011028843761279169039582923827807253882177703152140710416819517374803693557712485345892757759234680276204686110729045312666679375446482228484453735127056617463606683080015529109739804246448157921797053424112652989735903389921472856369117846459983936657705640841789227540666134501359695352868778565852580420131109543126785396721744282984524933885279808092331401194880384334524191521074424707672889244846796607038389868203073215653306474378204104131444747959614650049013229508579519137518612104135040252374930207879032020227038274230571849202558340924877545672256273255095223037321277154692799854117776356952797777604856334129754313497022714513308637014333038281261717509338362493200111775256699034442830905211131281080365516814917972378221449680024820153350623072721400714456792580152475462415012039375839252798022253704688706556948056393440520165322928379763960476403612994756547235262235437102466509354811664323436509080847932392707557182468682420646649063729335243666782799659052141810366094479609377185867459535967503898925485003449468677244498417799969797388508297758825241225081449626873613978589126547940944535898237674559476041896860613635273298219902519361667155599793977067313871174079313676660736424721226377311703566449979039300041337507177482702418306824904978050673106705052795085306593893657798897046430760861774043142246754328249900905354518880597857254749029154328075810500692685203010956972986522671786977728417840588397062759223496168030831455071890582663281950200120544180093962087287250044714747336234599544882667569319283149975111011044739936723953797460299453393479020129402516271638642652835453234066102862397333959584706734111539445222254065316848453604231594502141042031775931502917308175404982695860542693060073591156592908219615153099829356369472963241671661609799848187089914865778624513049684092782956181904332070795860884513054796439264794574477003722997775201132851202310708056840081592257820468080971173127095578176421579248116525709972765467165636253723005295140091138990367330518179125980089677193829772669887065421081260311513384450003055852212269837740982606855628486601945682380049012708441096165653461506208788200230616581437654482866363274949312108491286905357852951942083825007531171207321365093684072205617684715658161415225591247556789412248442087767441562299987417470667990576214654473082157358417963085790613696125508154019388144241573257450347283605733645127434124440441994941911986080028551471219566968272491524208147398366320835413358113971630819843084573825643591403165127695614551202143769277266988593014738694632919194712088425697280715238633770122894225516515065973403290282367875159275560900642421291329875581012726070231804285682828909624626821274321686309941081899558866768905360414893751039663995234796227878903444669385657022094528372108596041187255264792853680153530286898064448154021603009863743887938954378533389374668286797894561293098036039709028140334361136585994667399667043744556377733848060224664676146551957789704842817661748386884712165062758499054077592015359219571836093084193209049982502587540361422280855380024101473323369095445344375568074066757764923585331846188520612377054500498676417041065615812705192415368935807108245912608899931305383524951032407948627539108416444120680670074634779780161513690181360349229109798135908378011275158289199080286866361341485534668136224052489079904441016054416479649562668325055959968411328966949667104598272347351955655379389704247587125954636686497750503235459378119348551570638104387309556157323461662654333491735608062032756281334882121985957610823138368391297464284055220978111898255434709672523113721023532502356706437626365188895430210614821253336775233171342381491859221331235795415032601498462464945323245989795220081097431643483780599269714041712690834295401401590228579837833301947249886399336853614767633052557896175799738583349676459987980162191914244399973345435971050086296996162766847063979824928305043194191709207400330012367717319191513249184866457765239145787284625421289184605943520359232055564814173726851706398994884424923203258248271018577337059271149303469250957146561966872171963707243309442378107654004875165281265752422187477409184178335680699914765983230268151948124891277501327997791674909265232515117281883315168631970819466086097633262447209441854364452950546253602040785729143225381453277009516437007918238669245520172035564748299868747030148021208448411013635589039877263272678195101762489506286911822248371906772623442739220901344691059684550663981882354478828954300326235081820803320865506541163486958649037903058806680805482251995102200134650054679897527702922090433493067812715068617436144251307260621368263889477016597871871704954426007782857908108675144641654003967404513032589645141069844161666770369329958846582340338496424711684547281386303500010764589161894980393411194408863586554941007516582770327018095292792384155031353647610450545934554475915699535663261874041262452174091205439667689012592519194334546573230582983383792307677594101419905850023933165359289179250060206044365017554001163698201128833556212878124811816006370247749082891124981113052783368244851224019510602065044679250301251127941959748516859018600397519517578632808924934618238430641993073675415490945602684816607199542192028547488888270928037541752368994070257321476423471322054542309841457831403933578397220669271781920953885980837261825790762218608263648749182104908872142349200522346644113583631296230556477770349029249235457854921207102685081523420797286841352068040580359951381029553132333278428127256103524235443313995837747175736822796491530946559520775810871063645056958064412825063172601426877901829567667985790449254642177921070214198440783623975115601667237411899530291841776434469888759287023078608707195253081761400678416616108102778767928096131329943724019737382707816013826131876629845922110980643861138645033652107123655143876274830370315013753861550814280279145997426356149239790273629096856120734423238489944275512293763693180468117966418853348124714712337294731688673224225448962728604177952653058157970777200539875881957106158060579793649781808771600005917571179457079685707111409945259095512855754994693579834355564647107111283238827311443082859862851243877034279844845090115953942369981991838483122362284440941410172512009428250362042101390445003737269168174610871955729035867235881461751293827038359717725963516482203761303741889155446695648029960675883211380253047993395393532252130826819145742536016803151850088140773194626257348649189185914802301274768059152439414181353114326289815138121303308559264328520467963042114498078383183056421492977514489526558631521269955536781598018464348098250040367925668206248010923746501811107204192725475419822924563026136343338787805221266796927014673470598679560582333553943682093242870666883770159527948634739037226766371940640949821616961108477748977990654600047457096399238452118368080366811243232717520009889053034390410415663493660684685928096349551572692176885303861251774856763731268968687653470736001810651885348881846648176549265569034337384188605013097466433548036587086384320752708308600181588740309644827541488613675921052635705144980851097299431766827554016178351474703669109172559086307765402964390514790373710579393347765849121214260049520911556307623293799249803659654276316513176328149247289257957963185154948819611287489181362189874683882201986638893254125498069915474809149726610154663107603951938589550287817073605343234962588937732920863083972072858128075971780641222049837395524260882526015580121704575891012401390732451698638945009442923451965072219541107804740899837806801003895932586386478984201436341444801417005262652348323178237800930989419767504745681432765234855893740236663130874943797485440451393794533740951258176711053093797034564366683639510481873230638074254116437150695346137947520205516618192677565054203049975838477553472954552888601563356839044202268750533076721363445943349312356710672657241529762508975172459972019492954337951582464675177821058216576035354252010374302290774918136792248923835787433479573226978449249839203521628249485237706713732834814926163389017986135605320816111662378859658545465274867464293609268468653672412211233257819293105655801865860489127206370804154370864212454594988785214430238399876590475625217391022393333504812786722079687762153859568570662450395239306993645615872410300821027812413832083870843717388245794548782705426419515070566368503408538912191815566250743400375636200884440014566298964632119494825396179893033117261668331248644895550216498536408739346866488768577006563462739622280239119494917702025804088469970358569432024879806244680703843804286812162532279216780464254394667639376612126048031930192848630451305230700275055756835388618555858651219356600552022348860110961141578481726121356930030184042224009851069569939676111951038588806137698841650479795849294257046724188275205063415546630788176994770322760465591480990209716911717601111617503458319232008653980944390954023765849777330814463357692673757897618996741647288438188322379519080149138885457901156546875181529967927128919736659523689323780699456868177332299276797577470190199133263750816238021217681850870674734266242174681802021165602331174738926519863149890375948874258117423998203043845134772436258580004318905065940477746272930267014800784623366569242727255549102540959422663286862042471513521161165258882132783865693580808835580377053119182527520868604947435534298827583765630227811586882621061762306049763468567066258944365946176535612135581883906649248780280520423640512434022512837739771665775720979424050665517500804696322588898865289406647035498888108170346771974629859963643702054597738502704212583144614706106894637710817119843490599602226316492196224662031207718379529262134791864209272925042172374094054556629495272297522910043988269322686153831038935092068618519731208303419791401868522326901946165400508354055785445596695947563600265913721222329463208599192690752328403816515971459833578299768342221577414420852824341544536339711651985627951987152593540029455960038440037612059634121911018992829372770094155078081990919218775235877155485834083067021920210518298421955200025968690815003556042823696162497250113342621371300847390817812139668388031241572224955774121791542611964089710106266476508431753956658712025184035551260818499003465202598883276710381945838367538143879007659039648054954681926656346455922804753133973029470090163219685188977955429477951856418594425946230467799783960448589589095837241327430078994157009697848511536718775524219663913889461161385396378423532735314201675518774369667697747703664489802758272213500260396347918719643293713366663141942292604053340739094727215768367026148034256677479542993214224926099526808600505090670199608019374777636597826762347023596039105169081211882859947124726170525839925282089819732997981445058138501079792493116556375499062135641135284371135779769609368934394818785424921941321323142636143884375077095329622877513019863644051125745517188100974259169329239198438231820497398293918971039044862574037408581262446358084340116013818392074772487585056697076481907982215540715875214445800354311931929578482416585495380899152171546273535911359232165250003944792914200093556095416488945221019776535592571505055419970919977559048232652111061604203905727936444404231055109542033590632100098997960148772039039412867997496371900200088972908922250378428208267786253607154590277669067373090406621343851961356024695667049752064816740669672829620806917086108800699831424346222828611826123300515206512216772075149245331679975968039712454362188260580167688037429025510526271296983921870790730052009521697043046505077893123959836538497600029283425852196858716933018789191259265948467882684967208664958406657411184649676247387243319799143308849045838260396534459740957949905884556674794495164843895935243904474309412943751105338939270420524991046522444387388047127200814097115028188177592280712968579902155881994061026576893202619194611593449061198768044896260646332641778186560398357649129110548531863045719197005613755432984611345237442181548943207674540408471053765367614248886234208989476132645866181393658752661329357989202999708948892844615806726307713143482963984802579616293307558822084439473171472021148622674456435645843892074518753439892861371800527119846414946252898742085627648836049909608242152366987534793816978689350821932861478012680146495465241116520927844355745532720820219777528875010589485602088899997312210143831433743414459110400419113491840011936263248563825962382406810427978431640155158109283416458701060292953485528009277159127304120050489015228865486247302420491212816913829432817779504336087373439759935863026508906315542200599659248870854340771547216762865896123033358144103735377691371118967929922478811118787608570787615546512936160995653387452733241626992833975289378493454009626867384810151441441910104174544990051022569273830499214267588799497726109307254710241111771592360950238618935464111422310357977325591601010342508106599916420836370932838366382577715326353468361788402027441231832079427641989476652971575447025500741131660586811246765158032541948281091917884954661513721247119785401221620911492589055371297008715763182111096278570336356982769078079266241524412599703918657370189226429871759943469580581377655863170717802146345241216496565434571662816838981186507396514095563600034615249883072124814373799128803257867063100476577390096275529309799247072959789927054236099779797659045963835025632406510170562663276500903431530654397244875576817459083844677830030021949449368488695818760147809356082681467031539019269628241948915572989540345378115560847711319070386085365271213950977020198657280854926043075864652657064365784949005661360030896110278943789199119386925413765369771245611196140338715385446439280000467172323386876949538735124768196079508411228437878776128011668097021047604059570234953720378308240196030729899063437035354099833103621973570851248278203694510170116332539014971448027857459234621371768662809333934925540310442603473130452969671539647308079103778968298911970553205044308772908190809841177249286656518126276571738169054856613709599630136281393747802514979369131765933731564924029279858922556917592999103669076509635849578554278518448305311629924395021698240990405893408562737248202577779159359714911586859743222170753158177834113424971390113015043894154711520875481961793710664883756618133288829230085491470424024478201981579426865965340572801614499929863087875364471242576638467880394999469469680396613746405378424710057888273508646113615236030257203726380189562462505762092940492990275630824131516387690051342896697372745654262014710553095700282446674821548515514783616517983776403194136542053987192650367183548048392870243227553050646359944544503002221769839656614492615471255779527480274002584824387143945633726652697436532614587889477370767421412270213232468270794554228747464531071160833383437263838159002321362828000434096111955096838374352629618571163680300766667749178955350634529084642842145714810722247138308325111742262287949582347638090780303944103851775721553733272007864004362819368420667922212837550607927810084906802038504731169572038737134474522510026386354188295827285473335131887523592902312827113080940612351739662049751971222114825691528466228915683299019832940715897265853285786777388180300825497519566759978422593416336678572768027888518331548978188625884322140948813031762592597739548149813112861062869096956281985655050006951068958166067473107624846708315180123653668701796926105030011225566017896632894084620550924961560915039310131935780495278322500993399104593064308678257107179178563285814235129927074133670880869998934253519529284702930278928353953454817653384861695666620576670305956702284067258429173782673345984725390933573346402103852214117732492983259137929501690890810942243833880795759922726502703795869632825662599667449563221003294146543872935309212167149122327382040678533276236800789303722690592723069766421384083542747915473317618289344354684749787606815839610540582654082581240449948258183571224491676364774875608363868278148919212599758725531511605058657915378499544712272448776183707539389943009017034750189159434776917636506397265998236315956470727786967013533698149586499526524166543377307436404671254243782006331085961818580099730645932089928218060920048531941076210041635648029121431059455534645142135604199582424315417857212673136238659283416683153873654764099907605264083042233159665520900752074080583521384447689966396697741909544849016464754628677067424463457557985180050788080406407874111126672859108094092860126151546201487991251773427000208625561075735891781758450594165976189615144925917871823933636202686120823884054354352028078314543004010052883264191176054330604799989305062149461254763600583033182915301338380340571100347349985180847442228013433050461143534429572441542215807628501325278575249199963562637331798776101648975446673103012039163227165976564611101697014074960407122064601460437966903179233329868602100507558615365706818509199116347353193991650225447560428277137154463609000360127556407190922632086417047332826127607478041909136439537751424114467861203751659591000664559644260703449904032868050668047233377275572368410341458436945134745702267822034509733295857040531986403971052286307105543545784084941139866744855223682732777613677002528585981261306122723876360681568904894078513156140594663388489890204413339810314290701294377004507485867159803485478253279305725232873069224218866833161022273068002986784753446330055169856823324306592972221473232219002138604849735153252468646652210059574652160010719167441212392290535512671207315940354773432753534771629451308683223083003314633559934263996916204244804846307768455641948173937282514248618973137767837082122593736485397075100999539685529057591651498441529588313581775819032661530116042166056617473855826924805102592684962356955342724490782450403514949394694831577129491785984515277944911778286043910238762793935693290760250974935026018507385763717993774336727285340954295094267165119378368929415367612668050018788697137653601461894499065458647640311613177308103393577547895129495801838099149609707716694996718113808574908958803705683022519064801039619970620945114409334604350819741247827905742239456622476879797013342578487536929778591964042131726334272596292579418244553468571890253565992663593791911812886446400817306683868922276946502830189328966514133314338728668522625615940257477410964706037628584813042435173775032311816285043282964431055804264458277179710649184510811509729485365611579007976860510979648815961376861087456353659338795013121721997287947924091591525498970814016984183598795440873199686750104674966721927841529669019950035963197824803744054187093025528633874724232711586822671836911588140792752004663547888477239566731089706482589480840733117163234723191724725296282182218535505394445606930280574668623220338264414226659164628818786273178215961802659188150147259041868141199654379319448874606329694517965256658846183553930417749266012550989327653481436757247552268890926465740614914134697442187568018129374134145756219539277685954781249531868430337696865932961572663475750491652621681392885145065024562772363225841857822141717638569604581935648157632550073834914011148643512931213015846600601200731149799463154504752587412599228813440513959582663993271588241207813061182711062459362306969050386822510889223540602177727400968761273264593980312839193277925339655045217001850734048314594374736131521558552273579386586406516349550859948015358459945037194878814996336059956544831156817885333864724293521214569787581759981856256288656932203654885068788302463030213061634764082360992029206787432811231570605568174642985700504195115737531545669415468650902711019239750735147657335491225094481821869255924604091980956696467208683269988113027910878489561798469871885240059466065571043028804147741305367026283797443066273332260611614465629327792340661323989254567657966535252143203121194423992378164356267702846159434926333248815882185769151787964474419125490931131171835276027620473935868521946211003757949068261299495190441790039243864755055848222298968986098016485733315089377895238215054109155124869206730912242061487476336099760705112760214997821922325966371576610561762368870534468514994929476827510752328624953180226822122509522442572955362911157638685761806744263378702083484103809914581749529105608558245257271306940305623661687922957672716823113231748725453487222516084967839706705503816687549560647040208727393464247902453930710545703780370508669108792946875499570297194787924779055112489520647811354290443235119969148041021203694005381746958857434972471093523424704956641392485097192072856966021695152512702061398161982028285718536876801371517808229268175967351382601814629114906197991060762998062975664590242784932677561627110913183518716799385998728145759924745642031068829774990746904339689770727607303244393204939520507721337563440442714296414982080559405463659719295138129162002520177380316304729130651138404787522338372174872019806074014638033833422964235820875941266374252143574533121879773105138760691573592443467056032707890959806823186438167484972974251167524254313888632816923349260108216357112808349778042079160375230652259890554651803857535875906917346114972074688469140471263774564414135183104686887453129964329464579795099745878591556695949765912619831547439491617136103150509974897456416803088740575599182716573696915947723177064077934713959879658796143665597868907394379364663397280656570927291356865436805856312931835600622153475435320263810736355493272476233520576386400875143442447772184313314066937467562558626444442490118184055264675592394505234795109905381565683884584109483229540817527025892503754529158886041891786883603264802154974087730928112444393575523085474937761978329728426447140711716886834842100307823666415591299897936135841935194797498418667407714822172900879593525374064436285675205420129486635140046488824756092977671515143495237910833879075720301756839221523494536082100620877701221097121191309586062484184994697488239995480873971367115110216242891061077969320447041840427876875080758914112985472313080758578052043194834553179962335024084278137559947970213718094123449018449917158335594153518329319476537107480806375893011887028590483665231312125269130098829400726235615201019607971487078493577958491644269193378271830311610107882609629154279916172372090141509228768061631689989491104849897828150537321177949876159516739328896493835210033648600385961854376310014398194833362304650291703383572392798278643054750389072967900301119355755811878901748333309308992105258792908288961094190333493981664583134040841112132272187473265404550985752102229990262010051460346774779079831311200271902102988766675195689529187577741494613291292496619162508899252487255397130518266430940147063700365508200253925956969588471314342123015761841165397840457817439089667436121081701938186837918238370111263503855096262762311566515198454450335463293675910611591180371419548696382412389150429855439963943695227268444040976812772496856338287673329243531828394951029624425798739439210279965416553346738975051845473571506658076780022710477623572518570580190071334281077701125020054728353224808898953048694515808642244076554267202837443113546672035873749176372333088473381346540309533692496991005817878697494213638935224721931273385338258086018765144771407668559796803087035662075861169795985476169595637237162442682820130138211803756511511804820215563376592754808096786798321928108954607090846673321341011405684579816147212094131063472679049799237769111561517152581439215088897643327115018337514420366081801236157775564658330245196559082402364049772232188693975805020366819285554968563099344013286958754682502106592144394637183348710267735217914826691951393216384451131488462281328747306064649949661345370425862029851000936562679948127313521669564632204812610438257045396236260663691703026045536146793906648938202798067396727923485246088338803684959664611915088661669477230174941817314463611436875723525019394615312677444176164136424900651711732542735121797329818137258645747739143292860828398661651707598169226651740239476431774427883296305614000969897692961760837192091267048088552934432925860484557938756841368009761302878112581989272646943619550701034651528944210293158914807276348715179848121319357384056472459887175053510612584939683658525041173884459098571058343399210709246229673768585324258211630261650965238091028255380404239294261165813036614845711431002727455047525780037735699942747507794124953473245565918212789833159767716719362967038342171795323646789179164887561570642453549491000496120248949953627296061261288262595349968050831907229975307650965017746171328936078593491539588667315188667189522604316924494743538535361795820046338383802632865532636607233752308551531130196294887723389245374858411185687230179706967663997457913729897660914019245364110014572991349410667047172902006124164371789878849991525631720889739908767216565812188504847594455651762603775259084701114191753312801572620718101215197471848160745644635492008348367264783440976915396885544440214976526277609923308462748720194482482151058497663467272198667832531314246390660541178038770511732451488132913997694307513772295109661442253443286864542378422028995427760101765226026436754652154473272261147167430326681068028782284140145463501750717950785244703481933608194990151675023931335007673890401683359122677049237685262643765535529733177014299496978907817264201129443653175024502328007661722997349490740255990874303658366176484025951968547170160482766188635139334430871614598922527179367572643577955572799195989162588919052335935631492259458835535634511856789890203457548326818315819039209693724788928119312055023018851698066332602338876564611265950104153591977792791408682549463915494153142884620295242085158721817193800779370328048303282584350057845538081340311737468051714210996527730081665957118190142568452244642773580018622238324315153837798456360863914819960932492337297108159951805164355871156052208122623644629580734719060083850493751151185603581875750831465141898360097549114216075432171345607471643694669028581995047445142265617474608985611915867443109692101022006927765652979460124681759567885004780073716122144463978744862250826178746882725312975287881191101492840913455937737749019938125505714292489703157155634321373252733959685851385196820244868402781183381343243751457039183962133842305597734985690558183795259892112826388648607236509982306853311549485834948353545699658846606608843508897662591720895547129933178937607229843177641768447462093987803620697210451579802152505325235452921559018589436387973848703317217383710455776121495246804087832496365670605835353690970479879739927229418300567230781278676135240407290817848397155650787179932932598263266084680849534389458408054993228194825228416538528692848083944165186922507069912248361891655313467675455431793862031097725171546744558849115759552827218127802247088268108131942248156490445509918264370665844121872621322252486696432212959007928792970829959180100494201114916022565046420121945400206275653797297167480541319953157047417693955854562280579599722758228677702833748670117541829475348241853936979509132241851723964460963238274999513795014933020111110295575322232378763529598722557344003668706723758986823120350972986349436567274338151513291605456786683179198998883211954849749025520729829819870919790953509009763127634141099341026937911444116318010054307629234811166251823695441516788401580090452210459977215240173244776580391530107543225818892598493991095129581134549775263123537541060808247980884853757567798316267170141270928910844127706718031097578240414742644878688920329616102818169697383130738729270501304076573864266476059706435090103378074965002887833304704753931202918335909543437372270731720936508492768629835510279760813344979156021112541388933001995741224331995672539387679397337221370577654227617438113535417895237417401722439226456178837668065694458915335846402332577329809493870875018322331548194773027610818768246940429271707523398210496354939268313469625173509693567782411570862713288874673944637172353186827969847877673427303947320430052375495530960442511356804941154548834471141616984813478032596486066258419443977121105517838033009917780530662808316369923392447414114690340237261214858721941975765281081251334642721596744453927607526357166098112298553316075202967220331722864291089506225713548385524978556074880485780791995338130964276088114385142910235567565292325652345258636882876692653461140948356892429833582558190367080752308536373379424277686419338805615415928993498385852568022791476433483512613003597559639975681771260852471327667917945713950872415575724538703396624750906491265184171642550265018760144213231901243036640182685694173552584222837774841503368718062525304376261627681159588551707300757972587260537573738570119701545980514009420069121799422290798696052039019647167934892841669178990106329927654752239925979343634800944931747046859483741585262681647551703281337445491248111614637967037398146660801859544923139450299038760684183326446594197276107072772347012297066420037244465206333867024098462352038316242986858510084761115450495054604592740679609039736824529748126915917591532589461081603406358659430938643518665452734878110434898502035155435771776935978331160522043554771431561144831142859821636379623660150897541517258086779422647421475623959812865120999420702476330084926136452884740455690072715244823416569186596681918266321598469059245379889986030300444303066669359979865169127468341480618403795175773501288536598570458817834889919975800249454896904221357586269661430274675850111470059839971839759397050655756667947315742413504158309616508299235902862644267910598180817280841438580802900073246049423749218192722536852590155174718749893002018178124696241051663611701024507031553065583787799308792244041954580683430168981912461927342195012374211043468141922648745092548616410224495130848491497955267819462178612408680027910624345917492428737996857355635726757603315637908201858659694108276424946206276048219760013828275244035524753689991499311639237273916282583894019479061885428858721106804954550981578700079817472463588173519485074973305626422379593197179312851988143754016196550801584332731669006358538655878364775645806349095658258018913910092645454030454685283771986736850209092828370700614341036515571209210587222132309672476517533524123157643710477015361648534872420791145074117883030946300987173933608314863065355680759620143572627235231377780803425776703094197946695725931671633225551584648445413548047284263580164018714327197854016914455635090872888056017908751963333442219838463826938375680036357820890035419008357099187300040226580665201740609158953968155484997662989546429505965846744801759011074394446654053981210206023402446397538592115804982282311125041022511700715845738939416527728487236277630481772102516578453037685664650029129965141122228045851092667247375375016112442797339747951858118846451023261084178582434414459772979419824329714953076848343470715935940846047226695101928255716451731915263721860240151624603767020066328146321896456166219947422770109448581527848083030286521568827289084703983155775838820206489368157289896975977805441107700814731964295175345120235548697750474684989176523969325133019662502001646717467033084041622051195426394142124149639394259535082076958226840296262146473881145994568934029961562909841808714867262024225347697055897294753169775666858823796037178392941710887189816435762754663556654444988029341171926340378305454065261727867664185113872057340469466795391650622743305274986037243507516221530205758055560100290068848098163629769698865281585524558013159456427283742547450395540799792961686034653236062757783938420268792365636669756692614492590352420995963502044842182838396704517416050242590675154307918823699289050258218206753236542191624499493211944167261674158413787400494332058827899959319310736355037645487870930701516542765095728432639872965666522790235879846353890505948309081531121861708750139611434687591642309871252493437684072008222852859544456556988565617656730077851893132273599405299104203008924167551031097284355950832816026931817855970751146666386677891750456584958416221471998791824272587831607345926461955450593678155404771155978040687963271587252160295493523566029152609489017843425577460212384502458169862714049785196918656535197642375203091056773837335897959687010206631576436113476300958972957073494118754078956766718343568528921105577048953796511407708433462729468282415019376081456937904241681973613078691363853282149250976783706837140731949978563088125644925781991318386969001230297794315101644543605763637892263106531152618685276839586941993431220184376270730570508575964298810247181822811193819677233402743479247430867237202875407023885728467181373575548715269925188794211305665980751457288407570007455988019477314498318071529889420787882112389611389994907944951015927354767952180143559414166259240404424883713706783748995101989756480144921331372349086863483830949162075362437623346470267375728377443579429729960187091054702397638614121723489069285172667753556648696437801381096512007142033815435939301444643114647808639491987131116031604448355160079324080104393499061862095993313399875248968218968837173598659188954479383654434114792764773652188206591939958040891928489902658019763725135946592098151687695459177561037664613386118750002749643471650897328395862118998354266907159274891848384608917032747945611212982979390761505778544067751596239986926444877117332102582975219901588244171287857661919760540777724086657864576083238639910854423243254884994329123418361103753599664984828511786442343162748354238224280499821934547925509563255608238514444401095474275771997195047604361024633237432769313177551046291361713039178350126062207137688338172042920576976927332072947628227433887652274935661575873136249811503087358622820304063778552092544443629823079288812556100253407695970020456113288934229087997602401836032479089269110168602102114360117595445271675204664866575559538100705055781787242037714142420486275189987109901585356678975069607135626977682911511607968032713169532408004773101805539811231714712196992676896282009749628999937296272344587618522607070455796097224940455940909082493011074893696463619537586664026767342055467949582170628314055203562821066452832441376842779043896498422097974329493396392968483863876964589961676963769265411982057206251721748068985443458995877907907396247246803824389037965657534248141050112767612629386275012767986204839721715066255277784259615044718830357968388344278134566294247054667799895905613966840350806705834503046730546033891500071188209073384519761326736413790500332015186947792037706707194684282188853578495108784530518736126021297995732052384613616505976063441569371381276490557643769352631124916610263320214190752486713891474480408928370388874680171417026067737398216000710818888428126445141560689045227004897109778589585502426450357891577239039211657496764360551794731262847738165563276592589497805385583694634286328874522161725778624178199153056748346806764425365543895771109148646492088356328520682289154807177183525372369402286221272853971382361352873224664585342177782614627084808075513918006946535805099443234599802012427164946393441423968588162381031892221869494333083356882613616491491071300714433600798263815179078752181935425754620530578491907459629353674337369689832935266655903559967993645487145886557293869693755186390589298952285213889270278779860562991195248443045246713679122471268168752710557995825980942041689556692720221790708303122896484875194049197391334012916505175658165451036396561401082115586536787118026354175525299002668595881432678577146757669421010647515910632834836255150581871798522435166135133236417070096047011257769756703645275573050887283187897922425160055273864744227775536825983895068276396060164974423707684876457011002397105237655147503091184315462426227999663529369580030636166855339321633338858441742288379179055412513165097266229555677143423904028224591916023747017575095916118726236610601320178147193882280443730371912856085434210164094587251978284989883825174891355552307432183432060146417050877997214510486659113064034201019116194056058571243430570327364967358084962757964927242799119254855547289020466575717798115032661044255113244048384899983911030593962390080656909262613915290065906702125555981617424495727570223211349955363045649770611105989129138804511188181034550400724476369321877346670546055384636768101825340126378179236551114005856545368297019767922207300430152350756315620061197828946553836553360635772728889941130769553951335283028091184449043900734044317072534483332139951737218888698158286684966215476220644260049015488195300012684983443493637483278474225163055210115200764057558655213317742275919858732346513802798652362407148428006181419937091337668875238374665646540076876025478680331901314805460948233049719781229261059674454203504730913114428188320487673143952814958991004265556994362101946070787034762893947510882657922530221091497176418519341523628010139205083339568490779580060983698579911777278174964704190872852128822050768257424338240731888367694549323451371234331949316813878709598865486855540398710301661562981917309472049391757776175771298535937379369838972338417131801787044152479106839691459480435100262108768725087565133996327851061826160509268115809523747474687732689547272555256815685686302822101542507110080815780552120577572291130146798066442895181339542427569964264728915283700813630741790873367573934795098364089046697107971468368607657915015686651243465091189178242030576406272511832970836151923997014419104139205837144862065693180633882240218675270924361434091613630448157865937178355034510618128616510273451876414836339661411204487406580462275563986752339064620318090972105799590783187591895334062579674278380208894251773319618771420506156358030203135747259399020706051564765225993702580453540489328543524446829068295664614879998904887732913598030278824505019928651442264021312889485878288499798413757968635224355050451018619932730659777370919673520704809983423543778772881502051612114733148851771981526420451940772664019920640607341799516315045746524287308804868136684607258021998025414209232276624141321598063860632548563353687647553098670124567355666777577031216023451018407739336091919696318426547217522134773298145447955912222726403778665213981252485556232024750677065585386949830826338000145578424251114554304157160221506456075872774749730157420568620160892771544762190200783337578998060610105786319158013954783846298889385257553211842590311936740538050127651885527324160635145314411097122138425781967706348237329412121611926184819364075561163265515840857284421181139994563506636341210952438154435651104161014117091912257522697078833669614747650327595662316891785545847850633728483777930970762100936433632528756827479320371632780493747652473331783746387060201290213601564365898173602197548660332667288422850240896126056439737551917830586383640773674304276062029198680107689869294361974604610127845149606401872417300850697163189325778481933839602053440070488868830613022670140502246928013491033036919755990361582328865112118180377722189421606103214694500094191928901716947490545630094359295732674641131674676555187459934874970863566145589914811837019158274012260332304147293624896295907275321862713002744790367405327711411577790710610259553715718894638154923798625275939959087803146736633342798453438860065938960498900956560711299103857519939304015353333357968912053961787661147951433158216900339674538229101172151897749260312465464849962990543439264202988499335523815510574887216446124207581243672621570479983033594611152360599903781676798380838768776061837592919969737133574810709409634362644338232910507008475720732479535801746156815344157717207769180698563998331992906409292995270201913238938399245430257217913394290373258129867205125297153845554861216195099493245231004445938943463053280713047509951668275818714819637115978518226499885889806423927729421471876152967783172471612779176589165653498813928541974223032403750045605901814059109268359819823117775442561450162740453770232460025318185125649300246873092215331596834024934007687015948626105594200330802979469039633167148057475659126178944987380665601120184252241494262542854252835056282029440593073874342165644456857194306629130375548356706117419331612443375366130171695313600076820880684254650807554394786847743561355099822074370602853051151862703020453991656413515160505235240962040599576469014422386831990064927304878685374274368782948385709552134854085555238881468105789662737589021209704170998110843904200199028654316031470153461568180700475851593379849126604079761251283076144593662183365469913123836513350798771767091195822155897865362646356710223817937632514843542413622143723437596760572309382000771032262205177903572004800232591235733614455156603288509359984582345485531559281039401003607376199857083879230033307062535310800445747480058725690569668297089920565634057011210281415569000250732512708449382007524520493373324732243842401425650294367780035292670509699263623361299242334376368717346747490065755517150136807317715038702472135717412689726438875105637387897759422894557097021470391057609898140035871177461021497570802796831149027380305922710680107590225679563338072686308308289518755002309573897467138140623043550569731593687032420781228606340406803931936697207926880966373714026658799815233804560233742465104486989318926012922388622792740296011938072416681871874195481589902995200458515710225185880498417819640895586236691491922948630681442208440057155660357286633547459716105396501864667011055533596287192118232383383410520176539096621632044784305801644940156094807393741400986796260062193129101054314665437149209974044863503077076864568672110992276305185013398967261817813760276406590932925299858514723299861422257933072480393311715426102939713924496043963006332725042887664565071287923749664958096116898828079301403093477529256050553994726099095787647837668295015559428620308413694100801537741450613999809636366593903296322241884225871621122128120321146381337477638314121513602218366393729189506611289632366904597765748129643966545193418932952817068573272122739495994424147127577164654431832315480235977440345409680904999706480997859683919933687824841532098276239832613829025939229011601254205948745049654267969731042650444524026088098845019935781639861728470213910246027310938325974585560745433357515100665091695898190117594252068965132557156111744657918828464566940859734930003086120411791604980669968740292831385337879778704485687409195438336710795224312417908495105314801190483703086198004578433412466553978345035740998055851377503671081033937770073397414970932216685879815755238950255612857369201353642180310695597980214858975449369560032121822961693350556607091934268651293808716484343997739062917016838374592857108842245952744290170769948634795319508631717261133961521924507242598162025194974269185310761823739594652837210431972046283708097813911917103521300091407227313336932114617635029771072375389291582013853820911035452041631123034105738600542942325305488411332134935213481321503462948142851702200115687426190186177116739753372012465352139994320837277434502086314589349992888950381668420427772568134688426582927402326760146089927040450760975121631432892705374276454664346743776891000847894264460696385812274537451272233087242954730178897435286070152765048767825005161954795303044237575153984170045616468504184134637790373849145160127619333129267805270781617343630659104630111724639104867243570662915142725226661938200946927158167882108662311494148863935373248388207210318277593503239396072034560906708817378852339775574474402313172095087999517119805784955378444024312580785088514494939785949626663441239570653584281054673833336407013401635518630775678443958852196708133817570861427376005755354117226336901230909434670099417027960750692483958872819560927548982956892879482860120649749214287993903602408936812385360276518701918430674344799831386353765345828735226791640288462929338029266010281912100496530336717958419864146371814566518475619460784252221015236139882369810247580120239647323964582148142500276042166308190560224156887798667422678919791784653610866115542511160552880183134403642796955848908474862747489273470947307768494067133483325825865400145141534547136745610331553363267818844612498596669398371022863490559178557364888039792376844363928906791798410643940912380901844206971024360433846696017212055556238373573029289040768537766076795159621291059834825188457916785229027452810261289135725415672684424921792997983032533490671951051261165140262199843901509204239081970696403029673965240829771814521809108178236083393212532377056419309527486034914757839534853103888320802662047705408243041150378604671900776318534020082983216438339159647449695263138993976940575855981006509528625065952691528815976771162652626214587080830566516940454902856992721928382481631277708627715351443410040161206674795564936374160120954958166285217368519795636983187313424289702887915500279679852764075617539040254433321891248558328691030320563027859888148331566686971387127763801389432624455370506286117315589069679010447563635263626727674653644315438607933564981863277498932795095894401516818204690567237607632222630578654910107775807544142293120568251353302141592453818317672189243724688173400709365382987818291411777791781957666475285492575654913658533925567357313136885591809107126798529501890133466577030553031615457066084342140347630081243127556934862114897647154974296823808147692402624022687759657338506120191879559889295904948381180947001187495751756533243070203792116018525237638527381256038598519400496798016715227957960341235017771876974401585052987574314354914194180528604573069611515140737299998652922590578453635181199716240692570442121278125898528986630220997796628537587280205998820401555461142213328980292613032573731600969490189192589315848761089755713269840754034634894064417999909675551120942697015807554597432884515910817330029229686069541834936521402395928642026280013729839334329108692372489478743615742913453552693280872630907622299024794470658006701064964963993165758846390693865155172564859976190005567361969659812568478224170703613499715651794474561579400657980097883356656763692572070489521170428593984573984435865092233609303186417677143310909065149393326707401242399062699505998075262662306627654455144287884118551905089673007086211339890766249359443844963207321813326600718599917111149554095910619012105178865328180199546751770757275021894004162425343775200022906883644017077279107752102447078175068293133275371715360056989409113352414281479273532103112686715133225509615945688586584262973938027418948033338457984305638052609317412220715431001721651828696132721713846552049952996169879020368642737174827744503935252864625775310445532414285077309747047757933255638218502122529944470167149062470409895176665305593231771961662468805211814526667231642863674074166823613454218535931314057685827921064165894127415035567604854306011856746784161134338324278436071458814468056804748123533705641120223001971481030062580410205732863764861642549580169056466626233397093525950972284247219128638573656247012067595329974037821241409436048151857675173915226429686888666436814663548887817352668215956151541014955593430864270374832362384475006499206188726543686759891853155865990693002421163545286671781215658233355330507251582861785717704901677218050568805434932411800950427677219065892974837492223774310597518445156011854763809860305457483243051214776812646056490020426101445620856391957499282201367673288646273396508241043390865938010825680295899320842977121756420431100596834010325196348538941643060995235306388289101655845717258366746396368599509419310371758076447397289380902153747764231928457383787847937381562805696932324582789363533002914794796821680245688156838314487956411590658749698264830898955466814943247440057827737670010009370530963688835882785623871934798623312253436266445991960854376275374510470986088069357513169042616446039913332042144310666462654936713098493826917359811080567231618226047942610797929855369971700397795887835412939788654651159685261154573973435662406662819809377705852561854235761227773444867375542047413684828199857399076234606697232469295018969466554560002570889207455220383200384405859204106925233062349594240469014856284346542114333941040461841833138738887033501373769230555226803111787363351452927661709325770918317083788118224019379151310615428912386617137810932485171547384809821568058444192361961253595522848579502630592683519089274840301338872842763952515673409280708991695808463371872440172361000376101119906192626625048586136683576952641040868544233585028053559414258850163869207547188566606211790270956623345485201304694646209905889272206251671157344165985409727937182259409844504533006217495537332009296265691477746421084551198524173227092269111829202849911094637579240090966091610534796018897428126012609515865043449265681489449499585507607893741733985871376156418247278190810576870340609232553879752515755555132938870496806861033285031127571346724832629472407088793009363223617211121958194983818600407809050415053279695134601427718913894374072699522256266781816164012251515390372013738620573794797879534468161204545659878528282362459637765267937337151931521787601423564518218863146885688445907850554836308487131984207577339849656198906222107889601973095348526586860125497662834096390849764033495805210927219685237604689653407443946413119594389879694373720830294365016627716370413700368809087045553843810001471812569900920407428252648283362281960635165585919176754052468759541736908291215850104272579330613027899124721305151525198778864094562898800641545491590847409380709843466994538195787775719935486189850522979239164230643634514005639722233444736479178031465874336921997988435380944574764340913866964883310408636138469705414922476512531915337313807712321990490804206461130182778524687275614798261990386717418001571360643126495968863226230931185407447504014388056788371374976204603095696906631723676039370265525987097095531009373374826643302785228251700542504975811907858584671880162662399574791017555019246305799751636325592052465853296289525028631713584811150718039975412210041124350457434420854156337777959268107581690093441740045225015593555411366676652937489539459530847444191593389168530540932712581931909058641551965213689721719258564139367647227200306126644168714222083423163765138299409912652094084493512103157854895320413136999295962058996939981574422680288951383481073489861993966797813842053349030391181058117501610243764303349247596347795645557888157178923099400635677148074039298766635992335938441029005622662660273979518944891901176491783676723303101486621143653364532369538691755705318816083396232171383695388158694909241623559697488630539640918888233288848482274162060764584664725075165250876006479380641366890891394153139654412627099910597689537108396703751712810612108592787208357508455877060264992804893499353286194873270850959216445241718210768933419765151319685440787130078638418488347015358421790991216163865040345886267730535884278957382711510888252332000114276549510476074541033502850577310569851159896797686404857843728556493191378664822957637960417210619522044682120992572342946132384829189735327860906842144300785745541618110545793086011798485448714657841112584554977023037114916949012020631458800474145516721064686748370864193969410998541844692383707948779950389674413087778859963106263662607124574951628196559865464995605585342382386303373594788870116168900757596584211229491860881966996321779108926911832848752221680415564475759621570094533180923425612363447712576093806342952474375970473120914601490986377121116650443505584452801349511058403541216836425133899583985163269463024169428571925332162114526125839649480571142954761352939187898045534792092062075593374073504568215327892870202085068953859418742019750425810555080392002955825301455239560060545846375796812124256113443735698552583439284148016211663205408555691347942911971791321549858856959819857285420077324451730935409309611683284887873450968349614008419639517415299464507531451749642339477586487381651771147329786441410525373451279999288228655571844228577026118442899993540875237546993636240896385067239472368732326521720863659958587532539726043120204984568557544943328038947364446059308835845190698423690000008068358405436523396515405205868554707492619846816456384987825682503556364183209835539307894643169684712530351066931777737276601388298447837008368026576929862584096398908398866000545537630663147072564123183004179261827395623491341951752424088117963561606096569441622081538549401310688010487071023847902103858102605934061543517561102499662239196562629390926611045456330118403640364796844528181763156835055604070790115695983027365773165737420404721224494339828020414308717186167481430925769850748004514931086829597789209451908169037765965959082691181446919915153803240050904263208460696627734236185754060860330493089285011396953593239500386586205626378178914052130147722105066157309942292986866726491721057856865437259482435319218127588601201931246989475862517996020954976944152789905152802219542880600519973931636632467266670801963062704368246639005029089292181190348314015365512235480994937662320678283109166470858286513286317756581542305923264344693673591429020172614586435873620070770081890985866296816997645800786207295987672511559746470582779106305492087988553737028711474091796852120772086596192380660232458279753401666256290334628302869846422886033380303563855169444240439958833020071336303245238067934072386914719492153348895773744020753559654958662329626911941883410945239367254283205086625995305617829328200279148382514807721398267543528935001267749169395473011178285856448560732135088477400632802311800321311384194065536868101582100869870984026314215206799535320756879016439510871173755088866985272010677811457683776849277432739198480733800562179477786370290998655762711509624102188582107607907155343894545406883005144262604956135752876799285049402211562297136366169402006529389081879535289844686768530893224163223548616538711859920008050157848785261560233422569401670095200175852069002555223844209678798126416746486329538024831512576746618876804826805768558187493451087735621106456894893346872123379127927529907584629460619696563086020247570587960341320793498931182921636819380752875518143758840289640544516888880870797884256399527328287353956855269179570219487403133883864610676188989930464992545615677537487890454763108308886793967362052787895644167850218793908830673804304700520613565150017273889744379524689579137343307807941166717580629536662293890034732740215576060243285902236901156762643485278351852660331584166080810453514317730859272988165706694253251478653123359778568278255103662484380235951128887615153400672814108257417803992907806928028127124657229969092372788781707195207103253752300816238473199610479009905427485328290118598134634637754358047389068724258921711414438362118233852973286622752471179735816781321648654274531132770572826229352074358420658144350329841656010256778868738790666158136796381117206042047788060991385859328543766284848294230935625285492662444896865607843149472387831402790613586898458888948651573282999667965366112909619103392204215677235539605579688780948564233849165750826994201568757002919839303002934847176225613376146334978969289701882284179224440911935462288309884524422571989941994142100216746521052886931054062616600281912945682277321997403390429792311464892601213799860335879979615922227183455234486697101540123376799613677393332043420013870429923459814650986362608192338146175243129423985384833074769951401943859558447587617831143125885442959738169651424963092887318416792253664555558224602102414520823356701317604729775997293297789925414846270119147310954682274000345567290961133109533537979752186737111916288984999364240936028704520048630865135778382519227865461042761225014056517460591458716920147605540460756560672429380060950291983466106943751091940974630446448442173281438088496294502924528311232727541101946896979084161799579775167325512619526276554794941900893964113809387412122456526212408767737090773096084330849758997511134135993274234670971661368444656228801300082669168330274882400351026816889904963910192077664070423257944012129416549754057616171897782119879217548376477987318242895156801072610032745617036333152688883547341259216606491111360155286722934616176393542056305171586186527541506319590325236596654353055439066514863238201200526625121477059141068504533841599681450949114179014785735588640475060594243132426460737405289224862658380864787835423329335270950718532192954779407936588324255199242690221306033772810651410998342093442358027160822280845431949491518201292342640627128626399026662142497387413206186476310369808817400034821638181695576395497301556659170069993145028368750250692923789324803810083912099788310800574711155941467441609856541129794420511784924570500725453985541760231424568338162662154066322127756455777656818016907183336743514803895349626439010520684985368404254049914963020411914696143816024791485640489484846477554129147188253531465685330617933099323338995579039826585070418955348466078917698174360282468973799001479768794975954561834351998915353277090037289215058977859473993044513885096761459870658408108414593629203552757518681748415690457722900023300725003893353008162970361971526715152096646303975966344395211582233762343077989340631713791044989610740549437334949175135055335205931614545142989420485517424469589366652027219939863709350464071568232693832986655702770395599694964124277367988702289507582379762705351549137847407785170984954687656934822795916560689206414556796017105717371484126490722637615276303015637234997595304694794056637378094981746981700717876456108849197832788626641436056730542001802970377665073217067814854606289696958019833284218466205143436841855667181055032557532397091612205868300370456993690835023727570564256485322600490075138966668369109794266332142603969440357467183788860272924509138779668390076534790977073997054546928385453977748984982037887817328298186633977209645349629023459182915000632501154727277779885226010651426231853279944950433410095701550046407467578314862486768462444040887768721830726400455811704444166927881941031398523620173671201290942701180987860773039592882446043367847085788910159084008104537579307466851212297702201383200916617437344363348293683391968874072065579312524966035218893199084531268730660401741813084860473456109495020637217218537966032818851203436220600113457633261798069762050790346591237461266434980718443855610273097275995998202490754861790880887129655363690257505348090113227558436960556631882574623894932366934109371343740272901488298338054265068262952203665520988204664240758769493508653510645329826516083811481925124582636303095955988823827143213328110105152463175155233496101474164060322960599602149590351596061485124748154274813661475878592516551846652870454317492971955990891709785180359165355610429160551590454593166603383305202938237341415482358813594808564107032035458847044602327436459689779312981027572996433972577917642239651411078645794895443353264760139187947600209700772312226629205342413806998120297923825065871019255422106100088254702475944451515179716460206865154257671960486620342797452543570350967841684962983112867928864562588981497384685298320599009651523335810398123219634100121010893211090064406963699116904643905707564395556924341548933470536520515647850658521363508381709129060047970968073785216367006835583634311716478605135624777060275609011155346813196382182820459632182655797205907961449947692301789219097413101326544886219456313053884640449362702166347441272729706448645677898487609561997764923316553627912656454008834064030888693443161502802361344908160598942107351963002431488909471943504936652100086940378585377054902176953805957529348248455127538657436544471923095264374822714030323639260508165011354347855221401567926875152993323084870764860179027723753011023054478989734349232481979535389901439370683472112368184007749148336948414680001478222431712982220811980866528553465304450367650514034674450162473742202373852148480017155539930642026640235209894822732836540288359289739855380901202529715532912790368126705170541316411983324201722843950908497928936904965182961018968591152316052558577939537012822772470367544613461883443033729702930911829467059102157834732766096694797973216665788489113028486767709185572294567336252860734202750627222374572421632864985078402396284162359249818395620373218398907299301184556548077906317336533551759710380405659038300223218252746688059855447075447950684259673556160841863106976758778448075527711226273455182289666605269998541795634772252292993132177667188977009714010226034726354829727417887858887236332226428900395592734413258992957908499537862010414464694128386361530579644465872191267535473320027325881164713339315564630807425481182390951027723669477821441602134613521823155888041997080567874737674848350505812963449866208494317118455352765427466018482130141359604024336619322870859908437799843612489683831463668910079698975893766989789680493872918986766372183114779184009386410256371317874049658237362022760848572599160481791858442568740124991596907833781167957257546055581881454553349611960808495194896385940945960981943138953001062167900938833831545842046236557768146950310042330878397216988127082916679254486555730529179666439643451687906165321257896404553945891249640804685540074353031031825005032287210665813159324844572204128933187072025939630388705518340905194347505743385559257628270414962752641308489513383129869180810660027111388053567692525783175220290605186701307064132055574799987541856479441924513403214500853141190009507934784554263217707413599184607516024499115555559098580727701186359045624261243258693778086331919380475466337210076701156821004682975195002808912084841179637442828047437621406376348692860476526980691645217523325400607583435117546328356756900172385505551784486743170637458280311279735249659688646252320864533247780272896607603422987433311421788645571661920339769963889490836791676289918332387261351504755982675382726929845598730310359332863490060249612684872319971545424330480299370761133599345124395276770592677575326363214584814766975028888494705300775547257044759406496479061501652424889148379300117543614066524650675810772979531670207628775150464462696470691287178632455443362867454764191414941670054174406834002623139088039514182345248843809053336498263283789845043897598472224708593477399070514345643169980656671427408452988370688712066239082807822160150108312350092189798628972120103500318162394285324851994292105017402198083055556857883410451616562405922649231731565514130972684534700097318073253293075363087495450400756161243633805462140531038336558912642259299461878665322988036659602267962193553554181627548214464723610146015111887647163374353694159458471197157870022376221956982058212208444715799726022194808279499423180645196756291950261510040743109938661146261558461489660988212500450837348428709711736295638014940410517722384742881124878990140232831387987029949665524756398252246897253983195761508532157268953088705399521259124298643799125379738578510854790321011332469729206512293436823660723167694655364132678120674114332194558979488164802258171516960873275255445550130843858370885243397086271696138964278039152389818644978226674659248745443157293852237058516716122874298698403975763305785952887424970202455653539833061531055234582863691185085792614296850414662579984891981298489839882270621428043521599742685948733252056470815145253770034357002969689095686219863989233749247905084266610638732992672714799673204760512085476555530875548847389316618735256343522561641122283169828148867813233835166639922418908722367611332168279577407757023831557950402796955431856571772870774332435788616085232389662661571071116875492949040256967376093222516789739382129901628651052030433504002737309985262645432386007113768576894444186498359350589969812107322636753753568152041516879229410467841093145299371161244388765493585512094855045672761279227975721300559436333962635903221850617408267427188255580938029142276594154695706892652705166260038187162830347202714675578796537634478500608702666954268126318900407390712675390088949991988647189651595872348999577513338494174314658729959113785036999624916179432994743544675014314796612184849094945220053056104773253393832658921267389430225979382719445420274141224570787376245277521702355695584819226988327525665893714838736679120898443268335133747679143802394445060868711161415557322865625228843846969092669229319855494845525910291774864537865394530073430403597279364234538036933280060947307643671030958433320483105236092616777236639398300917449963916764454702402387841643366591533882916936547876514124244968627494784002197924890003548241802884237407980747510159701935879023559788400604736873185835167018278863270047318416479123270001707284544127148985378474563505653869863492328282643071063923022465821732774705665381052507504740546793523583298578898065006880076260043397345006665566715846053936809278307335707484379273571331290453761150129084993237637157815619184356324801379462027410633704602605033727814049235161689787190167389810028207037777804150869858460889823038844507294312620248224204096670822380530382075994374022856039854763022644514576006904823626527414885758417164237743746284979328824364842441645479345410400183361925275776537650450252106039349316815377092785459936224699289592389515428615465206839992420208216309189025257125566242976992684697688869325569292279243520501598198145139001256569713171181970651131571329503400828313985968729899322969206436331393544688537183684688918135453711486021483455065844124399202742583340891896988525774286056790454472158067272655384111832349284281494247057821580572534777685479394881483110503861999454349498221565820861917420706157994621775289769366944078208010069395346183331970754350035983989800910477039732893194882803020636855512631962616381961770854720128311280785799966715176472110410481128772932103936686403166321066877530831622032296008789928883017581652507980099784482619737148168559754765148928017280607844160775841116190598756174509389908859613894621921083008375033397994991816184823454143415701681801703401686392672624986307301666430010779374134795831296569016867812225079153813918112853016831466753977880357487337542154361403249729580640314603215711237463351435071135608883188276433937942297341072994788080093733479455097196716054742751248436499319766500056696337291019157231402803423663628458583839904410271708286160428583503858187125390456564619291062945773529570218084611553533074554201874620076823267202628806623452424657035569458690972181333194958256336084777158457831442976652922700144624158327826163586981466731560214372599342998213374645142982345983095595237842903131450988713722776257978716731121716736223310123732252734425565195160792722812776424997093640698712950355667617431248727878043785302187188635567996729655135127162884989511771893042488041914444885847274471937296859384163029045461036817719369175505441338493370699916394292232823004979818234900011718295344165794992639557986898789903012652498613850470212224645523359363112728476127586798944638434019383123214772702251195748918224325245509064618625916235183967955633602466295833887464309421470180032798719155433239815802378841517682216585049466163927130938650935201335462346063681270131395152459418556451830468629067558181207218840699555152007622816612499905171690634640137523412023491433484576583707940166747745100532047039420492648120134676382297191957827912236137129958670379524363184371679306910418058132504241867040795829628878659442302807015844213447036001831223789205771836597311521662598214769297851997287449223156855424275769408709736178139895671587946039862698686066232979477863434283340154605834984975332141297374711682433546815854059086781146753400061029858246184102636861846383354249538762080590498667998349492631788573097961001166419416896467185966027866483538259660137975320605381490363662766981029437910335671021629222245351804069810822648753130225318500848512992098765730463713215770470841120214621195027717378879603410990786284992659344701999812070573675477598842928905764548733165691314487978005891457546946893030357765827109445791810160684899176811055159482063679266252949852081546837400274120032286848106900865525306828402974305122788202546462452116953053847980806367155984628184776497464525094044141793761644389864014886726206465041338120533874470302110637802516936404009559261613095007245607315558141932445733028480937285679499132731141831497602749588236840851207214307673981532098489571444412258581032734746832735706547928763277567767670197916798505812667813632421604160462992543632291176778755747618312259669784859085016676201603356601441549738967676289096694818659701168060540285213619848648815969908223363061631719077445544294691711631165583258566988117061919744842479317790149895217164156827484253345109953237452022634382772760186106666885571981892774903881962034560292378452948326381611895118003396194905819101937034452109370882483984126935440101562661896458000933049227160639307444920184436530139780916035463226172709928071325772997336673815181415527454167715103905777614881286561529970792930259518742038376723365447392041833809808700954104394368610590302207170209763509451784770629306432507393731179175319991094042760653168381973741124056169100670749945922298000430836814272254977150638717811021507120773746000384875428000820757352391632157339495893728841632895544033582612156880208710826052253192391912251134891642145134464928939318054499868484670980892780359778557460354958552458782275624964604676557689395420552400067649407700199390742644796353416826808672624011869552750111962756030936233935093180394401346430503010957628294173207192279026726269163469188685513711245044748322694003702399445033530201879823882872518359821015246536076266809025916235946313215609804142129410610889080009256542886649580566065108279550013887689926547966284286059685381607129640314011021916193523665294750185782798974134944269489929114719519015438436390778134224713275726298388347393498261448567444120310297919694078722305430391356650206326270987459359053561544010154841736438383799646074823108234441879882859463981576248740613730924568380826803817500125432710733804263383453719962621652594899828538146536771678093476665921061921490407763693197462417486761468330204596471873917209198842924663873029006925514930324999412966729089690160811557603050892950865488650423845856611377350279949738766854492973402696798712703261248705250908874597088415292601461589553462804906197596717453497448852893115098510184060881333805997697737812235729177466740498269157384087455950240535749421529127176738211176927141678264021675122004933683467011585311934514892278756357526975279548729809723706864787022376960536471153183825562137592519573939313658907312925993686221776064267582206830227187345781942389680701610872274895886458522057048695006925086417034724018200992573592810818005078680589608775082571197576789180938737057382071678901577006947256516453606623836180701086292872641681795335864073779004735556990979315335505252532158644687085523377633547007216555596774087271543425039452019233747354850948438480745160659520618215960287425353056023211505752648191355515119841790227548151294036205308941646298655087631196202473379309316421920823196938222385130723225900126014261857503485508595953406821576905357195821192755948559075582238684069278079475909457312813061609660678661876756767687506981931551263846561467705624784726390680172773337116804479495052445721938004387707374588757546018096862862981651407732996801448325206037851420420248101360930106677678836909766664808231282544635513524527323841041151593242384786012555691042838375892013394904332393861883092043408325522826497857420309616576360661872704658368555994842594194923248741357839170729635215178546727574752249221285707136409813165687225524757079104971662842752825631663288634872313416057891442563392717593665176063872589094277485849968046069824634405696798764138001755519853729944846639705982982135375171846189938733375122942885357160540044331059387147923303931768246537481996154763109776386618941335610378659293158758165112325499142673387749301149433526178792774042233569641913346508406678062758353533956963661069374184127140420848305895916751979941307431603615685725115502767009976086787359977821100777583898142900203561665769390863383021931663642725478979020301482755598092210285311227559827836470551876256585643540726899237133968553456409562845444828679642030554381603143698848747846793728081514430149986479734926869457417470022479721551394719414395000464760314213887049795305050990603807712814595943631907958789782254914827924349281251792296808376690762841494395869128051468934685585757310096408557575319285377834510523126211496638139380483160994297892797044945651154490144202569881700636477916136645772545756527899603451758409915302758961460152349296006808652875258345276244595821616751104737313295275365963273930459503768116828371065406328454800012452237658896542095359840393552463544176998868818894332075657626239244400918334270218077428738579983444149593328171240001182151589577045333526273345108292893527287443630519137015678546397204277968406744925416268748557409624792368899449813426460963898286419425320142723888060681232680804913764655622915808523449998781256054227610526166083193627786106631929109514071574232381795567208697065841315565065598409743730337561302950036533869845576302012669741300689470522737566849639909491799446114068286107899127444242259411785585842365103858664306188900032269015792519768086530099769582980812373962630264671896079565115974103916702801431179763104477632765378120034370632119458764174025708545196240388422250651079916077678173964095824170887565048547473189765434151993967815657298213446490781606842349074608569180565655879802338425999245400534365326040721038154178289623221414159470876699099203617228855180637986241291184626587046698535444121630643867852380203468893384155518900973108683935997336431797579125766041968937647334857781721492460361922240406086657426934561321046456116692918190378396086885769779516098339306520045933725931047176708286569155667187938943546988272565865171391936640811790904689406599684496064840351029876282503279394701893652640418994665789002313464383144466536871278693835103238923464595408407494761155287807989445137506809265594672266806708554001584857559551860424171909383329649552952033981070218916811571362520782342158215756382111820453292526158173346049204477556032541312321856343252196688093990828302187582891953962797333495116345753863307192587910537573147102159281748942212438755939217134008634684096999413470215618590122166602299393839167342123940648290612426926982368098401971857150351442232322913407333310274345358804423630289347381250625575263308048025997450921616843366091856093847834270576431360486786942000966095752548135985772225816447859756711372443394006679034766261785778287285080408219299382106053207902612569166359877473550318562020676325622446530282207457375239817230651626692963105230543450775332479563186180538407995062806085054231246497562341816621826789155753497031914182137081810191493136725874052894342967350862269808424595795846063967671191097925150452614739056805645822117694895761591124293416081892809117087657828246526450086008422434553520005511967579538985476657992645877849017965125643042644889210370949856922388440540506048294793915302175658923679488178589000132933567053636341589709030436332195261304949573656100533801478467709676666430216337500977408225166063999616598980406489514987973585533755318939600858328195379105589977492268019021673917423533186939067930309664410374525326055786139765905153156013335361486635292306453497177918681066665180877471456224488638031631041745814752715508272624626165626924976026804673538384148828435406668057780672311316910797534644591842985495146746401968188323149352595614878727557068364917456859218078955976257968793755332004942284521115559544743409250273200815096576154417764956661346457865720441737127978042249421603864897038678973730418430605108944051306279204417651197279220167707327248286720024478344172990253931484315002377490625077824430141990666330134016122274218508152110115719787570637036345241178899872947241843432918201004283334655332804220583074761801766964101957736348570366029980054043873497106108363999151586857750670351225607104776058898984406814775581864196801607118706838173662438144915358342103545551073590568070261524167146446797766646808623672041576317008722511391701404374365546116012392195064640634979835336746183969625513289540611881125803282896918883760349787999041884406233601891249808325321337266509905672238154459020308986562576109231075491161475699270925385305842914526241486469313246520651581462749177410915972012610570515970867462089051429434020100954693086745275853542506278931024058050340320110830419719574587105702260207640279565592341907277594023894662015650152760196107899331533629678867471842116378867088733221891331999459721171544061323557442378917038706980739333634596667034715017642859733845928602922400888253805409186551563314082518540182544494325247973305794850303612567614026346475077541963882909998509395165309285695888173556697485947002486750239571102013214455103561428173234982292827904705145608625772424624157856817001828026296163746401051922193321311574354791681226215524434487729404944411268798775172605998818578488135730139296433616562530080275313462783149486825681380079742802478775451379316670111243097071307218361018186834086154472603270327092470030680128985906230244122310764983898532688634130591934488978906865940933197595451397528281977868723055441477737528594248074804590238080112421906878904447410986699872009976821600860100125700956366165937306435974454948938326050878113169653619929276368702507711539743971111055969325604819264688414360781161101573278518246444564586533769936913521874101236026656349533380968005292044061352255429079172245317794458027773502857707343000207721399970709836720746307201678735609942157214834556575497018177309896741925685138944941160823806886279636538761475930633394613676826956160438563145832780182848169038112625650637735101494198818134832982687911624472399773367464529814935456798018243933768822077921937713128958244367541493597676434206300890860311728849733849581855844590693535458681267226355071782670415946492560178387210452262275666404252631983439715247768555126155454641019269929821897409857700678436927343799390287992848478615003095935908725435800205294631173265941640868753819487411982223048733471854095678974004399261250881584299051896467959862778100055486860837322271608056072650303197537550958375966559154780330092156921859109829111246619349674721971243583220456061229738722293776606081665724109844798153929097787087463448883128632786167922562416910713048284999342497600758489604676801884569562712846518951078361498005814958373810441160888059725213997469122229602217035870882443219069631094709021964031223430237225295857203744940052275512281763173894154511506676246795204981615066221370880048582494218744938650911732540850048293945600608582477681931030313843380896638150902515247173986555231501543035281079359752734355870348495570636591558159191793255862147355713376183260612499545392294028086861436775235004812923130946537493038376132648756463710068269057971860612201576902588260028073927012125911934210704589836688432323077191148769987195703839159883600359514203954705027619831369521457418276248495651583214348048579065614253924067273475741700462090757703068915294872048725628081109912704086235637725269390590080856057569376377638451802896971740424484881737480921213755658782297775915064812019331102133736712105705085516074169078426562960666165535009211144369491124205109048166580863671488792362471956849310516960055299000780858988694740508769857092123371589852228238202529542317147772054653487997974209126169525888158837435077027714568198596410696188551251103211563433796374442237547577792814348414885254752835455974954902768071026028789871920591065572993498813893133786809466854899962165291580055303007937934351918177086883802290948824982201551160218045335152506997486690435255602389497297627816964369241752771157249289430819864382795107233186846020525292195443223738811521160641829133652396555415640782587141267295262117566871599743347564283862852077061159223252547667714802885933929220832264238034833621131903637364766131554550579985584167921409695561666733490005925973693849843885307606245221049524627410431869031237227877395092203030468296430957415905082159563260322325016353581714235647639933634965687976810842603325174954133968511143143018015570059744139857854776464854576176796028653424570897476113541421331656751976660523202994168326339612633638860627435503659882164700341115310990913598052504852959684484363494974956833003380421732499136225859247434654079581085872587308810174615438170708287328135788436248739049939025719727800236932646762472288766520681195845709849019933845534133933270861753614849482950848575361053394559896098058814999017661164396739663765246994577966801622088043148888374978468464979666087813349382004000928740686271290203829502543314186755655567734731276720472542704223539607781856647461416434536106808099498625869115928177792482593625057611510202054288493229199836964504676615609014318338193188457688495923053194987526312256424558912746787047255642917690184075034263755375136339438962703748057910782320436496563520848328382492679839281563060965759803060375506041757177024369474518934598454223935803837110726479243098889588494431950720268315661250005169831677483761827768083705510266313820636809485311335146711395544958703410479311414034474397337834736974915423289840323103875909022712964806076128538722950242581592689161606399143501519539613880449132575411035547465552974299773730160956061756794871298930473596679595319257579930951286275745389615490420560451506349816079241367010843388637134016029887271563804394282215323890599505924574391538069103674968049798188944194680816586903493146124455313035753263133403993962952983578940524620290790598605691477941130694151840928622144774648567028814965968267638139792355029681984826920718507726233235873763036186591846230599720900328533336788706669397350013497743398394951906353143570425460527582709880002383728453305321718480305484184157898925890527804844405792176534005273701294320002142902294846730256989940670529807061405589801475804442553814601384537906459458111893137549826026169844923113672633335808782335510943204312567134988109145878867805352764345016585191801116116572431713245674922710595464835315993631044980534197417847045772783558138567046604069284351921498164567630820583232344760261349706461622516780619822794582712403357573639176305760069480396858505210647309894319184769162482889465298773714908008010674785811450447359774090077663081052922882055123962979526386053471830377580923918412629285813634903572899510909623303603921292594980899570574336985966896037433573738011244901341730617456273476468497625882790839573550622056949086342915103250038406084873666728345160160313638793908180334222641751448682387846902475300555664878532662300473301197128934213168693381462624188273171833048346195061160417986056422227624934606438035120650409152854566682036151302667998381726227362429521074257916838064325372704547961992372702923186282785847069486074005131643371111110000194104001723607148458850010342733420539554808974338567301747686881197571946461462263091882978451025880157117782457725282870138983465691546808149734258580896011400939346464199989451912967120311813571624867867729488769440921385382013354527590581102144034062312387845196866493551607183585163129069864911490420163387682254679234270645970915881052817726021148059318036125349140013017299960442045340178380694110145103975260512710799941572250653844867424699522666546218193534295678442627839519043724634910148609956188748347552712365475704424252257560286036746894740096749704210875166662221295784953480452560414732158058323351769565431037197996750472362699957715463438196137156561138855738292874998869229750306764542032636013949769894096725849546137110862309093407081107557757886006570629849305500261149895805708656060816267334305735344347443148300328301679163970203661826361264475903021656475464812503746317103979624195411179639858230788477827187579376877641629616461119775022363945401109153039889625146513812235482159744346022469231965334021688763463582706398835389992706469695562171366016275087114756210425199301842823807388386041684358449605352413792348492642553709736585424202514375301126090436294047928394611621971132172031290645057400156258152401220524240610793288632968891527822896088894390060393956620484158427405613283352571373784649148106790681859987034984869579524313666329970682739998430663965487384907129887981151253587533947907908056322647916131773476798838992142095288604893742335472497255867183335942158537922511235248874505932347000951575700404424010597561440558171160967781029747268345340397302925343424330938896356793094769831710563131309788366040028710147797484556151563994351965097837486276149026137681089869910918435475302960983958227516309964045192141381617292522328802750186436351159001187589306282048702386159405680150761314459168967624368600178876230196159688031385415554365955741543070011518222451456950126761905752033713244028093775758218602455389742170900085272578064445935041211977133662037484238374699498327159162971517327207914857839567103684794295938494928458714048230200569625541561441652987038195766223741088197121906220042635283028778737089330824250609623510745932301966219278118555454817869867633115112785837662329544305990628354355267208592687828285147736058767049176640487500780000677100712136905281888770178315169980360642862698234236256559185002288120334933738693745539854772158212928095442073147425258256006121183848045650463077485851935749800988902798011361864431438649243427758279201726771248854913468718756138254293976536660773858796666765004495528067888357987893402999068441961684065538682773490608075923015501262678478240866757674413042214753962891646931570685249365636458495609498071800145254790776836406324311326938912184456473625868692013106713945285390696291916197799996648115849428735944309918930754286399699270623800524262489985526208010996798132904176995809537347026018287418178100134642072636374002764761567840866416633113851831073485991024344382088531359266330138182836453150650695920191359278332264254812398129072849373818023618786670831308397834381885073532562097324305303895039456865497941114188212262414319572662772429304821788006577397705623649221167652981977874788439766256770392015112605119411281345124107325263457260020702033254214113311390994393536103439901579039635071028431216225637401400405683596575933606668287146332729059568658706416543638056082500002048647721053837556367103380832639202277237028176264174350636852322279780837096060881575074459353324228628287149419698090849398147659899459700810843591007769058611223829201611041653688699820409422843029724601939666928172898067287912393937514953047638837411308619753804863301109138763972415442519928634976658523806113726619816763620927851498801626186361675167695589276248126497886716665709431234521976599528244487117980429272039853733875920076340159067663803406518340819095098782502241266380304991323954658871129431415516000616524298512416315624595474171015637469432991334902914635933782937504795940246889428699737223341206617632223133899539236531214671721709779423800763717639517986395162235225822008228839713410098797475285789265224128968098286523519989348752516069267571973528799185941897425961378002718801085226533013852480067025291595730136943023790205225981904838065230401809148234855415133463611868730711812493752240582967698346981965884110985469442714215295405732604654610212282849903994199225766233522363971345097242205717708891543169312565740872974604316580327151589699658308746338453178902793632555673821457056758920239905255327346137699737874675058251623696718465107932248886296962458605552083601779062982692264031657160780850623746983899438006657720539858016393108476391041531028340613586264360719231567036277730731097761214521343936840051702590455248864979120078514977154970594841480098500789887006626918789552803769930750471251550872630527716508398907718751353212227982960661602257094409274820153959926913895620967147946124066473908325096996018021758147518663858983539493706590448796358604332430087578811172624152205172293091876412815891675475677359245676199208018597860511855154870143590601869602975525467893475749392937529144390647006066907516273131039523299453398106788035965052169704224008385431648864191478874646186444555623177620122605583399794184770508522096928232483367713838290439401931385099424390826500654369099740781196934930251959002408266956413091790349968148933580196638147116317966274345635338467836014783283359444134616216560668376006002025747960985484261553849380550334974125962904597553783980605534255274477274356418053100267266128194595287616374929909082759196335828996958943737407777901968634031496126189551965809529697346927282204197575216227874689775935491771363181571621628673114136110437253697143847662973645781696825684478073622939456412872149901028614855658584672897575625977126725048662380983530034276539848745083147589398865412682215686999222879998434802788389449403753523617227411016740549329670747373473751911399791830060642895424712669017205269294632153410506431947479283203048371470444537705104868402952795373948774724039232775203480139552032564206205355390359846823314203047250012518765401362454661379594555187757174396006345786878435244521581347833497232465481059044606644712160933130762118594536891611080307224619895500314283996006854163158547754129425530185552977513979538948161073493099876733971138314542184304825657712038519568303918913889432498965358750815280217563715113317487890914555475909557795073071808163394728086957322392415191565961831541471029106937351387160953987007451048115055889385686386704408261420362371425819601049430876311193279813957547822638900405110082565727045224586508677574652706202946914104461344994062235824956895286100019906961575711415889406300067248065682757553836098256076498236246239541724394140089917172695457465403603663856319376947687942373292675899506769123594562732678295291387133555573734249117112098033304009208209610193954657246414207836474035623815968398545183023447576706110656246630394753724627453160415461380277868279834476128710305655624314220594949080613101879683879989611214703284286055670581440453719430983456763296892973887628454819590685416457678633075232272586056215661915725226313509890604651228808412408160600060159396930343676379695210038562221920420859257004079496848389614411944988246995163426508703668825828393184755220752377550782613240045077288207442972902656180362499598983847897873715686157492326799337299824964876794188604601654893734418076753267559100642934946445373754362453312597993013148409174932394190825495448117189901870687875024849462000878637044886974233050096139570853248913523766867222720028568669751151246414611663690002130769330062213233501002867273067931593241059588613395031609851988710796937384007629255379453638753331300925606273979094757098999513769649613240065174157249768815904432389785059540294744950760244137880089294204376231697263597412668597734398469455428665496780497670138158659926107220772303855672633433488248969273592525567006295489321323675454601786372558074324478636161809473638888728826851899050795192844671823500487422764221473971513135429189381856663903509085761398147650728899496143151358379794672681760802595356166212254837079699734331912399352204007974097677936908943011041327555968847181698667931876643908054406174927310398621404730459146066012834676077708508822994874169435592958359406968751534247963217262478099780281428918505835542668461277886875167499147500880478773059752282789455484588215199421595803797669516948739743055307015704984160461145302414541863040932376057237129400665989747552791687010591584573155995733048049559885266936640241706841194179093119931944430449857838842764596569349370929283150766510301284560491563103598436142216636445756491205426790020932399980033620902224126498023853381509890151592057046390689319848246714204015290186193098107127227325085690669525948631149123549864835553543387172162987260673053013481204810324724203898533507847244544347848312927116948458138874162190356425662708851309402309668368238927475773676047183945825525688738412631246054619100045880642670409677304771077625816493421939461206057761643841235288742759399770960862954731398132091762344389200863160285743370926299697882235476862200734467666774776424122617242270170359082517680012646030923671443909211185424764968346870054321824031617094454186495289255064738976494579917268138559883451830736713521870118385650961119909616051996438741351671276209611918438423606843848187785150767850068925575288479826977144447483710073517384114382692963145184552287492599243577084987261279643452932720660281500223557528470392286178123762178814577223186579658828975187501611051355462098241583108998831580488192207578750738859269893747959247034818826052746145929716490718575968638386266666484372509813376403401184233782974358259884094701151467761052831123731334762585385280269356848839776786160312857567705859245219303735760880157579882608327132949067275929708090277548982304274853741957159193088174735489017332138981895935722203199459297583209285760609047256331574821462452298240986444209543618074903461677463853105037105593746094543299685881611520390184768012476648608727092504759936129342274269747479900689505505826698448952582543601919834802019458929061973608439718523496280307203299306918688694016049778774543669727224338044129571090649305629632179566133133829051438639557913970163592681803041182301410125844679657532441985408432854759839397212652200233403007701942434692554673347811340633297683596862848228272469050337436777810219872105061769786648527654236246263588872863279244238803960180346054943978788829451455821300378672594588976726050266127774560357238388193719272682129882035633632813083292614007039377370890441591813492988949629309343593281087718021272170918779513309231200437308818221299344532181240150381583401322037283489111511271361218148772749081505871693855894513971280048550946001760620270810943321590991984192219073415970399129978081815826862279099928826162974139931627671826019839255734818243463252003365208673786656301689956489149793483317165736669976186418857311097298469413355415993627461597254332091992684526645491565741334177605912023692332179180418634022139429686858322380611786417684898474038491653364220980879677114979628738171672062031656413778692506569426247984546977778330311720839754407514885678271878804451642574797534061322620040511264549205121577590736514495374424674415284984165870780261236292507426935129457757944648687272657943566154841550051773449290970184575082095269507224171518122364856258577352364368689226567894979269701792973536720983149278499943204210166659395972462652857956051517306888208240688029464649946139334467656733775289755922272093913125440693279696984489499496165498054699472707949331126462624652630425770818946813301259380309565712140807910394192930998781007073488756769030270258757478727891973671421296413347989053012207048808334929066833508373960291705495709093165175773715617886209923730825965506214215151686074453804823793062586613728996489308529912569877410787239150681792365045592027111749063254241639823837419698405825555959912883513891927391224658815006426124151662439652974995173917617322379410113959931876517779570221083357629618325287314790795257659574485827046114827346146209518849483964705301212856874375854878001092990563115643152136571849502273362363475693778930308939095777536923617516003100376824693417551270609374144597067735003798427004772448092168106609816523569601531609892828704723777295404099662467440494240116501166511867548795461241168626642093127856065225961639322343448874798159380836480127286882276807508111962308323473640852336722514497318670183316935541620363587346468158879664560941979918144604847354929182363690866607801495187943907706902375247304363828483049716097325199966893960173914791855022029817073787398830745514664270195696022669167147161041056067115211671208552895266680125413692625095810484757278120158125467503655066847676386132192487901249359486803177435104292802127314182654688278928212271721515593394670468291242054487424461125884950588034008155746308730611177975681314865709613479372440495858175985611777139955016977811458198509654639261186462989993302768041212302140224017949657049061753562177987939852404261014863329379059178308798934562102333804403229326397101802745645294554550015308831258915208283054034406266644526707165870896733453580626008072438302969331344892155022761880612181887000079628436759762546081331567431557243030840676652132164343604125666004049541049277990247680405698513535058948495753263739932353793285063154486824219432331417270496091664891133992767968642218614854208468571025598262142223769821696364147530882250371569341892059743414008244220092676580323064462008386776462187651590149663607355241217050272499463148742560725363404980482383572222408759126009978321745522951122185220894945909401924607224474975551607486196211524510684510848241275429182487076321466963161172792875074206249396531431736283561352799549473586018360770645114367747219639593408272438508278276176921133956252281729762112861116830361097368300024162847434545669253668970345119326879749436963420717385107805893520275258210917250079274381484228003904773977366808382978556079596642617517673300281181134696569881502980749591986507107503072210561369941928002907480863487914447478021762834153803212020672845835242470388133505535270851305462064638169586648013988936470583548662793201634427303658855618669531708265476493509935217403842167662218899918697577352059221865783104641456353343808169843663195203848114992881948956455899691772830758504133890384893466376626987346992568987759938147846448408792913966529793901598463302591232946624561019000429440717575590403869424008943922155852360290744555041315018565721577697866598175649136742425947229871716260700970954879062174555533798919391962299177958195855613735744678754917615795262953958577425004403182277421287355173670209981860756120914348579275103381252872373395204374047679582533257145174069836364187758832320236839213972431143702702907874399319963092987975220497671303327530955197815630540481731525447927035270114937453901405211801983970842473370446512042327833321326233785748069026251078390148812184604203595988632294203541427488833850358101356077621833591404916508221666326218737568594466522590833256708869957905937832181185968518656121552744843471382686912379306696083990652142564402103392863567757588424502681426365131521901319998880197290760806356177628522793197780898426239404661382349949351242433849065266949146293217347572778168060048293014812564690189882645666218764807199043151600888013112773746489713793177974209929489882620409763846868145577042170996536084192702117739056757586030763209415030619370763224063208542665917735899680840554996295124964902608668485156146909371731849862090724309887001722716616638624044826197401014228513554639751096062716961724794672252924450422852955270757091162971961863433056730416587051560712487334492351045414217655322078040163011068836259469708659400145650337890509646575132337934534229816646583264358705887904170618129156377042476148034990133364663185551665498221318893803234868750477499162992224962692132315294582107518988942890176935329149564219584596841074644453353475182347222242095975911033017723846944321942255772995586942184756281064308472443472793823116386714826202743229852620660588191332037476196446092626712194082720056897778891155957346511880032126114587052191940132547270559810569606363424249270570917952603958745307150890345257207261446002917863400852052028079895440909469318654565078081192040832976550898053237185201828318420779132542129399045147839939477415540754983570438575467633031051145545353528158122265391835183729665879883315163197799000046950323749937289445775099555758270073501606448617483819755032646347438109088698649300290092230973160746713662159365866392698222937356300552282380755374270373083364271476052103971285168306530264607632526317482909322306337659312765077629070712956366827047654791261614070706802738561709709166307361855103761788835951890054448314059543010792187187170650068169358168360373401099891008668938360293316175248292817634433645625019989844167272630252622019330537331987850672397416460251324363656970389714921677634844168343538411310139939208177996393000449562556358274572615914904445421061503693372367124497816347839877738060890548244569250232826279020684285866224322672253340301044906628323769312855790102303333163938292109803453060529109808581486632101416905201053922703976508790824615376922023980890266746205570346442120893049599806146323433112922357644244957743528582246190095505691144805352970825066936171542769349307985457222061057492431630232036395642349489450947041308401214005524484451249200235660455398474103173458764931239707671967034241740201994524905355900814112690716670377614717700698237186332695903992570137340839953136046479373497558733227959192345620453061850861623861085564845272518368241619284938614286271774331224024664252114625177520729306465911661806143542080777060664515750234612571193395440909172090257434870764441668423999524964539677107380547239983543559594208272434772745343740656668882587507317465482690815626755994171970357306969130393898203316178589655904478255490081922824058087424465859191837164976193497849859274313274422204746286043234978705793481614272298832012973163412651804352243816530339637680371166327073470566948343515877337188847368913126670797509125465913036167033602802307929714342360335458582037496523868072870020600840037757593229983483943656540896063017268153095536747760705379655781927327031775865049337544361288717615552566081465570011138514031889627234299850273142082608755806011949758633772850008507339681862747269045621791745953487999616336757550474901255512511866666134753858571457013662382367181425973644108584714438054964437004096122129048157412007702246649496414462633053038466496746686831128953827235449344046338370245840268796163067533797478526402903036169648784544363471454830740245703006360861196625122529236680718915796314628868476044300834625132161283486280968876827678119856474815485187532824116626398023751276798326714047057570464106330994187751709941830904792270550540768996893926254186509763758358773750346479721290829248231417910010881618642555447168378157460079660168839766314370103702475492729550223047196120776809135221444464467345831932377638603028472081794748456066016628647873821039314350203295062973828736642157223672873699194924852728832397810138391416691000823459517100526975616628731096433773851045304847671387017877799131460854305299482901221853958899141645914789576635633087808513281916777377163008634482749986763938200065086186208688307363378795216032775309165620147511058422912221254818969040771562537741856780688670523551746410941681008562952792064380962808004660100357129057557774991445775193661547372109932580650911568979618079345132015498945021285442770983273897093386888072764538469307205065912270127238644148683325796035028025995591456113343235430976296119730885808781520210645731741827459818409267986500539979981792163274263095456171291229601553494366306713588117117761168118154452038156359580711100881269137517989820607334224752136450823447834704455114952142416601072240003908874635472248945942641485969223813478383965770466664825577184941114204950061038834102528785270215082516471916747022416561523654418057107927702171281844795528235347972426276081242210127374976029674127227523471614539792298526795271870806828324385627294235220078016198234494910001098476425817113907215371632720402057541077476484229574057986442018783538279751513669748355151419810625125356129629725428588191657732120734868164055045449447269826875179964868418080474669266201409280438902411828749575490135985361074935914513538804305799307553909783799970523940070674825092903938804779848922073242810137577395871086759036628979116093358766777627181972815995881550143667988700532443805996209510820804343645005300551550066172609472505181093307237058710516769364182846511412668940722433212120578594126034936420622279048312902307236705092083360303995128494784046154729102341384923202761791126436122997812434326709139413495755162334009122639277950959406355994650301889414582764594018449689597166976050626478845007757857901292337449583144483303286191669015888068820534571568920865409264643389545913930477771690869362808115475254040104659898545288273969645383794737035784597533341044333902811700852907629729412134877462732984551550098794734526036042684328890161393535782384388299973249603244719391877800829498873774787745614060244338515093487207170580128259747083613478496371704338552735691301940886046732918804883941706857178557501058848138724332715883552528739200478763455977863121001068298163153084467952358574996429835117089151921614595883556721639156785645740656966820869929825236264027445319330654388883304061508068109521551896529511183253870954866081927871016047929498685682792200594588828821026954564192299505948828560363978584378372549437765992457404399482578702501335990278773998266716480514202179444618545765120920473017560460641633264361031725903454378755064134376653003087863694098665391630604838616569811100764625821189337955490240902826555985277664856212055264033794469411625252861885425667773423897687865528210148970321884343275562518425945999352378242732421709247541844195798794310421304982702695325691745364839188217531081030014241603152146666488527774986872520178267211894670576745316778127809185149647554185267097625905618827629417546210297808730038869406474209245210567644045845728265138258418988068180817748029489575580087358037008805738438161403198851911129765254338295153789421323094048516222020897821633023682938325081411871337346064277754114806856529145529945066637825680266201153791707409425099994656332518915854695447124092018816074901235486868193386770527553232084909128065698932539747235861311955945031507649608455377455370125669968807899018532160255616012743211021400663040531248411627979326124018149219377635827292157114859530441532462047023954341544017636495736130137744957358672819832991467796788768433447414518163697217793637447512645904793358558617265737510168849619455496915836708138575195781341647373538691426332992273057213771234087807201628769434771000620309610210833508627923548890747889665620540031006701087796394292721906025036568250808276798184936104635386331255757072025823184327611593780235957247509069633242677035392980735138310304769347209598632999570304515656871053443246673862243349522894542154727999831872835889744379519628608573381106569976732243965589063550898397547073256941055095216322223934145194970376076019510520374661753365948126511700606240535303457801509921677320300692799551643456807308083905513597322459696932990128820163192773060438580331977238144355362619445487303290853863279901168024967761592443619033372044507371073619625317415437035762836509114586802727323094118166162779012214094146349912039450793327362896537587504387448570419683210233699564582861208439354296577680078873695151343342368245013317326698137873881403447349630317545681240007904769211367173162432647353473679959796073020916279497296102235103108557755357970492169504305975393815971322438011777563039498185203191560846209043684755373502064216630038237153782273123659446114191056534925784814926904818752592995190587256625917932269825447116348362937724657340521492893134745633516330853258526331033253285124736468081475130715348899541049939265895250730867917430671754962039478905523949510061851641455070387856196092116091172085576844177805907318414222585660773516945349321732368133745392171667615775316916111364336687491607381597410573740872512565515346281333642080213535347123081829333014565319959415332983483878165191696686132047856782515054434709514701165231179349463274707225942095723766460585395212160790607819580553109048051931043682087813207859748875836999212412211552440461333961074069141953935949049427135069076518212891471102727715496392284403492067392945632262914860948236997465982781380021703059613331591740184162038530033234270779190140574387611474159331101437765107245629409590211996070079654591804919732812611612859755946961880336365944136570872384696155806030435348590656459689198975264956729959388633405982792668189134726972330772816586924814630953488028100949647202660899204877118824066117190449707207322786936223709735515335962596831458588536802265945138408500680104209878391265483732716711236699789942860171458713148467146156041390193005926736304360008918817335803083172831869935538533132713236241145836244569998000415016602705413233797539257082949954226289518529026364480252659429397676364894406903641138206754290825367049067630950778840078076317106390917334853306361277945394054177437845351852053636934870981552842925701195259993732345546110720085275451713417960854719887381258157783082942840286475309151127183544926087078132828960892620835850660791016831103760261580401205022972831631600110048674281697226113099056728017593340429896309315645499483512880212411532625263263057421697354141510029466779954511421547330928507364372732289821616170032230392321508348052849521075555732938309071223245659275321779911235880252148830774195568131051687943119236879636212768232541231845349016474693869520471543860125955337785514798023120971384684163123566995302233158406660416440414635641836065905965061775676188655026379447594072553906458195699294974608907341978136501716441103404166113673134540691983031568330799066392769550934270163425035245251494785422153358026662929471977277049349714020589049024068830239868271276896583575217683076628386559612708812448521730494417344512864979761569648935685915016345633250639430456556851263108290826967549312534036897883497469767925471467294612565028761959015214378704015647179800792161169049931038249409955220211524211649733068334565044121978534196982817115860692769769084720203611814751606840938188972461902949348782359826859306589336546429783163024034522760069600422302826519175215808287516453342891857477522120948538009395043134998977227348872057113153635861111463226312147693965469308532234123515160133728256867754235990565808328786239458984153788014936222814567002573359072672072104218469591280024382296079642752665539075861008808147636714708071767890920682160681282431239123521539226005823069424431364107512728416416081844314699334952258175210297385256770516035102909993787863193863427255506351611324911550183973781424844981030957025337423343844868473302826624063678595130124062816041482988121018555192427924012540043673966800332899076940483218615667936369467070343977215345713144111376249549955197106898227232930877997679303741477865476106535242307285612405991982184051813743909057667350451599811819843757297684642655470566388302687841539853539988472293827219774882927672340727323846800497421145710860754275010955921137150750376814362524334584377907125189181252390268124286736008623211649439715403274956753158765460207395264765753505328276842755996804027114014647807101202462072309091644056698294097623943891512048616434677925772247342357221082759552792277051114409600269058912986632562825001482819147326146463123925511807709636466343959604306867753929807445713030932635073356690170190330416478622169234888004766834019380674684465035921077797242063380298273949188670932319239193657886310425324361337918824985961343692207288728576380407563474803196570034423362491073198418855782371912881010247452617176479591212401022445683680867761989776264782829949946787218576830546679284732387510714196787445652950093616127201987840267351177799478913677216988556490719097653555370935648183790764330299963874781018848025771457734877263773859603700953923928044152861716006873736834207311364776803041854320443334463239096066659465192734189725936138570975430750292795384924890215103726592597142821648026823940441457586487272678585125931540624531179171507486062916317822229134622250385456850541495759042701457487387664470644237101665172818776455128939809233192078267411816352653382881642979861444933489968939363313904665062136307479824005408104187462308185480373532097469269367144930216483543463985928613246506024861464598081596886435471062416425986568399365477955422643311723242360067147250205036083984434220409722393296484520949181128365954521787129100247625655701061630239664048390140142454892916093657942136770103156647035675573225257491245553372466777428188268805638417037474122359528309056727219263338010555553969722353195359975510182364175855313773339862718080241673635159694178989361219984276874870671376921073879585376611896924166678293986384556220309804014674034728266893987848335767136467176185714010137556383140398754134958393244672451086552484879382262553101343267710948523672483332701437311831177343537895728483383964395950146799901379000049258892861608220172691159106607717052546952748334797577574066734973090096968841216225170628123361516734808346886957205461590895503709983916658850038044110344640521516673911650496549844159562471557445804197892049432822501169379390350940383758216258208492574913062109246451509053006111512449924986026155797890216675088201538687453814447753481325620992837590775216358790629758382346326745216468127735598211756480528626296434143641973447639679663783981107460717509158763504930746347202816075580857701223496449379640030717069396875594191380894954118731439267596560859606064792815015175660186907277426903427878892868910199177477070278223999845258574319654749150328895440752199826036305505498759075847452010023389521707491986560210594885745902796218714664775556778643319463153017284342101258119140070891384002530233337737536282525400964229944495360970332691900043365368625568799258305331999561439367851849974398166786066067769078252181795786047402161479619875947147857597424001518956399560453386347793212528081681440585646201852235943580475105504959647542156355078742432031120392327469194782389301570711607221385625235551204725530203430230903122669985265221322175556190050088784375532051426396450974773062503713864890247615049924266586645014482899324444609960462617297358174890080367077082737123741363384647155869767837751259087820799771344558023800236835945843881636464292072593837875269826402161333931501230246662594449792240843554390179411176703993492387183818297105518237753158094766533949342118513154144204816236688189954247655558857633412291547942414532124021206970517995168572073777219808360720385868865989933079110879276009081452720103513220098703557634261941551562538243585419187066487018366354510265942965572975922082331847633539074735377833669390862431293873080631971835046207520545292983204021746143610767161159727306840588354212709665048347936413059542745785583018433847355869220360212845292806252697279523038049383221422185357936491550272001868128228313782605092257321350820340084590172344304273500963065179132767198208714074214418490007027863759500065179516389791541408791589815871940471692353558939299470001451989107572275234201004540441140916943104539471619638461898954306727025526617725915756057907004337777321164639117687542302314926425979998318875145560597598259752249983952590965233487314470404858368149252573238403319319283546895168822129859033994714683895487858786671856392129771015601553896095603465911151228721820179709879719169380411423064277517559918368076106409848508775431940333191307079026451855702727716757202825703422111339502888081180925006033004670715204944196839168080338290482980710835941288236492394037171865417425970553817723737632902165332229097638663886339553836286273174285518596804734066366663368158323665369587900845458582122097699687410175604817579649742079721126822953531483270880595181487879894706421913266910022652399662333725384876565115671853382491676955339578816040852356697380194308520475033300914248619417986525951894418166753795567978661324747096876486731179086598144175109617728053041541116724492367899779658322544688532758997964060814317048256919924850062064330276085499707064427978535128878051218222971950421901678619999840873067734189236668302200025288531733904946173303882356600878535907630880702791330722407888051152871592152756392932006167761177840474170044301877006862721708558241565289966290528090757140734930093249430823582052275648522207814154428444575474520428908534511530559593552163682739794067973675662397557536456099191967523447289912308358340807546589851908164858314044225874777982510801833869628778136921093514104210492531821113532457488852305706647635298282788905336775289919505302320842554729840400845324978336309896177899641757030939071267574805832019638893781912838463165657097753200407952834783357010415639691965240216732443942229910296135085926793798550904332251892065668257814429860726137803304664929908804703815529100335670969166660188225685541685417618431266048988533129839482237715483336850373905286098789784868034081993706348662755585309797325629555353147948884468870735905157974872470085400701991341484637865113964413476417817308072578736091866292659876336016961794473044024957556567644025176602692966625714916105301426802863889303269253974868427310203498495577799717385025315226437995870475697152352464410663683057330637699352904662533063797986692844145004433495645869295992513176806802829520214448052624506065637324388311005807759924785847828993852151274199351315592584148479360584334420565960305740540507787264782464997245826932069199341417390347741013012959550492827480720831205071114872901815311593370800636963669143396349420364416421759184466632503524568250134424908867703062569091970322093808824247485773497750434275241197331434597048979297616573460315209551611666869755277196570064417389624485517689696944636045057055321437931182726207116689684375748021804794889288181907320432140712591798372830674396092732301211739658403654712291118430606285521455497512548566409344692627882346019020024895829659492855801864271490515769855827139302982687721198939973383793137270165162299771988838750207383084814989155181089065992945460316198490307021424866402425336655403981803718539402236762904848341449559313207728966976887912527034979895151334154827281114876307878369982922530026855805771862670685950220791920383688610874065278269209172455899240895757444002508192701525108433957211668545608725410085115309650968874255859968005983529802330630111553502203453419263246919671597063471693894318957340923956325730315771054441770639464244598415896631871098066865091005993726086844850707746207293352680525882546826269142427007587282798718505943886694954064193621429315898008766912418123433732718093050579585711365775792913169258744879186989090668684672785137434752573989077376919050088599832963237836778812809446954019899773995662665750865230611293715276007251501015190153809968217754545910615961701173834783936788690633158907607399130244566809479238480354876607967698381722135932094878736343838946146165838024821040646592840962592394789138054018301895919561855444237877399435936416232020174868038679323187173092934498342416090223852320263653626406746638516573354847563828414021804108636850809219673543348757309449297591982647918233634308166583141312371274035055477187967545602145698305666612985856